diff --git a/composition-go/composition_test.go b/composition-go/composition_test.go index d0bfdaa00f..7063915e88 100644 --- a/composition-go/composition_test.go +++ b/composition-go/composition_test.go @@ -70,15 +70,9 @@ func normalizeWhiteSpace(s string) string { func TestFederateSubgraphs(t *testing.T) { const ( expectedSDL = ` - directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR - - directive @deprecated(reason: String = "No longer supported") on ARGUMENT_DEFINITION | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION - - directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION - directive @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR - - directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION + + directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR scalar openfed__Scope diff --git a/composition-go/index.global.js b/composition-go/index.global.js index 528335f35a..4065a81e9a 100644 --- a/composition-go/index.global.js +++ b/composition-go/index.global.js @@ -15,17 +15,17 @@ class URL { return urlCanParse(url, base || ''); } } -"use strict";var shim=(()=>{var AJ=Object.create;var Dd=Object.defineProperty,RJ=Object.defineProperties,PJ=Object.getOwnPropertyDescriptor,FJ=Object.getOwnPropertyDescriptors,wJ=Object.getOwnPropertyNames,WA=Object.getOwnPropertySymbols,LJ=Object.getPrototypeOf,XA=Object.prototype.hasOwnProperty,CJ=Object.prototype.propertyIsEnumerable;var un=Math.pow,Cy=(e,t,n)=>t in e?Dd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,x=(e,t)=>{for(var n in t||(t={}))XA.call(t,n)&&Cy(e,n,t[n]);if(WA)for(var n of WA(t))CJ.call(t,n)&&Cy(e,n,t[n]);return e},Q=(e,t)=>RJ(e,FJ(t));var ku=(e,t)=>()=>(e&&(t=e(e=0)),t);var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),fm=(e,t)=>{for(var n in t)Dd(e,n,{get:t[n],enumerable:!0})},ZA=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of wJ(t))!XA.call(e,i)&&i!==n&&Dd(e,i,{get:()=>t[i],enumerable:!(r=PJ(t,i))||r.enumerable});return e};var ps=(e,t,n)=>(n=e!=null?AJ(LJ(e)):{},ZA(t||!e||!e.__esModule?Dd(n,"default",{value:e,enumerable:!0}):n,e)),pm=e=>ZA(Dd({},"__esModule",{value:!0}),e);var _=(e,t,n)=>(Cy(e,typeof t!="symbol"?t+"":t,n),n),eR=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};var By=(e,t,n)=>(eR(e,t,"read from private field"),n?n.call(e):t.get(e)),tR=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},Uy=(e,t,n,r)=>(eR(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);var Di=(e,t,n)=>new Promise((r,i)=>{var a=l=>{try{c(n.next(l))}catch(d){i(d)}},o=l=>{try{c(n.throw(l))}catch(d){i(d)}},c=l=>l.done?r(l.value):Promise.resolve(l.value).then(a,o);c((n=n.apply(e,t)).next())});var m=ku(()=>{"use strict"});var O={};fm(O,{_debugEnd:()=>KR,_debugProcess:()=>jR,_events:()=>aP,_eventsCount:()=>sP,_exiting:()=>vR,_fatalExceptions:()=>MR,_getActiveHandles:()=>bR,_getActiveRequests:()=>DR,_kill:()=>RR,_linkedBinding:()=>gR,_maxListeners:()=>iP,_preload_modules:()=>tP,_rawDebug:()=>yR,_startProfilerIdleNotifier:()=>GR,_stopProfilerIdleNotifier:()=>$R,_tickCallback:()=>VR,abort:()=>HR,addListener:()=>oP,allowedNodeEnvironmentFlags:()=>BR,arch:()=>sR,argv:()=>cR,argv0:()=>eP,assert:()=>UR,binding:()=>mR,chdir:()=>ER,config:()=>SR,cpuUsage:()=>Tm,cwd:()=>TR,debugPort:()=>ZR,default:()=>TP,dlopen:()=>OR,domain:()=>_R,emit:()=>fP,emitWarning:()=>pR,env:()=>uR,execArgv:()=>lR,execPath:()=>XR,exit:()=>LR,features:()=>kR,hasUncaughtExceptionCaptureCallback:()=>qR,hrtime:()=>Nm,kill:()=>wR,listeners:()=>NP,memoryUsage:()=>FR,moduleLoadList:()=>IR,nextTick:()=>rR,off:()=>cP,on:()=>Ns,once:()=>uP,openStdin:()=>CR,pid:()=>zR,platform:()=>oR,ppid:()=>WR,prependListener:()=>pP,prependOnceListener:()=>mP,reallyExit:()=>AR,release:()=>hR,removeAllListeners:()=>dP,removeListener:()=>lP,resourceUsage:()=>PR,setSourceMapsEnabled:()=>nP,setUncaughtExceptionCaptureCallback:()=>xR,stderr:()=>YR,stdin:()=>JR,stdout:()=>QR,title:()=>aR,umask:()=>NR,uptime:()=>rP,version:()=>dR,versions:()=>fR});function xy(e){throw new Error("Node.js process "+e+" is not supported by JSPM core outside of Node.js")}function BJ(){!Zc||!Mu||(Zc=!1,Mu.length?ms=Mu.concat(ms):mm=-1,ms.length&&nR())}function nR(){if(!Zc){var e=setTimeout(BJ,0);Zc=!0;for(var t=ms.length;t;){for(Mu=ms,ms=[];++mm1)for(var n=1;n{"use strict";m();T();N();ms=[],Zc=!1,mm=-1;iR.prototype.run=function(){this.fun.apply(null,this.array)};aR="browser",sR="x64",oR="browser",uR={PATH:"/usr/bin",LANG:navigator.language+".UTF-8",PWD:"/",HOME:"/home",TMP:"/tmp"},cR=["/usr/bin/node"],lR=[],dR="v16.8.0",fR={},pR=function(e,t){console.warn((t?t+": ":"")+e)},mR=function(e){xy("binding")},NR=function(e){return 0},TR=function(){return"/"},ER=function(e){},hR={name:"node",sourceUrl:"",headersUrl:"",libUrl:""};yR=yr,IR=[];_R={},vR=!1,SR={};AR=yr,RR=yr,Tm=function(){return{}},PR=Tm,FR=Tm,wR=yr,LR=yr,CR=yr,BR={};kR={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},MR=yr,xR=yr;VR=yr,jR=yr,KR=yr,GR=yr,$R=yr,QR=void 0,YR=void 0,JR=void 0,HR=yr,zR=2,WR=1,XR="/bin/usr/node",ZR=9229,eP="node",tP=[],nP=yr,Xo={now:typeof performance!="undefined"?performance.now.bind(performance):void 0,timing:typeof performance!="undefined"?performance.timing:void 0};Xo.now===void 0&&(ky=Date.now(),Xo.timing&&Xo.timing.navigationStart&&(ky=Xo.timing.navigationStart),Xo.now=()=>Date.now()-ky);My=1e9;Nm.bigint=function(e){var t=Nm(e);return typeof BigInt=="undefined"?t[0]*My+t[1]:BigInt(t[0]*My)+BigInt(t[1])};iP=10,aP={},sP=0;oP=Ns,uP=Ns,cP=Ns,lP=Ns,dP=Ns,fP=yr,pP=Ns,mP=Ns;TP={version:dR,versions:fR,arch:sR,platform:oR,release:hR,_rawDebug:yR,moduleLoadList:IR,binding:mR,_linkedBinding:gR,_events:aP,_eventsCount:sP,_maxListeners:iP,on:Ns,addListener:oP,once:uP,off:cP,removeListener:lP,removeAllListeners:dP,emit:fP,prependListener:pP,prependOnceListener:mP,listeners:NP,domain:_R,_exiting:vR,config:SR,dlopen:OR,uptime:rP,_getActiveRequests:DR,_getActiveHandles:bR,reallyExit:AR,_kill:RR,cpuUsage:Tm,resourceUsage:PR,memoryUsage:FR,kill:wR,exit:LR,openStdin:CR,allowedNodeEnvironmentFlags:BR,assert:UR,features:kR,_fatalExceptions:MR,setUncaughtExceptionCaptureCallback:xR,hasUncaughtExceptionCaptureCallback:qR,emitWarning:pR,nextTick:rR,_tickCallback:VR,_debugProcess:jR,_debugEnd:KR,_startProfilerIdleNotifier:GR,_stopProfilerIdleNotifier:$R,stdout:QR,stdin:JR,stderr:YR,abort:HR,umask:NR,chdir:ER,cwd:TR,env:uR,title:aR,argv:cR,execArgv:lR,pid:zR,ppid:WR,execPath:XR,debugPort:ZR,hrtime:Nm,argv0:eP,_preload_modules:tP,setSourceMapsEnabled:nP}});var N=ku(()=>{"use strict";EP()});function UJ(){if(hP)return bd;hP=!0,bd.byteLength=c,bd.toByteArray=d,bd.fromByteArray=I;for(var e=[],t=[],n=typeof Uint8Array!="undefined"?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,a=r.length;i0)throw new Error("Invalid string. Length must be a multiple of 4");var k=v.indexOf("=");k===-1&&(k=F);var K=k===F?0:4-k%4;return[k,K]}function c(v){var F=o(v),k=F[0],K=F[1];return(k+K)*3/4-K}function l(v,F,k){return(F+k)*3/4-k}function d(v){var F,k=o(v),K=k[0],J=k[1],se=new n(l(v,K,J)),ie=0,Te=J>0?K-4:K,de;for(de=0;de>16&255,se[ie++]=F>>8&255,se[ie++]=F&255;return J===2&&(F=t[v.charCodeAt(de)]<<2|t[v.charCodeAt(de+1)]>>4,se[ie++]=F&255),J===1&&(F=t[v.charCodeAt(de)]<<10|t[v.charCodeAt(de+1)]<<4|t[v.charCodeAt(de+2)]>>2,se[ie++]=F>>8&255,se[ie++]=F&255),se}function p(v){return e[v>>18&63]+e[v>>12&63]+e[v>>6&63]+e[v&63]}function y(v,F,k){for(var K,J=[],se=F;seTe?Te:ie+se));return K===1?(F=v[k-1],J.push(e[F>>2]+e[F<<4&63]+"==")):K===2&&(F=(v[k-2]<<8)+v[k-1],J.push(e[F>>10]+e[F>>4&63]+e[F<<2&63]+"=")),J.join("")}return bd}function kJ(){if(yP)return Em;yP=!0;return Em.read=function(e,t,n,r,i){var a,o,c=i*8-r-1,l=(1<>1,p=-7,y=n?i-1:0,I=n?-1:1,v=e[t+y];for(y+=I,a=v&(1<<-p)-1,v>>=-p,p+=c;p>0;a=a*256+e[t+y],y+=I,p-=8);for(o=a&(1<<-p)-1,a>>=-p,p+=r;p>0;o=o*256+e[t+y],y+=I,p-=8);if(a===0)a=1-d;else{if(a===l)return o?NaN:(v?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-d}return(v?-1:1)*o*Math.pow(2,a-r)},Em.write=function(e,t,n,r,i,a){var o,c,l,d=a*8-i-1,p=(1<>1,I=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,v=r?0:a-1,F=r?1:-1,k=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(c=isNaN(t)?1:0,o=p):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+y>=1?t+=I/l:t+=I*Math.pow(2,1-y),t*l>=2&&(o++,l/=2),o+y>=p?(c=0,o=p):o+y>=1?(c=(t*l-1)*Math.pow(2,i),o=o+y):(c=t*Math.pow(2,y-1)*Math.pow(2,i),o=0));i>=8;e[n+v]=c&255,v+=F,c/=256,i-=8);for(o=o<0;e[n+v]=o&255,v+=F,o/=256,d-=8);e[n+v-F]|=k*128},Em}function MJ(){if(IP)return xu;IP=!0;let e=UJ(),t=kJ(),n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;xu.Buffer=o,xu.SlowBuffer=J,xu.INSPECT_MAX_BYTES=50;let r=2147483647;xu.kMaxLength=r,o.TYPED_ARRAY_SUPPORT=i(),!o.TYPED_ARRAY_SUPPORT&&typeof console!="undefined"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function i(){try{let R=new Uint8Array(1),h={foo:function(){return 42}};return Object.setPrototypeOf(h,Uint8Array.prototype),Object.setPrototypeOf(R,h),R.foo()===42}catch(R){return!1}}Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.buffer}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.byteOffset}});function a(R){if(R>r)throw new RangeError('The value "'+R+'" is invalid for option "size"');let h=new Uint8Array(R);return Object.setPrototypeOf(h,o.prototype),h}function o(R,h,g){if(typeof R=="number"){if(typeof h=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return p(R)}return c(R,h,g)}o.poolSize=8192;function c(R,h,g){if(typeof R=="string")return y(R,h);if(ArrayBuffer.isView(R))return v(R);if(R==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof R);if(Vt(R,ArrayBuffer)||R&&Vt(R.buffer,ArrayBuffer)||typeof SharedArrayBuffer!="undefined"&&(Vt(R,SharedArrayBuffer)||R&&Vt(R.buffer,SharedArrayBuffer)))return F(R,h,g);if(typeof R=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let C=R.valueOf&&R.valueOf();if(C!=null&&C!==R)return o.from(C,h,g);let G=k(R);if(G)return G;if(typeof Symbol!="undefined"&&Symbol.toPrimitive!=null&&typeof R[Symbol.toPrimitive]=="function")return o.from(R[Symbol.toPrimitive]("string"),h,g);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof R)}o.from=function(R,h,g){return c(R,h,g)},Object.setPrototypeOf(o.prototype,Uint8Array.prototype),Object.setPrototypeOf(o,Uint8Array);function l(R){if(typeof R!="number")throw new TypeError('"size" argument must be of type number');if(R<0)throw new RangeError('The value "'+R+'" is invalid for option "size"')}function d(R,h,g){return l(R),R<=0?a(R):h!==void 0?typeof g=="string"?a(R).fill(h,g):a(R).fill(h):a(R)}o.alloc=function(R,h,g){return d(R,h,g)};function p(R){return l(R),a(R<0?0:K(R)|0)}o.allocUnsafe=function(R){return p(R)},o.allocUnsafeSlow=function(R){return p(R)};function y(R,h){if((typeof h!="string"||h==="")&&(h="utf8"),!o.isEncoding(h))throw new TypeError("Unknown encoding: "+h);let g=se(R,h)|0,C=a(g),G=C.write(R,h);return G!==g&&(C=C.slice(0,G)),C}function I(R){let h=R.length<0?0:K(R.length)|0,g=a(h);for(let C=0;C=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return R|0}function J(R){return+R!=R&&(R=0),o.alloc(+R)}o.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==o.prototype},o.compare=function(h,g){if(Vt(h,Uint8Array)&&(h=o.from(h,h.offset,h.byteLength)),Vt(g,Uint8Array)&&(g=o.from(g,g.offset,g.byteLength)),!o.isBuffer(h)||!o.isBuffer(g))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===g)return 0;let C=h.length,G=g.length;for(let te=0,fe=Math.min(C,G);teG.length?(o.isBuffer(fe)||(fe=o.from(fe)),fe.copy(G,te)):Uint8Array.prototype.set.call(G,fe,te);else if(o.isBuffer(fe))fe.copy(G,te);else throw new TypeError('"list" argument must be an Array of Buffers');te+=fe.length}return G};function se(R,h){if(o.isBuffer(R))return R.length;if(ArrayBuffer.isView(R)||Vt(R,ArrayBuffer))return R.byteLength;if(typeof R!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof R);let g=R.length,C=arguments.length>2&&arguments[2]===!0;if(!C&&g===0)return 0;let G=!1;for(;;)switch(h){case"ascii":case"latin1":case"binary":return g;case"utf8":case"utf-8":return rs(R).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return g*2;case"hex":return g>>>1;case"base64":return mr(R).length;default:if(G)return C?-1:rs(R).length;h=(""+h).toLowerCase(),G=!0}}o.byteLength=se;function ie(R,h,g){let C=!1;if((h===void 0||h<0)&&(h=0),h>this.length||((g===void 0||g>this.length)&&(g=this.length),g<=0)||(g>>>=0,h>>>=0,g<=h))return"";for(R||(R="utf8");;)switch(R){case"hex":return Fr(this,h,g);case"utf8":case"utf-8":return tn(this,h,g);case"ascii":return mn(this,h,g);case"latin1":case"binary":return Pr(this,h,g);case"base64":return en(this,h,g);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return kn(this,h,g);default:if(C)throw new TypeError("Unknown encoding: "+R);R=(R+"").toLowerCase(),C=!0}}o.prototype._isBuffer=!0;function Te(R,h,g){let C=R[h];R[h]=R[g],R[g]=C}o.prototype.swap16=function(){let h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let g=0;gg&&(h+=" ... "),""},n&&(o.prototype[n]=o.prototype.inspect),o.prototype.compare=function(h,g,C,G,te){if(Vt(h,Uint8Array)&&(h=o.from(h,h.offset,h.byteLength)),!o.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(g===void 0&&(g=0),C===void 0&&(C=h?h.length:0),G===void 0&&(G=0),te===void 0&&(te=this.length),g<0||C>h.length||G<0||te>this.length)throw new RangeError("out of range index");if(G>=te&&g>=C)return 0;if(G>=te)return-1;if(g>=C)return 1;if(g>>>=0,C>>>=0,G>>>=0,te>>>=0,this===h)return 0;let fe=te-G,pt=C-g,Nn=Math.min(fe,pt),on=this.slice(G,te),yn=h.slice(g,C);for(let nn=0;nn2147483647?g=2147483647:g<-2147483648&&(g=-2147483648),g=+g,Nr(g)&&(g=G?0:R.length-1),g<0&&(g=R.length+g),g>=R.length){if(G)return-1;g=R.length-1}else if(g<0)if(G)g=0;else return-1;if(typeof h=="string"&&(h=o.from(h,C)),o.isBuffer(h))return h.length===0?-1:Re(R,h,g,C,G);if(typeof h=="number")return h=h&255,typeof Uint8Array.prototype.indexOf=="function"?G?Uint8Array.prototype.indexOf.call(R,h,g):Uint8Array.prototype.lastIndexOf.call(R,h,g):Re(R,[h],g,C,G);throw new TypeError("val must be string, number or Buffer")}function Re(R,h,g,C,G){let te=1,fe=R.length,pt=h.length;if(C!==void 0&&(C=String(C).toLowerCase(),C==="ucs2"||C==="ucs-2"||C==="utf16le"||C==="utf-16le")){if(R.length<2||h.length<2)return-1;te=2,fe/=2,pt/=2,g/=2}function Nn(yn,nn){return te===1?yn[nn]:yn.readUInt16BE(nn*te)}let on;if(G){let yn=-1;for(on=g;onfe&&(g=fe-pt),on=g;on>=0;on--){let yn=!0;for(let nn=0;nnG&&(C=G)):C=G;let te=h.length;C>te/2&&(C=te/2);let fe;for(fe=0;fe>>0,isFinite(C)?(C=C>>>0,G===void 0&&(G="utf8")):(G=C,C=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let te=this.length-g;if((C===void 0||C>te)&&(C=te),h.length>0&&(C<0||g<0)||g>this.length)throw new RangeError("Attempt to write outside buffer bounds");G||(G="utf8");let fe=!1;for(;;)switch(G){case"hex":return xe(this,h,g,C);case"utf8":case"utf-8":return tt(this,h,g,C);case"ascii":case"latin1":case"binary":return ee(this,h,g,C);case"base64":return Se(this,h,g,C);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _t(this,h,g,C);default:if(fe)throw new TypeError("Unknown encoding: "+G);G=(""+G).toLowerCase(),fe=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function en(R,h,g){return h===0&&g===R.length?e.fromByteArray(R):e.fromByteArray(R.slice(h,g))}function tn(R,h,g){g=Math.min(R.length,g);let C=[],G=h;for(;G239?4:te>223?3:te>191?2:1;if(G+pt<=g){let Nn,on,yn,nn;switch(pt){case 1:te<128&&(fe=te);break;case 2:Nn=R[G+1],(Nn&192)===128&&(nn=(te&31)<<6|Nn&63,nn>127&&(fe=nn));break;case 3:Nn=R[G+1],on=R[G+2],(Nn&192)===128&&(on&192)===128&&(nn=(te&15)<<12|(Nn&63)<<6|on&63,nn>2047&&(nn<55296||nn>57343)&&(fe=nn));break;case 4:Nn=R[G+1],on=R[G+2],yn=R[G+3],(Nn&192)===128&&(on&192)===128&&(yn&192)===128&&(nn=(te&15)<<18|(Nn&63)<<12|(on&63)<<6|yn&63,nn>65535&&nn<1114112&&(fe=nn))}}fe===null?(fe=65533,pt=1):fe>65535&&(fe-=65536,C.push(fe>>>10&1023|55296),fe=56320|fe&1023),C.push(fe),G+=pt}return Qt(C)}let An=4096;function Qt(R){let h=R.length;if(h<=An)return String.fromCharCode.apply(String,R);let g="",C=0;for(;CC)&&(g=C);let G="";for(let te=h;teC&&(h=C),g<0?(g+=C,g<0&&(g=0)):g>C&&(g=C),gg)throw new RangeError("Trying to access beyond buffer length")}o.prototype.readUintLE=o.prototype.readUIntLE=function(h,g,C){h=h>>>0,g=g>>>0,C||zt(h,g,this.length);let G=this[h],te=1,fe=0;for(;++fe>>0,g=g>>>0,C||zt(h,g,this.length);let G=this[h+--g],te=1;for(;g>0&&(te*=256);)G+=this[h+--g]*te;return G},o.prototype.readUint8=o.prototype.readUInt8=function(h,g){return h=h>>>0,g||zt(h,1,this.length),this[h]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(h,g){return h=h>>>0,g||zt(h,2,this.length),this[h]|this[h+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(h,g){return h=h>>>0,g||zt(h,2,this.length),this[h]<<8|this[h+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(h,g){return h=h>>>0,g||zt(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(h,g){return h=h>>>0,g||zt(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},o.prototype.readBigUInt64LE=_a(function(h){h=h>>>0,nt(h,"offset");let g=this[h],C=this[h+7];(g===void 0||C===void 0)&&Rt(h,this.length-8);let G=g+this[++h]*un(2,8)+this[++h]*un(2,16)+this[++h]*un(2,24),te=this[++h]+this[++h]*un(2,8)+this[++h]*un(2,16)+C*un(2,24);return BigInt(G)+(BigInt(te)<>>0,nt(h,"offset");let g=this[h],C=this[h+7];(g===void 0||C===void 0)&&Rt(h,this.length-8);let G=g*un(2,24)+this[++h]*un(2,16)+this[++h]*un(2,8)+this[++h],te=this[++h]*un(2,24)+this[++h]*un(2,16)+this[++h]*un(2,8)+C;return(BigInt(G)<>>0,g=g>>>0,C||zt(h,g,this.length);let G=this[h],te=1,fe=0;for(;++fe=te&&(G-=Math.pow(2,8*g)),G},o.prototype.readIntBE=function(h,g,C){h=h>>>0,g=g>>>0,C||zt(h,g,this.length);let G=g,te=1,fe=this[h+--G];for(;G>0&&(te*=256);)fe+=this[h+--G]*te;return te*=128,fe>=te&&(fe-=Math.pow(2,8*g)),fe},o.prototype.readInt8=function(h,g){return h=h>>>0,g||zt(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},o.prototype.readInt16LE=function(h,g){h=h>>>0,g||zt(h,2,this.length);let C=this[h]|this[h+1]<<8;return C&32768?C|4294901760:C},o.prototype.readInt16BE=function(h,g){h=h>>>0,g||zt(h,2,this.length);let C=this[h+1]|this[h]<<8;return C&32768?C|4294901760:C},o.prototype.readInt32LE=function(h,g){return h=h>>>0,g||zt(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},o.prototype.readInt32BE=function(h,g){return h=h>>>0,g||zt(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},o.prototype.readBigInt64LE=_a(function(h){h=h>>>0,nt(h,"offset");let g=this[h],C=this[h+7];(g===void 0||C===void 0)&&Rt(h,this.length-8);let G=this[h+4]+this[h+5]*un(2,8)+this[h+6]*un(2,16)+(C<<24);return(BigInt(G)<>>0,nt(h,"offset");let g=this[h],C=this[h+7];(g===void 0||C===void 0)&&Rt(h,this.length-8);let G=(g<<24)+this[++h]*un(2,16)+this[++h]*un(2,8)+this[++h];return(BigInt(G)<>>0,g||zt(h,4,this.length),t.read(this,h,!0,23,4)},o.prototype.readFloatBE=function(h,g){return h=h>>>0,g||zt(h,4,this.length),t.read(this,h,!1,23,4)},o.prototype.readDoubleLE=function(h,g){return h=h>>>0,g||zt(h,8,this.length),t.read(this,h,!0,52,8)},o.prototype.readDoubleBE=function(h,g){return h=h>>>0,g||zt(h,8,this.length),t.read(this,h,!1,52,8)};function Rn(R,h,g,C,G,te){if(!o.isBuffer(R))throw new TypeError('"buffer" argument must be a Buffer instance');if(h>G||hR.length)throw new RangeError("Index out of range")}o.prototype.writeUintLE=o.prototype.writeUIntLE=function(h,g,C,G){if(h=+h,g=g>>>0,C=C>>>0,!G){let pt=Math.pow(2,8*C)-1;Rn(this,h,g,C,pt,0)}let te=1,fe=0;for(this[g]=h&255;++fe>>0,C=C>>>0,!G){let pt=Math.pow(2,8*C)-1;Rn(this,h,g,C,pt,0)}let te=C-1,fe=1;for(this[g+te]=h&255;--te>=0&&(fe*=256);)this[g+te]=h/fe&255;return g+C},o.prototype.writeUint8=o.prototype.writeUInt8=function(h,g,C){return h=+h,g=g>>>0,C||Rn(this,h,g,1,255,0),this[g]=h&255,g+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(h,g,C){return h=+h,g=g>>>0,C||Rn(this,h,g,2,65535,0),this[g]=h&255,this[g+1]=h>>>8,g+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(h,g,C){return h=+h,g=g>>>0,C||Rn(this,h,g,2,65535,0),this[g]=h>>>8,this[g+1]=h&255,g+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(h,g,C){return h=+h,g=g>>>0,C||Rn(this,h,g,4,4294967295,0),this[g+3]=h>>>24,this[g+2]=h>>>16,this[g+1]=h>>>8,this[g]=h&255,g+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(h,g,C){return h=+h,g=g>>>0,C||Rn(this,h,g,4,4294967295,0),this[g]=h>>>24,this[g+1]=h>>>16,this[g+2]=h>>>8,this[g+3]=h&255,g+4};function ue(R,h,g,C,G){Ut(h,C,G,R,g,7);let te=Number(h&BigInt(4294967295));R[g++]=te,te=te>>8,R[g++]=te,te=te>>8,R[g++]=te,te=te>>8,R[g++]=te;let fe=Number(h>>BigInt(32)&BigInt(4294967295));return R[g++]=fe,fe=fe>>8,R[g++]=fe,fe=fe>>8,R[g++]=fe,fe=fe>>8,R[g++]=fe,g}function be(R,h,g,C,G){Ut(h,C,G,R,g,7);let te=Number(h&BigInt(4294967295));R[g+7]=te,te=te>>8,R[g+6]=te,te=te>>8,R[g+5]=te,te=te>>8,R[g+4]=te;let fe=Number(h>>BigInt(32)&BigInt(4294967295));return R[g+3]=fe,fe=fe>>8,R[g+2]=fe,fe=fe>>8,R[g+1]=fe,fe=fe>>8,R[g]=fe,g+8}o.prototype.writeBigUInt64LE=_a(function(h,g=0){return ue(this,h,g,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeBigUInt64BE=_a(function(h,g=0){return be(this,h,g,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeIntLE=function(h,g,C,G){if(h=+h,g=g>>>0,!G){let Nn=Math.pow(2,8*C-1);Rn(this,h,g,C,Nn-1,-Nn)}let te=0,fe=1,pt=0;for(this[g]=h&255;++te>0)-pt&255;return g+C},o.prototype.writeIntBE=function(h,g,C,G){if(h=+h,g=g>>>0,!G){let Nn=Math.pow(2,8*C-1);Rn(this,h,g,C,Nn-1,-Nn)}let te=C-1,fe=1,pt=0;for(this[g+te]=h&255;--te>=0&&(fe*=256);)h<0&&pt===0&&this[g+te+1]!==0&&(pt=1),this[g+te]=(h/fe>>0)-pt&255;return g+C},o.prototype.writeInt8=function(h,g,C){return h=+h,g=g>>>0,C||Rn(this,h,g,1,127,-128),h<0&&(h=255+h+1),this[g]=h&255,g+1},o.prototype.writeInt16LE=function(h,g,C){return h=+h,g=g>>>0,C||Rn(this,h,g,2,32767,-32768),this[g]=h&255,this[g+1]=h>>>8,g+2},o.prototype.writeInt16BE=function(h,g,C){return h=+h,g=g>>>0,C||Rn(this,h,g,2,32767,-32768),this[g]=h>>>8,this[g+1]=h&255,g+2},o.prototype.writeInt32LE=function(h,g,C){return h=+h,g=g>>>0,C||Rn(this,h,g,4,2147483647,-2147483648),this[g]=h&255,this[g+1]=h>>>8,this[g+2]=h>>>16,this[g+3]=h>>>24,g+4},o.prototype.writeInt32BE=function(h,g,C){return h=+h,g=g>>>0,C||Rn(this,h,g,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[g]=h>>>24,this[g+1]=h>>>16,this[g+2]=h>>>8,this[g+3]=h&255,g+4},o.prototype.writeBigInt64LE=_a(function(h,g=0){return ue(this,h,g,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeBigInt64BE=_a(function(h,g=0){return be(this,h,g,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function ve(R,h,g,C,G,te){if(g+C>R.length)throw new RangeError("Index out of range");if(g<0)throw new RangeError("Index out of range")}function Ce(R,h,g,C,G){return h=+h,g=g>>>0,G||ve(R,h,g,4),t.write(R,h,g,C,23,4),g+4}o.prototype.writeFloatLE=function(h,g,C){return Ce(this,h,g,!0,C)},o.prototype.writeFloatBE=function(h,g,C){return Ce(this,h,g,!1,C)};function vt(R,h,g,C,G){return h=+h,g=g>>>0,G||ve(R,h,g,8),t.write(R,h,g,C,52,8),g+8}o.prototype.writeDoubleLE=function(h,g,C){return vt(this,h,g,!0,C)},o.prototype.writeDoubleBE=function(h,g,C){return vt(this,h,g,!1,C)},o.prototype.copy=function(h,g,C,G){if(!o.isBuffer(h))throw new TypeError("argument should be a Buffer");if(C||(C=0),!G&&G!==0&&(G=this.length),g>=h.length&&(g=h.length),g||(g=0),G>0&&G=this.length)throw new RangeError("Index out of range");if(G<0)throw new RangeError("sourceEnd out of bounds");G>this.length&&(G=this.length),h.length-g>>0,C=C===void 0?this.length:C>>>0,h||(h=0);let te;if(typeof h=="number")for(te=g;teun(2,32)?G=qe(String(g)):typeof g=="bigint"&&(G=String(g),(g>un(BigInt(2),BigInt(32))||g<-un(BigInt(2),BigInt(32)))&&(G=qe(G)),G+="n"),C+=` It must be ${h}. Received ${G}`,C},RangeError);function qe(R){let h="",g=R.length,C=R[0]==="-"?1:0;for(;g>=C+4;g-=3)h=`_${R.slice(g-3,g)}${h}`;return`${R.slice(0,g)}${h}`}function Ye(R,h,g){nt(h,"offset"),(R[h]===void 0||R[h+g]===void 0)&&Rt(h,R.length-(g+1))}function Ut(R,h,g,C,G,te){if(R>g||R3?h===0||h===BigInt(0)?pt=`>= 0${fe} and < 2${fe} ** ${(te+1)*8}${fe}`:pt=`>= -(2${fe} ** ${(te+1)*8-1}${fe}) and < 2 ** ${(te+1)*8-1}${fe}`:pt=`>= ${h}${fe} and <= ${g}${fe}`,new Y.ERR_OUT_OF_RANGE("value",pt,R)}Ye(C,G,te)}function nt(R,h){if(typeof R!="number")throw new Y.ERR_INVALID_ARG_TYPE(h,"number",R)}function Rt(R,h,g){throw Math.floor(R)!==R?(nt(R,g),new Y.ERR_OUT_OF_RANGE(g||"offset","an integer",R)):h<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE(g||"offset",`>= ${g?1:0} and <= ${h}`,R)}let ns=/[^+/0-9A-Za-z-_]/g;function Vr(R){if(R=R.split("=")[0],R=R.trim().replace(ns,""),R.length<2)return"";for(;R.length%4!==0;)R=R+"=";return R}function rs(R,h){h=h||1/0;let g,C=R.length,G=null,te=[];for(let fe=0;fe55295&&g<57344){if(!G){if(g>56319){(h-=3)>-1&&te.push(239,191,189);continue}else if(fe+1===C){(h-=3)>-1&&te.push(239,191,189);continue}G=g;continue}if(g<56320){(h-=3)>-1&&te.push(239,191,189),G=g;continue}g=(G-55296<<10|g-56320)+65536}else G&&(h-=3)>-1&&te.push(239,191,189);if(G=null,g<128){if((h-=1)<0)break;te.push(g)}else if(g<2048){if((h-=2)<0)break;te.push(g>>6|192,g&63|128)}else if(g<65536){if((h-=3)<0)break;te.push(g>>12|224,g>>6&63|128,g&63|128)}else if(g<1114112){if((h-=4)<0)break;te.push(g>>18|240,g>>12&63|128,g>>6&63|128,g&63|128)}else throw new Error("Invalid code point")}return te}function xc(R){let h=[];for(let g=0;g>8,G=g%256,te.push(G),te.push(C);return te}function mr(R){return e.toByteArray(Vr(R))}function ri(R,h,g,C){let G;for(G=0;G=h.length||G>=R.length);++G)h[G+g]=R[G];return G}function Vt(R,h){return R instanceof h||R!=null&&R.constructor!=null&&R.constructor.name!=null&&R.constructor.name===h.name}function Nr(R){return R!==R}let Du=function(){let R="0123456789abcdef",h=new Array(256);for(let g=0;g<16;++g){let C=g*16;for(let G=0;G<16;++G)h[C+G]=R[g]+R[G]}return h}();function _a(R){return typeof BigInt=="undefined"?bu:R}function bu(){throw new Error("BigInt not supported")}return xu}var bd,hP,Em,yP,xu,IP,qu,D,yfe,Ife,gP=ku(()=>{"use strict";m();T();N();bd={},hP=!1;Em={},yP=!1;xu={},IP=!1;qu=MJ();qu.Buffer;qu.SlowBuffer;qu.INSPECT_MAX_BYTES;qu.kMaxLength;D=qu.Buffer,yfe=qu.INSPECT_MAX_BYTES,Ife=qu.kMaxLength});var T=ku(()=>{"use strict";gP()});var _P=w(el=>{"use strict";m();T();N();Object.defineProperty(el,"__esModule",{value:!0});el.versionInfo=el.version=void 0;var xJ="16.9.0";el.version=xJ;var qJ=Object.freeze({major:16,minor:9,patch:0,preReleaseTag:null});el.versionInfo=qJ});var Br=w(qy=>{"use strict";m();T();N();Object.defineProperty(qy,"__esModule",{value:!0});qy.devAssert=VJ;function VJ(e,t){if(!!!e)throw new Error(t)}});var hm=w(Vy=>{"use strict";m();T();N();Object.defineProperty(Vy,"__esModule",{value:!0});Vy.isPromise=jJ;function jJ(e){return typeof(e==null?void 0:e.then)=="function"}});var Da=w(jy=>{"use strict";m();T();N();Object.defineProperty(jy,"__esModule",{value:!0});jy.isObjectLike=KJ;function KJ(e){return typeof e=="object"&&e!==null}});var Ir=w(Ky=>{"use strict";m();T();N();Object.defineProperty(Ky,"__esModule",{value:!0});Ky.invariant=GJ;function GJ(e,t){if(!!!e)throw new Error(t!=null?t:"Unexpected invariant triggered.")}});var ym=w(Gy=>{"use strict";m();T();N();Object.defineProperty(Gy,"__esModule",{value:!0});Gy.getLocation=YJ;var $J=Ir(),QJ=/\r\n|[\n\r]/g;function YJ(e,t){let n=0,r=1;for(let i of e.body.matchAll(QJ)){if(typeof i.index=="number"||(0,$J.invariant)(!1),i.index>=t)break;n=i.index+i[0].length,r+=1}return{line:r,column:t+1-n}}});var $y=w(Im=>{"use strict";m();T();N();Object.defineProperty(Im,"__esModule",{value:!0});Im.printLocation=HJ;Im.printSourceLocation=SP;var JJ=ym();function HJ(e){return SP(e.source,(0,JJ.getLocation)(e.source,e.start))}function SP(e,t){let n=e.locationOffset.column-1,r="".padStart(n)+e.body,i=t.line-1,a=e.locationOffset.line-1,o=t.line+a,c=t.line===1?n:0,l=t.column+c,d=`${e.name}:${o}:${l} -`,p=r.split(/\r\n|[\n\r]/g),y=p[i];if(y.length>120){let I=Math.floor(l/80),v=l%80,F=[];for(let k=0;k["|",k]),["|","^".padStart(v)],["|",F[I+1]]])}return d+vP([[`${o-1} |`,p[i-1]],[`${o} |`,y],["|","^".padStart(l)],[`${o+1} |`,p[i+1]]])}function vP(e){let t=e.filter(([r,i])=>i!==void 0),n=Math.max(...t.map(([r])=>r.length));return t.map(([r,i])=>r.padStart(n)+(i?" "+i:"")).join(` -`)}});var ze=w(tl=>{"use strict";m();T();N();Object.defineProperty(tl,"__esModule",{value:!0});tl.GraphQLError=void 0;tl.formatError=ZJ;tl.printError=XJ;var zJ=Da(),OP=ym(),DP=$y();function WJ(e){let t=e[0];return t==null||"kind"in t||"length"in t?{nodes:t,source:e[1],positions:e[2],path:e[3],originalError:e[4],extensions:e[5]}:t}var Qy=class e extends Error{constructor(t,...n){var r,i,a;let{nodes:o,source:c,positions:l,path:d,originalError:p,extensions:y}=WJ(n);super(t),this.name="GraphQLError",this.path=d!=null?d:void 0,this.originalError=p!=null?p:void 0,this.nodes=bP(Array.isArray(o)?o:o?[o]:void 0);let I=bP((r=this.nodes)===null||r===void 0?void 0:r.map(F=>F.loc).filter(F=>F!=null));this.source=c!=null?c:I==null||(i=I[0])===null||i===void 0?void 0:i.source,this.positions=l!=null?l:I==null?void 0:I.map(F=>F.start),this.locations=l&&c?l.map(F=>(0,OP.getLocation)(c,F)):I==null?void 0:I.map(F=>(0,OP.getLocation)(F.source,F.start));let v=(0,zJ.isObjectLike)(p==null?void 0:p.extensions)?p==null?void 0:p.extensions:void 0;this.extensions=(a=y!=null?y:v)!==null&&a!==void 0?a:Object.create(null),Object.defineProperties(this,{message:{writable:!0,enumerable:!0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),p!=null&&p.stack?Object.defineProperty(this,"stack",{value:p.stack,writable:!0,configurable:!0}):Error.captureStackTrace?Error.captureStackTrace(this,e):Object.defineProperty(this,"stack",{value:Error().stack,writable:!0,configurable:!0})}get[Symbol.toStringTag](){return"GraphQLError"}toString(){let t=this.message;if(this.nodes)for(let n of this.nodes)n.loc&&(t+=` +"use strict";var shim=(()=>{var ZJ=Object.create;var kd=Object.defineProperty,eH=Object.defineProperties,tH=Object.getOwnPropertyDescriptor,nH=Object.getOwnPropertyDescriptors,rH=Object.getOwnPropertyNames,hR=Object.getOwnPropertySymbols,iH=Object.getPrototypeOf,yR=Object.prototype.hasOwnProperty,aH=Object.prototype.propertyIsEnumerable;var ln=Math.pow,eI=(e,t,n)=>t in e?kd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,M=(e,t)=>{for(var n in t||(t={}))yR.call(t,n)&&eI(e,n,t[n]);if(hR)for(var n of hR(t))aH.call(t,n)&&eI(e,n,t[n]);return e},$=(e,t)=>eH(e,nH(t));var Yu=(e,t)=>()=>(e&&(t=e(e=0)),t);var F=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),bm=(e,t)=>{for(var n in t)kd(e,n,{get:t[n],enumerable:!0})},IR=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of rH(t))!yR.call(e,i)&&i!==n&&kd(e,i,{get:()=>t[i],enumerable:!(r=tH(t,i))||r.enumerable});return e};var _s=(e,t,n)=>(n=e!=null?ZJ(iH(e)):{},IR(t||!e||!e.__esModule?kd(n,"default",{value:e,enumerable:!0}):n,e)),Am=e=>IR(kd({},"__esModule",{value:!0}),e);var _=(e,t,n)=>(eI(e,typeof t!="symbol"?t+"":t,n),n),tI=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};var nI=(e,t,n)=>(tI(e,t,"read from private field"),n?n.call(e):t.get(e)),cl=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},rI=(e,t,n,r)=>(tI(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);var Rm=(e,t,n)=>(tI(e,t,"access private method"),n);var wi=(e,t,n)=>new Promise((r,i)=>{var a=l=>{try{c(n.next(l))}catch(d){i(d)}},o=l=>{try{c(n.throw(l))}catch(d){i(d)}},c=l=>l.done?r(l.value):Promise.resolve(l.value).then(a,o);c((n=n.apply(e,t)).next())});var m=Yu(()=>{"use strict"});var O={};bm(O,{_debugEnd:()=>uP,_debugProcess:()=>oP,_events:()=>SP,_eventsCount:()=>OP,_exiting:()=>VR,_fatalExceptions:()=>rP,_getActiveHandles:()=>QR,_getActiveRequests:()=>$R,_kill:()=>JR,_linkedBinding:()=>qR,_maxListeners:()=>vP,_preload_modules:()=>IP,_rawDebug:()=>MR,_startProfilerIdleNotifier:()=>cP,_stopProfilerIdleNotifier:()=>lP,_tickCallback:()=>sP,abort:()=>mP,addListener:()=>DP,allowedNodeEnvironmentFlags:()=>eP,arch:()=>OR,argv:()=>AR,argv0:()=>yP,assert:()=>tP,binding:()=>LR,chdir:()=>UR,config:()=>KR,cpuUsage:()=>wm,cwd:()=>BR,debugPort:()=>hP,default:()=>BP,dlopen:()=>GR,domain:()=>jR,emit:()=>FP,emitWarning:()=>wR,env:()=>bR,execArgv:()=>RR,execPath:()=>EP,exit:()=>XR,features:()=>nP,hasUncaughtExceptionCaptureCallback:()=>aP,hrtime:()=>Fm,kill:()=>WR,listeners:()=>CP,memoryUsage:()=>zR,moduleLoadList:()=>xR,nextTick:()=>_R,off:()=>AP,on:()=>Ss,once:()=>bP,openStdin:()=>ZR,pid:()=>NP,platform:()=>DR,ppid:()=>TP,prependListener:()=>wP,prependOnceListener:()=>LP,reallyExit:()=>YR,release:()=>kR,removeAllListeners:()=>PP,removeListener:()=>RP,resourceUsage:()=>HR,setSourceMapsEnabled:()=>gP,setUncaughtExceptionCaptureCallback:()=>iP,stderr:()=>pP,stdin:()=>fP,stdout:()=>dP,title:()=>SR,umask:()=>CR,uptime:()=>_P,version:()=>PR,versions:()=>FR});function sI(e){throw new Error("Node.js process "+e+" is not supported by JSPM core outside of Node.js")}function sH(){!ll||!Ju||(ll=!1,Ju.length?vs=Ju.concat(vs):Pm=-1,vs.length&&gR())}function gR(){if(!ll){var e=setTimeout(sH,0);ll=!0;for(var t=vs.length;t;){for(Ju=vs,vs=[];++Pm1)for(var n=1;n{"use strict";m();T();N();vs=[],ll=!1,Pm=-1;vR.prototype.run=function(){this.fun.apply(null,this.array)};SR="browser",OR="x64",DR="browser",bR={PATH:"/usr/bin",LANG:navigator.language+".UTF-8",PWD:"/",HOME:"/home",TMP:"/tmp"},AR=["/usr/bin/node"],RR=[],PR="v16.8.0",FR={},wR=function(e,t){console.warn((t?t+": ":"")+e)},LR=function(e){sI("binding")},CR=function(e){return 0},BR=function(){return"/"},UR=function(e){},kR={name:"node",sourceUrl:"",headersUrl:"",libUrl:""};MR=Or,xR=[];jR={},VR=!1,KR={};YR=Or,JR=Or,wm=function(){return{}},HR=wm,zR=wm,WR=Or,XR=Or,ZR=Or,eP={};nP={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},rP=Or,iP=Or;sP=Or,oP=Or,uP=Or,cP=Or,lP=Or,dP=void 0,pP=void 0,fP=void 0,mP=Or,NP=2,TP=1,EP="/bin/usr/node",hP=9229,yP="node",IP=[],gP=Or,su={now:typeof performance!="undefined"?performance.now.bind(performance):void 0,timing:typeof performance!="undefined"?performance.timing:void 0};su.now===void 0&&(iI=Date.now(),su.timing&&su.timing.navigationStart&&(iI=su.timing.navigationStart),su.now=()=>Date.now()-iI);aI=1e9;Fm.bigint=function(e){var t=Fm(e);return typeof BigInt=="undefined"?t[0]*aI+t[1]:BigInt(t[0]*aI)+BigInt(t[1])};vP=10,SP={},OP=0;DP=Ss,bP=Ss,AP=Ss,RP=Ss,PP=Ss,FP=Or,wP=Ss,LP=Ss;BP={version:PR,versions:FR,arch:OR,platform:DR,release:kR,_rawDebug:MR,moduleLoadList:xR,binding:LR,_linkedBinding:qR,_events:SP,_eventsCount:OP,_maxListeners:vP,on:Ss,addListener:DP,once:bP,off:AP,removeListener:RP,removeAllListeners:PP,emit:FP,prependListener:wP,prependOnceListener:LP,listeners:CP,domain:jR,_exiting:VR,config:KR,dlopen:GR,uptime:_P,_getActiveRequests:$R,_getActiveHandles:QR,reallyExit:YR,_kill:JR,cpuUsage:wm,resourceUsage:HR,memoryUsage:zR,kill:WR,exit:XR,openStdin:ZR,allowedNodeEnvironmentFlags:eP,assert:tP,features:nP,_fatalExceptions:rP,setUncaughtExceptionCaptureCallback:iP,hasUncaughtExceptionCaptureCallback:aP,emitWarning:wR,nextTick:_R,_tickCallback:sP,_debugProcess:oP,_debugEnd:uP,_startProfilerIdleNotifier:cP,_stopProfilerIdleNotifier:lP,stdout:dP,stdin:fP,stderr:pP,abort:mP,umask:CR,chdir:UR,cwd:BR,env:bR,title:SR,argv:AR,execArgv:RR,pid:NP,ppid:TP,execPath:EP,debugPort:hP,hrtime:Fm,argv0:yP,_preload_modules:IP,setSourceMapsEnabled:gP}});var N=Yu(()=>{"use strict";UP()});function oH(){if(kP)return Md;kP=!0,Md.byteLength=c,Md.toByteArray=d,Md.fromByteArray=I;for(var e=[],t=[],n=typeof Uint8Array!="undefined"?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,a=r.length;i0)throw new Error("Invalid string. Length must be a multiple of 4");var U=v.indexOf("=");U===-1&&(U=w);var V=U===w?0:4-U%4;return[U,V]}function c(v){var w=o(v),U=w[0],V=w[1];return(U+V)*3/4-V}function l(v,w,U){return(w+U)*3/4-U}function d(v){var w,U=o(v),V=U[0],Y=U[1],re=new n(l(v,V,Y)),ne=0,me=Y>0?V-4:V,ue;for(ue=0;ue>16&255,re[ne++]=w>>8&255,re[ne++]=w&255;return Y===2&&(w=t[v.charCodeAt(ue)]<<2|t[v.charCodeAt(ue+1)]>>4,re[ne++]=w&255),Y===1&&(w=t[v.charCodeAt(ue)]<<10|t[v.charCodeAt(ue+1)]<<4|t[v.charCodeAt(ue+2)]>>2,re[ne++]=w>>8&255,re[ne++]=w&255),re}function f(v){return e[v>>18&63]+e[v>>12&63]+e[v>>6&63]+e[v&63]}function y(v,w,U){for(var V,Y=[],re=w;reme?me:ne+re));return V===1?(w=v[U-1],Y.push(e[w>>2]+e[w<<4&63]+"==")):V===2&&(w=(v[U-2]<<8)+v[U-1],Y.push(e[w>>10]+e[w>>4&63]+e[w<<2&63]+"=")),Y.join("")}return Md}function uH(){if(MP)return Lm;MP=!0;return Lm.read=function(e,t,n,r,i){var a,o,c=i*8-r-1,l=(1<>1,f=-7,y=n?i-1:0,I=n?-1:1,v=e[t+y];for(y+=I,a=v&(1<<-f)-1,v>>=-f,f+=c;f>0;a=a*256+e[t+y],y+=I,f-=8);for(o=a&(1<<-f)-1,a>>=-f,f+=r;f>0;o=o*256+e[t+y],y+=I,f-=8);if(a===0)a=1-d;else{if(a===l)return o?NaN:(v?-1:1)*(1/0);o=o+Math.pow(2,r),a=a-d}return(v?-1:1)*o*Math.pow(2,a-r)},Lm.write=function(e,t,n,r,i,a){var o,c,l,d=a*8-i-1,f=(1<>1,I=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,v=r?0:a-1,w=r?1:-1,U=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(c=isNaN(t)?1:0,o=f):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+y>=1?t+=I/l:t+=I*Math.pow(2,1-y),t*l>=2&&(o++,l/=2),o+y>=f?(c=0,o=f):o+y>=1?(c=(t*l-1)*Math.pow(2,i),o=o+y):(c=t*Math.pow(2,y-1)*Math.pow(2,i),o=0));i>=8;e[n+v]=c&255,v+=w,c/=256,i-=8);for(o=o<0;e[n+v]=o&255,v+=w,o/=256,d-=8);e[n+v-w]|=U*128},Lm}function cH(){if(xP)return Hu;xP=!0;let e=oH(),t=uH(),n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Hu.Buffer=o,Hu.SlowBuffer=Y,Hu.INSPECT_MAX_BYTES=50;let r=2147483647;Hu.kMaxLength=r,o.TYPED_ARRAY_SUPPORT=i(),!o.TYPED_ARRAY_SUPPORT&&typeof console!="undefined"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function i(){try{let R=new Uint8Array(1),h={foo:function(){return 42}};return Object.setPrototypeOf(h,Uint8Array.prototype),Object.setPrototypeOf(R,h),R.foo()===42}catch(R){return!1}}Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.buffer}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.byteOffset}});function a(R){if(R>r)throw new RangeError('The value "'+R+'" is invalid for option "size"');let h=new Uint8Array(R);return Object.setPrototypeOf(h,o.prototype),h}function o(R,h,g){if(typeof R=="number"){if(typeof h=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(R)}return c(R,h,g)}o.poolSize=8192;function c(R,h,g){if(typeof R=="string")return y(R,h);if(ArrayBuffer.isView(R))return v(R);if(R==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof R);if(qt(R,ArrayBuffer)||R&&qt(R.buffer,ArrayBuffer)||typeof SharedArrayBuffer!="undefined"&&(qt(R,SharedArrayBuffer)||R&&qt(R.buffer,SharedArrayBuffer)))return w(R,h,g);if(typeof R=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let C=R.valueOf&&R.valueOf();if(C!=null&&C!==R)return o.from(C,h,g);let K=U(R);if(K)return K;if(typeof Symbol!="undefined"&&Symbol.toPrimitive!=null&&typeof R[Symbol.toPrimitive]=="function")return o.from(R[Symbol.toPrimitive]("string"),h,g);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof R)}o.from=function(R,h,g){return c(R,h,g)},Object.setPrototypeOf(o.prototype,Uint8Array.prototype),Object.setPrototypeOf(o,Uint8Array);function l(R){if(typeof R!="number")throw new TypeError('"size" argument must be of type number');if(R<0)throw new RangeError('The value "'+R+'" is invalid for option "size"')}function d(R,h,g){return l(R),R<=0?a(R):h!==void 0?typeof g=="string"?a(R).fill(h,g):a(R).fill(h):a(R)}o.alloc=function(R,h,g){return d(R,h,g)};function f(R){return l(R),a(R<0?0:V(R)|0)}o.allocUnsafe=function(R){return f(R)},o.allocUnsafeSlow=function(R){return f(R)};function y(R,h){if((typeof h!="string"||h==="")&&(h="utf8"),!o.isEncoding(h))throw new TypeError("Unknown encoding: "+h);let g=re(R,h)|0,C=a(g),K=C.write(R,h);return K!==g&&(C=C.slice(0,K)),C}function I(R){let h=R.length<0?0:V(R.length)|0,g=a(h);for(let C=0;C=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return R|0}function Y(R){return+R!=R&&(R=0),o.alloc(+R)}o.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==o.prototype},o.compare=function(h,g){if(qt(h,Uint8Array)&&(h=o.from(h,h.offset,h.byteLength)),qt(g,Uint8Array)&&(g=o.from(g,g.offset,g.byteLength)),!o.isBuffer(h)||!o.isBuffer(g))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===g)return 0;let C=h.length,K=g.length;for(let ee=0,ce=Math.min(C,K);eeK.length?(o.isBuffer(ce)||(ce=o.from(ce)),ce.copy(K,ee)):Uint8Array.prototype.set.call(K,ce,ee);else if(o.isBuffer(ce))ce.copy(K,ee);else throw new TypeError('"list" argument must be an Array of Buffers');ee+=ce.length}return K};function re(R,h){if(o.isBuffer(R))return R.length;if(ArrayBuffer.isView(R)||qt(R,ArrayBuffer))return R.byteLength;if(typeof R!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof R);let g=R.length,C=arguments.length>2&&arguments[2]===!0;if(!C&&g===0)return 0;let K=!1;for(;;)switch(h){case"ascii":case"latin1":case"binary":return g;case"utf8":case"utf-8":return ps(R).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return g*2;case"hex":return g>>>1;case"base64":return Ir(R).length;default:if(K)return C?-1:ps(R).length;h=(""+h).toLowerCase(),K=!0}}o.byteLength=re;function ne(R,h,g){let C=!1;if((h===void 0||h<0)&&(h=0),h>this.length||((g===void 0||g>this.length)&&(g=this.length),g<=0)||(g>>>=0,h>>>=0,g<=h))return"";for(R||(R="utf8");;)switch(R){case"hex":return Mr(this,h,g);case"utf8":case"utf-8":return rn(this,h,g);case"ascii":return En(this,h,g);case"latin1":case"binary":return kr(this,h,g);case"base64":return nn(this,h,g);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return jn(this,h,g);default:if(C)throw new TypeError("Unknown encoding: "+R);R=(R+"").toLowerCase(),C=!0}}o.prototype._isBuffer=!0;function me(R,h,g){let C=R[h];R[h]=R[g],R[g]=C}o.prototype.swap16=function(){let h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let g=0;gg&&(h+=" ... "),""},n&&(o.prototype[n]=o.prototype.inspect),o.prototype.compare=function(h,g,C,K,ee){if(qt(h,Uint8Array)&&(h=o.from(h,h.offset,h.byteLength)),!o.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(g===void 0&&(g=0),C===void 0&&(C=h?h.length:0),K===void 0&&(K=0),ee===void 0&&(ee=this.length),g<0||C>h.length||K<0||ee>this.length)throw new RangeError("out of range index");if(K>=ee&&g>=C)return 0;if(K>=ee)return-1;if(g>=C)return 1;if(g>>>=0,C>>>=0,K>>>=0,ee>>>=0,this===h)return 0;let ce=ee-K,Tt=C-g,hn=Math.min(ce,Tt),cn=this.slice(K,ee),_n=h.slice(g,C);for(let an=0;an2147483647?g=2147483647:g<-2147483648&&(g=-2147483648),g=+g,gr(g)&&(g=K?0:R.length-1),g<0&&(g=R.length+g),g>=R.length){if(K)return-1;g=R.length-1}else if(g<0)if(K)g=0;else return-1;if(typeof h=="string"&&(h=o.from(h,C)),o.isBuffer(h))return h.length===0?-1:Ae(R,h,g,C,K);if(typeof h=="number")return h=h&255,typeof Uint8Array.prototype.indexOf=="function"?K?Uint8Array.prototype.indexOf.call(R,h,g):Uint8Array.prototype.lastIndexOf.call(R,h,g):Ae(R,[h],g,C,K);throw new TypeError("val must be string, number or Buffer")}function Ae(R,h,g,C,K){let ee=1,ce=R.length,Tt=h.length;if(C!==void 0&&(C=String(C).toLowerCase(),C==="ucs2"||C==="ucs-2"||C==="utf16le"||C==="utf-16le")){if(R.length<2||h.length<2)return-1;ee=2,ce/=2,Tt/=2,g/=2}function hn(_n,an){return ee===1?_n[an]:_n.readUInt16BE(an*ee)}let cn;if(K){let _n=-1;for(cn=g;cnce&&(g=ce-Tt),cn=g;cn>=0;cn--){let _n=!0;for(let an=0;anK&&(C=K)):C=K;let ee=h.length;C>ee/2&&(C=ee/2);let ce;for(ce=0;ce>>0,isFinite(C)?(C=C>>>0,K===void 0&&(K="utf8")):(K=C,C=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let ee=this.length-g;if((C===void 0||C>ee)&&(C=ee),h.length>0&&(C<0||g<0)||g>this.length)throw new RangeError("Attempt to write outside buffer bounds");K||(K="utf8");let ce=!1;for(;;)switch(K){case"hex":return Me(this,h,g,C);case"utf8":case"utf-8":return nt(this,h,g,C);case"ascii":case"latin1":case"binary":return X(this,h,g,C);case"base64":return _e(this,h,g,C);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return vt(this,h,g,C);default:if(ce)throw new TypeError("Unknown encoding: "+K);K=(""+K).toLowerCase(),ce=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function nn(R,h,g){return h===0&&g===R.length?e.fromByteArray(R):e.fromByteArray(R.slice(h,g))}function rn(R,h,g){g=Math.min(R.length,g);let C=[],K=h;for(;K239?4:ee>223?3:ee>191?2:1;if(K+Tt<=g){let hn,cn,_n,an;switch(Tt){case 1:ee<128&&(ce=ee);break;case 2:hn=R[K+1],(hn&192)===128&&(an=(ee&31)<<6|hn&63,an>127&&(ce=an));break;case 3:hn=R[K+1],cn=R[K+2],(hn&192)===128&&(cn&192)===128&&(an=(ee&15)<<12|(hn&63)<<6|cn&63,an>2047&&(an<55296||an>57343)&&(ce=an));break;case 4:hn=R[K+1],cn=R[K+2],_n=R[K+3],(hn&192)===128&&(cn&192)===128&&(_n&192)===128&&(an=(ee&15)<<18|(hn&63)<<12|(cn&63)<<6|_n&63,an>65535&&an<1114112&&(ce=an))}}ce===null?(ce=65533,Tt=1):ce>65535&&(ce-=65536,C.push(ce>>>10&1023|55296),ce=56320|ce&1023),C.push(ce),K+=Tt}return $t(C)}let Fn=4096;function $t(R){let h=R.length;if(h<=Fn)return String.fromCharCode.apply(String,R);let g="",C=0;for(;CC)&&(g=C);let K="";for(let ee=h;eeC&&(h=C),g<0?(g+=C,g<0&&(g=0)):g>C&&(g=C),gg)throw new RangeError("Trying to access beyond buffer length")}o.prototype.readUintLE=o.prototype.readUIntLE=function(h,g,C){h=h>>>0,g=g>>>0,C||Ht(h,g,this.length);let K=this[h],ee=1,ce=0;for(;++ce>>0,g=g>>>0,C||Ht(h,g,this.length);let K=this[h+--g],ee=1;for(;g>0&&(ee*=256);)K+=this[h+--g]*ee;return K},o.prototype.readUint8=o.prototype.readUInt8=function(h,g){return h=h>>>0,g||Ht(h,1,this.length),this[h]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(h,g){return h=h>>>0,g||Ht(h,2,this.length),this[h]|this[h+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(h,g){return h=h>>>0,g||Ht(h,2,this.length),this[h]<<8|this[h+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(h,g){return h=h>>>0,g||Ht(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(h,g){return h=h>>>0,g||Ht(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},o.prototype.readBigUInt64LE=Pa(function(h){h=h>>>0,rt(h,"offset");let g=this[h],C=this[h+7];(g===void 0||C===void 0)&&Ft(h,this.length-8);let K=g+this[++h]*ln(2,8)+this[++h]*ln(2,16)+this[++h]*ln(2,24),ee=this[++h]+this[++h]*ln(2,8)+this[++h]*ln(2,16)+C*ln(2,24);return BigInt(K)+(BigInt(ee)<>>0,rt(h,"offset");let g=this[h],C=this[h+7];(g===void 0||C===void 0)&&Ft(h,this.length-8);let K=g*ln(2,24)+this[++h]*ln(2,16)+this[++h]*ln(2,8)+this[++h],ee=this[++h]*ln(2,24)+this[++h]*ln(2,16)+this[++h]*ln(2,8)+C;return(BigInt(K)<>>0,g=g>>>0,C||Ht(h,g,this.length);let K=this[h],ee=1,ce=0;for(;++ce=ee&&(K-=Math.pow(2,8*g)),K},o.prototype.readIntBE=function(h,g,C){h=h>>>0,g=g>>>0,C||Ht(h,g,this.length);let K=g,ee=1,ce=this[h+--K];for(;K>0&&(ee*=256);)ce+=this[h+--K]*ee;return ee*=128,ce>=ee&&(ce-=Math.pow(2,8*g)),ce},o.prototype.readInt8=function(h,g){return h=h>>>0,g||Ht(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},o.prototype.readInt16LE=function(h,g){h=h>>>0,g||Ht(h,2,this.length);let C=this[h]|this[h+1]<<8;return C&32768?C|4294901760:C},o.prototype.readInt16BE=function(h,g){h=h>>>0,g||Ht(h,2,this.length);let C=this[h+1]|this[h]<<8;return C&32768?C|4294901760:C},o.prototype.readInt32LE=function(h,g){return h=h>>>0,g||Ht(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},o.prototype.readInt32BE=function(h,g){return h=h>>>0,g||Ht(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},o.prototype.readBigInt64LE=Pa(function(h){h=h>>>0,rt(h,"offset");let g=this[h],C=this[h+7];(g===void 0||C===void 0)&&Ft(h,this.length-8);let K=this[h+4]+this[h+5]*ln(2,8)+this[h+6]*ln(2,16)+(C<<24);return(BigInt(K)<>>0,rt(h,"offset");let g=this[h],C=this[h+7];(g===void 0||C===void 0)&&Ft(h,this.length-8);let K=(g<<24)+this[++h]*ln(2,16)+this[++h]*ln(2,8)+this[++h];return(BigInt(K)<>>0,g||Ht(h,4,this.length),t.read(this,h,!0,23,4)},o.prototype.readFloatBE=function(h,g){return h=h>>>0,g||Ht(h,4,this.length),t.read(this,h,!1,23,4)},o.prototype.readDoubleLE=function(h,g){return h=h>>>0,g||Ht(h,8,this.length),t.read(this,h,!0,52,8)},o.prototype.readDoubleBE=function(h,g){return h=h>>>0,g||Ht(h,8,this.length),t.read(this,h,!1,52,8)};function wn(R,h,g,C,K,ee){if(!o.isBuffer(R))throw new TypeError('"buffer" argument must be a Buffer instance');if(h>K||hR.length)throw new RangeError("Index out of range")}o.prototype.writeUintLE=o.prototype.writeUIntLE=function(h,g,C,K){if(h=+h,g=g>>>0,C=C>>>0,!K){let Tt=Math.pow(2,8*C)-1;wn(this,h,g,C,Tt,0)}let ee=1,ce=0;for(this[g]=h&255;++ce>>0,C=C>>>0,!K){let Tt=Math.pow(2,8*C)-1;wn(this,h,g,C,Tt,0)}let ee=C-1,ce=1;for(this[g+ee]=h&255;--ee>=0&&(ce*=256);)this[g+ee]=h/ce&255;return g+C},o.prototype.writeUint8=o.prototype.writeUInt8=function(h,g,C){return h=+h,g=g>>>0,C||wn(this,h,g,1,255,0),this[g]=h&255,g+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(h,g,C){return h=+h,g=g>>>0,C||wn(this,h,g,2,65535,0),this[g]=h&255,this[g+1]=h>>>8,g+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(h,g,C){return h=+h,g=g>>>0,C||wn(this,h,g,2,65535,0),this[g]=h>>>8,this[g+1]=h&255,g+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(h,g,C){return h=+h,g=g>>>0,C||wn(this,h,g,4,4294967295,0),this[g+3]=h>>>24,this[g+2]=h>>>16,this[g+1]=h>>>8,this[g]=h&255,g+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(h,g,C){return h=+h,g=g>>>0,C||wn(this,h,g,4,4294967295,0),this[g]=h>>>24,this[g+1]=h>>>16,this[g+2]=h>>>8,this[g+3]=h&255,g+4};function ae(R,h,g,C,K){Ut(h,C,K,R,g,7);let ee=Number(h&BigInt(4294967295));R[g++]=ee,ee=ee>>8,R[g++]=ee,ee=ee>>8,R[g++]=ee,ee=ee>>8,R[g++]=ee;let ce=Number(h>>BigInt(32)&BigInt(4294967295));return R[g++]=ce,ce=ce>>8,R[g++]=ce,ce=ce>>8,R[g++]=ce,ce=ce>>8,R[g++]=ce,g}function De(R,h,g,C,K){Ut(h,C,K,R,g,7);let ee=Number(h&BigInt(4294967295));R[g+7]=ee,ee=ee>>8,R[g+6]=ee,ee=ee>>8,R[g+5]=ee,ee=ee>>8,R[g+4]=ee;let ce=Number(h>>BigInt(32)&BigInt(4294967295));return R[g+3]=ce,ce=ce>>8,R[g+2]=ce,ce=ce>>8,R[g+1]=ce,ce=ce>>8,R[g]=ce,g+8}o.prototype.writeBigUInt64LE=Pa(function(h,g=0){return ae(this,h,g,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeBigUInt64BE=Pa(function(h,g=0){return De(this,h,g,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeIntLE=function(h,g,C,K){if(h=+h,g=g>>>0,!K){let hn=Math.pow(2,8*C-1);wn(this,h,g,C,hn-1,-hn)}let ee=0,ce=1,Tt=0;for(this[g]=h&255;++ee>0)-Tt&255;return g+C},o.prototype.writeIntBE=function(h,g,C,K){if(h=+h,g=g>>>0,!K){let hn=Math.pow(2,8*C-1);wn(this,h,g,C,hn-1,-hn)}let ee=C-1,ce=1,Tt=0;for(this[g+ee]=h&255;--ee>=0&&(ce*=256);)h<0&&Tt===0&&this[g+ee+1]!==0&&(Tt=1),this[g+ee]=(h/ce>>0)-Tt&255;return g+C},o.prototype.writeInt8=function(h,g,C){return h=+h,g=g>>>0,C||wn(this,h,g,1,127,-128),h<0&&(h=255+h+1),this[g]=h&255,g+1},o.prototype.writeInt16LE=function(h,g,C){return h=+h,g=g>>>0,C||wn(this,h,g,2,32767,-32768),this[g]=h&255,this[g+1]=h>>>8,g+2},o.prototype.writeInt16BE=function(h,g,C){return h=+h,g=g>>>0,C||wn(this,h,g,2,32767,-32768),this[g]=h>>>8,this[g+1]=h&255,g+2},o.prototype.writeInt32LE=function(h,g,C){return h=+h,g=g>>>0,C||wn(this,h,g,4,2147483647,-2147483648),this[g]=h&255,this[g+1]=h>>>8,this[g+2]=h>>>16,this[g+3]=h>>>24,g+4},o.prototype.writeInt32BE=function(h,g,C){return h=+h,g=g>>>0,C||wn(this,h,g,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[g]=h>>>24,this[g+1]=h>>>16,this[g+2]=h>>>8,this[g+3]=h&255,g+4},o.prototype.writeBigInt64LE=Pa(function(h,g=0){return ae(this,h,g,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeBigInt64BE=Pa(function(h,g=0){return De(this,h,g,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Ie(R,h,g,C,K,ee){if(g+C>R.length)throw new RangeError("Index out of range");if(g<0)throw new RangeError("Index out of range")}function Le(R,h,g,C,K){return h=+h,g=g>>>0,K||Ie(R,h,g,4),t.write(R,h,g,C,23,4),g+4}o.prototype.writeFloatLE=function(h,g,C){return Le(this,h,g,!0,C)},o.prototype.writeFloatBE=function(h,g,C){return Le(this,h,g,!1,C)};function St(R,h,g,C,K){return h=+h,g=g>>>0,K||Ie(R,h,g,8),t.write(R,h,g,C,52,8),g+8}o.prototype.writeDoubleLE=function(h,g,C){return St(this,h,g,!0,C)},o.prototype.writeDoubleBE=function(h,g,C){return St(this,h,g,!1,C)},o.prototype.copy=function(h,g,C,K){if(!o.isBuffer(h))throw new TypeError("argument should be a Buffer");if(C||(C=0),!K&&K!==0&&(K=this.length),g>=h.length&&(g=h.length),g||(g=0),K>0&&K=this.length)throw new RangeError("Index out of range");if(K<0)throw new RangeError("sourceEnd out of bounds");K>this.length&&(K=this.length),h.length-g>>0,C=C===void 0?this.length:C>>>0,h||(h=0);let ee;if(typeof h=="number")for(ee=g;eeln(2,32)?K=xe(String(g)):typeof g=="bigint"&&(K=String(g),(g>ln(BigInt(2),BigInt(32))||g<-ln(BigInt(2),BigInt(32)))&&(K=xe(K)),K+="n"),C+=` It must be ${h}. Received ${K}`,C},RangeError);function xe(R){let h="",g=R.length,C=R[0]==="-"?1:0;for(;g>=C+4;g-=3)h=`_${R.slice(g-3,g)}${h}`;return`${R.slice(0,g)}${h}`}function Ye(R,h,g){rt(h,"offset"),(R[h]===void 0||R[h+g]===void 0)&&Ft(h,R.length-(g+1))}function Ut(R,h,g,C,K,ee){if(R>g||R3?h===0||h===BigInt(0)?Tt=`>= 0${ce} and < 2${ce} ** ${(ee+1)*8}${ce}`:Tt=`>= -(2${ce} ** ${(ee+1)*8-1}${ce}) and < 2 ** ${(ee+1)*8-1}${ce}`:Tt=`>= ${h}${ce} and <= ${g}${ce}`,new Q.ERR_OUT_OF_RANGE("value",Tt,R)}Ye(C,K,ee)}function rt(R,h){if(typeof R!="number")throw new Q.ERR_INVALID_ARG_TYPE(h,"number",R)}function Ft(R,h,g){throw Math.floor(R)!==R?(rt(R,g),new Q.ERR_OUT_OF_RANGE(g||"offset","an integer",R)):h<0?new Q.ERR_BUFFER_OUT_OF_BOUNDS:new Q.ERR_OUT_OF_RANGE(g||"offset",`>= ${g?1:0} and <= ${h}`,R)}let ds=/[^+/0-9A-Za-z-_]/g;function Hr(R){if(R=R.split("=")[0],R=R.trim().replace(ds,""),R.length<2)return"";for(;R.length%4!==0;)R=R+"=";return R}function ps(R,h){h=h||1/0;let g,C=R.length,K=null,ee=[];for(let ce=0;ce55295&&g<57344){if(!K){if(g>56319){(h-=3)>-1&&ee.push(239,191,189);continue}else if(ce+1===C){(h-=3)>-1&&ee.push(239,191,189);continue}K=g;continue}if(g<56320){(h-=3)>-1&&ee.push(239,191,189),K=g;continue}g=(K-55296<<10|g-56320)+65536}else K&&(h-=3)>-1&&ee.push(239,191,189);if(K=null,g<128){if((h-=1)<0)break;ee.push(g)}else if(g<2048){if((h-=2)<0)break;ee.push(g>>6|192,g&63|128)}else if(g<65536){if((h-=3)<0)break;ee.push(g>>12|224,g>>6&63|128,g&63|128)}else if(g<1114112){if((h-=4)<0)break;ee.push(g>>18|240,g>>12&63|128,g>>6&63|128,g&63|128)}else throw new Error("Invalid code point")}return ee}function Hc(R){let h=[];for(let g=0;g>8,K=g%256,ee.push(K),ee.push(C);return ee}function Ir(R){return e.toByteArray(Hr(R))}function ci(R,h,g,C){let K;for(K=0;K=h.length||K>=R.length);++K)h[K+g]=R[K];return K}function qt(R,h){return R instanceof h||R!=null&&R.constructor!=null&&R.constructor.name!=null&&R.constructor.name===h.name}function gr(R){return R!==R}let Uu=function(){let R="0123456789abcdef",h=new Array(256);for(let g=0;g<16;++g){let C=g*16;for(let K=0;K<16;++K)h[C+K]=R[g]+R[K]}return h}();function Pa(R){return typeof BigInt=="undefined"?ku:R}function ku(){throw new Error("BigInt not supported")}return Hu}var Md,kP,Lm,MP,Hu,xP,zu,D,$pe,Qpe,qP=Yu(()=>{"use strict";m();T();N();Md={},kP=!1;Lm={},MP=!1;Hu={},xP=!1;zu=cH();zu.Buffer;zu.SlowBuffer;zu.INSPECT_MAX_BYTES;zu.kMaxLength;D=zu.Buffer,$pe=zu.INSPECT_MAX_BYTES,Qpe=zu.kMaxLength});var T=Yu(()=>{"use strict";qP()});var jP=F(dl=>{"use strict";m();T();N();Object.defineProperty(dl,"__esModule",{value:!0});dl.versionInfo=dl.version=void 0;var lH="16.9.0";dl.version=lH;var dH=Object.freeze({major:16,minor:9,patch:0,preReleaseTag:null});dl.versionInfo=dH});var Vr=F(oI=>{"use strict";m();T();N();Object.defineProperty(oI,"__esModule",{value:!0});oI.devAssert=pH;function pH(e,t){if(!!!e)throw new Error(t)}});var Cm=F(uI=>{"use strict";m();T();N();Object.defineProperty(uI,"__esModule",{value:!0});uI.isPromise=fH;function fH(e){return typeof(e==null?void 0:e.then)=="function"}});var Ca=F(cI=>{"use strict";m();T();N();Object.defineProperty(cI,"__esModule",{value:!0});cI.isObjectLike=mH;function mH(e){return typeof e=="object"&&e!==null}});var Dr=F(lI=>{"use strict";m();T();N();Object.defineProperty(lI,"__esModule",{value:!0});lI.invariant=NH;function NH(e,t){if(!!!e)throw new Error(t!=null?t:"Unexpected invariant triggered.")}});var Bm=F(dI=>{"use strict";m();T();N();Object.defineProperty(dI,"__esModule",{value:!0});dI.getLocation=hH;var TH=Dr(),EH=/\r\n|[\n\r]/g;function hH(e,t){let n=0,r=1;for(let i of e.body.matchAll(EH)){if(typeof i.index=="number"||(0,TH.invariant)(!1),i.index>=t)break;n=i.index+i[0].length,r+=1}return{line:r,column:t+1-n}}});var pI=F(Um=>{"use strict";m();T();N();Object.defineProperty(Um,"__esModule",{value:!0});Um.printLocation=IH;Um.printSourceLocation=KP;var yH=Bm();function IH(e){return KP(e.source,(0,yH.getLocation)(e.source,e.start))}function KP(e,t){let n=e.locationOffset.column-1,r="".padStart(n)+e.body,i=t.line-1,a=e.locationOffset.line-1,o=t.line+a,c=t.line===1?n:0,l=t.column+c,d=`${e.name}:${o}:${l} +`,f=r.split(/\r\n|[\n\r]/g),y=f[i];if(y.length>120){let I=Math.floor(l/80),v=l%80,w=[];for(let U=0;U["|",U]),["|","^".padStart(v)],["|",w[I+1]]])}return d+VP([[`${o-1} |`,f[i-1]],[`${o} |`,y],["|","^".padStart(l)],[`${o+1} |`,f[i+1]]])}function VP(e){let t=e.filter(([r,i])=>i!==void 0),n=Math.max(...t.map(([r])=>r.length));return t.map(([r,i])=>r.padStart(n)+(i?" "+i:"")).join(` +`)}});var ze=F(pl=>{"use strict";m();T();N();Object.defineProperty(pl,"__esModule",{value:!0});pl.GraphQLError=void 0;pl.formatError=SH;pl.printError=vH;var gH=Ca(),GP=Bm(),$P=pI();function _H(e){let t=e[0];return t==null||"kind"in t||"length"in t?{nodes:t,source:e[1],positions:e[2],path:e[3],originalError:e[4],extensions:e[5]}:t}var fI=class e extends Error{constructor(t,...n){var r,i,a;let{nodes:o,source:c,positions:l,path:d,originalError:f,extensions:y}=_H(n);super(t),this.name="GraphQLError",this.path=d!=null?d:void 0,this.originalError=f!=null?f:void 0,this.nodes=QP(Array.isArray(o)?o:o?[o]:void 0);let I=QP((r=this.nodes)===null||r===void 0?void 0:r.map(w=>w.loc).filter(w=>w!=null));this.source=c!=null?c:I==null||(i=I[0])===null||i===void 0?void 0:i.source,this.positions=l!=null?l:I==null?void 0:I.map(w=>w.start),this.locations=l&&c?l.map(w=>(0,GP.getLocation)(c,w)):I==null?void 0:I.map(w=>(0,GP.getLocation)(w.source,w.start));let v=(0,gH.isObjectLike)(f==null?void 0:f.extensions)?f==null?void 0:f.extensions:void 0;this.extensions=(a=y!=null?y:v)!==null&&a!==void 0?a:Object.create(null),Object.defineProperties(this,{message:{writable:!0,enumerable:!0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),f!=null&&f.stack?Object.defineProperty(this,"stack",{value:f.stack,writable:!0,configurable:!0}):Error.captureStackTrace?Error.captureStackTrace(this,e):Object.defineProperty(this,"stack",{value:Error().stack,writable:!0,configurable:!0})}get[Symbol.toStringTag](){return"GraphQLError"}toString(){let t=this.message;if(this.nodes)for(let n of this.nodes)n.loc&&(t+=` -`+(0,DP.printLocation)(n.loc));else if(this.source&&this.locations)for(let n of this.locations)t+=` +`+(0,$P.printLocation)(n.loc));else if(this.source&&this.locations)for(let n of this.locations)t+=` -`+(0,DP.printSourceLocation)(this.source,n);return t}toJSON(){let t={message:this.message};return this.locations!=null&&(t.locations=this.locations),this.path!=null&&(t.path=this.path),this.extensions!=null&&Object.keys(this.extensions).length>0&&(t.extensions=this.extensions),t}};tl.GraphQLError=Qy;function bP(e){return e===void 0||e.length===0?void 0:e}function XJ(e){return e.toString()}function ZJ(e){return e.toJSON()}});var gm=w(Yy=>{"use strict";m();T();N();Object.defineProperty(Yy,"__esModule",{value:!0});Yy.syntaxError=tH;var eH=ze();function tH(e,t,n){return new eH.GraphQLError(`Syntax Error: ${n}`,{source:e,positions:[t]})}});var ba=w(bi=>{"use strict";m();T();N();Object.defineProperty(bi,"__esModule",{value:!0});bi.Token=bi.QueryDocumentKeys=bi.OperationTypeNode=bi.Location=void 0;bi.isNode=rH;var Jy=class{constructor(t,n,r){this.start=t.start,this.end=n.end,this.startToken=t,this.endToken=n,this.source=r}get[Symbol.toStringTag](){return"Location"}toJSON(){return{start:this.start,end:this.end}}};bi.Location=Jy;var Hy=class{constructor(t,n,r,i,a,o){this.kind=t,this.start=n,this.end=r,this.line=i,this.column=a,this.value=o,this.prev=null,this.next=null}get[Symbol.toStringTag](){return"Token"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}};bi.Token=Hy;var AP={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]};bi.QueryDocumentKeys=AP;var nH=new Set(Object.keys(AP));function rH(e){let t=e==null?void 0:e.kind;return typeof t=="string"&&nH.has(t)}var zy;bi.OperationTypeNode=zy;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(zy||(bi.OperationTypeNode=zy={}))});var nl=w(Ad=>{"use strict";m();T();N();Object.defineProperty(Ad,"__esModule",{value:!0});Ad.DirectiveLocation=void 0;var Wy;Ad.DirectiveLocation=Wy;(function(e){e.QUERY="QUERY",e.MUTATION="MUTATION",e.SUBSCRIPTION="SUBSCRIPTION",e.FIELD="FIELD",e.FRAGMENT_DEFINITION="FRAGMENT_DEFINITION",e.FRAGMENT_SPREAD="FRAGMENT_SPREAD",e.INLINE_FRAGMENT="INLINE_FRAGMENT",e.VARIABLE_DEFINITION="VARIABLE_DEFINITION",e.SCHEMA="SCHEMA",e.SCALAR="SCALAR",e.OBJECT="OBJECT",e.FIELD_DEFINITION="FIELD_DEFINITION",e.ARGUMENT_DEFINITION="ARGUMENT_DEFINITION",e.INTERFACE="INTERFACE",e.UNION="UNION",e.ENUM="ENUM",e.ENUM_VALUE="ENUM_VALUE",e.INPUT_OBJECT="INPUT_OBJECT",e.INPUT_FIELD_DEFINITION="INPUT_FIELD_DEFINITION"})(Wy||(Ad.DirectiveLocation=Wy={}))});var Ft=w(Rd=>{"use strict";m();T();N();Object.defineProperty(Rd,"__esModule",{value:!0});Rd.Kind=void 0;var Xy;Rd.Kind=Xy;(function(e){e.NAME="Name",e.DOCUMENT="Document",e.OPERATION_DEFINITION="OperationDefinition",e.VARIABLE_DEFINITION="VariableDefinition",e.SELECTION_SET="SelectionSet",e.FIELD="Field",e.ARGUMENT="Argument",e.FRAGMENT_SPREAD="FragmentSpread",e.INLINE_FRAGMENT="InlineFragment",e.FRAGMENT_DEFINITION="FragmentDefinition",e.VARIABLE="Variable",e.INT="IntValue",e.FLOAT="FloatValue",e.STRING="StringValue",e.BOOLEAN="BooleanValue",e.NULL="NullValue",e.ENUM="EnumValue",e.LIST="ListValue",e.OBJECT="ObjectValue",e.OBJECT_FIELD="ObjectField",e.DIRECTIVE="Directive",e.NAMED_TYPE="NamedType",e.LIST_TYPE="ListType",e.NON_NULL_TYPE="NonNullType",e.SCHEMA_DEFINITION="SchemaDefinition",e.OPERATION_TYPE_DEFINITION="OperationTypeDefinition",e.SCALAR_TYPE_DEFINITION="ScalarTypeDefinition",e.OBJECT_TYPE_DEFINITION="ObjectTypeDefinition",e.FIELD_DEFINITION="FieldDefinition",e.INPUT_VALUE_DEFINITION="InputValueDefinition",e.INTERFACE_TYPE_DEFINITION="InterfaceTypeDefinition",e.UNION_TYPE_DEFINITION="UnionTypeDefinition",e.ENUM_TYPE_DEFINITION="EnumTypeDefinition",e.ENUM_VALUE_DEFINITION="EnumValueDefinition",e.INPUT_OBJECT_TYPE_DEFINITION="InputObjectTypeDefinition",e.DIRECTIVE_DEFINITION="DirectiveDefinition",e.SCHEMA_EXTENSION="SchemaExtension",e.SCALAR_TYPE_EXTENSION="ScalarTypeExtension",e.OBJECT_TYPE_EXTENSION="ObjectTypeExtension",e.INTERFACE_TYPE_EXTENSION="InterfaceTypeExtension",e.UNION_TYPE_EXTENSION="UnionTypeExtension",e.ENUM_TYPE_EXTENSION="EnumTypeExtension",e.INPUT_OBJECT_TYPE_EXTENSION="InputObjectTypeExtension"})(Xy||(Rd.Kind=Xy={}))});var _m=w(Vu=>{"use strict";m();T();N();Object.defineProperty(Vu,"__esModule",{value:!0});Vu.isDigit=RP;Vu.isLetter=Zy;Vu.isNameContinue=sH;Vu.isNameStart=aH;Vu.isWhiteSpace=iH;function iH(e){return e===9||e===32}function RP(e){return e>=48&&e<=57}function Zy(e){return e>=97&&e<=122||e>=65&&e<=90}function aH(e){return Zy(e)||e===95}function sH(e){return Zy(e)||RP(e)||e===95}});var Fd=w(Pd=>{"use strict";m();T();N();Object.defineProperty(Pd,"__esModule",{value:!0});Pd.dedentBlockStringLines=oH;Pd.isPrintableAsBlockString=cH;Pd.printBlockString=lH;var eI=_m();function oH(e){var t;let n=Number.MAX_SAFE_INTEGER,r=null,i=-1;for(let o=0;oc===0?o:o.slice(n)).slice((t=r)!==null&&t!==void 0?t:0,i+1)}function uH(e){let t=0;for(;t1&&r.slice(1).every(v=>v.length===0||(0,eI.isWhiteSpace)(v.charCodeAt(0))),o=n.endsWith('\\"""'),c=e.endsWith('"')&&!o,l=e.endsWith("\\"),d=c||l,p=!(t!=null&&t.minimize)&&(!i||e.length>70||d||a||o),y="",I=i&&(0,eI.isWhiteSpace)(e.charCodeAt(0));return(p&&!I||a)&&(y+=` -`),y+=n,(p||d)&&(y+=` -`),'"""'+y+'"""'}});var Ld=w(wd=>{"use strict";m();T();N();Object.defineProperty(wd,"__esModule",{value:!0});wd.TokenKind=void 0;var tI;wd.TokenKind=tI;(function(e){e.SOF="",e.EOF="",e.BANG="!",e.DOLLAR="$",e.AMP="&",e.PAREN_L="(",e.PAREN_R=")",e.SPREAD="...",e.COLON=":",e.EQUALS="=",e.AT="@",e.BRACKET_L="[",e.BRACKET_R="]",e.BRACE_L="{",e.PIPE="|",e.BRACE_R="}",e.NAME="Name",e.INT="Int",e.FLOAT="Float",e.STRING="String",e.BLOCK_STRING="BlockString",e.COMMENT="Comment"})(tI||(wd.TokenKind=tI={}))});var Sm=w(Bd=>{"use strict";m();T();N();Object.defineProperty(Bd,"__esModule",{value:!0});Bd.Lexer=void 0;Bd.isPunctuatorTokenKind=fH;var ea=gm(),FP=ba(),dH=Fd(),ju=_m(),gt=Ld(),rI=class{constructor(t){let n=new FP.Token(gt.TokenKind.SOF,0,0,0,0);this.source=t,this.lastToken=n,this.token=n,this.line=1,this.lineStart=0}get[Symbol.toStringTag](){return"Lexer"}advance(){return this.lastToken=this.token,this.token=this.lookahead()}lookahead(){let t=this.token;if(t.kind!==gt.TokenKind.EOF)do if(t.next)t=t.next;else{let n=pH(this,t.end);t.next=n,n.prev=t,t=n}while(t.kind===gt.TokenKind.COMMENT);return t}};Bd.Lexer=rI;function fH(e){return e===gt.TokenKind.BANG||e===gt.TokenKind.DOLLAR||e===gt.TokenKind.AMP||e===gt.TokenKind.PAREN_L||e===gt.TokenKind.PAREN_R||e===gt.TokenKind.SPREAD||e===gt.TokenKind.COLON||e===gt.TokenKind.EQUALS||e===gt.TokenKind.AT||e===gt.TokenKind.BRACKET_L||e===gt.TokenKind.BRACKET_R||e===gt.TokenKind.BRACE_L||e===gt.TokenKind.PIPE||e===gt.TokenKind.BRACE_R}function rl(e){return e>=0&&e<=55295||e>=57344&&e<=1114111}function vm(e,t){return wP(e.charCodeAt(t))&&LP(e.charCodeAt(t+1))}function wP(e){return e>=55296&&e<=56319}function LP(e){return e>=56320&&e<=57343}function Ku(e,t){let n=e.source.body.codePointAt(t);if(n===void 0)return gt.TokenKind.EOF;if(n>=32&&n<=126){let r=String.fromCodePoint(n);return r==='"'?`'"'`:`"${r}"`}return"U+"+n.toString(16).toUpperCase().padStart(4,"0")}function Qn(e,t,n,r,i){let a=e.line,o=1+n-e.lineStart;return new FP.Token(t,n,r,a,o,i)}function pH(e,t){let n=e.source.body,r=n.length,i=t;for(;i=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function yH(e,t){let n=e.source.body;switch(n.charCodeAt(t+1)){case 34:return{value:'"',size:2};case 92:return{value:"\\",size:2};case 47:return{value:"/",size:2};case 98:return{value:"\b",size:2};case 102:return{value:"\f",size:2};case 110:return{value:` -`,size:2};case 114:return{value:"\r",size:2};case 116:return{value:" ",size:2}}throw(0,ea.syntaxError)(e.source,t,`Invalid character escape sequence: "${n.slice(t,t+2)}".`)}function IH(e,t){let n=e.source.body,r=n.length,i=e.lineStart,a=t+3,o=a,c="",l=[];for(;a{"use strict";m();T();N();Object.defineProperty(iI,"__esModule",{value:!0});iI.inspect=vH;var _H=10,CP=2;function vH(e){return Om(e,[])}function Om(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return SH(e,t);default:return String(e)}}function SH(e,t){if(e===null)return"null";if(t.includes(e))return"[Circular]";let n=[...t,e];if(OH(e)){let r=e.toJSON();if(r!==e)return typeof r=="string"?r:Om(r,n)}else if(Array.isArray(e))return bH(e,n);return DH(e,n)}function OH(e){return typeof e.toJSON=="function"}function DH(e,t){let n=Object.entries(e);return n.length===0?"{}":t.length>CP?"["+AH(e)+"]":"{ "+n.map(([i,a])=>i+": "+Om(a,t)).join(", ")+" }"}function bH(e,t){if(e.length===0)return"[]";if(t.length>CP)return"[Array]";let n=Math.min(_H,e.length),r=e.length-n,i=[];for(let a=0;a1&&i.push(`... ${r} more items`),"["+i.join(", ")+"]"}function AH(e){let t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if(t==="Object"&&typeof e.constructor=="function"){let n=e.constructor.name;if(typeof n=="string"&&n!=="")return n}return t}});var Ud=w(Dm=>{"use strict";m();T();N();Object.defineProperty(Dm,"__esModule",{value:!0});Dm.instanceOf=void 0;var RH=Xt(),PH=globalThis.process&&O.env.NODE_ENV==="production",FH=PH?function(t,n){return t instanceof n}:function(t,n){if(t instanceof n)return!0;if(typeof t=="object"&&t!==null){var r;let i=n.prototype[Symbol.toStringTag],a=Symbol.toStringTag in t?t[Symbol.toStringTag]:(r=t.constructor)===null||r===void 0?void 0:r.name;if(i===a){let o=(0,RH.inspect)(t);throw new Error(`Cannot use ${i} "${o}" from another module or realm. +`+(0,$P.printSourceLocation)(this.source,n);return t}toJSON(){let t={message:this.message};return this.locations!=null&&(t.locations=this.locations),this.path!=null&&(t.path=this.path),this.extensions!=null&&Object.keys(this.extensions).length>0&&(t.extensions=this.extensions),t}};pl.GraphQLError=fI;function QP(e){return e===void 0||e.length===0?void 0:e}function vH(e){return e.toString()}function SH(e){return e.toJSON()}});var km=F(mI=>{"use strict";m();T();N();Object.defineProperty(mI,"__esModule",{value:!0});mI.syntaxError=DH;var OH=ze();function DH(e,t,n){return new OH.GraphQLError(`Syntax Error: ${n}`,{source:e,positions:[t]})}});var Ba=F(Li=>{"use strict";m();T();N();Object.defineProperty(Li,"__esModule",{value:!0});Li.Token=Li.QueryDocumentKeys=Li.OperationTypeNode=Li.Location=void 0;Li.isNode=AH;var NI=class{constructor(t,n,r){this.start=t.start,this.end=n.end,this.startToken=t,this.endToken=n,this.source=r}get[Symbol.toStringTag](){return"Location"}toJSON(){return{start:this.start,end:this.end}}};Li.Location=NI;var TI=class{constructor(t,n,r,i,a,o){this.kind=t,this.start=n,this.end=r,this.line=i,this.column=a,this.value=o,this.prev=null,this.next=null}get[Symbol.toStringTag](){return"Token"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}};Li.Token=TI;var YP={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]};Li.QueryDocumentKeys=YP;var bH=new Set(Object.keys(YP));function AH(e){let t=e==null?void 0:e.kind;return typeof t=="string"&&bH.has(t)}var EI;Li.OperationTypeNode=EI;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(EI||(Li.OperationTypeNode=EI={}))});var fl=F(xd=>{"use strict";m();T();N();Object.defineProperty(xd,"__esModule",{value:!0});xd.DirectiveLocation=void 0;var hI;xd.DirectiveLocation=hI;(function(e){e.QUERY="QUERY",e.MUTATION="MUTATION",e.SUBSCRIPTION="SUBSCRIPTION",e.FIELD="FIELD",e.FRAGMENT_DEFINITION="FRAGMENT_DEFINITION",e.FRAGMENT_SPREAD="FRAGMENT_SPREAD",e.INLINE_FRAGMENT="INLINE_FRAGMENT",e.VARIABLE_DEFINITION="VARIABLE_DEFINITION",e.SCHEMA="SCHEMA",e.SCALAR="SCALAR",e.OBJECT="OBJECT",e.FIELD_DEFINITION="FIELD_DEFINITION",e.ARGUMENT_DEFINITION="ARGUMENT_DEFINITION",e.INTERFACE="INTERFACE",e.UNION="UNION",e.ENUM="ENUM",e.ENUM_VALUE="ENUM_VALUE",e.INPUT_OBJECT="INPUT_OBJECT",e.INPUT_FIELD_DEFINITION="INPUT_FIELD_DEFINITION"})(hI||(xd.DirectiveLocation=hI={}))});var Lt=F(qd=>{"use strict";m();T();N();Object.defineProperty(qd,"__esModule",{value:!0});qd.Kind=void 0;var yI;qd.Kind=yI;(function(e){e.NAME="Name",e.DOCUMENT="Document",e.OPERATION_DEFINITION="OperationDefinition",e.VARIABLE_DEFINITION="VariableDefinition",e.SELECTION_SET="SelectionSet",e.FIELD="Field",e.ARGUMENT="Argument",e.FRAGMENT_SPREAD="FragmentSpread",e.INLINE_FRAGMENT="InlineFragment",e.FRAGMENT_DEFINITION="FragmentDefinition",e.VARIABLE="Variable",e.INT="IntValue",e.FLOAT="FloatValue",e.STRING="StringValue",e.BOOLEAN="BooleanValue",e.NULL="NullValue",e.ENUM="EnumValue",e.LIST="ListValue",e.OBJECT="ObjectValue",e.OBJECT_FIELD="ObjectField",e.DIRECTIVE="Directive",e.NAMED_TYPE="NamedType",e.LIST_TYPE="ListType",e.NON_NULL_TYPE="NonNullType",e.SCHEMA_DEFINITION="SchemaDefinition",e.OPERATION_TYPE_DEFINITION="OperationTypeDefinition",e.SCALAR_TYPE_DEFINITION="ScalarTypeDefinition",e.OBJECT_TYPE_DEFINITION="ObjectTypeDefinition",e.FIELD_DEFINITION="FieldDefinition",e.INPUT_VALUE_DEFINITION="InputValueDefinition",e.INTERFACE_TYPE_DEFINITION="InterfaceTypeDefinition",e.UNION_TYPE_DEFINITION="UnionTypeDefinition",e.ENUM_TYPE_DEFINITION="EnumTypeDefinition",e.ENUM_VALUE_DEFINITION="EnumValueDefinition",e.INPUT_OBJECT_TYPE_DEFINITION="InputObjectTypeDefinition",e.DIRECTIVE_DEFINITION="DirectiveDefinition",e.SCHEMA_EXTENSION="SchemaExtension",e.SCALAR_TYPE_EXTENSION="ScalarTypeExtension",e.OBJECT_TYPE_EXTENSION="ObjectTypeExtension",e.INTERFACE_TYPE_EXTENSION="InterfaceTypeExtension",e.UNION_TYPE_EXTENSION="UnionTypeExtension",e.ENUM_TYPE_EXTENSION="EnumTypeExtension",e.INPUT_OBJECT_TYPE_EXTENSION="InputObjectTypeExtension"})(yI||(qd.Kind=yI={}))});var Mm=F(Wu=>{"use strict";m();T();N();Object.defineProperty(Wu,"__esModule",{value:!0});Wu.isDigit=JP;Wu.isLetter=II;Wu.isNameContinue=FH;Wu.isNameStart=PH;Wu.isWhiteSpace=RH;function RH(e){return e===9||e===32}function JP(e){return e>=48&&e<=57}function II(e){return e>=97&&e<=122||e>=65&&e<=90}function PH(e){return II(e)||e===95}function FH(e){return II(e)||JP(e)||e===95}});var Vd=F(jd=>{"use strict";m();T();N();Object.defineProperty(jd,"__esModule",{value:!0});jd.dedentBlockStringLines=wH;jd.isPrintableAsBlockString=CH;jd.printBlockString=BH;var gI=Mm();function wH(e){var t;let n=Number.MAX_SAFE_INTEGER,r=null,i=-1;for(let o=0;oc===0?o:o.slice(n)).slice((t=r)!==null&&t!==void 0?t:0,i+1)}function LH(e){let t=0;for(;t1&&r.slice(1).every(v=>v.length===0||(0,gI.isWhiteSpace)(v.charCodeAt(0))),o=n.endsWith('\\"""'),c=e.endsWith('"')&&!o,l=e.endsWith("\\"),d=c||l,f=!(t!=null&&t.minimize)&&(!i||e.length>70||d||a||o),y="",I=i&&(0,gI.isWhiteSpace)(e.charCodeAt(0));return(f&&!I||a)&&(y+=` +`),y+=n,(f||d)&&(y+=` +`),'"""'+y+'"""'}});var Gd=F(Kd=>{"use strict";m();T();N();Object.defineProperty(Kd,"__esModule",{value:!0});Kd.TokenKind=void 0;var _I;Kd.TokenKind=_I;(function(e){e.SOF="",e.EOF="",e.BANG="!",e.DOLLAR="$",e.AMP="&",e.PAREN_L="(",e.PAREN_R=")",e.SPREAD="...",e.COLON=":",e.EQUALS="=",e.AT="@",e.BRACKET_L="[",e.BRACKET_R="]",e.BRACE_L="{",e.PIPE="|",e.BRACE_R="}",e.NAME="Name",e.INT="Int",e.FLOAT="Float",e.STRING="String",e.BLOCK_STRING="BlockString",e.COMMENT="Comment"})(_I||(Kd.TokenKind=_I={}))});var qm=F(Qd=>{"use strict";m();T();N();Object.defineProperty(Qd,"__esModule",{value:!0});Qd.Lexer=void 0;Qd.isPunctuatorTokenKind=kH;var ua=km(),zP=Ba(),UH=Vd(),Xu=Mm(),_t=Gd(),SI=class{constructor(t){let n=new zP.Token(_t.TokenKind.SOF,0,0,0,0);this.source=t,this.lastToken=n,this.token=n,this.line=1,this.lineStart=0}get[Symbol.toStringTag](){return"Lexer"}advance(){return this.lastToken=this.token,this.token=this.lookahead()}lookahead(){let t=this.token;if(t.kind!==_t.TokenKind.EOF)do if(t.next)t=t.next;else{let n=MH(this,t.end);t.next=n,n.prev=t,t=n}while(t.kind===_t.TokenKind.COMMENT);return t}};Qd.Lexer=SI;function kH(e){return e===_t.TokenKind.BANG||e===_t.TokenKind.DOLLAR||e===_t.TokenKind.AMP||e===_t.TokenKind.PAREN_L||e===_t.TokenKind.PAREN_R||e===_t.TokenKind.SPREAD||e===_t.TokenKind.COLON||e===_t.TokenKind.EQUALS||e===_t.TokenKind.AT||e===_t.TokenKind.BRACKET_L||e===_t.TokenKind.BRACKET_R||e===_t.TokenKind.BRACE_L||e===_t.TokenKind.PIPE||e===_t.TokenKind.BRACE_R}function ml(e){return e>=0&&e<=55295||e>=57344&&e<=1114111}function xm(e,t){return WP(e.charCodeAt(t))&&XP(e.charCodeAt(t+1))}function WP(e){return e>=55296&&e<=56319}function XP(e){return e>=56320&&e<=57343}function Zu(e,t){let n=e.source.body.codePointAt(t);if(n===void 0)return _t.TokenKind.EOF;if(n>=32&&n<=126){let r=String.fromCodePoint(n);return r==='"'?`'"'`:`"${r}"`}return"U+"+n.toString(16).toUpperCase().padStart(4,"0")}function zn(e,t,n,r,i){let a=e.line,o=1+n-e.lineStart;return new zP.Token(t,n,r,a,o,i)}function MH(e,t){let n=e.source.body,r=n.length,i=t;for(;i=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function GH(e,t){let n=e.source.body;switch(n.charCodeAt(t+1)){case 34:return{value:'"',size:2};case 92:return{value:"\\",size:2};case 47:return{value:"/",size:2};case 98:return{value:"\b",size:2};case 102:return{value:"\f",size:2};case 110:return{value:` +`,size:2};case 114:return{value:"\r",size:2};case 116:return{value:" ",size:2}}throw(0,ua.syntaxError)(e.source,t,`Invalid character escape sequence: "${n.slice(t,t+2)}".`)}function $H(e,t){let n=e.source.body,r=n.length,i=e.lineStart,a=t+3,o=a,c="",l=[];for(;a{"use strict";m();T();N();Object.defineProperty(OI,"__esModule",{value:!0});OI.inspect=JH;var YH=10,ZP=2;function JH(e){return jm(e,[])}function jm(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return HH(e,t);default:return String(e)}}function HH(e,t){if(e===null)return"null";if(t.includes(e))return"[Circular]";let n=[...t,e];if(zH(e)){let r=e.toJSON();if(r!==e)return typeof r=="string"?r:jm(r,n)}else if(Array.isArray(e))return XH(e,n);return WH(e,n)}function zH(e){return typeof e.toJSON=="function"}function WH(e,t){let n=Object.entries(e);return n.length===0?"{}":t.length>ZP?"["+ZH(e)+"]":"{ "+n.map(([i,a])=>i+": "+jm(a,t)).join(", ")+" }"}function XH(e,t){if(e.length===0)return"[]";if(t.length>ZP)return"[Array]";let n=Math.min(YH,e.length),r=e.length-n,i=[];for(let a=0;a1&&i.push(`... ${r} more items`),"["+i.join(", ")+"]"}function ZH(e){let t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if(t==="Object"&&typeof e.constructor=="function"){let n=e.constructor.name;if(typeof n=="string"&&n!=="")return n}return t}});var Yd=F(Vm=>{"use strict";m();T();N();Object.defineProperty(Vm,"__esModule",{value:!0});Vm.instanceOf=void 0;var e3=Wt(),t3=globalThis.process&&O.env.NODE_ENV==="production",n3=t3?function(t,n){return t instanceof n}:function(t,n){if(t instanceof n)return!0;if(typeof t=="object"&&t!==null){var r;let i=n.prototype[Symbol.toStringTag],a=Symbol.toStringTag in t?t[Symbol.toStringTag]:(r=t.constructor)===null||r===void 0?void 0:r.name;if(i===a){let o=(0,e3.inspect)(t);throw new Error(`Cannot use ${i} "${o}" from another module or realm. Ensure that there is only one instance of "graphql" in the node_modules directory. If different versions of "graphql" are the dependencies of other @@ -36,42 +36,42 @@ https://yarnpkg.com/en/docs/selective-version-resolutions Duplicate "graphql" modules cannot be used at the same time since different versions may have different capabilities and behavior. The data from one version used in the function from another could produce confusing and -spurious results.`)}}return!1};Dm.instanceOf=FH});var Am=w(kd=>{"use strict";m();T();N();Object.defineProperty(kd,"__esModule",{value:!0});kd.Source=void 0;kd.isSource=CH;var aI=Br(),wH=Xt(),LH=Ud(),bm=class{constructor(t,n="GraphQL request",r={line:1,column:1}){typeof t=="string"||(0,aI.devAssert)(!1,`Body must be a string. Received: ${(0,wH.inspect)(t)}.`),this.body=t,this.name=n,this.locationOffset=r,this.locationOffset.line>0||(0,aI.devAssert)(!1,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||(0,aI.devAssert)(!1,"column in locationOffset is 1-indexed and must be positive.")}get[Symbol.toStringTag](){return"Source"}};kd.Source=bm;function CH(e){return(0,LH.instanceOf)(e,bm)}});var il=w(Zo=>{"use strict";m();T();N();Object.defineProperty(Zo,"__esModule",{value:!0});Zo.Parser=void 0;Zo.parse=UH;Zo.parseConstValue=MH;Zo.parseType=xH;Zo.parseValue=kH;var Gu=gm(),Md=ba(),BH=nl(),at=Ft(),UP=Sm(),BP=Am(),Oe=Ld();function UH(e,t){return new $u(e,t).parseDocument()}function kH(e,t){let n=new $u(e,t);n.expectToken(Oe.TokenKind.SOF);let r=n.parseValueLiteral(!1);return n.expectToken(Oe.TokenKind.EOF),r}function MH(e,t){let n=new $u(e,t);n.expectToken(Oe.TokenKind.SOF);let r=n.parseConstValueLiteral();return n.expectToken(Oe.TokenKind.EOF),r}function xH(e,t){let n=new $u(e,t);n.expectToken(Oe.TokenKind.SOF);let r=n.parseTypeReference();return n.expectToken(Oe.TokenKind.EOF),r}var $u=class{constructor(t,n={}){let r=(0,BP.isSource)(t)?t:new BP.Source(t);this._lexer=new UP.Lexer(r),this._options=n,this._tokenCounter=0}parseName(){let t=this.expectToken(Oe.TokenKind.NAME);return this.node(t,{kind:at.Kind.NAME,value:t.value})}parseDocument(){return this.node(this._lexer.token,{kind:at.Kind.DOCUMENT,definitions:this.many(Oe.TokenKind.SOF,this.parseDefinition,Oe.TokenKind.EOF)})}parseDefinition(){if(this.peek(Oe.TokenKind.BRACE_L))return this.parseOperationDefinition();let t=this.peekDescription(),n=t?this._lexer.lookahead():this._lexer.token;if(n.kind===Oe.TokenKind.NAME){switch(n.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}if(t)throw(0,Gu.syntaxError)(this._lexer.source,this._lexer.token.start,"Unexpected description, descriptions are supported only on type definitions.");switch(n.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"extend":return this.parseTypeSystemExtension()}}throw this.unexpected(n)}parseOperationDefinition(){let t=this._lexer.token;if(this.peek(Oe.TokenKind.BRACE_L))return this.node(t,{kind:at.Kind.OPERATION_DEFINITION,operation:Md.OperationTypeNode.QUERY,name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet()});let n=this.parseOperationType(),r;return this.peek(Oe.TokenKind.NAME)&&(r=this.parseName()),this.node(t,{kind:at.Kind.OPERATION_DEFINITION,operation:n,name:r,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseOperationType(){let t=this.expectToken(Oe.TokenKind.NAME);switch(t.value){case"query":return Md.OperationTypeNode.QUERY;case"mutation":return Md.OperationTypeNode.MUTATION;case"subscription":return Md.OperationTypeNode.SUBSCRIPTION}throw this.unexpected(t)}parseVariableDefinitions(){return this.optionalMany(Oe.TokenKind.PAREN_L,this.parseVariableDefinition,Oe.TokenKind.PAREN_R)}parseVariableDefinition(){return this.node(this._lexer.token,{kind:at.Kind.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(Oe.TokenKind.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(Oe.TokenKind.EQUALS)?this.parseConstValueLiteral():void 0,directives:this.parseConstDirectives()})}parseVariable(){let t=this._lexer.token;return this.expectToken(Oe.TokenKind.DOLLAR),this.node(t,{kind:at.Kind.VARIABLE,name:this.parseName()})}parseSelectionSet(){return this.node(this._lexer.token,{kind:at.Kind.SELECTION_SET,selections:this.many(Oe.TokenKind.BRACE_L,this.parseSelection,Oe.TokenKind.BRACE_R)})}parseSelection(){return this.peek(Oe.TokenKind.SPREAD)?this.parseFragment():this.parseField()}parseField(){let t=this._lexer.token,n=this.parseName(),r,i;return this.expectOptionalToken(Oe.TokenKind.COLON)?(r=n,i=this.parseName()):i=n,this.node(t,{kind:at.Kind.FIELD,alias:r,name:i,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(Oe.TokenKind.BRACE_L)?this.parseSelectionSet():void 0})}parseArguments(t){let n=t?this.parseConstArgument:this.parseArgument;return this.optionalMany(Oe.TokenKind.PAREN_L,n,Oe.TokenKind.PAREN_R)}parseArgument(t=!1){let n=this._lexer.token,r=this.parseName();return this.expectToken(Oe.TokenKind.COLON),this.node(n,{kind:at.Kind.ARGUMENT,name:r,value:this.parseValueLiteral(t)})}parseConstArgument(){return this.parseArgument(!0)}parseFragment(){let t=this._lexer.token;this.expectToken(Oe.TokenKind.SPREAD);let n=this.expectOptionalKeyword("on");return!n&&this.peek(Oe.TokenKind.NAME)?this.node(t,{kind:at.Kind.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1)}):this.node(t,{kind:at.Kind.INLINE_FRAGMENT,typeCondition:n?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentDefinition(){let t=this._lexer.token;return this.expectKeyword("fragment"),this._options.allowLegacyFragmentVariables===!0?this.node(t,{kind:at.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()}):this.node(t,{kind:at.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentName(){if(this._lexer.token.value==="on")throw this.unexpected();return this.parseName()}parseValueLiteral(t){let n=this._lexer.token;switch(n.kind){case Oe.TokenKind.BRACKET_L:return this.parseList(t);case Oe.TokenKind.BRACE_L:return this.parseObject(t);case Oe.TokenKind.INT:return this.advanceLexer(),this.node(n,{kind:at.Kind.INT,value:n.value});case Oe.TokenKind.FLOAT:return this.advanceLexer(),this.node(n,{kind:at.Kind.FLOAT,value:n.value});case Oe.TokenKind.STRING:case Oe.TokenKind.BLOCK_STRING:return this.parseStringLiteral();case Oe.TokenKind.NAME:switch(this.advanceLexer(),n.value){case"true":return this.node(n,{kind:at.Kind.BOOLEAN,value:!0});case"false":return this.node(n,{kind:at.Kind.BOOLEAN,value:!1});case"null":return this.node(n,{kind:at.Kind.NULL});default:return this.node(n,{kind:at.Kind.ENUM,value:n.value})}case Oe.TokenKind.DOLLAR:if(t)if(this.expectToken(Oe.TokenKind.DOLLAR),this._lexer.token.kind===Oe.TokenKind.NAME){let r=this._lexer.token.value;throw(0,Gu.syntaxError)(this._lexer.source,n.start,`Unexpected variable "$${r}" in constant value.`)}else throw this.unexpected(n);return this.parseVariable();default:throw this.unexpected()}}parseConstValueLiteral(){return this.parseValueLiteral(!0)}parseStringLiteral(){let t=this._lexer.token;return this.advanceLexer(),this.node(t,{kind:at.Kind.STRING,value:t.value,block:t.kind===Oe.TokenKind.BLOCK_STRING})}parseList(t){let n=()=>this.parseValueLiteral(t);return this.node(this._lexer.token,{kind:at.Kind.LIST,values:this.any(Oe.TokenKind.BRACKET_L,n,Oe.TokenKind.BRACKET_R)})}parseObject(t){let n=()=>this.parseObjectField(t);return this.node(this._lexer.token,{kind:at.Kind.OBJECT,fields:this.any(Oe.TokenKind.BRACE_L,n,Oe.TokenKind.BRACE_R)})}parseObjectField(t){let n=this._lexer.token,r=this.parseName();return this.expectToken(Oe.TokenKind.COLON),this.node(n,{kind:at.Kind.OBJECT_FIELD,name:r,value:this.parseValueLiteral(t)})}parseDirectives(t){let n=[];for(;this.peek(Oe.TokenKind.AT);)n.push(this.parseDirective(t));return n}parseConstDirectives(){return this.parseDirectives(!0)}parseDirective(t){let n=this._lexer.token;return this.expectToken(Oe.TokenKind.AT),this.node(n,{kind:at.Kind.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(t)})}parseTypeReference(){let t=this._lexer.token,n;if(this.expectOptionalToken(Oe.TokenKind.BRACKET_L)){let r=this.parseTypeReference();this.expectToken(Oe.TokenKind.BRACKET_R),n=this.node(t,{kind:at.Kind.LIST_TYPE,type:r})}else n=this.parseNamedType();return this.expectOptionalToken(Oe.TokenKind.BANG)?this.node(t,{kind:at.Kind.NON_NULL_TYPE,type:n}):n}parseNamedType(){return this.node(this._lexer.token,{kind:at.Kind.NAMED_TYPE,name:this.parseName()})}peekDescription(){return this.peek(Oe.TokenKind.STRING)||this.peek(Oe.TokenKind.BLOCK_STRING)}parseDescription(){if(this.peekDescription())return this.parseStringLiteral()}parseSchemaDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("schema");let r=this.parseConstDirectives(),i=this.many(Oe.TokenKind.BRACE_L,this.parseOperationTypeDefinition,Oe.TokenKind.BRACE_R);return this.node(t,{kind:at.Kind.SCHEMA_DEFINITION,description:n,directives:r,operationTypes:i})}parseOperationTypeDefinition(){let t=this._lexer.token,n=this.parseOperationType();this.expectToken(Oe.TokenKind.COLON);let r=this.parseNamedType();return this.node(t,{kind:at.Kind.OPERATION_TYPE_DEFINITION,operation:n,type:r})}parseScalarTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("scalar");let r=this.parseName(),i=this.parseConstDirectives();return this.node(t,{kind:at.Kind.SCALAR_TYPE_DEFINITION,description:n,name:r,directives:i})}parseObjectTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("type");let r=this.parseName(),i=this.parseImplementsInterfaces(),a=this.parseConstDirectives(),o=this.parseFieldsDefinition();return this.node(t,{kind:at.Kind.OBJECT_TYPE_DEFINITION,description:n,name:r,interfaces:i,directives:a,fields:o})}parseImplementsInterfaces(){return this.expectOptionalKeyword("implements")?this.delimitedMany(Oe.TokenKind.AMP,this.parseNamedType):[]}parseFieldsDefinition(){return this.optionalMany(Oe.TokenKind.BRACE_L,this.parseFieldDefinition,Oe.TokenKind.BRACE_R)}parseFieldDefinition(){let t=this._lexer.token,n=this.parseDescription(),r=this.parseName(),i=this.parseArgumentDefs();this.expectToken(Oe.TokenKind.COLON);let a=this.parseTypeReference(),o=this.parseConstDirectives();return this.node(t,{kind:at.Kind.FIELD_DEFINITION,description:n,name:r,arguments:i,type:a,directives:o})}parseArgumentDefs(){return this.optionalMany(Oe.TokenKind.PAREN_L,this.parseInputValueDef,Oe.TokenKind.PAREN_R)}parseInputValueDef(){let t=this._lexer.token,n=this.parseDescription(),r=this.parseName();this.expectToken(Oe.TokenKind.COLON);let i=this.parseTypeReference(),a;this.expectOptionalToken(Oe.TokenKind.EQUALS)&&(a=this.parseConstValueLiteral());let o=this.parseConstDirectives();return this.node(t,{kind:at.Kind.INPUT_VALUE_DEFINITION,description:n,name:r,type:i,defaultValue:a,directives:o})}parseInterfaceTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("interface");let r=this.parseName(),i=this.parseImplementsInterfaces(),a=this.parseConstDirectives(),o=this.parseFieldsDefinition();return this.node(t,{kind:at.Kind.INTERFACE_TYPE_DEFINITION,description:n,name:r,interfaces:i,directives:a,fields:o})}parseUnionTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("union");let r=this.parseName(),i=this.parseConstDirectives(),a=this.parseUnionMemberTypes();return this.node(t,{kind:at.Kind.UNION_TYPE_DEFINITION,description:n,name:r,directives:i,types:a})}parseUnionMemberTypes(){return this.expectOptionalToken(Oe.TokenKind.EQUALS)?this.delimitedMany(Oe.TokenKind.PIPE,this.parseNamedType):[]}parseEnumTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("enum");let r=this.parseName(),i=this.parseConstDirectives(),a=this.parseEnumValuesDefinition();return this.node(t,{kind:at.Kind.ENUM_TYPE_DEFINITION,description:n,name:r,directives:i,values:a})}parseEnumValuesDefinition(){return this.optionalMany(Oe.TokenKind.BRACE_L,this.parseEnumValueDefinition,Oe.TokenKind.BRACE_R)}parseEnumValueDefinition(){let t=this._lexer.token,n=this.parseDescription(),r=this.parseEnumValueName(),i=this.parseConstDirectives();return this.node(t,{kind:at.Kind.ENUM_VALUE_DEFINITION,description:n,name:r,directives:i})}parseEnumValueName(){if(this._lexer.token.value==="true"||this._lexer.token.value==="false"||this._lexer.token.value==="null")throw(0,Gu.syntaxError)(this._lexer.source,this._lexer.token.start,`${Rm(this._lexer.token)} is reserved and cannot be used for an enum value.`);return this.parseName()}parseInputObjectTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("input");let r=this.parseName(),i=this.parseConstDirectives(),a=this.parseInputFieldsDefinition();return this.node(t,{kind:at.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:n,name:r,directives:i,fields:a})}parseInputFieldsDefinition(){return this.optionalMany(Oe.TokenKind.BRACE_L,this.parseInputValueDef,Oe.TokenKind.BRACE_R)}parseTypeSystemExtension(){let t=this._lexer.lookahead();if(t.kind===Oe.TokenKind.NAME)switch(t.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(t)}parseSchemaExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");let n=this.parseConstDirectives(),r=this.optionalMany(Oe.TokenKind.BRACE_L,this.parseOperationTypeDefinition,Oe.TokenKind.BRACE_R);if(n.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:at.Kind.SCHEMA_EXTENSION,directives:n,operationTypes:r})}parseScalarTypeExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");let n=this.parseName(),r=this.parseConstDirectives();if(r.length===0)throw this.unexpected();return this.node(t,{kind:at.Kind.SCALAR_TYPE_EXTENSION,name:n,directives:r})}parseObjectTypeExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");let n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseConstDirectives(),a=this.parseFieldsDefinition();if(r.length===0&&i.length===0&&a.length===0)throw this.unexpected();return this.node(t,{kind:at.Kind.OBJECT_TYPE_EXTENSION,name:n,interfaces:r,directives:i,fields:a})}parseInterfaceTypeExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");let n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseConstDirectives(),a=this.parseFieldsDefinition();if(r.length===0&&i.length===0&&a.length===0)throw this.unexpected();return this.node(t,{kind:at.Kind.INTERFACE_TYPE_EXTENSION,name:n,interfaces:r,directives:i,fields:a})}parseUnionTypeExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");let n=this.parseName(),r=this.parseConstDirectives(),i=this.parseUnionMemberTypes();if(r.length===0&&i.length===0)throw this.unexpected();return this.node(t,{kind:at.Kind.UNION_TYPE_EXTENSION,name:n,directives:r,types:i})}parseEnumTypeExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");let n=this.parseName(),r=this.parseConstDirectives(),i=this.parseEnumValuesDefinition();if(r.length===0&&i.length===0)throw this.unexpected();return this.node(t,{kind:at.Kind.ENUM_TYPE_EXTENSION,name:n,directives:r,values:i})}parseInputObjectTypeExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");let n=this.parseName(),r=this.parseConstDirectives(),i=this.parseInputFieldsDefinition();if(r.length===0&&i.length===0)throw this.unexpected();return this.node(t,{kind:at.Kind.INPUT_OBJECT_TYPE_EXTENSION,name:n,directives:r,fields:i})}parseDirectiveDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("directive"),this.expectToken(Oe.TokenKind.AT);let r=this.parseName(),i=this.parseArgumentDefs(),a=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");let o=this.parseDirectiveLocations();return this.node(t,{kind:at.Kind.DIRECTIVE_DEFINITION,description:n,name:r,arguments:i,repeatable:a,locations:o})}parseDirectiveLocations(){return this.delimitedMany(Oe.TokenKind.PIPE,this.parseDirectiveLocation)}parseDirectiveLocation(){let t=this._lexer.token,n=this.parseName();if(Object.prototype.hasOwnProperty.call(BH.DirectiveLocation,n.value))return n;throw this.unexpected(t)}node(t,n){return this._options.noLocation!==!0&&(n.loc=new Md.Location(t,this._lexer.lastToken,this._lexer.source)),n}peek(t){return this._lexer.token.kind===t}expectToken(t){let n=this._lexer.token;if(n.kind===t)return this.advanceLexer(),n;throw(0,Gu.syntaxError)(this._lexer.source,n.start,`Expected ${kP(t)}, found ${Rm(n)}.`)}expectOptionalToken(t){return this._lexer.token.kind===t?(this.advanceLexer(),!0):!1}expectKeyword(t){let n=this._lexer.token;if(n.kind===Oe.TokenKind.NAME&&n.value===t)this.advanceLexer();else throw(0,Gu.syntaxError)(this._lexer.source,n.start,`Expected "${t}", found ${Rm(n)}.`)}expectOptionalKeyword(t){let n=this._lexer.token;return n.kind===Oe.TokenKind.NAME&&n.value===t?(this.advanceLexer(),!0):!1}unexpected(t){let n=t!=null?t:this._lexer.token;return(0,Gu.syntaxError)(this._lexer.source,n.start,`Unexpected ${Rm(n)}.`)}any(t,n,r){this.expectToken(t);let i=[];for(;!this.expectOptionalToken(r);)i.push(n.call(this));return i}optionalMany(t,n,r){if(this.expectOptionalToken(t)){let i=[];do i.push(n.call(this));while(!this.expectOptionalToken(r));return i}return[]}many(t,n,r){this.expectToken(t);let i=[];do i.push(n.call(this));while(!this.expectOptionalToken(r));return i}delimitedMany(t,n){this.expectOptionalToken(t);let r=[];do r.push(n.call(this));while(this.expectOptionalToken(t));return r}advanceLexer(){let{maxTokens:t}=this._options,n=this._lexer.advance();if(t!==void 0&&n.kind!==Oe.TokenKind.EOF&&(++this._tokenCounter,this._tokenCounter>t))throw(0,Gu.syntaxError)(this._lexer.source,n.start,`Document contains more that ${t} tokens. Parsing aborted.`)}};Zo.Parser=$u;function Rm(e){let t=e.value;return kP(e.kind)+(t!=null?` "${t}"`:"")}function kP(e){return(0,UP.isPunctuatorTokenKind)(e)?`"${e}"`:e}});var eu=w(sI=>{"use strict";m();T();N();Object.defineProperty(sI,"__esModule",{value:!0});sI.didYouMean=VH;var qH=5;function VH(e,t){let[n,r]=t?[e,t]:[void 0,e],i=" Did you mean ";n&&(i+=n+" ");let a=r.map(l=>`"${l}"`);switch(a.length){case 0:return"";case 1:return i+a[0]+"?";case 2:return i+a[0]+" or "+a[1]+"?"}let o=a.slice(0,qH),c=o.pop();return i+o.join(", ")+", or "+c+"?"}});var MP=w(oI=>{"use strict";m();T();N();Object.defineProperty(oI,"__esModule",{value:!0});oI.identityFunc=jH;function jH(e){return e}});var tu=w(uI=>{"use strict";m();T();N();Object.defineProperty(uI,"__esModule",{value:!0});uI.keyMap=KH;function KH(e,t){let n=Object.create(null);for(let r of e)n[t(r)]=r;return n}});var xd=w(cI=>{"use strict";m();T();N();Object.defineProperty(cI,"__esModule",{value:!0});cI.keyValMap=GH;function GH(e,t,n){let r=Object.create(null);for(let i of e)r[t(i)]=n(i);return r}});var dI=w(lI=>{"use strict";m();T();N();Object.defineProperty(lI,"__esModule",{value:!0});lI.mapValue=$H;function $H(e,t){let n=Object.create(null);for(let r of Object.keys(e))n[r]=t(e[r],r);return n}});var qd=w(pI=>{"use strict";m();T();N();Object.defineProperty(pI,"__esModule",{value:!0});pI.naturalCompare=QH;function QH(e,t){let n=0,r=0;for(;n0);let c=0;do++r,c=c*10+a-fI,a=t.charCodeAt(r);while(Pm(a)&&c>0);if(oc)return 1}else{if(ia)return 1;++n,++r}}return e.length-t.length}var fI=48,YH=57;function Pm(e){return!isNaN(e)&&fI<=e&&e<=YH}});var nu=w(NI=>{"use strict";m();T();N();Object.defineProperty(NI,"__esModule",{value:!0});NI.suggestionList=HH;var JH=qd();function HH(e,t){let n=Object.create(null),r=new mI(e),i=Math.floor(e.length*.4)+1;for(let a of t){let o=r.measure(a,i);o!==void 0&&(n[a]=o)}return Object.keys(n).sort((a,o)=>{let c=n[a]-n[o];return c!==0?c:(0,JH.naturalCompare)(a,o)})}var mI=class{constructor(t){this._input=t,this._inputLowerCase=t.toLowerCase(),this._inputArray=xP(this._inputLowerCase),this._rows=[new Array(t.length+1).fill(0),new Array(t.length+1).fill(0),new Array(t.length+1).fill(0)]}measure(t,n){if(this._input===t)return 0;let r=t.toLowerCase();if(this._inputLowerCase===r)return 1;let i=xP(r),a=this._inputArray;if(i.lengthn)return;let l=this._rows;for(let p=0;p<=c;p++)l[0][p]=p;for(let p=1;p<=o;p++){let y=l[(p-1)%3],I=l[p%3],v=I[0]=p;for(let F=1;F<=c;F++){let k=i[p-1]===a[F-1]?0:1,K=Math.min(y[F]+1,I[F-1]+1,y[F-1]+k);if(p>1&&F>1&&i[p-1]===a[F-2]&&i[p-2]===a[F-1]){let J=l[(p-2)%3][F-2];K=Math.min(K,J+1)}Kn)return}let d=l[o%3][c];return d<=n?d:void 0}};function xP(e){let t=e.length,n=new Array(t);for(let r=0;r{"use strict";m();T();N();Object.defineProperty(TI,"__esModule",{value:!0});TI.toObjMap=zH;function zH(e){if(e==null)return Object.create(null);if(Object.getPrototypeOf(e)===null)return e;let t=Object.create(null);for(let[n,r]of Object.entries(e))t[n]=r;return t}});var qP=w(EI=>{"use strict";m();T();N();Object.defineProperty(EI,"__esModule",{value:!0});EI.printString=WH;function WH(e){return`"${e.replace(XH,ZH)}"`}var XH=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function ZH(e){return e3[e.charCodeAt(0)]}var e3=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\u007F","\\u0080","\\u0081","\\u0082","\\u0083","\\u0084","\\u0085","\\u0086","\\u0087","\\u0088","\\u0089","\\u008A","\\u008B","\\u008C","\\u008D","\\u008E","\\u008F","\\u0090","\\u0091","\\u0092","\\u0093","\\u0094","\\u0095","\\u0096","\\u0097","\\u0098","\\u0099","\\u009A","\\u009B","\\u009C","\\u009D","\\u009E","\\u009F"]});var Qu=w(ru=>{"use strict";m();T();N();Object.defineProperty(ru,"__esModule",{value:!0});ru.BREAK=void 0;ru.getEnterLeaveForKind=wm;ru.getVisitFn=a3;ru.visit=r3;ru.visitInParallel=i3;var t3=Br(),n3=Xt(),hI=ba(),VP=Ft(),al=Object.freeze({});ru.BREAK=al;function r3(e,t,n=hI.QueryDocumentKeys){let r=new Map;for(let J of Object.values(VP.Kind))r.set(J,wm(t,J));let i,a=Array.isArray(e),o=[e],c=-1,l=[],d=e,p,y,I=[],v=[];do{c++;let J=c===o.length,se=J&&l.length!==0;if(J){if(p=v.length===0?void 0:I[I.length-1],d=y,y=v.pop(),se)if(a){d=d.slice();let Te=0;for(let[de,Re]of l){let xe=de-Te;Re===null?(d.splice(xe,1),Te++):d[xe]=Re}}else{d=Object.defineProperties({},Object.getOwnPropertyDescriptors(d));for(let[Te,de]of l)d[Te]=de}c=i.index,o=i.keys,l=i.edits,a=i.inArray,i=i.prev}else if(y){if(p=a?c:o[c],d=y[p],d==null)continue;I.push(p)}let ie;if(!Array.isArray(d)){var F,k;(0,hI.isNode)(d)||(0,t3.devAssert)(!1,`Invalid AST Node: ${(0,n3.inspect)(d)}.`);let Te=J?(F=r.get(d.kind))===null||F===void 0?void 0:F.leave:(k=r.get(d.kind))===null||k===void 0?void 0:k.enter;if(ie=Te==null?void 0:Te.call(t,d,p,y,I,v),ie===al)break;if(ie===!1){if(!J){I.pop();continue}}else if(ie!==void 0&&(l.push([p,ie]),!J))if((0,hI.isNode)(ie))d=ie;else{I.pop();continue}}if(ie===void 0&&se&&l.push([p,d]),J)I.pop();else{var K;i={inArray:a,index:c,keys:o,edits:l,prev:i},a=Array.isArray(d),o=a?d:(K=n[d.kind])!==null&&K!==void 0?K:[],c=-1,l=[],y&&v.push(y),y=d}}while(i!==void 0);return l.length!==0?l[l.length-1][1]:e}function i3(e){let t=new Array(e.length).fill(null),n=Object.create(null);for(let r of Object.values(VP.Kind)){let i=!1,a=new Array(e.length).fill(void 0),o=new Array(e.length).fill(void 0);for(let l=0;l{"use strict";m();T();N();Object.defineProperty(yI,"__esModule",{value:!0});yI.print=c3;var s3=Fd(),o3=qP(),u3=Qu();function c3(e){return(0,u3.visit)(e,d3)}var l3=80,d3={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>Ve(e.definitions,` +spurious results.`)}}return!1};Vm.instanceOf=n3});var Gm=F(Jd=>{"use strict";m();T();N();Object.defineProperty(Jd,"__esModule",{value:!0});Jd.Source=void 0;Jd.isSource=a3;var DI=Vr(),r3=Wt(),i3=Yd(),Km=class{constructor(t,n="GraphQL request",r={line:1,column:1}){typeof t=="string"||(0,DI.devAssert)(!1,`Body must be a string. Received: ${(0,r3.inspect)(t)}.`),this.body=t,this.name=n,this.locationOffset=r,this.locationOffset.line>0||(0,DI.devAssert)(!1,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||(0,DI.devAssert)(!1,"column in locationOffset is 1-indexed and must be positive.")}get[Symbol.toStringTag](){return"Source"}};Jd.Source=Km;function a3(e){return(0,i3.instanceOf)(e,Km)}});var Nl=F(ou=>{"use strict";m();T();N();Object.defineProperty(ou,"__esModule",{value:!0});ou.Parser=void 0;ou.parse=o3;ou.parseConstValue=c3;ou.parseType=l3;ou.parseValue=u3;var ec=km(),Hd=Ba(),s3=fl(),ot=Lt(),tF=qm(),eF=Gm(),Oe=Gd();function o3(e,t){return new tc(e,t).parseDocument()}function u3(e,t){let n=new tc(e,t);n.expectToken(Oe.TokenKind.SOF);let r=n.parseValueLiteral(!1);return n.expectToken(Oe.TokenKind.EOF),r}function c3(e,t){let n=new tc(e,t);n.expectToken(Oe.TokenKind.SOF);let r=n.parseConstValueLiteral();return n.expectToken(Oe.TokenKind.EOF),r}function l3(e,t){let n=new tc(e,t);n.expectToken(Oe.TokenKind.SOF);let r=n.parseTypeReference();return n.expectToken(Oe.TokenKind.EOF),r}var tc=class{constructor(t,n={}){let r=(0,eF.isSource)(t)?t:new eF.Source(t);this._lexer=new tF.Lexer(r),this._options=n,this._tokenCounter=0}parseName(){let t=this.expectToken(Oe.TokenKind.NAME);return this.node(t,{kind:ot.Kind.NAME,value:t.value})}parseDocument(){return this.node(this._lexer.token,{kind:ot.Kind.DOCUMENT,definitions:this.many(Oe.TokenKind.SOF,this.parseDefinition,Oe.TokenKind.EOF)})}parseDefinition(){if(this.peek(Oe.TokenKind.BRACE_L))return this.parseOperationDefinition();let t=this.peekDescription(),n=t?this._lexer.lookahead():this._lexer.token;if(n.kind===Oe.TokenKind.NAME){switch(n.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}if(t)throw(0,ec.syntaxError)(this._lexer.source,this._lexer.token.start,"Unexpected description, descriptions are supported only on type definitions.");switch(n.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"extend":return this.parseTypeSystemExtension()}}throw this.unexpected(n)}parseOperationDefinition(){let t=this._lexer.token;if(this.peek(Oe.TokenKind.BRACE_L))return this.node(t,{kind:ot.Kind.OPERATION_DEFINITION,operation:Hd.OperationTypeNode.QUERY,name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet()});let n=this.parseOperationType(),r;return this.peek(Oe.TokenKind.NAME)&&(r=this.parseName()),this.node(t,{kind:ot.Kind.OPERATION_DEFINITION,operation:n,name:r,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseOperationType(){let t=this.expectToken(Oe.TokenKind.NAME);switch(t.value){case"query":return Hd.OperationTypeNode.QUERY;case"mutation":return Hd.OperationTypeNode.MUTATION;case"subscription":return Hd.OperationTypeNode.SUBSCRIPTION}throw this.unexpected(t)}parseVariableDefinitions(){return this.optionalMany(Oe.TokenKind.PAREN_L,this.parseVariableDefinition,Oe.TokenKind.PAREN_R)}parseVariableDefinition(){return this.node(this._lexer.token,{kind:ot.Kind.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(Oe.TokenKind.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(Oe.TokenKind.EQUALS)?this.parseConstValueLiteral():void 0,directives:this.parseConstDirectives()})}parseVariable(){let t=this._lexer.token;return this.expectToken(Oe.TokenKind.DOLLAR),this.node(t,{kind:ot.Kind.VARIABLE,name:this.parseName()})}parseSelectionSet(){return this.node(this._lexer.token,{kind:ot.Kind.SELECTION_SET,selections:this.many(Oe.TokenKind.BRACE_L,this.parseSelection,Oe.TokenKind.BRACE_R)})}parseSelection(){return this.peek(Oe.TokenKind.SPREAD)?this.parseFragment():this.parseField()}parseField(){let t=this._lexer.token,n=this.parseName(),r,i;return this.expectOptionalToken(Oe.TokenKind.COLON)?(r=n,i=this.parseName()):i=n,this.node(t,{kind:ot.Kind.FIELD,alias:r,name:i,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(Oe.TokenKind.BRACE_L)?this.parseSelectionSet():void 0})}parseArguments(t){let n=t?this.parseConstArgument:this.parseArgument;return this.optionalMany(Oe.TokenKind.PAREN_L,n,Oe.TokenKind.PAREN_R)}parseArgument(t=!1){let n=this._lexer.token,r=this.parseName();return this.expectToken(Oe.TokenKind.COLON),this.node(n,{kind:ot.Kind.ARGUMENT,name:r,value:this.parseValueLiteral(t)})}parseConstArgument(){return this.parseArgument(!0)}parseFragment(){let t=this._lexer.token;this.expectToken(Oe.TokenKind.SPREAD);let n=this.expectOptionalKeyword("on");return!n&&this.peek(Oe.TokenKind.NAME)?this.node(t,{kind:ot.Kind.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1)}):this.node(t,{kind:ot.Kind.INLINE_FRAGMENT,typeCondition:n?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentDefinition(){let t=this._lexer.token;return this.expectKeyword("fragment"),this._options.allowLegacyFragmentVariables===!0?this.node(t,{kind:ot.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()}):this.node(t,{kind:ot.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentName(){if(this._lexer.token.value==="on")throw this.unexpected();return this.parseName()}parseValueLiteral(t){let n=this._lexer.token;switch(n.kind){case Oe.TokenKind.BRACKET_L:return this.parseList(t);case Oe.TokenKind.BRACE_L:return this.parseObject(t);case Oe.TokenKind.INT:return this.advanceLexer(),this.node(n,{kind:ot.Kind.INT,value:n.value});case Oe.TokenKind.FLOAT:return this.advanceLexer(),this.node(n,{kind:ot.Kind.FLOAT,value:n.value});case Oe.TokenKind.STRING:case Oe.TokenKind.BLOCK_STRING:return this.parseStringLiteral();case Oe.TokenKind.NAME:switch(this.advanceLexer(),n.value){case"true":return this.node(n,{kind:ot.Kind.BOOLEAN,value:!0});case"false":return this.node(n,{kind:ot.Kind.BOOLEAN,value:!1});case"null":return this.node(n,{kind:ot.Kind.NULL});default:return this.node(n,{kind:ot.Kind.ENUM,value:n.value})}case Oe.TokenKind.DOLLAR:if(t)if(this.expectToken(Oe.TokenKind.DOLLAR),this._lexer.token.kind===Oe.TokenKind.NAME){let r=this._lexer.token.value;throw(0,ec.syntaxError)(this._lexer.source,n.start,`Unexpected variable "$${r}" in constant value.`)}else throw this.unexpected(n);return this.parseVariable();default:throw this.unexpected()}}parseConstValueLiteral(){return this.parseValueLiteral(!0)}parseStringLiteral(){let t=this._lexer.token;return this.advanceLexer(),this.node(t,{kind:ot.Kind.STRING,value:t.value,block:t.kind===Oe.TokenKind.BLOCK_STRING})}parseList(t){let n=()=>this.parseValueLiteral(t);return this.node(this._lexer.token,{kind:ot.Kind.LIST,values:this.any(Oe.TokenKind.BRACKET_L,n,Oe.TokenKind.BRACKET_R)})}parseObject(t){let n=()=>this.parseObjectField(t);return this.node(this._lexer.token,{kind:ot.Kind.OBJECT,fields:this.any(Oe.TokenKind.BRACE_L,n,Oe.TokenKind.BRACE_R)})}parseObjectField(t){let n=this._lexer.token,r=this.parseName();return this.expectToken(Oe.TokenKind.COLON),this.node(n,{kind:ot.Kind.OBJECT_FIELD,name:r,value:this.parseValueLiteral(t)})}parseDirectives(t){let n=[];for(;this.peek(Oe.TokenKind.AT);)n.push(this.parseDirective(t));return n}parseConstDirectives(){return this.parseDirectives(!0)}parseDirective(t){let n=this._lexer.token;return this.expectToken(Oe.TokenKind.AT),this.node(n,{kind:ot.Kind.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(t)})}parseTypeReference(){let t=this._lexer.token,n;if(this.expectOptionalToken(Oe.TokenKind.BRACKET_L)){let r=this.parseTypeReference();this.expectToken(Oe.TokenKind.BRACKET_R),n=this.node(t,{kind:ot.Kind.LIST_TYPE,type:r})}else n=this.parseNamedType();return this.expectOptionalToken(Oe.TokenKind.BANG)?this.node(t,{kind:ot.Kind.NON_NULL_TYPE,type:n}):n}parseNamedType(){return this.node(this._lexer.token,{kind:ot.Kind.NAMED_TYPE,name:this.parseName()})}peekDescription(){return this.peek(Oe.TokenKind.STRING)||this.peek(Oe.TokenKind.BLOCK_STRING)}parseDescription(){if(this.peekDescription())return this.parseStringLiteral()}parseSchemaDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("schema");let r=this.parseConstDirectives(),i=this.many(Oe.TokenKind.BRACE_L,this.parseOperationTypeDefinition,Oe.TokenKind.BRACE_R);return this.node(t,{kind:ot.Kind.SCHEMA_DEFINITION,description:n,directives:r,operationTypes:i})}parseOperationTypeDefinition(){let t=this._lexer.token,n=this.parseOperationType();this.expectToken(Oe.TokenKind.COLON);let r=this.parseNamedType();return this.node(t,{kind:ot.Kind.OPERATION_TYPE_DEFINITION,operation:n,type:r})}parseScalarTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("scalar");let r=this.parseName(),i=this.parseConstDirectives();return this.node(t,{kind:ot.Kind.SCALAR_TYPE_DEFINITION,description:n,name:r,directives:i})}parseObjectTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("type");let r=this.parseName(),i=this.parseImplementsInterfaces(),a=this.parseConstDirectives(),o=this.parseFieldsDefinition();return this.node(t,{kind:ot.Kind.OBJECT_TYPE_DEFINITION,description:n,name:r,interfaces:i,directives:a,fields:o})}parseImplementsInterfaces(){return this.expectOptionalKeyword("implements")?this.delimitedMany(Oe.TokenKind.AMP,this.parseNamedType):[]}parseFieldsDefinition(){return this.optionalMany(Oe.TokenKind.BRACE_L,this.parseFieldDefinition,Oe.TokenKind.BRACE_R)}parseFieldDefinition(){let t=this._lexer.token,n=this.parseDescription(),r=this.parseName(),i=this.parseArgumentDefs();this.expectToken(Oe.TokenKind.COLON);let a=this.parseTypeReference(),o=this.parseConstDirectives();return this.node(t,{kind:ot.Kind.FIELD_DEFINITION,description:n,name:r,arguments:i,type:a,directives:o})}parseArgumentDefs(){return this.optionalMany(Oe.TokenKind.PAREN_L,this.parseInputValueDef,Oe.TokenKind.PAREN_R)}parseInputValueDef(){let t=this._lexer.token,n=this.parseDescription(),r=this.parseName();this.expectToken(Oe.TokenKind.COLON);let i=this.parseTypeReference(),a;this.expectOptionalToken(Oe.TokenKind.EQUALS)&&(a=this.parseConstValueLiteral());let o=this.parseConstDirectives();return this.node(t,{kind:ot.Kind.INPUT_VALUE_DEFINITION,description:n,name:r,type:i,defaultValue:a,directives:o})}parseInterfaceTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("interface");let r=this.parseName(),i=this.parseImplementsInterfaces(),a=this.parseConstDirectives(),o=this.parseFieldsDefinition();return this.node(t,{kind:ot.Kind.INTERFACE_TYPE_DEFINITION,description:n,name:r,interfaces:i,directives:a,fields:o})}parseUnionTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("union");let r=this.parseName(),i=this.parseConstDirectives(),a=this.parseUnionMemberTypes();return this.node(t,{kind:ot.Kind.UNION_TYPE_DEFINITION,description:n,name:r,directives:i,types:a})}parseUnionMemberTypes(){return this.expectOptionalToken(Oe.TokenKind.EQUALS)?this.delimitedMany(Oe.TokenKind.PIPE,this.parseNamedType):[]}parseEnumTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("enum");let r=this.parseName(),i=this.parseConstDirectives(),a=this.parseEnumValuesDefinition();return this.node(t,{kind:ot.Kind.ENUM_TYPE_DEFINITION,description:n,name:r,directives:i,values:a})}parseEnumValuesDefinition(){return this.optionalMany(Oe.TokenKind.BRACE_L,this.parseEnumValueDefinition,Oe.TokenKind.BRACE_R)}parseEnumValueDefinition(){let t=this._lexer.token,n=this.parseDescription(),r=this.parseEnumValueName(),i=this.parseConstDirectives();return this.node(t,{kind:ot.Kind.ENUM_VALUE_DEFINITION,description:n,name:r,directives:i})}parseEnumValueName(){if(this._lexer.token.value==="true"||this._lexer.token.value==="false"||this._lexer.token.value==="null")throw(0,ec.syntaxError)(this._lexer.source,this._lexer.token.start,`${$m(this._lexer.token)} is reserved and cannot be used for an enum value.`);return this.parseName()}parseInputObjectTypeDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("input");let r=this.parseName(),i=this.parseConstDirectives(),a=this.parseInputFieldsDefinition();return this.node(t,{kind:ot.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:n,name:r,directives:i,fields:a})}parseInputFieldsDefinition(){return this.optionalMany(Oe.TokenKind.BRACE_L,this.parseInputValueDef,Oe.TokenKind.BRACE_R)}parseTypeSystemExtension(){let t=this._lexer.lookahead();if(t.kind===Oe.TokenKind.NAME)switch(t.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(t)}parseSchemaExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");let n=this.parseConstDirectives(),r=this.optionalMany(Oe.TokenKind.BRACE_L,this.parseOperationTypeDefinition,Oe.TokenKind.BRACE_R);if(n.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:ot.Kind.SCHEMA_EXTENSION,directives:n,operationTypes:r})}parseScalarTypeExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");let n=this.parseName(),r=this.parseConstDirectives();if(r.length===0)throw this.unexpected();return this.node(t,{kind:ot.Kind.SCALAR_TYPE_EXTENSION,name:n,directives:r})}parseObjectTypeExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");let n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseConstDirectives(),a=this.parseFieldsDefinition();if(r.length===0&&i.length===0&&a.length===0)throw this.unexpected();return this.node(t,{kind:ot.Kind.OBJECT_TYPE_EXTENSION,name:n,interfaces:r,directives:i,fields:a})}parseInterfaceTypeExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");let n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseConstDirectives(),a=this.parseFieldsDefinition();if(r.length===0&&i.length===0&&a.length===0)throw this.unexpected();return this.node(t,{kind:ot.Kind.INTERFACE_TYPE_EXTENSION,name:n,interfaces:r,directives:i,fields:a})}parseUnionTypeExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");let n=this.parseName(),r=this.parseConstDirectives(),i=this.parseUnionMemberTypes();if(r.length===0&&i.length===0)throw this.unexpected();return this.node(t,{kind:ot.Kind.UNION_TYPE_EXTENSION,name:n,directives:r,types:i})}parseEnumTypeExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");let n=this.parseName(),r=this.parseConstDirectives(),i=this.parseEnumValuesDefinition();if(r.length===0&&i.length===0)throw this.unexpected();return this.node(t,{kind:ot.Kind.ENUM_TYPE_EXTENSION,name:n,directives:r,values:i})}parseInputObjectTypeExtension(){let t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");let n=this.parseName(),r=this.parseConstDirectives(),i=this.parseInputFieldsDefinition();if(r.length===0&&i.length===0)throw this.unexpected();return this.node(t,{kind:ot.Kind.INPUT_OBJECT_TYPE_EXTENSION,name:n,directives:r,fields:i})}parseDirectiveDefinition(){let t=this._lexer.token,n=this.parseDescription();this.expectKeyword("directive"),this.expectToken(Oe.TokenKind.AT);let r=this.parseName(),i=this.parseArgumentDefs(),a=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");let o=this.parseDirectiveLocations();return this.node(t,{kind:ot.Kind.DIRECTIVE_DEFINITION,description:n,name:r,arguments:i,repeatable:a,locations:o})}parseDirectiveLocations(){return this.delimitedMany(Oe.TokenKind.PIPE,this.parseDirectiveLocation)}parseDirectiveLocation(){let t=this._lexer.token,n=this.parseName();if(Object.prototype.hasOwnProperty.call(s3.DirectiveLocation,n.value))return n;throw this.unexpected(t)}node(t,n){return this._options.noLocation!==!0&&(n.loc=new Hd.Location(t,this._lexer.lastToken,this._lexer.source)),n}peek(t){return this._lexer.token.kind===t}expectToken(t){let n=this._lexer.token;if(n.kind===t)return this.advanceLexer(),n;throw(0,ec.syntaxError)(this._lexer.source,n.start,`Expected ${nF(t)}, found ${$m(n)}.`)}expectOptionalToken(t){return this._lexer.token.kind===t?(this.advanceLexer(),!0):!1}expectKeyword(t){let n=this._lexer.token;if(n.kind===Oe.TokenKind.NAME&&n.value===t)this.advanceLexer();else throw(0,ec.syntaxError)(this._lexer.source,n.start,`Expected "${t}", found ${$m(n)}.`)}expectOptionalKeyword(t){let n=this._lexer.token;return n.kind===Oe.TokenKind.NAME&&n.value===t?(this.advanceLexer(),!0):!1}unexpected(t){let n=t!=null?t:this._lexer.token;return(0,ec.syntaxError)(this._lexer.source,n.start,`Unexpected ${$m(n)}.`)}any(t,n,r){this.expectToken(t);let i=[];for(;!this.expectOptionalToken(r);)i.push(n.call(this));return i}optionalMany(t,n,r){if(this.expectOptionalToken(t)){let i=[];do i.push(n.call(this));while(!this.expectOptionalToken(r));return i}return[]}many(t,n,r){this.expectToken(t);let i=[];do i.push(n.call(this));while(!this.expectOptionalToken(r));return i}delimitedMany(t,n){this.expectOptionalToken(t);let r=[];do r.push(n.call(this));while(this.expectOptionalToken(t));return r}advanceLexer(){let{maxTokens:t}=this._options,n=this._lexer.advance();if(t!==void 0&&n.kind!==Oe.TokenKind.EOF&&(++this._tokenCounter,this._tokenCounter>t))throw(0,ec.syntaxError)(this._lexer.source,n.start,`Document contains more that ${t} tokens. Parsing aborted.`)}};ou.Parser=tc;function $m(e){let t=e.value;return nF(e.kind)+(t!=null?` "${t}"`:"")}function nF(e){return(0,tF.isPunctuatorTokenKind)(e)?`"${e}"`:e}});var uu=F(bI=>{"use strict";m();T();N();Object.defineProperty(bI,"__esModule",{value:!0});bI.didYouMean=p3;var d3=5;function p3(e,t){let[n,r]=t?[e,t]:[void 0,e],i=" Did you mean ";n&&(i+=n+" ");let a=r.map(l=>`"${l}"`);switch(a.length){case 0:return"";case 1:return i+a[0]+"?";case 2:return i+a[0]+" or "+a[1]+"?"}let o=a.slice(0,d3),c=o.pop();return i+o.join(", ")+", or "+c+"?"}});var rF=F(AI=>{"use strict";m();T();N();Object.defineProperty(AI,"__esModule",{value:!0});AI.identityFunc=f3;function f3(e){return e}});var cu=F(RI=>{"use strict";m();T();N();Object.defineProperty(RI,"__esModule",{value:!0});RI.keyMap=m3;function m3(e,t){let n=Object.create(null);for(let r of e)n[t(r)]=r;return n}});var zd=F(PI=>{"use strict";m();T();N();Object.defineProperty(PI,"__esModule",{value:!0});PI.keyValMap=N3;function N3(e,t,n){let r=Object.create(null);for(let i of e)r[t(i)]=n(i);return r}});var wI=F(FI=>{"use strict";m();T();N();Object.defineProperty(FI,"__esModule",{value:!0});FI.mapValue=T3;function T3(e,t){let n=Object.create(null);for(let r of Object.keys(e))n[r]=t(e[r],r);return n}});var Wd=F(CI=>{"use strict";m();T();N();Object.defineProperty(CI,"__esModule",{value:!0});CI.naturalCompare=E3;function E3(e,t){let n=0,r=0;for(;n0);let c=0;do++r,c=c*10+a-LI,a=t.charCodeAt(r);while(Qm(a)&&c>0);if(oc)return 1}else{if(ia)return 1;++n,++r}}return e.length-t.length}var LI=48,h3=57;function Qm(e){return!isNaN(e)&&LI<=e&&e<=h3}});var lu=F(UI=>{"use strict";m();T();N();Object.defineProperty(UI,"__esModule",{value:!0});UI.suggestionList=I3;var y3=Wd();function I3(e,t){let n=Object.create(null),r=new BI(e),i=Math.floor(e.length*.4)+1;for(let a of t){let o=r.measure(a,i);o!==void 0&&(n[a]=o)}return Object.keys(n).sort((a,o)=>{let c=n[a]-n[o];return c!==0?c:(0,y3.naturalCompare)(a,o)})}var BI=class{constructor(t){this._input=t,this._inputLowerCase=t.toLowerCase(),this._inputArray=iF(this._inputLowerCase),this._rows=[new Array(t.length+1).fill(0),new Array(t.length+1).fill(0),new Array(t.length+1).fill(0)]}measure(t,n){if(this._input===t)return 0;let r=t.toLowerCase();if(this._inputLowerCase===r)return 1;let i=iF(r),a=this._inputArray;if(i.lengthn)return;let l=this._rows;for(let f=0;f<=c;f++)l[0][f]=f;for(let f=1;f<=o;f++){let y=l[(f-1)%3],I=l[f%3],v=I[0]=f;for(let w=1;w<=c;w++){let U=i[f-1]===a[w-1]?0:1,V=Math.min(y[w]+1,I[w-1]+1,y[w-1]+U);if(f>1&&w>1&&i[f-1]===a[w-2]&&i[f-2]===a[w-1]){let Y=l[(f-2)%3][w-2];V=Math.min(V,Y+1)}Vn)return}let d=l[o%3][c];return d<=n?d:void 0}};function iF(e){let t=e.length,n=new Array(t);for(let r=0;r{"use strict";m();T();N();Object.defineProperty(kI,"__esModule",{value:!0});kI.toObjMap=g3;function g3(e){if(e==null)return Object.create(null);if(Object.getPrototypeOf(e)===null)return e;let t=Object.create(null);for(let[n,r]of Object.entries(e))t[n]=r;return t}});var aF=F(MI=>{"use strict";m();T();N();Object.defineProperty(MI,"__esModule",{value:!0});MI.printString=_3;function _3(e){return`"${e.replace(v3,S3)}"`}var v3=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function S3(e){return O3[e.charCodeAt(0)]}var O3=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\u007F","\\u0080","\\u0081","\\u0082","\\u0083","\\u0084","\\u0085","\\u0086","\\u0087","\\u0088","\\u0089","\\u008A","\\u008B","\\u008C","\\u008D","\\u008E","\\u008F","\\u0090","\\u0091","\\u0092","\\u0093","\\u0094","\\u0095","\\u0096","\\u0097","\\u0098","\\u0099","\\u009A","\\u009B","\\u009C","\\u009D","\\u009E","\\u009F"]});var nc=F(du=>{"use strict";m();T();N();Object.defineProperty(du,"__esModule",{value:!0});du.BREAK=void 0;du.getEnterLeaveForKind=Jm;du.getVisitFn=P3;du.visit=A3;du.visitInParallel=R3;var D3=Vr(),b3=Wt(),xI=Ba(),sF=Lt(),Tl=Object.freeze({});du.BREAK=Tl;function A3(e,t,n=xI.QueryDocumentKeys){let r=new Map;for(let Y of Object.values(sF.Kind))r.set(Y,Jm(t,Y));let i,a=Array.isArray(e),o=[e],c=-1,l=[],d=e,f,y,I=[],v=[];do{c++;let Y=c===o.length,re=Y&&l.length!==0;if(Y){if(f=v.length===0?void 0:I[I.length-1],d=y,y=v.pop(),re)if(a){d=d.slice();let me=0;for(let[ue,Ae]of l){let Me=ue-me;Ae===null?(d.splice(Me,1),me++):d[Me]=Ae}}else{d=Object.defineProperties({},Object.getOwnPropertyDescriptors(d));for(let[me,ue]of l)d[me]=ue}c=i.index,o=i.keys,l=i.edits,a=i.inArray,i=i.prev}else if(y){if(f=a?c:o[c],d=y[f],d==null)continue;I.push(f)}let ne;if(!Array.isArray(d)){var w,U;(0,xI.isNode)(d)||(0,D3.devAssert)(!1,`Invalid AST Node: ${(0,b3.inspect)(d)}.`);let me=Y?(w=r.get(d.kind))===null||w===void 0?void 0:w.leave:(U=r.get(d.kind))===null||U===void 0?void 0:U.enter;if(ne=me==null?void 0:me.call(t,d,f,y,I,v),ne===Tl)break;if(ne===!1){if(!Y){I.pop();continue}}else if(ne!==void 0&&(l.push([f,ne]),!Y))if((0,xI.isNode)(ne))d=ne;else{I.pop();continue}}if(ne===void 0&&re&&l.push([f,d]),Y)I.pop();else{var V;i={inArray:a,index:c,keys:o,edits:l,prev:i},a=Array.isArray(d),o=a?d:(V=n[d.kind])!==null&&V!==void 0?V:[],c=-1,l=[],y&&v.push(y),y=d}}while(i!==void 0);return l.length!==0?l[l.length-1][1]:e}function R3(e){let t=new Array(e.length).fill(null),n=Object.create(null);for(let r of Object.values(sF.Kind)){let i=!1,a=new Array(e.length).fill(void 0),o=new Array(e.length).fill(void 0);for(let l=0;l{"use strict";m();T();N();Object.defineProperty(qI,"__esModule",{value:!0});qI.print=C3;var F3=Vd(),w3=aF(),L3=nc();function C3(e){return(0,L3.visit)(e,U3)}var B3=80,U3={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>qe(e.definitions,` -`)},OperationDefinition:{leave(e){let t=Dt("(",Ve(e.variableDefinitions,", "),")"),n=Ve([e.operation,Ve([e.name,t]),Ve(e.directives," ")]," ");return(n==="query"?"":n+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:n,directives:r})=>e+": "+t+Dt(" = ",n)+Dt(" ",Ve(r," "))},SelectionSet:{leave:({selections:e})=>ta(e)},Field:{leave({alias:e,name:t,arguments:n,directives:r,selectionSet:i}){let a=Dt("",e,": ")+t,o=a+Dt("(",Ve(n,", "),")");return o.length>l3&&(o=a+Dt(`( -`,Lm(Ve(n,` +`)},OperationDefinition:{leave(e){let t=At("(",qe(e.variableDefinitions,", "),")"),n=qe([e.operation,qe([e.name,t]),qe(e.directives," ")]," ");return(n==="query"?"":n+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:n,directives:r})=>e+": "+t+At(" = ",n)+At(" ",qe(r," "))},SelectionSet:{leave:({selections:e})=>ca(e)},Field:{leave({alias:e,name:t,arguments:n,directives:r,selectionSet:i}){let a=At("",e,": ")+t,o=a+At("(",qe(n,", "),")");return o.length>B3&&(o=a+At(`( +`,Hm(qe(n,` `)),` -)`)),Ve([o,Ve(r," "),i]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+Dt(" ",Ve(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:n})=>Ve(["...",Dt("on ",e),Ve(t," "),n]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:n,directives:r,selectionSet:i})=>`fragment ${e}${Dt("(",Ve(n,", "),")")} on ${t} ${Dt("",Ve(r," ")," ")}`+i},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?(0,s3.printBlockString)(e):(0,o3.printString)(e)},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+Ve(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+Ve(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+Dt("(",Ve(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:n})=>Dt("",e,` -`)+Ve(["schema",Ve(t," "),ta(n)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:n})=>Dt("",e,` -`)+Ve(["scalar",t,Ve(n," ")]," ")},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:i})=>Dt("",e,` -`)+Ve(["type",t,Dt("implements ",Ve(n," & ")),Ve(r," "),ta(i)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:n,type:r,directives:i})=>Dt("",e,` -`)+t+(jP(n)?Dt(`( -`,Lm(Ve(n,` +)`)),qe([o,qe(r," "),i]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+At(" ",qe(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:n})=>qe(["...",At("on ",e),qe(t," "),n]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:n,directives:r,selectionSet:i})=>`fragment ${e}${At("(",qe(n,", "),")")} on ${t} ${At("",qe(r," ")," ")}`+i},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?(0,F3.printBlockString)(e):(0,w3.printString)(e)},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+qe(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+qe(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+At("(",qe(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:n})=>At("",e,` +`)+qe(["schema",qe(t," "),ca(n)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:n})=>At("",e,` +`)+qe(["scalar",t,qe(n," ")]," ")},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:i})=>At("",e,` +`)+qe(["type",t,At("implements ",qe(n," & ")),qe(r," "),ca(i)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:n,type:r,directives:i})=>At("",e,` +`)+t+(oF(n)?At(`( +`,Hm(qe(n,` `)),` -)`):Dt("(",Ve(n,", "),")"))+": "+r+Dt(" ",Ve(i," "))},InputValueDefinition:{leave:({description:e,name:t,type:n,defaultValue:r,directives:i})=>Dt("",e,` -`)+Ve([t+": "+n,Dt("= ",r),Ve(i," ")]," ")},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:i})=>Dt("",e,` -`)+Ve(["interface",t,Dt("implements ",Ve(n," & ")),Ve(r," "),ta(i)]," ")},UnionTypeDefinition:{leave:({description:e,name:t,directives:n,types:r})=>Dt("",e,` -`)+Ve(["union",t,Ve(n," "),Dt("= ",Ve(r," | "))]," ")},EnumTypeDefinition:{leave:({description:e,name:t,directives:n,values:r})=>Dt("",e,` -`)+Ve(["enum",t,Ve(n," "),ta(r)]," ")},EnumValueDefinition:{leave:({description:e,name:t,directives:n})=>Dt("",e,` -`)+Ve([t,Ve(n," ")]," ")},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:n,fields:r})=>Dt("",e,` -`)+Ve(["input",t,Ve(n," "),ta(r)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:n,repeatable:r,locations:i})=>Dt("",e,` -`)+"directive @"+t+(jP(n)?Dt(`( -`,Lm(Ve(n,` +)`):At("(",qe(n,", "),")"))+": "+r+At(" ",qe(i," "))},InputValueDefinition:{leave:({description:e,name:t,type:n,defaultValue:r,directives:i})=>At("",e,` +`)+qe([t+": "+n,At("= ",r),qe(i," ")]," ")},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:i})=>At("",e,` +`)+qe(["interface",t,At("implements ",qe(n," & ")),qe(r," "),ca(i)]," ")},UnionTypeDefinition:{leave:({description:e,name:t,directives:n,types:r})=>At("",e,` +`)+qe(["union",t,qe(n," "),At("= ",qe(r," | "))]," ")},EnumTypeDefinition:{leave:({description:e,name:t,directives:n,values:r})=>At("",e,` +`)+qe(["enum",t,qe(n," "),ca(r)]," ")},EnumValueDefinition:{leave:({description:e,name:t,directives:n})=>At("",e,` +`)+qe([t,qe(n," ")]," ")},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:n,fields:r})=>At("",e,` +`)+qe(["input",t,qe(n," "),ca(r)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:n,repeatable:r,locations:i})=>At("",e,` +`)+"directive @"+t+(oF(n)?At(`( +`,Hm(qe(n,` `)),` -)`):Dt("(",Ve(n,", "),")"))+(r?" repeatable":"")+" on "+Ve(i," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>Ve(["extend schema",Ve(e," "),ta(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>Ve(["extend scalar",e,Ve(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>Ve(["extend type",e,Dt("implements ",Ve(t," & ")),Ve(n," "),ta(r)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>Ve(["extend interface",e,Dt("implements ",Ve(t," & ")),Ve(n," "),ta(r)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:n})=>Ve(["extend union",e,Ve(t," "),Dt("= ",Ve(n," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:n})=>Ve(["extend enum",e,Ve(t," "),ta(n)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:n})=>Ve(["extend input",e,Ve(t," "),ta(n)]," ")}};function Ve(e,t=""){var n;return(n=e==null?void 0:e.filter(r=>r).join(t))!==null&&n!==void 0?n:""}function ta(e){return Dt(`{ -`,Lm(Ve(e,` +)`):At("(",qe(n,", "),")"))+(r?" repeatable":"")+" on "+qe(i," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>qe(["extend schema",qe(e," "),ca(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>qe(["extend scalar",e,qe(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>qe(["extend type",e,At("implements ",qe(t," & ")),qe(n," "),ca(r)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>qe(["extend interface",e,At("implements ",qe(t," & ")),qe(n," "),ca(r)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:n})=>qe(["extend union",e,qe(t," "),At("= ",qe(n," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:n})=>qe(["extend enum",e,qe(t," "),ca(n)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:n})=>qe(["extend input",e,qe(t," "),ca(n)]," ")}};function qe(e,t=""){var n;return(n=e==null?void 0:e.filter(r=>r).join(t))!==null&&n!==void 0?n:""}function ca(e){return At(`{ +`,Hm(qe(e,` `)),` -}`)}function Dt(e,t,n=""){return t!=null&&t!==""?e+t+n:""}function Lm(e){return Dt(" ",e.replace(/\n/g,` - `))}function jP(e){var t;return(t=e==null?void 0:e.some(n=>n.includes(` -`)))!==null&&t!==void 0?t:!1}});var _I=w(gI=>{"use strict";m();T();N();Object.defineProperty(gI,"__esModule",{value:!0});gI.valueFromASTUntyped=II;var f3=xd(),Ts=Ft();function II(e,t){switch(e.kind){case Ts.Kind.NULL:return null;case Ts.Kind.INT:return parseInt(e.value,10);case Ts.Kind.FLOAT:return parseFloat(e.value);case Ts.Kind.STRING:case Ts.Kind.ENUM:case Ts.Kind.BOOLEAN:return e.value;case Ts.Kind.LIST:return e.values.map(n=>II(n,t));case Ts.Kind.OBJECT:return(0,f3.keyValMap)(e.fields,n=>n.name.value,n=>II(n.value,t));case Ts.Kind.VARIABLE:return t==null?void 0:t[e.name.value]}}});var Vd=w(Bm=>{"use strict";m();T();N();Object.defineProperty(Bm,"__esModule",{value:!0});Bm.assertEnumValueName=p3;Bm.assertName=$P;var KP=Br(),Cm=ze(),GP=_m();function $P(e){if(e!=null||(0,KP.devAssert)(!1,"Must provide name."),typeof e=="string"||(0,KP.devAssert)(!1,"Expected name to be a string."),e.length===0)throw new Cm.GraphQLError("Expected name to be a non-empty string.");for(let t=1;t{"use strict";m();T();N();Object.defineProperty(Ge,"__esModule",{value:!0});Ge.GraphQLUnionType=Ge.GraphQLScalarType=Ge.GraphQLObjectType=Ge.GraphQLNonNull=Ge.GraphQLList=Ge.GraphQLInterfaceType=Ge.GraphQLInputObjectType=Ge.GraphQLEnumType=void 0;Ge.argsToArgsConfig=iF;Ge.assertAbstractType=L3;Ge.assertCompositeType=w3;Ge.assertEnumType=O3;Ge.assertInputObjectType=D3;Ge.assertInputType=R3;Ge.assertInterfaceType=v3;Ge.assertLeafType=F3;Ge.assertListType=b3;Ge.assertNamedType=k3;Ge.assertNonNullType=A3;Ge.assertNullableType=B3;Ge.assertObjectType=_3;Ge.assertOutputType=P3;Ge.assertScalarType=g3;Ge.assertType=I3;Ge.assertUnionType=S3;Ge.assertWrappingType=C3;Ge.defineArguments=nF;Ge.getNamedType=M3;Ge.getNullableType=U3;Ge.isAbstractType=XP;Ge.isCompositeType=WP;Ge.isEnumType=zu;Ge.isInputObjectType=Kd;Ge.isInputType=vI;Ge.isInterfaceType=Ju;Ge.isLeafType=zP;Ge.isListType=Ym;Ge.isNamedType=ZP;Ge.isNonNullType=au;Ge.isNullableType=OI;Ge.isObjectType=ol;Ge.isOutputType=SI;Ge.isRequiredArgument=x3;Ge.isRequiredInputField=j3;Ge.isScalarType=Yu;Ge.isType=Qm;Ge.isUnionType=Hu;Ge.isWrappingType=Gd;Ge.resolveObjMapThunk=bI;Ge.resolveReadonlyArrayThunk=DI;var sr=Br(),m3=eu(),QP=MP(),fn=Xt(),iu=Ud(),N3=Da(),T3=tu(),HP=xd(),$m=dI(),E3=nu(),Aa=Fm(),jd=ze(),h3=Ft(),YP=li(),y3=_I(),Ra=Vd();function Qm(e){return Yu(e)||ol(e)||Ju(e)||Hu(e)||zu(e)||Kd(e)||Ym(e)||au(e)}function I3(e){if(!Qm(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL type.`);return e}function Yu(e){return(0,iu.instanceOf)(e,xm)}function g3(e){if(!Yu(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL Scalar type.`);return e}function ol(e){return(0,iu.instanceOf)(e,qm)}function _3(e){if(!ol(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL Object type.`);return e}function Ju(e){return(0,iu.instanceOf)(e,Vm)}function v3(e){if(!Ju(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL Interface type.`);return e}function Hu(e){return(0,iu.instanceOf)(e,jm)}function S3(e){if(!Hu(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL Union type.`);return e}function zu(e){return(0,iu.instanceOf)(e,Km)}function O3(e){if(!zu(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL Enum type.`);return e}function Kd(e){return(0,iu.instanceOf)(e,Gm)}function D3(e){if(!Kd(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL Input Object type.`);return e}function Ym(e){return(0,iu.instanceOf)(e,km)}function b3(e){if(!Ym(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL List type.`);return e}function au(e){return(0,iu.instanceOf)(e,Mm)}function A3(e){if(!au(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL Non-Null type.`);return e}function vI(e){return Yu(e)||zu(e)||Kd(e)||Gd(e)&&vI(e.ofType)}function R3(e){if(!vI(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL input type.`);return e}function SI(e){return Yu(e)||ol(e)||Ju(e)||Hu(e)||zu(e)||Gd(e)&&SI(e.ofType)}function P3(e){if(!SI(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL output type.`);return e}function zP(e){return Yu(e)||zu(e)}function F3(e){if(!zP(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL leaf type.`);return e}function WP(e){return ol(e)||Ju(e)||Hu(e)}function w3(e){if(!WP(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL composite type.`);return e}function XP(e){return Ju(e)||Hu(e)}function L3(e){if(!XP(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL abstract type.`);return e}var km=class{constructor(t){Qm(t)||(0,sr.devAssert)(!1,`Expected ${(0,fn.inspect)(t)} to be a GraphQL type.`),this.ofType=t}get[Symbol.toStringTag](){return"GraphQLList"}toString(){return"["+String(this.ofType)+"]"}toJSON(){return this.toString()}};Ge.GraphQLList=km;var Mm=class{constructor(t){OI(t)||(0,sr.devAssert)(!1,`Expected ${(0,fn.inspect)(t)} to be a GraphQL nullable type.`),this.ofType=t}get[Symbol.toStringTag](){return"GraphQLNonNull"}toString(){return String(this.ofType)+"!"}toJSON(){return this.toString()}};Ge.GraphQLNonNull=Mm;function Gd(e){return Ym(e)||au(e)}function C3(e){if(!Gd(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL wrapping type.`);return e}function OI(e){return Qm(e)&&!au(e)}function B3(e){if(!OI(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL nullable type.`);return e}function U3(e){if(e)return au(e)?e.ofType:e}function ZP(e){return Yu(e)||ol(e)||Ju(e)||Hu(e)||zu(e)||Kd(e)}function k3(e){if(!ZP(e))throw new Error(`Expected ${(0,fn.inspect)(e)} to be a GraphQL named type.`);return e}function M3(e){if(e){let t=e;for(;Gd(t);)t=t.ofType;return t}}function DI(e){return typeof e=="function"?e():e}function bI(e){return typeof e=="function"?e():e}var xm=class{constructor(t){var n,r,i,a;let o=(n=t.parseValue)!==null&&n!==void 0?n:QP.identityFunc;this.name=(0,Ra.assertName)(t.name),this.description=t.description,this.specifiedByURL=t.specifiedByURL,this.serialize=(r=t.serialize)!==null&&r!==void 0?r:QP.identityFunc,this.parseValue=o,this.parseLiteral=(i=t.parseLiteral)!==null&&i!==void 0?i:(c,l)=>o((0,y3.valueFromASTUntyped)(c,l)),this.extensions=(0,Aa.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(a=t.extensionASTNodes)!==null&&a!==void 0?a:[],t.specifiedByURL==null||typeof t.specifiedByURL=="string"||(0,sr.devAssert)(!1,`${this.name} must provide "specifiedByURL" as a string, but got: ${(0,fn.inspect)(t.specifiedByURL)}.`),t.serialize==null||typeof t.serialize=="function"||(0,sr.devAssert)(!1,`${this.name} must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.`),t.parseLiteral&&(typeof t.parseValue=="function"&&typeof t.parseLiteral=="function"||(0,sr.devAssert)(!1,`${this.name} must provide both "parseValue" and "parseLiteral" functions.`))}get[Symbol.toStringTag](){return"GraphQLScalarType"}toConfig(){return{name:this.name,description:this.description,specifiedByURL:this.specifiedByURL,serialize:this.serialize,parseValue:this.parseValue,parseLiteral:this.parseLiteral,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};Ge.GraphQLScalarType=xm;var qm=class{constructor(t){var n;this.name=(0,Ra.assertName)(t.name),this.description=t.description,this.isTypeOf=t.isTypeOf,this.extensions=(0,Aa.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(n=t.extensionASTNodes)!==null&&n!==void 0?n:[],this._fields=()=>tF(t),this._interfaces=()=>eF(t),t.isTypeOf==null||typeof t.isTypeOf=="function"||(0,sr.devAssert)(!1,`${this.name} must provide "isTypeOf" as a function, but got: ${(0,fn.inspect)(t.isTypeOf)}.`)}get[Symbol.toStringTag](){return"GraphQLObjectType"}getFields(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields}getInterfaces(){return typeof this._interfaces=="function"&&(this._interfaces=this._interfaces()),this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:rF(this.getFields()),isTypeOf:this.isTypeOf,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};Ge.GraphQLObjectType=qm;function eF(e){var t;let n=DI((t=e.interfaces)!==null&&t!==void 0?t:[]);return Array.isArray(n)||(0,sr.devAssert)(!1,`${e.name} interfaces must be an Array or a function which returns an Array.`),n}function tF(e){let t=bI(e.fields);return sl(t)||(0,sr.devAssert)(!1,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`),(0,$m.mapValue)(t,(n,r)=>{var i;sl(n)||(0,sr.devAssert)(!1,`${e.name}.${r} field config must be an object.`),n.resolve==null||typeof n.resolve=="function"||(0,sr.devAssert)(!1,`${e.name}.${r} field resolver must be a function if provided, but got: ${(0,fn.inspect)(n.resolve)}.`);let a=(i=n.args)!==null&&i!==void 0?i:{};return sl(a)||(0,sr.devAssert)(!1,`${e.name}.${r} args must be an object with argument names as keys.`),{name:(0,Ra.assertName)(r),description:n.description,type:n.type,args:nF(a),resolve:n.resolve,subscribe:n.subscribe,deprecationReason:n.deprecationReason,extensions:(0,Aa.toObjMap)(n.extensions),astNode:n.astNode}})}function nF(e){return Object.entries(e).map(([t,n])=>({name:(0,Ra.assertName)(t),description:n.description,type:n.type,defaultValue:n.defaultValue,deprecationReason:n.deprecationReason,extensions:(0,Aa.toObjMap)(n.extensions),astNode:n.astNode}))}function sl(e){return(0,N3.isObjectLike)(e)&&!Array.isArray(e)}function rF(e){return(0,$m.mapValue)(e,t=>({description:t.description,type:t.type,args:iF(t.args),resolve:t.resolve,subscribe:t.subscribe,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}))}function iF(e){return(0,HP.keyValMap)(e,t=>t.name,t=>({description:t.description,type:t.type,defaultValue:t.defaultValue,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}))}function x3(e){return au(e.type)&&e.defaultValue===void 0}var Vm=class{constructor(t){var n;this.name=(0,Ra.assertName)(t.name),this.description=t.description,this.resolveType=t.resolveType,this.extensions=(0,Aa.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(n=t.extensionASTNodes)!==null&&n!==void 0?n:[],this._fields=tF.bind(void 0,t),this._interfaces=eF.bind(void 0,t),t.resolveType==null||typeof t.resolveType=="function"||(0,sr.devAssert)(!1,`${this.name} must provide "resolveType" as a function, but got: ${(0,fn.inspect)(t.resolveType)}.`)}get[Symbol.toStringTag](){return"GraphQLInterfaceType"}getFields(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields}getInterfaces(){return typeof this._interfaces=="function"&&(this._interfaces=this._interfaces()),this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:rF(this.getFields()),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};Ge.GraphQLInterfaceType=Vm;var jm=class{constructor(t){var n;this.name=(0,Ra.assertName)(t.name),this.description=t.description,this.resolveType=t.resolveType,this.extensions=(0,Aa.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(n=t.extensionASTNodes)!==null&&n!==void 0?n:[],this._types=q3.bind(void 0,t),t.resolveType==null||typeof t.resolveType=="function"||(0,sr.devAssert)(!1,`${this.name} must provide "resolveType" as a function, but got: ${(0,fn.inspect)(t.resolveType)}.`)}get[Symbol.toStringTag](){return"GraphQLUnionType"}getTypes(){return typeof this._types=="function"&&(this._types=this._types()),this._types}toConfig(){return{name:this.name,description:this.description,types:this.getTypes(),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};Ge.GraphQLUnionType=jm;function q3(e){let t=DI(e.types);return Array.isArray(t)||(0,sr.devAssert)(!1,`Must provide Array of types or a function which returns such an array for Union ${e.name}.`),t}var Km=class{constructor(t){var n;this.name=(0,Ra.assertName)(t.name),this.description=t.description,this.extensions=(0,Aa.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(n=t.extensionASTNodes)!==null&&n!==void 0?n:[],this._values=typeof t.values=="function"?t.values:JP(this.name,t.values),this._valueLookup=null,this._nameLookup=null}get[Symbol.toStringTag](){return"GraphQLEnumType"}getValues(){return typeof this._values=="function"&&(this._values=JP(this.name,this._values())),this._values}getValue(t){return this._nameLookup===null&&(this._nameLookup=(0,T3.keyMap)(this.getValues(),n=>n.name)),this._nameLookup[t]}serialize(t){this._valueLookup===null&&(this._valueLookup=new Map(this.getValues().map(r=>[r.value,r])));let n=this._valueLookup.get(t);if(n===void 0)throw new jd.GraphQLError(`Enum "${this.name}" cannot represent value: ${(0,fn.inspect)(t)}`);return n.name}parseValue(t){if(typeof t!="string"){let r=(0,fn.inspect)(t);throw new jd.GraphQLError(`Enum "${this.name}" cannot represent non-string value: ${r}.`+Um(this,r))}let n=this.getValue(t);if(n==null)throw new jd.GraphQLError(`Value "${t}" does not exist in "${this.name}" enum.`+Um(this,t));return n.value}parseLiteral(t,n){if(t.kind!==h3.Kind.ENUM){let i=(0,YP.print)(t);throw new jd.GraphQLError(`Enum "${this.name}" cannot represent non-enum value: ${i}.`+Um(this,i),{nodes:t})}let r=this.getValue(t.value);if(r==null){let i=(0,YP.print)(t);throw new jd.GraphQLError(`Value "${i}" does not exist in "${this.name}" enum.`+Um(this,i),{nodes:t})}return r.value}toConfig(){let t=(0,HP.keyValMap)(this.getValues(),n=>n.name,n=>({description:n.description,value:n.value,deprecationReason:n.deprecationReason,extensions:n.extensions,astNode:n.astNode}));return{name:this.name,description:this.description,values:t,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};Ge.GraphQLEnumType=Km;function Um(e,t){let n=e.getValues().map(i=>i.name),r=(0,E3.suggestionList)(t,n);return(0,m3.didYouMean)("the enum value",r)}function JP(e,t){return sl(t)||(0,sr.devAssert)(!1,`${e} values must be an object with value names as keys.`),Object.entries(t).map(([n,r])=>(sl(r)||(0,sr.devAssert)(!1,`${e}.${n} must refer to an object with a "value" key representing an internal value but got: ${(0,fn.inspect)(r)}.`),{name:(0,Ra.assertEnumValueName)(n),description:r.description,value:r.value!==void 0?r.value:n,deprecationReason:r.deprecationReason,extensions:(0,Aa.toObjMap)(r.extensions),astNode:r.astNode}))}var Gm=class{constructor(t){var n,r;this.name=(0,Ra.assertName)(t.name),this.description=t.description,this.extensions=(0,Aa.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(n=t.extensionASTNodes)!==null&&n!==void 0?n:[],this.isOneOf=(r=t.isOneOf)!==null&&r!==void 0?r:!1,this._fields=V3.bind(void 0,t)}get[Symbol.toStringTag](){return"GraphQLInputObjectType"}getFields(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields}toConfig(){let t=(0,$m.mapValue)(this.getFields(),n=>({description:n.description,type:n.type,defaultValue:n.defaultValue,deprecationReason:n.deprecationReason,extensions:n.extensions,astNode:n.astNode}));return{name:this.name,description:this.description,fields:t,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes,isOneOf:this.isOneOf}}toString(){return this.name}toJSON(){return this.toString()}};Ge.GraphQLInputObjectType=Gm;function V3(e){let t=bI(e.fields);return sl(t)||(0,sr.devAssert)(!1,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`),(0,$m.mapValue)(t,(n,r)=>(!("resolve"in n)||(0,sr.devAssert)(!1,`${e.name}.${r} field has a resolve property, but Input Types cannot define resolvers.`),{name:(0,Ra.assertName)(r),description:n.description,type:n.type,defaultValue:n.defaultValue,deprecationReason:n.deprecationReason,extensions:(0,Aa.toObjMap)(n.extensions),astNode:n.astNode}))}function j3(e){return au(e.type)&&e.defaultValue===void 0}});var Qd=w($d=>{"use strict";m();T();N();Object.defineProperty($d,"__esModule",{value:!0});$d.doTypesOverlap=K3;$d.isEqualType=AI;$d.isTypeSubTypeOf=Jm;var gr=wt();function AI(e,t){return e===t?!0:(0,gr.isNonNullType)(e)&&(0,gr.isNonNullType)(t)||(0,gr.isListType)(e)&&(0,gr.isListType)(t)?AI(e.ofType,t.ofType):!1}function Jm(e,t,n){return t===n?!0:(0,gr.isNonNullType)(n)?(0,gr.isNonNullType)(t)?Jm(e,t.ofType,n.ofType):!1:(0,gr.isNonNullType)(t)?Jm(e,t.ofType,n):(0,gr.isListType)(n)?(0,gr.isListType)(t)?Jm(e,t.ofType,n.ofType):!1:(0,gr.isListType)(t)?!1:(0,gr.isAbstractType)(n)&&((0,gr.isInterfaceType)(t)||(0,gr.isObjectType)(t))&&e.isSubType(n,t)}function K3(e,t,n){return t===n?!0:(0,gr.isAbstractType)(t)?(0,gr.isAbstractType)(n)?e.getPossibleTypes(t).some(r=>e.isSubType(n,r)):e.isSubType(t,n):(0,gr.isAbstractType)(n)?e.isSubType(n,t):!1}});var Pa=w(Wn=>{"use strict";m();T();N();Object.defineProperty(Wn,"__esModule",{value:!0});Wn.GraphQLString=Wn.GraphQLInt=Wn.GraphQLID=Wn.GraphQLFloat=Wn.GraphQLBoolean=Wn.GRAPHQL_MIN_INT=Wn.GRAPHQL_MAX_INT=void 0;Wn.isSpecifiedScalarType=G3;Wn.specifiedScalarTypes=void 0;var na=Xt(),aF=Da(),or=ze(),Wu=Ft(),Yd=li(),Jd=wt(),Hm=2147483647;Wn.GRAPHQL_MAX_INT=Hm;var zm=-2147483648;Wn.GRAPHQL_MIN_INT=zm;var sF=new Jd.GraphQLScalarType({name:"Int",description:"The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.",serialize(e){let t=Hd(e);if(typeof t=="boolean")return t?1:0;let n=t;if(typeof t=="string"&&t!==""&&(n=Number(t)),typeof n!="number"||!Number.isInteger(n))throw new or.GraphQLError(`Int cannot represent non-integer value: ${(0,na.inspect)(t)}`);if(n>Hm||nHm||eHm||te.name===t)}function Hd(e){if((0,aF.isObjectLike)(e)){if(typeof e.valueOf=="function"){let t=e.valueOf();if(!(0,aF.isObjectLike)(t))return t}if(typeof e.toJSON=="function")return e.toJSON()}return e}});var Qr=w(qn=>{"use strict";m();T();N();Object.defineProperty(qn,"__esModule",{value:!0});qn.GraphQLSpecifiedByDirective=qn.GraphQLSkipDirective=qn.GraphQLOneOfDirective=qn.GraphQLIncludeDirective=qn.GraphQLDirective=qn.GraphQLDeprecatedDirective=qn.DEFAULT_DEPRECATION_REASON=void 0;qn.assertDirective=z3;qn.isDirective=pF;qn.isSpecifiedDirective=W3;qn.specifiedDirectives=void 0;var fF=Br(),$3=Xt(),Q3=Ud(),Y3=Da(),J3=Fm(),Ai=nl(),H3=Vd(),zd=wt(),Wm=Pa();function pF(e){return(0,Q3.instanceOf)(e,Es)}function z3(e){if(!pF(e))throw new Error(`Expected ${(0,$3.inspect)(e)} to be a GraphQL directive.`);return e}var Es=class{constructor(t){var n,r;this.name=(0,H3.assertName)(t.name),this.description=t.description,this.locations=t.locations,this.isRepeatable=(n=t.isRepeatable)!==null&&n!==void 0?n:!1,this.extensions=(0,J3.toObjMap)(t.extensions),this.astNode=t.astNode,Array.isArray(t.locations)||(0,fF.devAssert)(!1,`@${t.name} locations must be an Array.`);let i=(r=t.args)!==null&&r!==void 0?r:{};(0,Y3.isObjectLike)(i)&&!Array.isArray(i)||(0,fF.devAssert)(!1,`@${t.name} args must be an object with argument names as keys.`),this.args=(0,zd.defineArguments)(i)}get[Symbol.toStringTag](){return"GraphQLDirective"}toConfig(){return{name:this.name,description:this.description,locations:this.locations,args:(0,zd.argsToArgsConfig)(this.args),isRepeatable:this.isRepeatable,extensions:this.extensions,astNode:this.astNode}}toString(){return"@"+this.name}toJSON(){return this.toString()}};qn.GraphQLDirective=Es;var mF=new Es({name:"include",description:"Directs the executor to include this field or fragment only when the `if` argument is true.",locations:[Ai.DirectiveLocation.FIELD,Ai.DirectiveLocation.FRAGMENT_SPREAD,Ai.DirectiveLocation.INLINE_FRAGMENT],args:{if:{type:new zd.GraphQLNonNull(Wm.GraphQLBoolean),description:"Included when true."}}});qn.GraphQLIncludeDirective=mF;var NF=new Es({name:"skip",description:"Directs the executor to skip this field or fragment when the `if` argument is true.",locations:[Ai.DirectiveLocation.FIELD,Ai.DirectiveLocation.FRAGMENT_SPREAD,Ai.DirectiveLocation.INLINE_FRAGMENT],args:{if:{type:new zd.GraphQLNonNull(Wm.GraphQLBoolean),description:"Skipped when true."}}});qn.GraphQLSkipDirective=NF;var TF="No longer supported";qn.DEFAULT_DEPRECATION_REASON=TF;var EF=new Es({name:"deprecated",description:"Marks an element of a GraphQL schema as no longer supported.",locations:[Ai.DirectiveLocation.FIELD_DEFINITION,Ai.DirectiveLocation.ARGUMENT_DEFINITION,Ai.DirectiveLocation.INPUT_FIELD_DEFINITION,Ai.DirectiveLocation.ENUM_VALUE],args:{reason:{type:Wm.GraphQLString,description:"Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).",defaultValue:TF}}});qn.GraphQLDeprecatedDirective=EF;var hF=new Es({name:"specifiedBy",description:"Exposes a URL that specifies the behavior of this scalar.",locations:[Ai.DirectiveLocation.SCALAR],args:{url:{type:new zd.GraphQLNonNull(Wm.GraphQLString),description:"The URL that specifies the behavior of this scalar."}}});qn.GraphQLSpecifiedByDirective=hF;var yF=new Es({name:"oneOf",description:"Indicates exactly one field must be supplied and this field must not be `null`.",locations:[Ai.DirectiveLocation.INPUT_OBJECT],args:{}});qn.GraphQLOneOfDirective=yF;var IF=Object.freeze([mF,NF,EF,hF,yF]);qn.specifiedDirectives=IF;function W3(e){return IF.some(({name:t})=>t===e.name)}});var Xm=w(RI=>{"use strict";m();T();N();Object.defineProperty(RI,"__esModule",{value:!0});RI.isIterableObject=X3;function X3(e){return typeof e=="object"&&typeof(e==null?void 0:e[Symbol.iterator])=="function"}});var Zd=w(PI=>{"use strict";m();T();N();Object.defineProperty(PI,"__esModule",{value:!0});PI.astFromValue=Xd;var gF=Xt(),Z3=Ir(),e6=Xm(),t6=Da(),Ri=Ft(),Wd=wt(),n6=Pa();function Xd(e,t){if((0,Wd.isNonNullType)(t)){let n=Xd(e,t.ofType);return(n==null?void 0:n.kind)===Ri.Kind.NULL?null:n}if(e===null)return{kind:Ri.Kind.NULL};if(e===void 0)return null;if((0,Wd.isListType)(t)){let n=t.ofType;if((0,e6.isIterableObject)(e)){let r=[];for(let i of e){let a=Xd(i,n);a!=null&&r.push(a)}return{kind:Ri.Kind.LIST,values:r}}return Xd(e,n)}if((0,Wd.isInputObjectType)(t)){if(!(0,t6.isObjectLike)(e))return null;let n=[];for(let r of Object.values(t.getFields())){let i=Xd(e[r.name],r.type);i&&n.push({kind:Ri.Kind.OBJECT_FIELD,name:{kind:Ri.Kind.NAME,value:r.name},value:i})}return{kind:Ri.Kind.OBJECT,fields:n}}if((0,Wd.isLeafType)(t)){let n=t.serialize(e);if(n==null)return null;if(typeof n=="boolean")return{kind:Ri.Kind.BOOLEAN,value:n};if(typeof n=="number"&&Number.isFinite(n)){let r=String(n);return _F.test(r)?{kind:Ri.Kind.INT,value:r}:{kind:Ri.Kind.FLOAT,value:r}}if(typeof n=="string")return(0,Wd.isEnumType)(t)?{kind:Ri.Kind.ENUM,value:n}:t===n6.GraphQLID&&_F.test(n)?{kind:Ri.Kind.INT,value:n}:{kind:Ri.Kind.STRING,value:n};throw new TypeError(`Cannot convert value to AST: ${(0,gF.inspect)(n)}.`)}(0,Z3.invariant)(!1,"Unexpected input type: "+(0,gF.inspect)(t))}var _F=/^-?(?:0|[1-9][0-9]*)$/});var Fi=w(Zt=>{"use strict";m();T();N();Object.defineProperty(Zt,"__esModule",{value:!0});Zt.introspectionTypes=Zt.__TypeKind=Zt.__Type=Zt.__Schema=Zt.__InputValue=Zt.__Field=Zt.__EnumValue=Zt.__DirectiveLocation=Zt.__Directive=Zt.TypeNameMetaFieldDef=Zt.TypeMetaFieldDef=Zt.TypeKind=Zt.SchemaMetaFieldDef=void 0;Zt.isIntrospectionType=l6;var r6=Xt(),i6=Ir(),Xn=nl(),a6=li(),s6=Zd(),ke=wt(),cn=Pa(),FI=new ke.GraphQLObjectType({name:"__Schema",description:"A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.",fields:()=>({description:{type:cn.GraphQLString,resolve:e=>e.description},types:{description:"A list of all types supported by this server.",type:new ke.GraphQLNonNull(new ke.GraphQLList(new ke.GraphQLNonNull(Pi))),resolve(e){return Object.values(e.getTypeMap())}},queryType:{description:"The type that query operations will be rooted at.",type:new ke.GraphQLNonNull(Pi),resolve:e=>e.getQueryType()},mutationType:{description:"If this server supports mutation, the type that mutation operations will be rooted at.",type:Pi,resolve:e=>e.getMutationType()},subscriptionType:{description:"If this server support subscription, the type that subscription operations will be rooted at.",type:Pi,resolve:e=>e.getSubscriptionType()},directives:{description:"A list of all directives supported by this server.",type:new ke.GraphQLNonNull(new ke.GraphQLList(new ke.GraphQLNonNull(wI))),resolve:e=>e.getDirectives()}})});Zt.__Schema=FI;var wI=new ke.GraphQLObjectType({name:"__Directive",description:`A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. +}`)}function At(e,t,n=""){return t!=null&&t!==""?e+t+n:""}function Hm(e){return At(" ",e.replace(/\n/g,` + `))}function oF(e){var t;return(t=e==null?void 0:e.some(n=>n.includes(` +`)))!==null&&t!==void 0?t:!1}});var KI=F(VI=>{"use strict";m();T();N();Object.defineProperty(VI,"__esModule",{value:!0});VI.valueFromASTUntyped=jI;var k3=zd(),Os=Lt();function jI(e,t){switch(e.kind){case Os.Kind.NULL:return null;case Os.Kind.INT:return parseInt(e.value,10);case Os.Kind.FLOAT:return parseFloat(e.value);case Os.Kind.STRING:case Os.Kind.ENUM:case Os.Kind.BOOLEAN:return e.value;case Os.Kind.LIST:return e.values.map(n=>jI(n,t));case Os.Kind.OBJECT:return(0,k3.keyValMap)(e.fields,n=>n.name.value,n=>jI(n.value,t));case Os.Kind.VARIABLE:return t==null?void 0:t[e.name.value]}}});var Xd=F(Wm=>{"use strict";m();T();N();Object.defineProperty(Wm,"__esModule",{value:!0});Wm.assertEnumValueName=M3;Wm.assertName=lF;var uF=Vr(),zm=ze(),cF=Mm();function lF(e){if(e!=null||(0,uF.devAssert)(!1,"Must provide name."),typeof e=="string"||(0,uF.devAssert)(!1,"Expected name to be a string."),e.length===0)throw new zm.GraphQLError("Expected name to be a non-empty string.");for(let t=1;t{"use strict";m();T();N();Object.defineProperty(Ke,"__esModule",{value:!0});Ke.GraphQLUnionType=Ke.GraphQLScalarType=Ke.GraphQLObjectType=Ke.GraphQLNonNull=Ke.GraphQLList=Ke.GraphQLInterfaceType=Ke.GraphQLInputObjectType=Ke.GraphQLEnumType=void 0;Ke.argsToArgsConfig=vF;Ke.assertAbstractType=i6;Ke.assertCompositeType=r6;Ke.assertEnumType=z3;Ke.assertInputObjectType=W3;Ke.assertInputType=e6;Ke.assertInterfaceType=J3;Ke.assertLeafType=n6;Ke.assertListType=X3;Ke.assertNamedType=u6;Ke.assertNonNullType=Z3;Ke.assertNullableType=s6;Ke.assertObjectType=Y3;Ke.assertOutputType=t6;Ke.assertScalarType=Q3;Ke.assertType=$3;Ke.assertUnionType=H3;Ke.assertWrappingType=a6;Ke.defineArguments=gF;Ke.getNamedType=c6;Ke.getNullableType=o6;Ke.isAbstractType=EF;Ke.isCompositeType=TF;Ke.isEnumType=sc;Ke.isInputObjectType=ep;Ke.isInputType=GI;Ke.isInterfaceType=ic;Ke.isLeafType=NF;Ke.isListType=cN;Ke.isNamedType=hF;Ke.isNonNullType=fu;Ke.isNullableType=QI;Ke.isObjectType=hl;Ke.isOutputType=$I;Ke.isRequiredArgument=l6;Ke.isRequiredInputField=f6;Ke.isScalarType=rc;Ke.isType=uN;Ke.isUnionType=ac;Ke.isWrappingType=tp;Ke.resolveObjMapThunk=JI;Ke.resolveReadonlyArrayThunk=YI;var fr=Vr(),x3=uu(),dF=rF(),Tn=Wt(),pu=Yd(),q3=Ca(),j3=cu(),mF=zd(),oN=wI(),V3=lu(),Ua=Ym(),Zd=ze(),K3=Lt(),pF=Ti(),G3=KI(),ka=Xd();function uN(e){return rc(e)||hl(e)||ic(e)||ac(e)||sc(e)||ep(e)||cN(e)||fu(e)}function $3(e){if(!uN(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL type.`);return e}function rc(e){return(0,pu.instanceOf)(e,tN)}function Q3(e){if(!rc(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL Scalar type.`);return e}function hl(e){return(0,pu.instanceOf)(e,nN)}function Y3(e){if(!hl(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL Object type.`);return e}function ic(e){return(0,pu.instanceOf)(e,rN)}function J3(e){if(!ic(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL Interface type.`);return e}function ac(e){return(0,pu.instanceOf)(e,iN)}function H3(e){if(!ac(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL Union type.`);return e}function sc(e){return(0,pu.instanceOf)(e,aN)}function z3(e){if(!sc(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL Enum type.`);return e}function ep(e){return(0,pu.instanceOf)(e,sN)}function W3(e){if(!ep(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL Input Object type.`);return e}function cN(e){return(0,pu.instanceOf)(e,Zm)}function X3(e){if(!cN(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL List type.`);return e}function fu(e){return(0,pu.instanceOf)(e,eN)}function Z3(e){if(!fu(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL Non-Null type.`);return e}function GI(e){return rc(e)||sc(e)||ep(e)||tp(e)&&GI(e.ofType)}function e6(e){if(!GI(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL input type.`);return e}function $I(e){return rc(e)||hl(e)||ic(e)||ac(e)||sc(e)||tp(e)&&$I(e.ofType)}function t6(e){if(!$I(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL output type.`);return e}function NF(e){return rc(e)||sc(e)}function n6(e){if(!NF(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL leaf type.`);return e}function TF(e){return hl(e)||ic(e)||ac(e)}function r6(e){if(!TF(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL composite type.`);return e}function EF(e){return ic(e)||ac(e)}function i6(e){if(!EF(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL abstract type.`);return e}var Zm=class{constructor(t){uN(t)||(0,fr.devAssert)(!1,`Expected ${(0,Tn.inspect)(t)} to be a GraphQL type.`),this.ofType=t}get[Symbol.toStringTag](){return"GraphQLList"}toString(){return"["+String(this.ofType)+"]"}toJSON(){return this.toString()}};Ke.GraphQLList=Zm;var eN=class{constructor(t){QI(t)||(0,fr.devAssert)(!1,`Expected ${(0,Tn.inspect)(t)} to be a GraphQL nullable type.`),this.ofType=t}get[Symbol.toStringTag](){return"GraphQLNonNull"}toString(){return String(this.ofType)+"!"}toJSON(){return this.toString()}};Ke.GraphQLNonNull=eN;function tp(e){return cN(e)||fu(e)}function a6(e){if(!tp(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL wrapping type.`);return e}function QI(e){return uN(e)&&!fu(e)}function s6(e){if(!QI(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL nullable type.`);return e}function o6(e){if(e)return fu(e)?e.ofType:e}function hF(e){return rc(e)||hl(e)||ic(e)||ac(e)||sc(e)||ep(e)}function u6(e){if(!hF(e))throw new Error(`Expected ${(0,Tn.inspect)(e)} to be a GraphQL named type.`);return e}function c6(e){if(e){let t=e;for(;tp(t);)t=t.ofType;return t}}function YI(e){return typeof e=="function"?e():e}function JI(e){return typeof e=="function"?e():e}var tN=class{constructor(t){var n,r,i,a;let o=(n=t.parseValue)!==null&&n!==void 0?n:dF.identityFunc;this.name=(0,ka.assertName)(t.name),this.description=t.description,this.specifiedByURL=t.specifiedByURL,this.serialize=(r=t.serialize)!==null&&r!==void 0?r:dF.identityFunc,this.parseValue=o,this.parseLiteral=(i=t.parseLiteral)!==null&&i!==void 0?i:(c,l)=>o((0,G3.valueFromASTUntyped)(c,l)),this.extensions=(0,Ua.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(a=t.extensionASTNodes)!==null&&a!==void 0?a:[],t.specifiedByURL==null||typeof t.specifiedByURL=="string"||(0,fr.devAssert)(!1,`${this.name} must provide "specifiedByURL" as a string, but got: ${(0,Tn.inspect)(t.specifiedByURL)}.`),t.serialize==null||typeof t.serialize=="function"||(0,fr.devAssert)(!1,`${this.name} must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.`),t.parseLiteral&&(typeof t.parseValue=="function"&&typeof t.parseLiteral=="function"||(0,fr.devAssert)(!1,`${this.name} must provide both "parseValue" and "parseLiteral" functions.`))}get[Symbol.toStringTag](){return"GraphQLScalarType"}toConfig(){return{name:this.name,description:this.description,specifiedByURL:this.specifiedByURL,serialize:this.serialize,parseValue:this.parseValue,parseLiteral:this.parseLiteral,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};Ke.GraphQLScalarType=tN;var nN=class{constructor(t){var n;this.name=(0,ka.assertName)(t.name),this.description=t.description,this.isTypeOf=t.isTypeOf,this.extensions=(0,Ua.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(n=t.extensionASTNodes)!==null&&n!==void 0?n:[],this._fields=()=>IF(t),this._interfaces=()=>yF(t),t.isTypeOf==null||typeof t.isTypeOf=="function"||(0,fr.devAssert)(!1,`${this.name} must provide "isTypeOf" as a function, but got: ${(0,Tn.inspect)(t.isTypeOf)}.`)}get[Symbol.toStringTag](){return"GraphQLObjectType"}getFields(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields}getInterfaces(){return typeof this._interfaces=="function"&&(this._interfaces=this._interfaces()),this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:_F(this.getFields()),isTypeOf:this.isTypeOf,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};Ke.GraphQLObjectType=nN;function yF(e){var t;let n=YI((t=e.interfaces)!==null&&t!==void 0?t:[]);return Array.isArray(n)||(0,fr.devAssert)(!1,`${e.name} interfaces must be an Array or a function which returns an Array.`),n}function IF(e){let t=JI(e.fields);return El(t)||(0,fr.devAssert)(!1,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`),(0,oN.mapValue)(t,(n,r)=>{var i;El(n)||(0,fr.devAssert)(!1,`${e.name}.${r} field config must be an object.`),n.resolve==null||typeof n.resolve=="function"||(0,fr.devAssert)(!1,`${e.name}.${r} field resolver must be a function if provided, but got: ${(0,Tn.inspect)(n.resolve)}.`);let a=(i=n.args)!==null&&i!==void 0?i:{};return El(a)||(0,fr.devAssert)(!1,`${e.name}.${r} args must be an object with argument names as keys.`),{name:(0,ka.assertName)(r),description:n.description,type:n.type,args:gF(a),resolve:n.resolve,subscribe:n.subscribe,deprecationReason:n.deprecationReason,extensions:(0,Ua.toObjMap)(n.extensions),astNode:n.astNode}})}function gF(e){return Object.entries(e).map(([t,n])=>({name:(0,ka.assertName)(t),description:n.description,type:n.type,defaultValue:n.defaultValue,deprecationReason:n.deprecationReason,extensions:(0,Ua.toObjMap)(n.extensions),astNode:n.astNode}))}function El(e){return(0,q3.isObjectLike)(e)&&!Array.isArray(e)}function _F(e){return(0,oN.mapValue)(e,t=>({description:t.description,type:t.type,args:vF(t.args),resolve:t.resolve,subscribe:t.subscribe,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}))}function vF(e){return(0,mF.keyValMap)(e,t=>t.name,t=>({description:t.description,type:t.type,defaultValue:t.defaultValue,deprecationReason:t.deprecationReason,extensions:t.extensions,astNode:t.astNode}))}function l6(e){return fu(e.type)&&e.defaultValue===void 0}var rN=class{constructor(t){var n;this.name=(0,ka.assertName)(t.name),this.description=t.description,this.resolveType=t.resolveType,this.extensions=(0,Ua.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(n=t.extensionASTNodes)!==null&&n!==void 0?n:[],this._fields=IF.bind(void 0,t),this._interfaces=yF.bind(void 0,t),t.resolveType==null||typeof t.resolveType=="function"||(0,fr.devAssert)(!1,`${this.name} must provide "resolveType" as a function, but got: ${(0,Tn.inspect)(t.resolveType)}.`)}get[Symbol.toStringTag](){return"GraphQLInterfaceType"}getFields(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields}getInterfaces(){return typeof this._interfaces=="function"&&(this._interfaces=this._interfaces()),this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:_F(this.getFields()),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};Ke.GraphQLInterfaceType=rN;var iN=class{constructor(t){var n;this.name=(0,ka.assertName)(t.name),this.description=t.description,this.resolveType=t.resolveType,this.extensions=(0,Ua.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(n=t.extensionASTNodes)!==null&&n!==void 0?n:[],this._types=d6.bind(void 0,t),t.resolveType==null||typeof t.resolveType=="function"||(0,fr.devAssert)(!1,`${this.name} must provide "resolveType" as a function, but got: ${(0,Tn.inspect)(t.resolveType)}.`)}get[Symbol.toStringTag](){return"GraphQLUnionType"}getTypes(){return typeof this._types=="function"&&(this._types=this._types()),this._types}toConfig(){return{name:this.name,description:this.description,types:this.getTypes(),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};Ke.GraphQLUnionType=iN;function d6(e){let t=YI(e.types);return Array.isArray(t)||(0,fr.devAssert)(!1,`Must provide Array of types or a function which returns such an array for Union ${e.name}.`),t}var aN=class{constructor(t){var n;this.name=(0,ka.assertName)(t.name),this.description=t.description,this.extensions=(0,Ua.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(n=t.extensionASTNodes)!==null&&n!==void 0?n:[],this._values=typeof t.values=="function"?t.values:fF(this.name,t.values),this._valueLookup=null,this._nameLookup=null}get[Symbol.toStringTag](){return"GraphQLEnumType"}getValues(){return typeof this._values=="function"&&(this._values=fF(this.name,this._values())),this._values}getValue(t){return this._nameLookup===null&&(this._nameLookup=(0,j3.keyMap)(this.getValues(),n=>n.name)),this._nameLookup[t]}serialize(t){this._valueLookup===null&&(this._valueLookup=new Map(this.getValues().map(r=>[r.value,r])));let n=this._valueLookup.get(t);if(n===void 0)throw new Zd.GraphQLError(`Enum "${this.name}" cannot represent value: ${(0,Tn.inspect)(t)}`);return n.name}parseValue(t){if(typeof t!="string"){let r=(0,Tn.inspect)(t);throw new Zd.GraphQLError(`Enum "${this.name}" cannot represent non-string value: ${r}.`+Xm(this,r))}let n=this.getValue(t);if(n==null)throw new Zd.GraphQLError(`Value "${t}" does not exist in "${this.name}" enum.`+Xm(this,t));return n.value}parseLiteral(t,n){if(t.kind!==K3.Kind.ENUM){let i=(0,pF.print)(t);throw new Zd.GraphQLError(`Enum "${this.name}" cannot represent non-enum value: ${i}.`+Xm(this,i),{nodes:t})}let r=this.getValue(t.value);if(r==null){let i=(0,pF.print)(t);throw new Zd.GraphQLError(`Value "${i}" does not exist in "${this.name}" enum.`+Xm(this,i),{nodes:t})}return r.value}toConfig(){let t=(0,mF.keyValMap)(this.getValues(),n=>n.name,n=>({description:n.description,value:n.value,deprecationReason:n.deprecationReason,extensions:n.extensions,astNode:n.astNode}));return{name:this.name,description:this.description,values:t,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};Ke.GraphQLEnumType=aN;function Xm(e,t){let n=e.getValues().map(i=>i.name),r=(0,V3.suggestionList)(t,n);return(0,x3.didYouMean)("the enum value",r)}function fF(e,t){return El(t)||(0,fr.devAssert)(!1,`${e} values must be an object with value names as keys.`),Object.entries(t).map(([n,r])=>(El(r)||(0,fr.devAssert)(!1,`${e}.${n} must refer to an object with a "value" key representing an internal value but got: ${(0,Tn.inspect)(r)}.`),{name:(0,ka.assertEnumValueName)(n),description:r.description,value:r.value!==void 0?r.value:n,deprecationReason:r.deprecationReason,extensions:(0,Ua.toObjMap)(r.extensions),astNode:r.astNode}))}var sN=class{constructor(t){var n,r;this.name=(0,ka.assertName)(t.name),this.description=t.description,this.extensions=(0,Ua.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(n=t.extensionASTNodes)!==null&&n!==void 0?n:[],this.isOneOf=(r=t.isOneOf)!==null&&r!==void 0?r:!1,this._fields=p6.bind(void 0,t)}get[Symbol.toStringTag](){return"GraphQLInputObjectType"}getFields(){return typeof this._fields=="function"&&(this._fields=this._fields()),this._fields}toConfig(){let t=(0,oN.mapValue)(this.getFields(),n=>({description:n.description,type:n.type,defaultValue:n.defaultValue,deprecationReason:n.deprecationReason,extensions:n.extensions,astNode:n.astNode}));return{name:this.name,description:this.description,fields:t,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes,isOneOf:this.isOneOf}}toString(){return this.name}toJSON(){return this.toString()}};Ke.GraphQLInputObjectType=sN;function p6(e){let t=JI(e.fields);return El(t)||(0,fr.devAssert)(!1,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`),(0,oN.mapValue)(t,(n,r)=>(!("resolve"in n)||(0,fr.devAssert)(!1,`${e.name}.${r} field has a resolve property, but Input Types cannot define resolvers.`),{name:(0,ka.assertName)(r),description:n.description,type:n.type,defaultValue:n.defaultValue,deprecationReason:n.deprecationReason,extensions:(0,Ua.toObjMap)(n.extensions),astNode:n.astNode}))}function f6(e){return fu(e.type)&&e.defaultValue===void 0}});var rp=F(np=>{"use strict";m();T();N();Object.defineProperty(np,"__esModule",{value:!0});np.doTypesOverlap=m6;np.isEqualType=HI;np.isTypeSubTypeOf=lN;var br=Ct();function HI(e,t){return e===t?!0:(0,br.isNonNullType)(e)&&(0,br.isNonNullType)(t)||(0,br.isListType)(e)&&(0,br.isListType)(t)?HI(e.ofType,t.ofType):!1}function lN(e,t,n){return t===n?!0:(0,br.isNonNullType)(n)?(0,br.isNonNullType)(t)?lN(e,t.ofType,n.ofType):!1:(0,br.isNonNullType)(t)?lN(e,t.ofType,n):(0,br.isListType)(n)?(0,br.isListType)(t)?lN(e,t.ofType,n.ofType):!1:(0,br.isListType)(t)?!1:(0,br.isAbstractType)(n)&&((0,br.isInterfaceType)(t)||(0,br.isObjectType)(t))&&e.isSubType(n,t)}function m6(e,t,n){return t===n?!0:(0,br.isAbstractType)(t)?(0,br.isAbstractType)(n)?e.getPossibleTypes(t).some(r=>e.isSubType(n,r)):e.isSubType(t,n):(0,br.isAbstractType)(n)?e.isSubType(n,t):!1}});var Ma=F(nr=>{"use strict";m();T();N();Object.defineProperty(nr,"__esModule",{value:!0});nr.GraphQLString=nr.GraphQLInt=nr.GraphQLID=nr.GraphQLFloat=nr.GraphQLBoolean=nr.GRAPHQL_MIN_INT=nr.GRAPHQL_MAX_INT=void 0;nr.isSpecifiedScalarType=N6;nr.specifiedScalarTypes=void 0;var la=Wt(),SF=Ca(),mr=ze(),oc=Lt(),ip=Ti(),ap=Ct(),dN=2147483647;nr.GRAPHQL_MAX_INT=dN;var pN=-2147483648;nr.GRAPHQL_MIN_INT=pN;var OF=new ap.GraphQLScalarType({name:"Int",description:"The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.",serialize(e){let t=sp(e);if(typeof t=="boolean")return t?1:0;let n=t;if(typeof t=="string"&&t!==""&&(n=Number(t)),typeof n!="number"||!Number.isInteger(n))throw new mr.GraphQLError(`Int cannot represent non-integer value: ${(0,la.inspect)(t)}`);if(n>dN||ndN||edN||te.name===t)}function sp(e){if((0,SF.isObjectLike)(e)){if(typeof e.valueOf=="function"){let t=e.valueOf();if(!(0,SF.isObjectLike)(t))return t}if(typeof e.toJSON=="function")return e.toJSON()}return e}});var ei=F(Gn=>{"use strict";m();T();N();Object.defineProperty(Gn,"__esModule",{value:!0});Gn.GraphQLSpecifiedByDirective=Gn.GraphQLSkipDirective=Gn.GraphQLOneOfDirective=Gn.GraphQLIncludeDirective=Gn.GraphQLDirective=Gn.GraphQLDeprecatedDirective=Gn.DEFAULT_DEPRECATION_REASON=void 0;Gn.assertDirective=g6;Gn.isDirective=wF;Gn.isSpecifiedDirective=_6;Gn.specifiedDirectives=void 0;var FF=Vr(),T6=Wt(),E6=Yd(),h6=Ca(),y6=Ym(),Ci=fl(),I6=Xd(),op=Ct(),fN=Ma();function wF(e){return(0,E6.instanceOf)(e,Ds)}function g6(e){if(!wF(e))throw new Error(`Expected ${(0,T6.inspect)(e)} to be a GraphQL directive.`);return e}var Ds=class{constructor(t){var n,r;this.name=(0,I6.assertName)(t.name),this.description=t.description,this.locations=t.locations,this.isRepeatable=(n=t.isRepeatable)!==null&&n!==void 0?n:!1,this.extensions=(0,y6.toObjMap)(t.extensions),this.astNode=t.astNode,Array.isArray(t.locations)||(0,FF.devAssert)(!1,`@${t.name} locations must be an Array.`);let i=(r=t.args)!==null&&r!==void 0?r:{};(0,h6.isObjectLike)(i)&&!Array.isArray(i)||(0,FF.devAssert)(!1,`@${t.name} args must be an object with argument names as keys.`),this.args=(0,op.defineArguments)(i)}get[Symbol.toStringTag](){return"GraphQLDirective"}toConfig(){return{name:this.name,description:this.description,locations:this.locations,args:(0,op.argsToArgsConfig)(this.args),isRepeatable:this.isRepeatable,extensions:this.extensions,astNode:this.astNode}}toString(){return"@"+this.name}toJSON(){return this.toString()}};Gn.GraphQLDirective=Ds;var LF=new Ds({name:"include",description:"Directs the executor to include this field or fragment only when the `if` argument is true.",locations:[Ci.DirectiveLocation.FIELD,Ci.DirectiveLocation.FRAGMENT_SPREAD,Ci.DirectiveLocation.INLINE_FRAGMENT],args:{if:{type:new op.GraphQLNonNull(fN.GraphQLBoolean),description:"Included when true."}}});Gn.GraphQLIncludeDirective=LF;var CF=new Ds({name:"skip",description:"Directs the executor to skip this field or fragment when the `if` argument is true.",locations:[Ci.DirectiveLocation.FIELD,Ci.DirectiveLocation.FRAGMENT_SPREAD,Ci.DirectiveLocation.INLINE_FRAGMENT],args:{if:{type:new op.GraphQLNonNull(fN.GraphQLBoolean),description:"Skipped when true."}}});Gn.GraphQLSkipDirective=CF;var BF="No longer supported";Gn.DEFAULT_DEPRECATION_REASON=BF;var UF=new Ds({name:"deprecated",description:"Marks an element of a GraphQL schema as no longer supported.",locations:[Ci.DirectiveLocation.FIELD_DEFINITION,Ci.DirectiveLocation.ARGUMENT_DEFINITION,Ci.DirectiveLocation.INPUT_FIELD_DEFINITION,Ci.DirectiveLocation.ENUM_VALUE],args:{reason:{type:fN.GraphQLString,description:"Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).",defaultValue:BF}}});Gn.GraphQLDeprecatedDirective=UF;var kF=new Ds({name:"specifiedBy",description:"Exposes a URL that specifies the behavior of this scalar.",locations:[Ci.DirectiveLocation.SCALAR],args:{url:{type:new op.GraphQLNonNull(fN.GraphQLString),description:"The URL that specifies the behavior of this scalar."}}});Gn.GraphQLSpecifiedByDirective=kF;var MF=new Ds({name:"oneOf",description:"Indicates exactly one field must be supplied and this field must not be `null`.",locations:[Ci.DirectiveLocation.INPUT_OBJECT],args:{}});Gn.GraphQLOneOfDirective=MF;var xF=Object.freeze([LF,CF,UF,kF,MF]);Gn.specifiedDirectives=xF;function _6(e){return xF.some(({name:t})=>t===e.name)}});var mN=F(zI=>{"use strict";m();T();N();Object.defineProperty(zI,"__esModule",{value:!0});zI.isIterableObject=v6;function v6(e){return typeof e=="object"&&typeof(e==null?void 0:e[Symbol.iterator])=="function"}});var lp=F(WI=>{"use strict";m();T();N();Object.defineProperty(WI,"__esModule",{value:!0});WI.astFromValue=cp;var qF=Wt(),S6=Dr(),O6=mN(),D6=Ca(),Bi=Lt(),up=Ct(),b6=Ma();function cp(e,t){if((0,up.isNonNullType)(t)){let n=cp(e,t.ofType);return(n==null?void 0:n.kind)===Bi.Kind.NULL?null:n}if(e===null)return{kind:Bi.Kind.NULL};if(e===void 0)return null;if((0,up.isListType)(t)){let n=t.ofType;if((0,O6.isIterableObject)(e)){let r=[];for(let i of e){let a=cp(i,n);a!=null&&r.push(a)}return{kind:Bi.Kind.LIST,values:r}}return cp(e,n)}if((0,up.isInputObjectType)(t)){if(!(0,D6.isObjectLike)(e))return null;let n=[];for(let r of Object.values(t.getFields())){let i=cp(e[r.name],r.type);i&&n.push({kind:Bi.Kind.OBJECT_FIELD,name:{kind:Bi.Kind.NAME,value:r.name},value:i})}return{kind:Bi.Kind.OBJECT,fields:n}}if((0,up.isLeafType)(t)){let n=t.serialize(e);if(n==null)return null;if(typeof n=="boolean")return{kind:Bi.Kind.BOOLEAN,value:n};if(typeof n=="number"&&Number.isFinite(n)){let r=String(n);return jF.test(r)?{kind:Bi.Kind.INT,value:r}:{kind:Bi.Kind.FLOAT,value:r}}if(typeof n=="string")return(0,up.isEnumType)(t)?{kind:Bi.Kind.ENUM,value:n}:t===b6.GraphQLID&&jF.test(n)?{kind:Bi.Kind.INT,value:n}:{kind:Bi.Kind.STRING,value:n};throw new TypeError(`Cannot convert value to AST: ${(0,qF.inspect)(n)}.`)}(0,S6.invariant)(!1,"Unexpected input type: "+(0,qF.inspect)(t))}var jF=/^-?(?:0|[1-9][0-9]*)$/});var ki=F(Xt=>{"use strict";m();T();N();Object.defineProperty(Xt,"__esModule",{value:!0});Xt.introspectionTypes=Xt.__TypeKind=Xt.__Type=Xt.__Schema=Xt.__InputValue=Xt.__Field=Xt.__EnumValue=Xt.__DirectiveLocation=Xt.__Directive=Xt.TypeNameMetaFieldDef=Xt.TypeMetaFieldDef=Xt.TypeKind=Xt.SchemaMetaFieldDef=void 0;Xt.isIntrospectionType=B6;var A6=Wt(),R6=Dr(),rr=fl(),P6=Ti(),F6=lp(),Ue=Ct(),dn=Ma(),XI=new Ue.GraphQLObjectType({name:"__Schema",description:"A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.",fields:()=>({description:{type:dn.GraphQLString,resolve:e=>e.description},types:{description:"A list of all types supported by this server.",type:new Ue.GraphQLNonNull(new Ue.GraphQLList(new Ue.GraphQLNonNull(Ui))),resolve(e){return Object.values(e.getTypeMap())}},queryType:{description:"The type that query operations will be rooted at.",type:new Ue.GraphQLNonNull(Ui),resolve:e=>e.getQueryType()},mutationType:{description:"If this server supports mutation, the type that mutation operations will be rooted at.",type:Ui,resolve:e=>e.getMutationType()},subscriptionType:{description:"If this server support subscription, the type that subscription operations will be rooted at.",type:Ui,resolve:e=>e.getSubscriptionType()},directives:{description:"A list of all directives supported by this server.",type:new Ue.GraphQLNonNull(new Ue.GraphQLList(new Ue.GraphQLNonNull(ZI))),resolve:e=>e.getDirectives()}})});Xt.__Schema=XI;var ZI=new Ue.GraphQLObjectType({name:"__Directive",description:`A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. -In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.`,fields:()=>({name:{type:new ke.GraphQLNonNull(cn.GraphQLString),resolve:e=>e.name},description:{type:cn.GraphQLString,resolve:e=>e.description},isRepeatable:{type:new ke.GraphQLNonNull(cn.GraphQLBoolean),resolve:e=>e.isRepeatable},locations:{type:new ke.GraphQLNonNull(new ke.GraphQLList(new ke.GraphQLNonNull(LI))),resolve:e=>e.locations},args:{type:new ke.GraphQLNonNull(new ke.GraphQLList(new ke.GraphQLNonNull(ef))),args:{includeDeprecated:{type:cn.GraphQLBoolean,defaultValue:!1}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter(n=>n.deprecationReason==null)}}})});Zt.__Directive=wI;var LI=new ke.GraphQLEnumType({name:"__DirectiveLocation",description:"A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.",values:{QUERY:{value:Xn.DirectiveLocation.QUERY,description:"Location adjacent to a query operation."},MUTATION:{value:Xn.DirectiveLocation.MUTATION,description:"Location adjacent to a mutation operation."},SUBSCRIPTION:{value:Xn.DirectiveLocation.SUBSCRIPTION,description:"Location adjacent to a subscription operation."},FIELD:{value:Xn.DirectiveLocation.FIELD,description:"Location adjacent to a field."},FRAGMENT_DEFINITION:{value:Xn.DirectiveLocation.FRAGMENT_DEFINITION,description:"Location adjacent to a fragment definition."},FRAGMENT_SPREAD:{value:Xn.DirectiveLocation.FRAGMENT_SPREAD,description:"Location adjacent to a fragment spread."},INLINE_FRAGMENT:{value:Xn.DirectiveLocation.INLINE_FRAGMENT,description:"Location adjacent to an inline fragment."},VARIABLE_DEFINITION:{value:Xn.DirectiveLocation.VARIABLE_DEFINITION,description:"Location adjacent to a variable definition."},SCHEMA:{value:Xn.DirectiveLocation.SCHEMA,description:"Location adjacent to a schema definition."},SCALAR:{value:Xn.DirectiveLocation.SCALAR,description:"Location adjacent to a scalar definition."},OBJECT:{value:Xn.DirectiveLocation.OBJECT,description:"Location adjacent to an object type definition."},FIELD_DEFINITION:{value:Xn.DirectiveLocation.FIELD_DEFINITION,description:"Location adjacent to a field definition."},ARGUMENT_DEFINITION:{value:Xn.DirectiveLocation.ARGUMENT_DEFINITION,description:"Location adjacent to an argument definition."},INTERFACE:{value:Xn.DirectiveLocation.INTERFACE,description:"Location adjacent to an interface definition."},UNION:{value:Xn.DirectiveLocation.UNION,description:"Location adjacent to a union definition."},ENUM:{value:Xn.DirectiveLocation.ENUM,description:"Location adjacent to an enum definition."},ENUM_VALUE:{value:Xn.DirectiveLocation.ENUM_VALUE,description:"Location adjacent to an enum value definition."},INPUT_OBJECT:{value:Xn.DirectiveLocation.INPUT_OBJECT,description:"Location adjacent to an input object type definition."},INPUT_FIELD_DEFINITION:{value:Xn.DirectiveLocation.INPUT_FIELD_DEFINITION,description:"Location adjacent to an input object field definition."}}});Zt.__DirectiveLocation=LI;var Pi=new ke.GraphQLObjectType({name:"__Type",description:"The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.",fields:()=>({kind:{type:new ke.GraphQLNonNull(UI),resolve(e){if((0,ke.isScalarType)(e))return Zn.SCALAR;if((0,ke.isObjectType)(e))return Zn.OBJECT;if((0,ke.isInterfaceType)(e))return Zn.INTERFACE;if((0,ke.isUnionType)(e))return Zn.UNION;if((0,ke.isEnumType)(e))return Zn.ENUM;if((0,ke.isInputObjectType)(e))return Zn.INPUT_OBJECT;if((0,ke.isListType)(e))return Zn.LIST;if((0,ke.isNonNullType)(e))return Zn.NON_NULL;(0,i6.invariant)(!1,`Unexpected type: "${(0,r6.inspect)(e)}".`)}},name:{type:cn.GraphQLString,resolve:e=>"name"in e?e.name:void 0},description:{type:cn.GraphQLString,resolve:e=>"description"in e?e.description:void 0},specifiedByURL:{type:cn.GraphQLString,resolve:e=>"specifiedByURL"in e?e.specifiedByURL:void 0},fields:{type:new ke.GraphQLList(new ke.GraphQLNonNull(CI)),args:{includeDeprecated:{type:cn.GraphQLBoolean,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if((0,ke.isObjectType)(e)||(0,ke.isInterfaceType)(e)){let n=Object.values(e.getFields());return t?n:n.filter(r=>r.deprecationReason==null)}}},interfaces:{type:new ke.GraphQLList(new ke.GraphQLNonNull(Pi)),resolve(e){if((0,ke.isObjectType)(e)||(0,ke.isInterfaceType)(e))return e.getInterfaces()}},possibleTypes:{type:new ke.GraphQLList(new ke.GraphQLNonNull(Pi)),resolve(e,t,n,{schema:r}){if((0,ke.isAbstractType)(e))return r.getPossibleTypes(e)}},enumValues:{type:new ke.GraphQLList(new ke.GraphQLNonNull(BI)),args:{includeDeprecated:{type:cn.GraphQLBoolean,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if((0,ke.isEnumType)(e)){let n=e.getValues();return t?n:n.filter(r=>r.deprecationReason==null)}}},inputFields:{type:new ke.GraphQLList(new ke.GraphQLNonNull(ef)),args:{includeDeprecated:{type:cn.GraphQLBoolean,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if((0,ke.isInputObjectType)(e)){let n=Object.values(e.getFields());return t?n:n.filter(r=>r.deprecationReason==null)}}},ofType:{type:Pi,resolve:e=>"ofType"in e?e.ofType:void 0},isOneOf:{type:cn.GraphQLBoolean,resolve:e=>{if((0,ke.isInputObjectType)(e))return e.isOneOf}}})});Zt.__Type=Pi;var CI=new ke.GraphQLObjectType({name:"__Field",description:"Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.",fields:()=>({name:{type:new ke.GraphQLNonNull(cn.GraphQLString),resolve:e=>e.name},description:{type:cn.GraphQLString,resolve:e=>e.description},args:{type:new ke.GraphQLNonNull(new ke.GraphQLList(new ke.GraphQLNonNull(ef))),args:{includeDeprecated:{type:cn.GraphQLBoolean,defaultValue:!1}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter(n=>n.deprecationReason==null)}},type:{type:new ke.GraphQLNonNull(Pi),resolve:e=>e.type},isDeprecated:{type:new ke.GraphQLNonNull(cn.GraphQLBoolean),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:cn.GraphQLString,resolve:e=>e.deprecationReason}})});Zt.__Field=CI;var ef=new ke.GraphQLObjectType({name:"__InputValue",description:"Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.",fields:()=>({name:{type:new ke.GraphQLNonNull(cn.GraphQLString),resolve:e=>e.name},description:{type:cn.GraphQLString,resolve:e=>e.description},type:{type:new ke.GraphQLNonNull(Pi),resolve:e=>e.type},defaultValue:{type:cn.GraphQLString,description:"A GraphQL-formatted string representing the default value for this input value.",resolve(e){let{type:t,defaultValue:n}=e,r=(0,s6.astFromValue)(n,t);return r?(0,a6.print)(r):null}},isDeprecated:{type:new ke.GraphQLNonNull(cn.GraphQLBoolean),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:cn.GraphQLString,resolve:e=>e.deprecationReason}})});Zt.__InputValue=ef;var BI=new ke.GraphQLObjectType({name:"__EnumValue",description:"One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.",fields:()=>({name:{type:new ke.GraphQLNonNull(cn.GraphQLString),resolve:e=>e.name},description:{type:cn.GraphQLString,resolve:e=>e.description},isDeprecated:{type:new ke.GraphQLNonNull(cn.GraphQLBoolean),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:cn.GraphQLString,resolve:e=>e.deprecationReason}})});Zt.__EnumValue=BI;var Zn;Zt.TypeKind=Zn;(function(e){e.SCALAR="SCALAR",e.OBJECT="OBJECT",e.INTERFACE="INTERFACE",e.UNION="UNION",e.ENUM="ENUM",e.INPUT_OBJECT="INPUT_OBJECT",e.LIST="LIST",e.NON_NULL="NON_NULL"})(Zn||(Zt.TypeKind=Zn={}));var UI=new ke.GraphQLEnumType({name:"__TypeKind",description:"An enum describing what kind of type a given `__Type` is.",values:{SCALAR:{value:Zn.SCALAR,description:"Indicates this type is a scalar."},OBJECT:{value:Zn.OBJECT,description:"Indicates this type is an object. `fields` and `interfaces` are valid fields."},INTERFACE:{value:Zn.INTERFACE,description:"Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields."},UNION:{value:Zn.UNION,description:"Indicates this type is a union. `possibleTypes` is a valid field."},ENUM:{value:Zn.ENUM,description:"Indicates this type is an enum. `enumValues` is a valid field."},INPUT_OBJECT:{value:Zn.INPUT_OBJECT,description:"Indicates this type is an input object. `inputFields` is a valid field."},LIST:{value:Zn.LIST,description:"Indicates this type is a list. `ofType` is a valid field."},NON_NULL:{value:Zn.NON_NULL,description:"Indicates this type is a non-null. `ofType` is a valid field."}}});Zt.__TypeKind=UI;var o6={name:"__schema",type:new ke.GraphQLNonNull(FI),description:"Access the current type schema of this server.",args:[],resolve:(e,t,n,{schema:r})=>r,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0};Zt.SchemaMetaFieldDef=o6;var u6={name:"__type",type:Pi,description:"Request the type information of a single type.",args:[{name:"name",description:void 0,type:new ke.GraphQLNonNull(cn.GraphQLString),defaultValue:void 0,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0}],resolve:(e,{name:t},n,{schema:r})=>r.getType(t),deprecationReason:void 0,extensions:Object.create(null),astNode:void 0};Zt.TypeMetaFieldDef=u6;var c6={name:"__typename",type:new ke.GraphQLNonNull(cn.GraphQLString),description:"The name of the current Object type at runtime.",args:[],resolve:(e,t,n,{parentType:r})=>r.name,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0};Zt.TypeNameMetaFieldDef=c6;var vF=Object.freeze([FI,wI,LI,Pi,CI,ef,BI,UI]);Zt.introspectionTypes=vF;function l6(e){return vF.some(({name:t})=>e.name===t)}});var Xu=w(ul=>{"use strict";m();T();N();Object.defineProperty(ul,"__esModule",{value:!0});ul.GraphQLSchema=void 0;ul.assertSchema=N6;ul.isSchema=OF;var Zm=Br(),MI=Xt(),d6=Ud(),f6=Da(),p6=Fm(),kI=ba(),ra=wt(),SF=Qr(),m6=Fi();function OF(e){return(0,d6.instanceOf)(e,eN)}function N6(e){if(!OF(e))throw new Error(`Expected ${(0,MI.inspect)(e)} to be a GraphQL schema.`);return e}var eN=class{constructor(t){var n,r;this.__validationErrors=t.assumeValid===!0?[]:void 0,(0,f6.isObjectLike)(t)||(0,Zm.devAssert)(!1,"Must provide configuration object."),!t.types||Array.isArray(t.types)||(0,Zm.devAssert)(!1,`"types" must be Array if provided but got: ${(0,MI.inspect)(t.types)}.`),!t.directives||Array.isArray(t.directives)||(0,Zm.devAssert)(!1,`"directives" must be Array if provided but got: ${(0,MI.inspect)(t.directives)}.`),this.description=t.description,this.extensions=(0,p6.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(n=t.extensionASTNodes)!==null&&n!==void 0?n:[],this._queryType=t.query,this._mutationType=t.mutation,this._subscriptionType=t.subscription,this._directives=(r=t.directives)!==null&&r!==void 0?r:SF.specifiedDirectives;let i=new Set(t.types);if(t.types!=null)for(let a of t.types)i.delete(a),ia(a,i);this._queryType!=null&&ia(this._queryType,i),this._mutationType!=null&&ia(this._mutationType,i),this._subscriptionType!=null&&ia(this._subscriptionType,i);for(let a of this._directives)if((0,SF.isDirective)(a))for(let o of a.args)ia(o.type,i);ia(m6.__Schema,i),this._typeMap=Object.create(null),this._subTypeMap=Object.create(null),this._implementationsMap=Object.create(null);for(let a of i){if(a==null)continue;let o=a.name;if(o||(0,Zm.devAssert)(!1,"One of the provided types for building the Schema is missing a name."),this._typeMap[o]!==void 0)throw new Error(`Schema must contain uniquely named types but contains multiple types named "${o}".`);if(this._typeMap[o]=a,(0,ra.isInterfaceType)(a)){for(let c of a.getInterfaces())if((0,ra.isInterfaceType)(c)){let l=this._implementationsMap[c.name];l===void 0&&(l=this._implementationsMap[c.name]={objects:[],interfaces:[]}),l.interfaces.push(a)}}else if((0,ra.isObjectType)(a)){for(let c of a.getInterfaces())if((0,ra.isInterfaceType)(c)){let l=this._implementationsMap[c.name];l===void 0&&(l=this._implementationsMap[c.name]={objects:[],interfaces:[]}),l.objects.push(a)}}}}get[Symbol.toStringTag](){return"GraphQLSchema"}getQueryType(){return this._queryType}getMutationType(){return this._mutationType}getSubscriptionType(){return this._subscriptionType}getRootType(t){switch(t){case kI.OperationTypeNode.QUERY:return this.getQueryType();case kI.OperationTypeNode.MUTATION:return this.getMutationType();case kI.OperationTypeNode.SUBSCRIPTION:return this.getSubscriptionType()}}getTypeMap(){return this._typeMap}getType(t){return this.getTypeMap()[t]}getPossibleTypes(t){return(0,ra.isUnionType)(t)?t.getTypes():this.getImplementations(t).objects}getImplementations(t){let n=this._implementationsMap[t.name];return n!=null?n:{objects:[],interfaces:[]}}isSubType(t,n){let r=this._subTypeMap[t.name];if(r===void 0){if(r=Object.create(null),(0,ra.isUnionType)(t))for(let i of t.getTypes())r[i.name]=!0;else{let i=this.getImplementations(t);for(let a of i.objects)r[a.name]=!0;for(let a of i.interfaces)r[a.name]=!0}this._subTypeMap[t.name]=r}return r[n.name]!==void 0}getDirectives(){return this._directives}getDirective(t){return this.getDirectives().find(n=>n.name===t)}toConfig(){return{description:this.description,query:this.getQueryType(),mutation:this.getMutationType(),subscription:this.getSubscriptionType(),types:Object.values(this.getTypeMap()),directives:this.getDirectives(),extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes,assumeValid:this.__validationErrors!==void 0}}};ul.GraphQLSchema=eN;function ia(e,t){let n=(0,ra.getNamedType)(e);if(!t.has(n)){if(t.add(n),(0,ra.isUnionType)(n))for(let r of n.getTypes())ia(r,t);else if((0,ra.isObjectType)(n)||(0,ra.isInterfaceType)(n)){for(let r of n.getInterfaces())ia(r,t);for(let r of Object.values(n.getFields())){ia(r.type,t);for(let i of r.args)ia(i.type,t)}}else if((0,ra.isInputObjectType)(n))for(let r of Object.values(n.getFields()))ia(r.type,t)}return t}});var nf=w(tN=>{"use strict";m();T();N();Object.defineProperty(tN,"__esModule",{value:!0});tN.assertValidSchema=y6;tN.validateSchema=FF;var _r=Xt(),T6=ze(),xI=ba(),DF=Qd(),Fn=wt(),PF=Qr(),E6=Fi(),h6=Xu();function FF(e){if((0,h6.assertSchema)(e),e.__validationErrors)return e.__validationErrors;let t=new VI(e);I6(t),g6(t),_6(t);let n=t.getErrors();return e.__validationErrors=n,n}function y6(e){let t=FF(e);if(t.length!==0)throw new Error(t.map(n=>n.message).join(` +In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.`,fields:()=>({name:{type:new Ue.GraphQLNonNull(dn.GraphQLString),resolve:e=>e.name},description:{type:dn.GraphQLString,resolve:e=>e.description},isRepeatable:{type:new Ue.GraphQLNonNull(dn.GraphQLBoolean),resolve:e=>e.isRepeatable},locations:{type:new Ue.GraphQLNonNull(new Ue.GraphQLList(new Ue.GraphQLNonNull(eg))),resolve:e=>e.locations},args:{type:new Ue.GraphQLNonNull(new Ue.GraphQLList(new Ue.GraphQLNonNull(dp))),args:{includeDeprecated:{type:dn.GraphQLBoolean,defaultValue:!1}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter(n=>n.deprecationReason==null)}}})});Xt.__Directive=ZI;var eg=new Ue.GraphQLEnumType({name:"__DirectiveLocation",description:"A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.",values:{QUERY:{value:rr.DirectiveLocation.QUERY,description:"Location adjacent to a query operation."},MUTATION:{value:rr.DirectiveLocation.MUTATION,description:"Location adjacent to a mutation operation."},SUBSCRIPTION:{value:rr.DirectiveLocation.SUBSCRIPTION,description:"Location adjacent to a subscription operation."},FIELD:{value:rr.DirectiveLocation.FIELD,description:"Location adjacent to a field."},FRAGMENT_DEFINITION:{value:rr.DirectiveLocation.FRAGMENT_DEFINITION,description:"Location adjacent to a fragment definition."},FRAGMENT_SPREAD:{value:rr.DirectiveLocation.FRAGMENT_SPREAD,description:"Location adjacent to a fragment spread."},INLINE_FRAGMENT:{value:rr.DirectiveLocation.INLINE_FRAGMENT,description:"Location adjacent to an inline fragment."},VARIABLE_DEFINITION:{value:rr.DirectiveLocation.VARIABLE_DEFINITION,description:"Location adjacent to a variable definition."},SCHEMA:{value:rr.DirectiveLocation.SCHEMA,description:"Location adjacent to a schema definition."},SCALAR:{value:rr.DirectiveLocation.SCALAR,description:"Location adjacent to a scalar definition."},OBJECT:{value:rr.DirectiveLocation.OBJECT,description:"Location adjacent to an object type definition."},FIELD_DEFINITION:{value:rr.DirectiveLocation.FIELD_DEFINITION,description:"Location adjacent to a field definition."},ARGUMENT_DEFINITION:{value:rr.DirectiveLocation.ARGUMENT_DEFINITION,description:"Location adjacent to an argument definition."},INTERFACE:{value:rr.DirectiveLocation.INTERFACE,description:"Location adjacent to an interface definition."},UNION:{value:rr.DirectiveLocation.UNION,description:"Location adjacent to a union definition."},ENUM:{value:rr.DirectiveLocation.ENUM,description:"Location adjacent to an enum definition."},ENUM_VALUE:{value:rr.DirectiveLocation.ENUM_VALUE,description:"Location adjacent to an enum value definition."},INPUT_OBJECT:{value:rr.DirectiveLocation.INPUT_OBJECT,description:"Location adjacent to an input object type definition."},INPUT_FIELD_DEFINITION:{value:rr.DirectiveLocation.INPUT_FIELD_DEFINITION,description:"Location adjacent to an input object field definition."}}});Xt.__DirectiveLocation=eg;var Ui=new Ue.GraphQLObjectType({name:"__Type",description:"The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.",fields:()=>({kind:{type:new Ue.GraphQLNonNull(rg),resolve(e){if((0,Ue.isScalarType)(e))return ir.SCALAR;if((0,Ue.isObjectType)(e))return ir.OBJECT;if((0,Ue.isInterfaceType)(e))return ir.INTERFACE;if((0,Ue.isUnionType)(e))return ir.UNION;if((0,Ue.isEnumType)(e))return ir.ENUM;if((0,Ue.isInputObjectType)(e))return ir.INPUT_OBJECT;if((0,Ue.isListType)(e))return ir.LIST;if((0,Ue.isNonNullType)(e))return ir.NON_NULL;(0,R6.invariant)(!1,`Unexpected type: "${(0,A6.inspect)(e)}".`)}},name:{type:dn.GraphQLString,resolve:e=>"name"in e?e.name:void 0},description:{type:dn.GraphQLString,resolve:e=>"description"in e?e.description:void 0},specifiedByURL:{type:dn.GraphQLString,resolve:e=>"specifiedByURL"in e?e.specifiedByURL:void 0},fields:{type:new Ue.GraphQLList(new Ue.GraphQLNonNull(tg)),args:{includeDeprecated:{type:dn.GraphQLBoolean,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if((0,Ue.isObjectType)(e)||(0,Ue.isInterfaceType)(e)){let n=Object.values(e.getFields());return t?n:n.filter(r=>r.deprecationReason==null)}}},interfaces:{type:new Ue.GraphQLList(new Ue.GraphQLNonNull(Ui)),resolve(e){if((0,Ue.isObjectType)(e)||(0,Ue.isInterfaceType)(e))return e.getInterfaces()}},possibleTypes:{type:new Ue.GraphQLList(new Ue.GraphQLNonNull(Ui)),resolve(e,t,n,{schema:r}){if((0,Ue.isAbstractType)(e))return r.getPossibleTypes(e)}},enumValues:{type:new Ue.GraphQLList(new Ue.GraphQLNonNull(ng)),args:{includeDeprecated:{type:dn.GraphQLBoolean,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if((0,Ue.isEnumType)(e)){let n=e.getValues();return t?n:n.filter(r=>r.deprecationReason==null)}}},inputFields:{type:new Ue.GraphQLList(new Ue.GraphQLNonNull(dp)),args:{includeDeprecated:{type:dn.GraphQLBoolean,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if((0,Ue.isInputObjectType)(e)){let n=Object.values(e.getFields());return t?n:n.filter(r=>r.deprecationReason==null)}}},ofType:{type:Ui,resolve:e=>"ofType"in e?e.ofType:void 0},isOneOf:{type:dn.GraphQLBoolean,resolve:e=>{if((0,Ue.isInputObjectType)(e))return e.isOneOf}}})});Xt.__Type=Ui;var tg=new Ue.GraphQLObjectType({name:"__Field",description:"Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.",fields:()=>({name:{type:new Ue.GraphQLNonNull(dn.GraphQLString),resolve:e=>e.name},description:{type:dn.GraphQLString,resolve:e=>e.description},args:{type:new Ue.GraphQLNonNull(new Ue.GraphQLList(new Ue.GraphQLNonNull(dp))),args:{includeDeprecated:{type:dn.GraphQLBoolean,defaultValue:!1}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter(n=>n.deprecationReason==null)}},type:{type:new Ue.GraphQLNonNull(Ui),resolve:e=>e.type},isDeprecated:{type:new Ue.GraphQLNonNull(dn.GraphQLBoolean),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:dn.GraphQLString,resolve:e=>e.deprecationReason}})});Xt.__Field=tg;var dp=new Ue.GraphQLObjectType({name:"__InputValue",description:"Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.",fields:()=>({name:{type:new Ue.GraphQLNonNull(dn.GraphQLString),resolve:e=>e.name},description:{type:dn.GraphQLString,resolve:e=>e.description},type:{type:new Ue.GraphQLNonNull(Ui),resolve:e=>e.type},defaultValue:{type:dn.GraphQLString,description:"A GraphQL-formatted string representing the default value for this input value.",resolve(e){let{type:t,defaultValue:n}=e,r=(0,F6.astFromValue)(n,t);return r?(0,P6.print)(r):null}},isDeprecated:{type:new Ue.GraphQLNonNull(dn.GraphQLBoolean),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:dn.GraphQLString,resolve:e=>e.deprecationReason}})});Xt.__InputValue=dp;var ng=new Ue.GraphQLObjectType({name:"__EnumValue",description:"One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.",fields:()=>({name:{type:new Ue.GraphQLNonNull(dn.GraphQLString),resolve:e=>e.name},description:{type:dn.GraphQLString,resolve:e=>e.description},isDeprecated:{type:new Ue.GraphQLNonNull(dn.GraphQLBoolean),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:dn.GraphQLString,resolve:e=>e.deprecationReason}})});Xt.__EnumValue=ng;var ir;Xt.TypeKind=ir;(function(e){e.SCALAR="SCALAR",e.OBJECT="OBJECT",e.INTERFACE="INTERFACE",e.UNION="UNION",e.ENUM="ENUM",e.INPUT_OBJECT="INPUT_OBJECT",e.LIST="LIST",e.NON_NULL="NON_NULL"})(ir||(Xt.TypeKind=ir={}));var rg=new Ue.GraphQLEnumType({name:"__TypeKind",description:"An enum describing what kind of type a given `__Type` is.",values:{SCALAR:{value:ir.SCALAR,description:"Indicates this type is a scalar."},OBJECT:{value:ir.OBJECT,description:"Indicates this type is an object. `fields` and `interfaces` are valid fields."},INTERFACE:{value:ir.INTERFACE,description:"Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields."},UNION:{value:ir.UNION,description:"Indicates this type is a union. `possibleTypes` is a valid field."},ENUM:{value:ir.ENUM,description:"Indicates this type is an enum. `enumValues` is a valid field."},INPUT_OBJECT:{value:ir.INPUT_OBJECT,description:"Indicates this type is an input object. `inputFields` is a valid field."},LIST:{value:ir.LIST,description:"Indicates this type is a list. `ofType` is a valid field."},NON_NULL:{value:ir.NON_NULL,description:"Indicates this type is a non-null. `ofType` is a valid field."}}});Xt.__TypeKind=rg;var w6={name:"__schema",type:new Ue.GraphQLNonNull(XI),description:"Access the current type schema of this server.",args:[],resolve:(e,t,n,{schema:r})=>r,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0};Xt.SchemaMetaFieldDef=w6;var L6={name:"__type",type:Ui,description:"Request the type information of a single type.",args:[{name:"name",description:void 0,type:new Ue.GraphQLNonNull(dn.GraphQLString),defaultValue:void 0,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0}],resolve:(e,{name:t},n,{schema:r})=>r.getType(t),deprecationReason:void 0,extensions:Object.create(null),astNode:void 0};Xt.TypeMetaFieldDef=L6;var C6={name:"__typename",type:new Ue.GraphQLNonNull(dn.GraphQLString),description:"The name of the current Object type at runtime.",args:[],resolve:(e,t,n,{parentType:r})=>r.name,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0};Xt.TypeNameMetaFieldDef=C6;var VF=Object.freeze([XI,ZI,eg,Ui,tg,dp,ng,rg]);Xt.introspectionTypes=VF;function B6(e){return VF.some(({name:t})=>e.name===t)}});var uc=F(yl=>{"use strict";m();T();N();Object.defineProperty(yl,"__esModule",{value:!0});yl.GraphQLSchema=void 0;yl.assertSchema=q6;yl.isSchema=GF;var NN=Vr(),ag=Wt(),U6=Yd(),k6=Ca(),M6=Ym(),ig=Ba(),da=Ct(),KF=ei(),x6=ki();function GF(e){return(0,U6.instanceOf)(e,TN)}function q6(e){if(!GF(e))throw new Error(`Expected ${(0,ag.inspect)(e)} to be a GraphQL schema.`);return e}var TN=class{constructor(t){var n,r;this.__validationErrors=t.assumeValid===!0?[]:void 0,(0,k6.isObjectLike)(t)||(0,NN.devAssert)(!1,"Must provide configuration object."),!t.types||Array.isArray(t.types)||(0,NN.devAssert)(!1,`"types" must be Array if provided but got: ${(0,ag.inspect)(t.types)}.`),!t.directives||Array.isArray(t.directives)||(0,NN.devAssert)(!1,`"directives" must be Array if provided but got: ${(0,ag.inspect)(t.directives)}.`),this.description=t.description,this.extensions=(0,M6.toObjMap)(t.extensions),this.astNode=t.astNode,this.extensionASTNodes=(n=t.extensionASTNodes)!==null&&n!==void 0?n:[],this._queryType=t.query,this._mutationType=t.mutation,this._subscriptionType=t.subscription,this._directives=(r=t.directives)!==null&&r!==void 0?r:KF.specifiedDirectives;let i=new Set(t.types);if(t.types!=null)for(let a of t.types)i.delete(a),pa(a,i);this._queryType!=null&&pa(this._queryType,i),this._mutationType!=null&&pa(this._mutationType,i),this._subscriptionType!=null&&pa(this._subscriptionType,i);for(let a of this._directives)if((0,KF.isDirective)(a))for(let o of a.args)pa(o.type,i);pa(x6.__Schema,i),this._typeMap=Object.create(null),this._subTypeMap=Object.create(null),this._implementationsMap=Object.create(null);for(let a of i){if(a==null)continue;let o=a.name;if(o||(0,NN.devAssert)(!1,"One of the provided types for building the Schema is missing a name."),this._typeMap[o]!==void 0)throw new Error(`Schema must contain uniquely named types but contains multiple types named "${o}".`);if(this._typeMap[o]=a,(0,da.isInterfaceType)(a)){for(let c of a.getInterfaces())if((0,da.isInterfaceType)(c)){let l=this._implementationsMap[c.name];l===void 0&&(l=this._implementationsMap[c.name]={objects:[],interfaces:[]}),l.interfaces.push(a)}}else if((0,da.isObjectType)(a)){for(let c of a.getInterfaces())if((0,da.isInterfaceType)(c)){let l=this._implementationsMap[c.name];l===void 0&&(l=this._implementationsMap[c.name]={objects:[],interfaces:[]}),l.objects.push(a)}}}}get[Symbol.toStringTag](){return"GraphQLSchema"}getQueryType(){return this._queryType}getMutationType(){return this._mutationType}getSubscriptionType(){return this._subscriptionType}getRootType(t){switch(t){case ig.OperationTypeNode.QUERY:return this.getQueryType();case ig.OperationTypeNode.MUTATION:return this.getMutationType();case ig.OperationTypeNode.SUBSCRIPTION:return this.getSubscriptionType()}}getTypeMap(){return this._typeMap}getType(t){return this.getTypeMap()[t]}getPossibleTypes(t){return(0,da.isUnionType)(t)?t.getTypes():this.getImplementations(t).objects}getImplementations(t){let n=this._implementationsMap[t.name];return n!=null?n:{objects:[],interfaces:[]}}isSubType(t,n){let r=this._subTypeMap[t.name];if(r===void 0){if(r=Object.create(null),(0,da.isUnionType)(t))for(let i of t.getTypes())r[i.name]=!0;else{let i=this.getImplementations(t);for(let a of i.objects)r[a.name]=!0;for(let a of i.interfaces)r[a.name]=!0}this._subTypeMap[t.name]=r}return r[n.name]!==void 0}getDirectives(){return this._directives}getDirective(t){return this.getDirectives().find(n=>n.name===t)}toConfig(){return{description:this.description,query:this.getQueryType(),mutation:this.getMutationType(),subscription:this.getSubscriptionType(),types:Object.values(this.getTypeMap()),directives:this.getDirectives(),extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes,assumeValid:this.__validationErrors!==void 0}}};yl.GraphQLSchema=TN;function pa(e,t){let n=(0,da.getNamedType)(e);if(!t.has(n)){if(t.add(n),(0,da.isUnionType)(n))for(let r of n.getTypes())pa(r,t);else if((0,da.isObjectType)(n)||(0,da.isInterfaceType)(n)){for(let r of n.getInterfaces())pa(r,t);for(let r of Object.values(n.getFields())){pa(r.type,t);for(let i of r.args)pa(i.type,t)}}else if((0,da.isInputObjectType)(n))for(let r of Object.values(n.getFields()))pa(r.type,t)}return t}});var fp=F(EN=>{"use strict";m();T();N();Object.defineProperty(EN,"__esModule",{value:!0});EN.assertValidSchema=G6;EN.validateSchema=zF;var Ar=Wt(),j6=ze(),sg=Ba(),$F=rp(),Cn=Ct(),HF=ei(),V6=ki(),K6=uc();function zF(e){if((0,K6.assertSchema)(e),e.__validationErrors)return e.__validationErrors;let t=new ug(e);$6(t),Q6(t),Y6(t);let n=t.getErrors();return e.__validationErrors=n,n}function G6(e){let t=zF(e);if(t.length!==0)throw new Error(t.map(n=>n.message).join(` -`))}var VI=class{constructor(t){this._errors=[],this.schema=t}reportError(t,n){let r=Array.isArray(n)?n.filter(Boolean):n;this._errors.push(new T6.GraphQLError(t,{nodes:r}))}getErrors(){return this._errors}};function I6(e){let t=e.schema,n=t.getQueryType();if(!n)e.reportError("Query root type must be provided.",t.astNode);else if(!(0,Fn.isObjectType)(n)){var r;e.reportError(`Query root type must be Object type, it cannot be ${(0,_r.inspect)(n)}.`,(r=qI(t,xI.OperationTypeNode.QUERY))!==null&&r!==void 0?r:n.astNode)}let i=t.getMutationType();if(i&&!(0,Fn.isObjectType)(i)){var a;e.reportError(`Mutation root type must be Object type if provided, it cannot be ${(0,_r.inspect)(i)}.`,(a=qI(t,xI.OperationTypeNode.MUTATION))!==null&&a!==void 0?a:i.astNode)}let o=t.getSubscriptionType();if(o&&!(0,Fn.isObjectType)(o)){var c;e.reportError(`Subscription root type must be Object type if provided, it cannot be ${(0,_r.inspect)(o)}.`,(c=qI(t,xI.OperationTypeNode.SUBSCRIPTION))!==null&&c!==void 0?c:o.astNode)}}function qI(e,t){var n;return(n=[e.astNode,...e.extensionASTNodes].flatMap(r=>{var i;return(i=r==null?void 0:r.operationTypes)!==null&&i!==void 0?i:[]}).find(r=>r.operation===t))===null||n===void 0?void 0:n.type}function g6(e){for(let n of e.schema.getDirectives()){if(!(0,PF.isDirective)(n)){e.reportError(`Expected directive but got: ${(0,_r.inspect)(n)}.`,n==null?void 0:n.astNode);continue}Zu(e,n);for(let r of n.args)if(Zu(e,r),(0,Fn.isInputType)(r.type)||e.reportError(`The type of @${n.name}(${r.name}:) must be Input Type but got: ${(0,_r.inspect)(r.type)}.`,r.astNode),(0,Fn.isRequiredArgument)(r)&&r.deprecationReason!=null){var t;e.reportError(`Required argument @${n.name}(${r.name}:) cannot be deprecated.`,[jI(r.astNode),(t=r.astNode)===null||t===void 0?void 0:t.type])}}}function Zu(e,t){t.name.startsWith("__")&&e.reportError(`Name "${t.name}" must not begin with "__", which is reserved by GraphQL introspection.`,t.astNode)}function _6(e){let t=R6(e),n=e.schema.getTypeMap();for(let r of Object.values(n)){if(!(0,Fn.isNamedType)(r)){e.reportError(`Expected GraphQL named type but got: ${(0,_r.inspect)(r)}.`,r.astNode);continue}(0,E6.isIntrospectionType)(r)||Zu(e,r),(0,Fn.isObjectType)(r)||(0,Fn.isInterfaceType)(r)?(bF(e,r),AF(e,r)):(0,Fn.isUnionType)(r)?O6(e,r):(0,Fn.isEnumType)(r)?D6(e,r):(0,Fn.isInputObjectType)(r)&&(b6(e,r),t(r))}}function bF(e,t){let n=Object.values(t.getFields());n.length===0&&e.reportError(`Type ${t.name} must define one or more fields.`,[t.astNode,...t.extensionASTNodes]);for(let o of n){if(Zu(e,o),!(0,Fn.isOutputType)(o.type)){var r;e.reportError(`The type of ${t.name}.${o.name} must be Output Type but got: ${(0,_r.inspect)(o.type)}.`,(r=o.astNode)===null||r===void 0?void 0:r.type)}for(let c of o.args){let l=c.name;if(Zu(e,c),!(0,Fn.isInputType)(c.type)){var i;e.reportError(`The type of ${t.name}.${o.name}(${l}:) must be Input Type but got: ${(0,_r.inspect)(c.type)}.`,(i=c.astNode)===null||i===void 0?void 0:i.type)}if((0,Fn.isRequiredArgument)(c)&&c.deprecationReason!=null){var a;e.reportError(`Required argument ${t.name}.${o.name}(${l}:) cannot be deprecated.`,[jI(c.astNode),(a=c.astNode)===null||a===void 0?void 0:a.type])}}}}function AF(e,t){let n=Object.create(null);for(let r of t.getInterfaces()){if(!(0,Fn.isInterfaceType)(r)){e.reportError(`Type ${(0,_r.inspect)(t)} must only implement Interface types, it cannot implement ${(0,_r.inspect)(r)}.`,tf(t,r));continue}if(t===r){e.reportError(`Type ${t.name} cannot implement itself because it would create a circular reference.`,tf(t,r));continue}if(n[r.name]){e.reportError(`Type ${t.name} can only implement ${r.name} once.`,tf(t,r));continue}n[r.name]=!0,S6(e,t,r),v6(e,t,r)}}function v6(e,t,n){let r=t.getFields();for(let l of Object.values(n.getFields())){let d=l.name,p=r[d];if(!p){e.reportError(`Interface field ${n.name}.${d} expected but ${t.name} does not provide it.`,[l.astNode,t.astNode,...t.extensionASTNodes]);continue}if(!(0,DF.isTypeSubTypeOf)(e.schema,p.type,l.type)){var i,a;e.reportError(`Interface field ${n.name}.${d} expects type ${(0,_r.inspect)(l.type)} but ${t.name}.${d} is type ${(0,_r.inspect)(p.type)}.`,[(i=l.astNode)===null||i===void 0?void 0:i.type,(a=p.astNode)===null||a===void 0?void 0:a.type])}for(let y of l.args){let I=y.name,v=p.args.find(F=>F.name===I);if(!v){e.reportError(`Interface field argument ${n.name}.${d}(${I}:) expected but ${t.name}.${d} does not provide it.`,[y.astNode,p.astNode]);continue}if(!(0,DF.isEqualType)(y.type,v.type)){var o,c;e.reportError(`Interface field argument ${n.name}.${d}(${I}:) expects type ${(0,_r.inspect)(y.type)} but ${t.name}.${d}(${I}:) is type ${(0,_r.inspect)(v.type)}.`,[(o=y.astNode)===null||o===void 0?void 0:o.type,(c=v.astNode)===null||c===void 0?void 0:c.type])}}for(let y of p.args){let I=y.name;!l.args.find(F=>F.name===I)&&(0,Fn.isRequiredArgument)(y)&&e.reportError(`Object field ${t.name}.${d} includes required argument ${I} that is missing from the Interface field ${n.name}.${d}.`,[y.astNode,l.astNode])}}}function S6(e,t,n){let r=t.getInterfaces();for(let i of n.getInterfaces())r.includes(i)||e.reportError(i===t?`Type ${t.name} cannot implement ${n.name} because it would create a circular reference.`:`Type ${t.name} must implement ${i.name} because it is implemented by ${n.name}.`,[...tf(n,i),...tf(t,n)])}function O6(e,t){let n=t.getTypes();n.length===0&&e.reportError(`Union type ${t.name} must define one or more member types.`,[t.astNode,...t.extensionASTNodes]);let r=Object.create(null);for(let i of n){if(r[i.name]){e.reportError(`Union type ${t.name} can only include type ${i.name} once.`,RF(t,i.name));continue}r[i.name]=!0,(0,Fn.isObjectType)(i)||e.reportError(`Union type ${t.name} can only include Object types, it cannot include ${(0,_r.inspect)(i)}.`,RF(t,String(i)))}}function D6(e,t){let n=t.getValues();n.length===0&&e.reportError(`Enum type ${t.name} must define one or more values.`,[t.astNode,...t.extensionASTNodes]);for(let r of n)Zu(e,r)}function b6(e,t){let n=Object.values(t.getFields());n.length===0&&e.reportError(`Input Object type ${t.name} must define one or more fields.`,[t.astNode,...t.extensionASTNodes]);for(let a of n){if(Zu(e,a),!(0,Fn.isInputType)(a.type)){var r;e.reportError(`The type of ${t.name}.${a.name} must be Input Type but got: ${(0,_r.inspect)(a.type)}.`,(r=a.astNode)===null||r===void 0?void 0:r.type)}if((0,Fn.isRequiredInputField)(a)&&a.deprecationReason!=null){var i;e.reportError(`Required input field ${t.name}.${a.name} cannot be deprecated.`,[jI(a.astNode),(i=a.astNode)===null||i===void 0?void 0:i.type])}t.isOneOf&&A6(t,a,e)}}function A6(e,t,n){if((0,Fn.isNonNullType)(t.type)){var r;n.reportError(`OneOf input field ${e.name}.${t.name} must be nullable.`,(r=t.astNode)===null||r===void 0?void 0:r.type)}t.defaultValue!==void 0&&n.reportError(`OneOf input field ${e.name}.${t.name} cannot have a default value.`,t.astNode)}function R6(e){let t=Object.create(null),n=[],r=Object.create(null);return i;function i(a){if(t[a.name])return;t[a.name]=!0,r[a.name]=n.length;let o=Object.values(a.getFields());for(let c of o)if((0,Fn.isNonNullType)(c.type)&&(0,Fn.isInputObjectType)(c.type.ofType)){let l=c.type.ofType,d=r[l.name];if(n.push(c),d===void 0)i(l);else{let p=n.slice(d),y=p.map(I=>I.name).join(".");e.reportError(`Cannot reference Input Object "${l.name}" within itself through a series of non-null fields: "${y}".`,p.map(I=>I.astNode))}n.pop()}r[a.name]=void 0}}function tf(e,t){let{astNode:n,extensionASTNodes:r}=e;return(n!=null?[n,...r]:r).flatMap(a=>{var o;return(o=a.interfaces)!==null&&o!==void 0?o:[]}).filter(a=>a.name.value===t.name)}function RF(e,t){let{astNode:n,extensionASTNodes:r}=e;return(n!=null?[n,...r]:r).flatMap(a=>{var o;return(o=a.types)!==null&&o!==void 0?o:[]}).filter(a=>a.name.value===t)}function jI(e){var t;return e==null||(t=e.directives)===null||t===void 0?void 0:t.find(n=>n.name.value===PF.GraphQLDeprecatedDirective.name)}});var Fa=w($I=>{"use strict";m();T();N();Object.defineProperty($I,"__esModule",{value:!0});$I.typeFromAST=GI;var KI=Ft(),wF=wt();function GI(e,t){switch(t.kind){case KI.Kind.LIST_TYPE:{let n=GI(e,t.type);return n&&new wF.GraphQLList(n)}case KI.Kind.NON_NULL_TYPE:{let n=GI(e,t.type);return n&&new wF.GraphQLNonNull(n)}case KI.Kind.NAMED_TYPE:return e.getType(t.name.value)}}});var nN=w(rf=>{"use strict";m();T();N();Object.defineProperty(rf,"__esModule",{value:!0});rf.TypeInfo=void 0;rf.visitWithTypeInfo=w6;var P6=ba(),wn=Ft(),LF=Qu(),Ln=wt(),cl=Fi(),CF=Fa(),QI=class{constructor(t,n,r){this._schema=t,this._typeStack=[],this._parentTypeStack=[],this._inputTypeStack=[],this._fieldDefStack=[],this._defaultValueStack=[],this._directive=null,this._argument=null,this._enumValue=null,this._getFieldDef=r!=null?r:F6,n&&((0,Ln.isInputType)(n)&&this._inputTypeStack.push(n),(0,Ln.isCompositeType)(n)&&this._parentTypeStack.push(n),(0,Ln.isOutputType)(n)&&this._typeStack.push(n))}get[Symbol.toStringTag](){return"TypeInfo"}getType(){if(this._typeStack.length>0)return this._typeStack[this._typeStack.length-1]}getParentType(){if(this._parentTypeStack.length>0)return this._parentTypeStack[this._parentTypeStack.length-1]}getInputType(){if(this._inputTypeStack.length>0)return this._inputTypeStack[this._inputTypeStack.length-1]}getParentInputType(){if(this._inputTypeStack.length>1)return this._inputTypeStack[this._inputTypeStack.length-2]}getFieldDef(){if(this._fieldDefStack.length>0)return this._fieldDefStack[this._fieldDefStack.length-1]}getDefaultValue(){if(this._defaultValueStack.length>0)return this._defaultValueStack[this._defaultValueStack.length-1]}getDirective(){return this._directive}getArgument(){return this._argument}getEnumValue(){return this._enumValue}enter(t){let n=this._schema;switch(t.kind){case wn.Kind.SELECTION_SET:{let i=(0,Ln.getNamedType)(this.getType());this._parentTypeStack.push((0,Ln.isCompositeType)(i)?i:void 0);break}case wn.Kind.FIELD:{let i=this.getParentType(),a,o;i&&(a=this._getFieldDef(n,i,t),a&&(o=a.type)),this._fieldDefStack.push(a),this._typeStack.push((0,Ln.isOutputType)(o)?o:void 0);break}case wn.Kind.DIRECTIVE:this._directive=n.getDirective(t.name.value);break;case wn.Kind.OPERATION_DEFINITION:{let i=n.getRootType(t.operation);this._typeStack.push((0,Ln.isObjectType)(i)?i:void 0);break}case wn.Kind.INLINE_FRAGMENT:case wn.Kind.FRAGMENT_DEFINITION:{let i=t.typeCondition,a=i?(0,CF.typeFromAST)(n,i):(0,Ln.getNamedType)(this.getType());this._typeStack.push((0,Ln.isOutputType)(a)?a:void 0);break}case wn.Kind.VARIABLE_DEFINITION:{let i=(0,CF.typeFromAST)(n,t.type);this._inputTypeStack.push((0,Ln.isInputType)(i)?i:void 0);break}case wn.Kind.ARGUMENT:{var r;let i,a,o=(r=this.getDirective())!==null&&r!==void 0?r:this.getFieldDef();o&&(i=o.args.find(c=>c.name===t.name.value),i&&(a=i.type)),this._argument=i,this._defaultValueStack.push(i?i.defaultValue:void 0),this._inputTypeStack.push((0,Ln.isInputType)(a)?a:void 0);break}case wn.Kind.LIST:{let i=(0,Ln.getNullableType)(this.getInputType()),a=(0,Ln.isListType)(i)?i.ofType:i;this._defaultValueStack.push(void 0),this._inputTypeStack.push((0,Ln.isInputType)(a)?a:void 0);break}case wn.Kind.OBJECT_FIELD:{let i=(0,Ln.getNamedType)(this.getInputType()),a,o;(0,Ln.isInputObjectType)(i)&&(o=i.getFields()[t.name.value],o&&(a=o.type)),this._defaultValueStack.push(o?o.defaultValue:void 0),this._inputTypeStack.push((0,Ln.isInputType)(a)?a:void 0);break}case wn.Kind.ENUM:{let i=(0,Ln.getNamedType)(this.getInputType()),a;(0,Ln.isEnumType)(i)&&(a=i.getValue(t.value)),this._enumValue=a;break}default:}}leave(t){switch(t.kind){case wn.Kind.SELECTION_SET:this._parentTypeStack.pop();break;case wn.Kind.FIELD:this._fieldDefStack.pop(),this._typeStack.pop();break;case wn.Kind.DIRECTIVE:this._directive=null;break;case wn.Kind.OPERATION_DEFINITION:case wn.Kind.INLINE_FRAGMENT:case wn.Kind.FRAGMENT_DEFINITION:this._typeStack.pop();break;case wn.Kind.VARIABLE_DEFINITION:this._inputTypeStack.pop();break;case wn.Kind.ARGUMENT:this._argument=null,this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case wn.Kind.LIST:case wn.Kind.OBJECT_FIELD:this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case wn.Kind.ENUM:this._enumValue=null;break;default:}}};rf.TypeInfo=QI;function F6(e,t,n){let r=n.name.value;if(r===cl.SchemaMetaFieldDef.name&&e.getQueryType()===t)return cl.SchemaMetaFieldDef;if(r===cl.TypeMetaFieldDef.name&&e.getQueryType()===t)return cl.TypeMetaFieldDef;if(r===cl.TypeNameMetaFieldDef.name&&(0,Ln.isCompositeType)(t))return cl.TypeNameMetaFieldDef;if((0,Ln.isObjectType)(t)||(0,Ln.isInterfaceType)(t))return t.getFields()[r]}function w6(e,t){return{enter(...n){let r=n[0];e.enter(r);let i=(0,LF.getEnterLeaveForKind)(t,r.kind).enter;if(i){let a=i.apply(t,n);return a!==void 0&&(e.leave(r),(0,P6.isNode)(a)&&e.enter(a)),a}},leave(...n){let r=n[0],i=(0,LF.getEnterLeaveForKind)(t,r.kind).leave,a;return i&&(a=i.apply(t,n)),e.leave(r),a}}}});var ec=w(wi=>{"use strict";m();T();N();Object.defineProperty(wi,"__esModule",{value:!0});wi.isConstValueNode=YI;wi.isDefinitionNode=L6;wi.isExecutableDefinitionNode=BF;wi.isSelectionNode=C6;wi.isTypeDefinitionNode=MF;wi.isTypeExtensionNode=qF;wi.isTypeNode=B6;wi.isTypeSystemDefinitionNode=kF;wi.isTypeSystemExtensionNode=xF;wi.isValueNode=UF;var Lt=Ft();function L6(e){return BF(e)||kF(e)||xF(e)}function BF(e){return e.kind===Lt.Kind.OPERATION_DEFINITION||e.kind===Lt.Kind.FRAGMENT_DEFINITION}function C6(e){return e.kind===Lt.Kind.FIELD||e.kind===Lt.Kind.FRAGMENT_SPREAD||e.kind===Lt.Kind.INLINE_FRAGMENT}function UF(e){return e.kind===Lt.Kind.VARIABLE||e.kind===Lt.Kind.INT||e.kind===Lt.Kind.FLOAT||e.kind===Lt.Kind.STRING||e.kind===Lt.Kind.BOOLEAN||e.kind===Lt.Kind.NULL||e.kind===Lt.Kind.ENUM||e.kind===Lt.Kind.LIST||e.kind===Lt.Kind.OBJECT}function YI(e){return UF(e)&&(e.kind===Lt.Kind.LIST?e.values.some(YI):e.kind===Lt.Kind.OBJECT?e.fields.some(t=>YI(t.value)):e.kind!==Lt.Kind.VARIABLE)}function B6(e){return e.kind===Lt.Kind.NAMED_TYPE||e.kind===Lt.Kind.LIST_TYPE||e.kind===Lt.Kind.NON_NULL_TYPE}function kF(e){return e.kind===Lt.Kind.SCHEMA_DEFINITION||MF(e)||e.kind===Lt.Kind.DIRECTIVE_DEFINITION}function MF(e){return e.kind===Lt.Kind.SCALAR_TYPE_DEFINITION||e.kind===Lt.Kind.OBJECT_TYPE_DEFINITION||e.kind===Lt.Kind.INTERFACE_TYPE_DEFINITION||e.kind===Lt.Kind.UNION_TYPE_DEFINITION||e.kind===Lt.Kind.ENUM_TYPE_DEFINITION||e.kind===Lt.Kind.INPUT_OBJECT_TYPE_DEFINITION}function xF(e){return e.kind===Lt.Kind.SCHEMA_EXTENSION||qF(e)}function qF(e){return e.kind===Lt.Kind.SCALAR_TYPE_EXTENSION||e.kind===Lt.Kind.OBJECT_TYPE_EXTENSION||e.kind===Lt.Kind.INTERFACE_TYPE_EXTENSION||e.kind===Lt.Kind.UNION_TYPE_EXTENSION||e.kind===Lt.Kind.ENUM_TYPE_EXTENSION||e.kind===Lt.Kind.INPUT_OBJECT_TYPE_EXTENSION}});var HI=w(JI=>{"use strict";m();T();N();Object.defineProperty(JI,"__esModule",{value:!0});JI.ExecutableDefinitionsRule=M6;var U6=ze(),VF=Ft(),k6=ec();function M6(e){return{Document(t){for(let n of t.definitions)if(!(0,k6.isExecutableDefinitionNode)(n)){let r=n.kind===VF.Kind.SCHEMA_DEFINITION||n.kind===VF.Kind.SCHEMA_EXTENSION?"schema":'"'+n.name.value+'"';e.reportError(new U6.GraphQLError(`The ${r} definition is not executable.`,{nodes:n}))}return!1}}}});var WI=w(zI=>{"use strict";m();T();N();Object.defineProperty(zI,"__esModule",{value:!0});zI.FieldsOnCorrectTypeRule=j6;var jF=eu(),x6=qd(),q6=nu(),V6=ze(),af=wt();function j6(e){return{Field(t){let n=e.getParentType();if(n&&!e.getFieldDef()){let i=e.getSchema(),a=t.name.value,o=(0,jF.didYouMean)("to use an inline fragment on",K6(i,n,a));o===""&&(o=(0,jF.didYouMean)(G6(n,a))),e.reportError(new V6.GraphQLError(`Cannot query field "${a}" on type "${n.name}".`+o,{nodes:t}))}}}}function K6(e,t,n){if(!(0,af.isAbstractType)(t))return[];let r=new Set,i=Object.create(null);for(let o of e.getPossibleTypes(t))if(o.getFields()[n]){r.add(o),i[o.name]=1;for(let c of o.getInterfaces()){var a;c.getFields()[n]&&(r.add(c),i[c.name]=((a=i[c.name])!==null&&a!==void 0?a:0)+1)}}return[...r].sort((o,c)=>{let l=i[c.name]-i[o.name];return l!==0?l:(0,af.isInterfaceType)(o)&&e.isSubType(o,c)?-1:(0,af.isInterfaceType)(c)&&e.isSubType(c,o)?1:(0,x6.naturalCompare)(o.name,c.name)}).map(o=>o.name)}function G6(e,t){if((0,af.isObjectType)(e)||(0,af.isInterfaceType)(e)){let n=Object.keys(e.getFields());return(0,q6.suggestionList)(t,n)}return[]}});var ZI=w(XI=>{"use strict";m();T();N();Object.defineProperty(XI,"__esModule",{value:!0});XI.FragmentsOnCompositeTypesRule=$6;var KF=ze(),GF=li(),$F=wt(),QF=Fa();function $6(e){return{InlineFragment(t){let n=t.typeCondition;if(n){let r=(0,QF.typeFromAST)(e.getSchema(),n);if(r&&!(0,$F.isCompositeType)(r)){let i=(0,GF.print)(n);e.reportError(new KF.GraphQLError(`Fragment cannot condition on non composite type "${i}".`,{nodes:n}))}}},FragmentDefinition(t){let n=(0,QF.typeFromAST)(e.getSchema(),t.typeCondition);if(n&&!(0,$F.isCompositeType)(n)){let r=(0,GF.print)(t.typeCondition);e.reportError(new KF.GraphQLError(`Fragment "${t.name.value}" cannot condition on non composite type "${r}".`,{nodes:t.typeCondition}))}}}}});var eg=w(rN=>{"use strict";m();T();N();Object.defineProperty(rN,"__esModule",{value:!0});rN.KnownArgumentNamesOnDirectivesRule=zF;rN.KnownArgumentNamesRule=J6;var YF=eu(),JF=nu(),HF=ze(),Q6=Ft(),Y6=Qr();function J6(e){return Q(x({},zF(e)),{Argument(t){let n=e.getArgument(),r=e.getFieldDef(),i=e.getParentType();if(!n&&r&&i){let a=t.name.value,o=r.args.map(l=>l.name),c=(0,JF.suggestionList)(a,o);e.reportError(new HF.GraphQLError(`Unknown argument "${a}" on field "${i.name}.${r.name}".`+(0,YF.didYouMean)(c),{nodes:t}))}}})}function zF(e){let t=Object.create(null),n=e.getSchema(),r=n?n.getDirectives():Y6.specifiedDirectives;for(let o of r)t[o.name]=o.args.map(c=>c.name);let i=e.getDocument().definitions;for(let o of i)if(o.kind===Q6.Kind.DIRECTIVE_DEFINITION){var a;let c=(a=o.arguments)!==null&&a!==void 0?a:[];t[o.name.value]=c.map(l=>l.name.value)}return{Directive(o){let c=o.name.value,l=t[c];if(o.arguments&&l)for(let d of o.arguments){let p=d.name.value;if(!l.includes(p)){let y=(0,JF.suggestionList)(p,l);e.reportError(new HF.GraphQLError(`Unknown argument "${p}" on directive "@${c}".`+(0,YF.didYouMean)(y),{nodes:d}))}}return!1}}}});var ig=w(rg=>{"use strict";m();T();N();Object.defineProperty(rg,"__esModule",{value:!0});rg.KnownDirectivesRule=W6;var H6=Xt(),tg=Ir(),WF=ze(),ng=ba(),er=nl(),hn=Ft(),z6=Qr();function W6(e){let t=Object.create(null),n=e.getSchema(),r=n?n.getDirectives():z6.specifiedDirectives;for(let a of r)t[a.name]=a.locations;let i=e.getDocument().definitions;for(let a of i)a.kind===hn.Kind.DIRECTIVE_DEFINITION&&(t[a.name.value]=a.locations.map(o=>o.value));return{Directive(a,o,c,l,d){let p=a.name.value,y=t[p];if(!y){e.reportError(new WF.GraphQLError(`Unknown directive "@${p}".`,{nodes:a}));return}let I=X6(d);I&&!y.includes(I)&&e.reportError(new WF.GraphQLError(`Directive "@${p}" may not be used on ${I}.`,{nodes:a}))}}}function X6(e){let t=e[e.length-1];switch("kind"in t||(0,tg.invariant)(!1),t.kind){case hn.Kind.OPERATION_DEFINITION:return Z6(t.operation);case hn.Kind.FIELD:return er.DirectiveLocation.FIELD;case hn.Kind.FRAGMENT_SPREAD:return er.DirectiveLocation.FRAGMENT_SPREAD;case hn.Kind.INLINE_FRAGMENT:return er.DirectiveLocation.INLINE_FRAGMENT;case hn.Kind.FRAGMENT_DEFINITION:return er.DirectiveLocation.FRAGMENT_DEFINITION;case hn.Kind.VARIABLE_DEFINITION:return er.DirectiveLocation.VARIABLE_DEFINITION;case hn.Kind.SCHEMA_DEFINITION:case hn.Kind.SCHEMA_EXTENSION:return er.DirectiveLocation.SCHEMA;case hn.Kind.SCALAR_TYPE_DEFINITION:case hn.Kind.SCALAR_TYPE_EXTENSION:return er.DirectiveLocation.SCALAR;case hn.Kind.OBJECT_TYPE_DEFINITION:case hn.Kind.OBJECT_TYPE_EXTENSION:return er.DirectiveLocation.OBJECT;case hn.Kind.FIELD_DEFINITION:return er.DirectiveLocation.FIELD_DEFINITION;case hn.Kind.INTERFACE_TYPE_DEFINITION:case hn.Kind.INTERFACE_TYPE_EXTENSION:return er.DirectiveLocation.INTERFACE;case hn.Kind.UNION_TYPE_DEFINITION:case hn.Kind.UNION_TYPE_EXTENSION:return er.DirectiveLocation.UNION;case hn.Kind.ENUM_TYPE_DEFINITION:case hn.Kind.ENUM_TYPE_EXTENSION:return er.DirectiveLocation.ENUM;case hn.Kind.ENUM_VALUE_DEFINITION:return er.DirectiveLocation.ENUM_VALUE;case hn.Kind.INPUT_OBJECT_TYPE_DEFINITION:case hn.Kind.INPUT_OBJECT_TYPE_EXTENSION:return er.DirectiveLocation.INPUT_OBJECT;case hn.Kind.INPUT_VALUE_DEFINITION:{let n=e[e.length-3];return"kind"in n||(0,tg.invariant)(!1),n.kind===hn.Kind.INPUT_OBJECT_TYPE_DEFINITION?er.DirectiveLocation.INPUT_FIELD_DEFINITION:er.DirectiveLocation.ARGUMENT_DEFINITION}default:(0,tg.invariant)(!1,"Unexpected kind: "+(0,H6.inspect)(t.kind))}}function Z6(e){switch(e){case ng.OperationTypeNode.QUERY:return er.DirectiveLocation.QUERY;case ng.OperationTypeNode.MUTATION:return er.DirectiveLocation.MUTATION;case ng.OperationTypeNode.SUBSCRIPTION:return er.DirectiveLocation.SUBSCRIPTION}}});var sg=w(ag=>{"use strict";m();T();N();Object.defineProperty(ag,"__esModule",{value:!0});ag.KnownFragmentNamesRule=tz;var ez=ze();function tz(e){return{FragmentSpread(t){let n=t.name.value;e.getFragment(n)||e.reportError(new ez.GraphQLError(`Unknown fragment "${n}".`,{nodes:t.name}))}}}});var cg=w(ug=>{"use strict";m();T();N();Object.defineProperty(ug,"__esModule",{value:!0});ug.KnownTypeNamesRule=oz;var nz=eu(),rz=nu(),iz=ze(),og=ec(),az=Fi(),sz=Pa();function oz(e){let t=e.getSchema(),n=t?t.getTypeMap():Object.create(null),r=Object.create(null);for(let a of e.getDocument().definitions)(0,og.isTypeDefinitionNode)(a)&&(r[a.name.value]=!0);let i=[...Object.keys(n),...Object.keys(r)];return{NamedType(a,o,c,l,d){let p=a.name.value;if(!n[p]&&!r[p]){var y;let I=(y=d[2])!==null&&y!==void 0?y:c,v=I!=null&&uz(I);if(v&&XF.includes(p))return;let F=(0,rz.suggestionList)(p,v?XF.concat(i):i);e.reportError(new iz.GraphQLError(`Unknown type "${p}".`+(0,nz.didYouMean)(F),{nodes:a}))}}}}var XF=[...sz.specifiedScalarTypes,...az.introspectionTypes].map(e=>e.name);function uz(e){return"kind"in e&&((0,og.isTypeSystemDefinitionNode)(e)||(0,og.isTypeSystemExtensionNode)(e))}});var dg=w(lg=>{"use strict";m();T();N();Object.defineProperty(lg,"__esModule",{value:!0});lg.LoneAnonymousOperationRule=dz;var cz=ze(),lz=Ft();function dz(e){let t=0;return{Document(n){t=n.definitions.filter(r=>r.kind===lz.Kind.OPERATION_DEFINITION).length},OperationDefinition(n){!n.name&&t>1&&e.reportError(new cz.GraphQLError("This anonymous operation must be the only defined operation.",{nodes:n}))}}}});var pg=w(fg=>{"use strict";m();T();N();Object.defineProperty(fg,"__esModule",{value:!0});fg.LoneSchemaDefinitionRule=fz;var ZF=ze();function fz(e){var t,n,r;let i=e.getSchema(),a=(t=(n=(r=i==null?void 0:i.astNode)!==null&&r!==void 0?r:i==null?void 0:i.getQueryType())!==null&&n!==void 0?n:i==null?void 0:i.getMutationType())!==null&&t!==void 0?t:i==null?void 0:i.getSubscriptionType(),o=0;return{SchemaDefinition(c){if(a){e.reportError(new ZF.GraphQLError("Cannot define a new schema within a schema extension.",{nodes:c}));return}o>0&&e.reportError(new ZF.GraphQLError("Must provide only one schema definition.",{nodes:c})),++o}}}});var Ng=w(mg=>{"use strict";m();T();N();Object.defineProperty(mg,"__esModule",{value:!0});mg.MaxIntrospectionDepthRule=Nz;var pz=ze(),ew=Ft(),mz=3;function Nz(e){function t(n,r=Object.create(null),i=0){if(n.kind===ew.Kind.FRAGMENT_SPREAD){let a=n.name.value;if(r[a]===!0)return!1;let o=e.getFragment(a);if(!o)return!1;try{return r[a]=!0,t(o,r,i)}finally{r[a]=void 0}}if(n.kind===ew.Kind.FIELD&&(n.name.value==="fields"||n.name.value==="interfaces"||n.name.value==="possibleTypes"||n.name.value==="inputFields")&&(i++,i>=mz))return!0;if("selectionSet"in n&&n.selectionSet){for(let a of n.selectionSet.selections)if(t(a,r,i))return!0}return!1}return{Field(n){if((n.name.value==="__schema"||n.name.value==="__type")&&t(n))return e.reportError(new pz.GraphQLError("Maximum introspection depth exceeded",{nodes:[n]})),!1}}}});var Eg=w(Tg=>{"use strict";m();T();N();Object.defineProperty(Tg,"__esModule",{value:!0});Tg.NoFragmentCyclesRule=Ez;var Tz=ze();function Ez(e){let t=Object.create(null),n=[],r=Object.create(null);return{OperationDefinition:()=>!1,FragmentDefinition(a){return i(a),!1}};function i(a){if(t[a.name.value])return;let o=a.name.value;t[o]=!0;let c=e.getFragmentSpreads(a.selectionSet);if(c.length!==0){r[o]=n.length;for(let l of c){let d=l.name.value,p=r[d];if(n.push(l),p===void 0){let y=e.getFragment(d);y&&i(y)}else{let y=n.slice(p),I=y.slice(0,-1).map(v=>'"'+v.name.value+'"').join(", ");e.reportError(new Tz.GraphQLError(`Cannot spread fragment "${d}" within itself`+(I!==""?` via ${I}.`:"."),{nodes:y}))}n.pop()}r[o]=void 0}}}});var yg=w(hg=>{"use strict";m();T();N();Object.defineProperty(hg,"__esModule",{value:!0});hg.NoUndefinedVariablesRule=yz;var hz=ze();function yz(e){let t=Object.create(null);return{OperationDefinition:{enter(){t=Object.create(null)},leave(n){let r=e.getRecursiveVariableUsages(n);for(let{node:i}of r){let a=i.name.value;t[a]!==!0&&e.reportError(new hz.GraphQLError(n.name?`Variable "$${a}" is not defined by operation "${n.name.value}".`:`Variable "$${a}" is not defined.`,{nodes:[i,n]}))}}},VariableDefinition(n){t[n.variable.name.value]=!0}}}});var gg=w(Ig=>{"use strict";m();T();N();Object.defineProperty(Ig,"__esModule",{value:!0});Ig.NoUnusedFragmentsRule=gz;var Iz=ze();function gz(e){let t=[],n=[];return{OperationDefinition(r){return t.push(r),!1},FragmentDefinition(r){return n.push(r),!1},Document:{leave(){let r=Object.create(null);for(let i of t)for(let a of e.getRecursivelyReferencedFragments(i))r[a.name.value]=!0;for(let i of n){let a=i.name.value;r[a]!==!0&&e.reportError(new Iz.GraphQLError(`Fragment "${a}" is never used.`,{nodes:i}))}}}}}});var vg=w(_g=>{"use strict";m();T();N();Object.defineProperty(_g,"__esModule",{value:!0});_g.NoUnusedVariablesRule=vz;var _z=ze();function vz(e){let t=[];return{OperationDefinition:{enter(){t=[]},leave(n){let r=Object.create(null),i=e.getRecursiveVariableUsages(n);for(let{node:a}of i)r[a.name.value]=!0;for(let a of t){let o=a.variable.name.value;r[o]!==!0&&e.reportError(new _z.GraphQLError(n.name?`Variable "$${o}" is never used in operation "${n.name.value}".`:`Variable "$${o}" is never used.`,{nodes:a}))}}},VariableDefinition(n){t.push(n)}}}});var Dg=w(Og=>{"use strict";m();T();N();Object.defineProperty(Og,"__esModule",{value:!0});Og.sortValueNode=Sg;var Sz=qd(),hs=Ft();function Sg(e){switch(e.kind){case hs.Kind.OBJECT:return Q(x({},e),{fields:Oz(e.fields)});case hs.Kind.LIST:return Q(x({},e),{values:e.values.map(Sg)});case hs.Kind.INT:case hs.Kind.FLOAT:case hs.Kind.STRING:case hs.Kind.BOOLEAN:case hs.Kind.NULL:case hs.Kind.ENUM:case hs.Kind.VARIABLE:return e}}function Oz(e){return e.map(t=>Q(x({},t),{value:Sg(t.value)})).sort((t,n)=>(0,Sz.naturalCompare)(t.name.value,n.name.value))}});var Lg=w(wg=>{"use strict";m();T();N();Object.defineProperty(wg,"__esModule",{value:!0});wg.OverlappingFieldsCanBeMergedRule=Rz;var tw=Xt(),Dz=ze(),bg=Ft(),bz=li(),Yr=wt(),Az=Dg(),rw=Fa();function iw(e){return Array.isArray(e)?e.map(([t,n])=>`subfields "${t}" conflict because `+iw(n)).join(" and "):e}function Rz(e){let t=new Pg,n=new Map;return{SelectionSet(r){let i=Pz(e,n,t,e.getParentType(),r);for(let[[a,o],c,l]of i){let d=iw(o);e.reportError(new Dz.GraphQLError(`Fields "${a}" conflict because ${d}. Use different aliases on the fields to fetch both if this was intentional.`,{nodes:c.concat(l)}))}}}}function Pz(e,t,n,r,i){let a=[],[o,c]=sN(e,t,r,i);if(wz(e,a,t,n,o),c.length!==0)for(let l=0;l1)for(let c=0;c[a.value,o]));return n.every(a=>{let o=a.value,c=i.get(a.name.value);return c===void 0?!1:nw(o)===nw(c)})}function nw(e){return(0,bz.print)((0,Az.sortValueNode)(e))}function Ag(e,t){return(0,Yr.isListType)(e)?(0,Yr.isListType)(t)?Ag(e.ofType,t.ofType):!0:(0,Yr.isListType)(t)?!0:(0,Yr.isNonNullType)(e)?(0,Yr.isNonNullType)(t)?Ag(e.ofType,t.ofType):!0:(0,Yr.isNonNullType)(t)?!0:(0,Yr.isLeafType)(e)||(0,Yr.isLeafType)(t)?e!==t:!1}function sN(e,t,n,r){let i=t.get(r);if(i)return i;let a=Object.create(null),o=Object.create(null);sw(e,n,r,a,o);let c=[a,Object.keys(o)];return t.set(r,c),c}function Rg(e,t,n){let r=t.get(n.selectionSet);if(r)return r;let i=(0,rw.typeFromAST)(e.getSchema(),n.typeCondition);return sN(e,t,i,n.selectionSet)}function sw(e,t,n,r,i){for(let a of n.selections)switch(a.kind){case bg.Kind.FIELD:{let o=a.name.value,c;((0,Yr.isObjectType)(t)||(0,Yr.isInterfaceType)(t))&&(c=t.getFields()[o]);let l=a.alias?a.alias.value:o;r[l]||(r[l]=[]),r[l].push([t,a,c]);break}case bg.Kind.FRAGMENT_SPREAD:i[a.name.value]=!0;break;case bg.Kind.INLINE_FRAGMENT:{let o=a.typeCondition,c=o?(0,rw.typeFromAST)(e.getSchema(),o):t;sw(e,c,a.selectionSet,r,i);break}}}function Cz(e,t,n,r){if(e.length>0)return[[t,e.map(([i])=>i)],[n,...e.map(([,i])=>i).flat()],[r,...e.map(([,,i])=>i).flat()]]}var Pg=class{constructor(){this._data=new Map}has(t,n,r){var i;let[a,o]=t{"use strict";m();T();N();Object.defineProperty(Bg,"__esModule",{value:!0});Bg.PossibleFragmentSpreadsRule=Uz;var oN=Xt(),ow=ze(),Cg=wt(),uw=Qd(),Bz=Fa();function Uz(e){return{InlineFragment(t){let n=e.getType(),r=e.getParentType();if((0,Cg.isCompositeType)(n)&&(0,Cg.isCompositeType)(r)&&!(0,uw.doTypesOverlap)(e.getSchema(),n,r)){let i=(0,oN.inspect)(r),a=(0,oN.inspect)(n);e.reportError(new ow.GraphQLError(`Fragment cannot be spread here as objects of type "${i}" can never be of type "${a}".`,{nodes:t}))}},FragmentSpread(t){let n=t.name.value,r=kz(e,n),i=e.getParentType();if(r&&i&&!(0,uw.doTypesOverlap)(e.getSchema(),r,i)){let a=(0,oN.inspect)(i),o=(0,oN.inspect)(r);e.reportError(new ow.GraphQLError(`Fragment "${n}" cannot be spread here as objects of type "${a}" can never be of type "${o}".`,{nodes:t}))}}}}function kz(e,t){let n=e.getFragment(t);if(n){let r=(0,Bz.typeFromAST)(e.getSchema(),n.typeCondition);if((0,Cg.isCompositeType)(r))return r}}});var Mg=w(kg=>{"use strict";m();T();N();Object.defineProperty(kg,"__esModule",{value:!0});kg.PossibleTypeExtensionsRule=Vz;var Mz=eu(),lw=Xt(),dw=Ir(),xz=nu(),cw=ze(),gn=Ft(),qz=ec(),ll=wt();function Vz(e){let t=e.getSchema(),n=Object.create(null);for(let i of e.getDocument().definitions)(0,qz.isTypeDefinitionNode)(i)&&(n[i.name.value]=i);return{ScalarTypeExtension:r,ObjectTypeExtension:r,InterfaceTypeExtension:r,UnionTypeExtension:r,EnumTypeExtension:r,InputObjectTypeExtension:r};function r(i){let a=i.name.value,o=n[a],c=t==null?void 0:t.getType(a),l;if(o?l=jz[o.kind]:c&&(l=Kz(c)),l){if(l!==i.kind){let d=Gz(i.kind);e.reportError(new cw.GraphQLError(`Cannot extend non-${d} type "${a}".`,{nodes:o?[o,i]:i}))}}else{let d=Object.keys(x(x({},n),t==null?void 0:t.getTypeMap())),p=(0,xz.suggestionList)(a,d);e.reportError(new cw.GraphQLError(`Cannot extend type "${a}" because it is not defined.`+(0,Mz.didYouMean)(p),{nodes:i.name}))}}}var jz={[gn.Kind.SCALAR_TYPE_DEFINITION]:gn.Kind.SCALAR_TYPE_EXTENSION,[gn.Kind.OBJECT_TYPE_DEFINITION]:gn.Kind.OBJECT_TYPE_EXTENSION,[gn.Kind.INTERFACE_TYPE_DEFINITION]:gn.Kind.INTERFACE_TYPE_EXTENSION,[gn.Kind.UNION_TYPE_DEFINITION]:gn.Kind.UNION_TYPE_EXTENSION,[gn.Kind.ENUM_TYPE_DEFINITION]:gn.Kind.ENUM_TYPE_EXTENSION,[gn.Kind.INPUT_OBJECT_TYPE_DEFINITION]:gn.Kind.INPUT_OBJECT_TYPE_EXTENSION};function Kz(e){if((0,ll.isScalarType)(e))return gn.Kind.SCALAR_TYPE_EXTENSION;if((0,ll.isObjectType)(e))return gn.Kind.OBJECT_TYPE_EXTENSION;if((0,ll.isInterfaceType)(e))return gn.Kind.INTERFACE_TYPE_EXTENSION;if((0,ll.isUnionType)(e))return gn.Kind.UNION_TYPE_EXTENSION;if((0,ll.isEnumType)(e))return gn.Kind.ENUM_TYPE_EXTENSION;if((0,ll.isInputObjectType)(e))return gn.Kind.INPUT_OBJECT_TYPE_EXTENSION;(0,dw.invariant)(!1,"Unexpected type: "+(0,lw.inspect)(e))}function Gz(e){switch(e){case gn.Kind.SCALAR_TYPE_EXTENSION:return"scalar";case gn.Kind.OBJECT_TYPE_EXTENSION:return"object";case gn.Kind.INTERFACE_TYPE_EXTENSION:return"interface";case gn.Kind.UNION_TYPE_EXTENSION:return"union";case gn.Kind.ENUM_TYPE_EXTENSION:return"enum";case gn.Kind.INPUT_OBJECT_TYPE_EXTENSION:return"input object";default:(0,dw.invariant)(!1,"Unexpected kind: "+(0,lw.inspect)(e))}}});var qg=w(uN=>{"use strict";m();T();N();Object.defineProperty(uN,"__esModule",{value:!0});uN.ProvidedRequiredArgumentsOnDirectivesRule=Tw;uN.ProvidedRequiredArgumentsRule=Yz;var pw=Xt(),fw=tu(),mw=ze(),Nw=Ft(),$z=li(),xg=wt(),Qz=Qr();function Yz(e){return Q(x({},Tw(e)),{Field:{leave(t){var n;let r=e.getFieldDef();if(!r)return!1;let i=new Set((n=t.arguments)===null||n===void 0?void 0:n.map(a=>a.name.value));for(let a of r.args)if(!i.has(a.name)&&(0,xg.isRequiredArgument)(a)){let o=(0,pw.inspect)(a.type);e.reportError(new mw.GraphQLError(`Field "${r.name}" argument "${a.name}" of type "${o}" is required, but it was not provided.`,{nodes:t}))}}}})}function Tw(e){var t;let n=Object.create(null),r=e.getSchema(),i=(t=r==null?void 0:r.getDirectives())!==null&&t!==void 0?t:Qz.specifiedDirectives;for(let c of i)n[c.name]=(0,fw.keyMap)(c.args.filter(xg.isRequiredArgument),l=>l.name);let a=e.getDocument().definitions;for(let c of a)if(c.kind===Nw.Kind.DIRECTIVE_DEFINITION){var o;let l=(o=c.arguments)!==null&&o!==void 0?o:[];n[c.name.value]=(0,fw.keyMap)(l.filter(Jz),d=>d.name.value)}return{Directive:{leave(c){let l=c.name.value,d=n[l];if(d){var p;let y=(p=c.arguments)!==null&&p!==void 0?p:[],I=new Set(y.map(v=>v.name.value));for(let[v,F]of Object.entries(d))if(!I.has(v)){let k=(0,xg.isType)(F.type)?(0,pw.inspect)(F.type):(0,$z.print)(F.type);e.reportError(new mw.GraphQLError(`Directive "@${l}" argument "${v}" of type "${k}" is required, but it was not provided.`,{nodes:c}))}}}}}}function Jz(e){return e.type.kind===Nw.Kind.NON_NULL_TYPE&&e.defaultValue==null}});var jg=w(Vg=>{"use strict";m();T();N();Object.defineProperty(Vg,"__esModule",{value:!0});Vg.ScalarLeafsRule=Hz;var Ew=Xt(),hw=ze(),yw=wt();function Hz(e){return{Field(t){let n=e.getType(),r=t.selectionSet;if(n){if((0,yw.isLeafType)((0,yw.getNamedType)(n))){if(r){let i=t.name.value,a=(0,Ew.inspect)(n);e.reportError(new hw.GraphQLError(`Field "${i}" must not have a selection since type "${a}" has no subfields.`,{nodes:r}))}}else if(!r){let i=t.name.value,a=(0,Ew.inspect)(n);e.reportError(new hw.GraphQLError(`Field "${i}" of type "${a}" must have a selection of subfields. Did you mean "${i} { ... }"?`,{nodes:t}))}}}}}});var Gg=w(Kg=>{"use strict";m();T();N();Object.defineProperty(Kg,"__esModule",{value:!0});Kg.printPathArray=zz;function zz(e){return e.map(t=>typeof t=="number"?"["+t.toString()+"]":"."+t).join("")}});var sf=w(cN=>{"use strict";m();T();N();Object.defineProperty(cN,"__esModule",{value:!0});cN.addPath=Wz;cN.pathToArray=Xz;function Wz(e,t,n){return{prev:e,key:t,typename:n}}function Xz(e){let t=[],n=e;for(;n;)t.push(n.key),n=n.prev;return t.reverse()}});var Qg=w($g=>{"use strict";m();T();N();Object.defineProperty($g,"__esModule",{value:!0});$g.coerceInputValue=aW;var Zz=eu(),lN=Xt(),eW=Ir(),tW=Xm(),nW=Da(),aa=sf(),rW=Gg(),iW=nu(),ys=ze(),of=wt();function aW(e,t,n=sW){return uf(e,t,n,void 0)}function sW(e,t,n){let r="Invalid value "+(0,lN.inspect)(t);throw e.length>0&&(r+=` at "value${(0,rW.printPathArray)(e)}"`),n.message=r+": "+n.message,n}function uf(e,t,n,r){if((0,of.isNonNullType)(t)){if(e!=null)return uf(e,t.ofType,n,r);n((0,aa.pathToArray)(r),e,new ys.GraphQLError(`Expected non-nullable type "${(0,lN.inspect)(t)}" not to be null.`));return}if(e==null)return null;if((0,of.isListType)(t)){let i=t.ofType;return(0,tW.isIterableObject)(e)?Array.from(e,(a,o)=>{let c=(0,aa.addPath)(r,o,void 0);return uf(a,i,n,c)}):[uf(e,i,n,r)]}if((0,of.isInputObjectType)(t)){if(!(0,nW.isObjectLike)(e)){n((0,aa.pathToArray)(r),e,new ys.GraphQLError(`Expected type "${t.name}" to be an object.`));return}let i={},a=t.getFields();for(let o of Object.values(a)){let c=e[o.name];if(c===void 0){if(o.defaultValue!==void 0)i[o.name]=o.defaultValue;else if((0,of.isNonNullType)(o.type)){let l=(0,lN.inspect)(o.type);n((0,aa.pathToArray)(r),e,new ys.GraphQLError(`Field "${o.name}" of required type "${l}" was not provided.`))}continue}i[o.name]=uf(c,o.type,n,(0,aa.addPath)(r,o.name,t.name))}for(let o of Object.keys(e))if(!a[o]){let c=(0,iW.suggestionList)(o,Object.keys(t.getFields()));n((0,aa.pathToArray)(r),e,new ys.GraphQLError(`Field "${o}" is not defined by type "${t.name}".`+(0,Zz.didYouMean)(c)))}if(t.isOneOf){let o=Object.keys(i);o.length!==1&&n((0,aa.pathToArray)(r),e,new ys.GraphQLError(`Exactly one key must be specified for OneOf type "${t.name}".`));let c=o[0],l=i[c];l===null&&n((0,aa.pathToArray)(r).concat(c),l,new ys.GraphQLError(`Field "${c}" must be non-null.`))}return i}if((0,of.isLeafType)(t)){let i;try{i=t.parseValue(e)}catch(a){a instanceof ys.GraphQLError?n((0,aa.pathToArray)(r),e,a):n((0,aa.pathToArray)(r),e,new ys.GraphQLError(`Expected type "${t.name}". `+a.message,{originalError:a}));return}return i===void 0&&n((0,aa.pathToArray)(r),e,new ys.GraphQLError(`Expected type "${t.name}".`)),i}(0,eW.invariant)(!1,"Unexpected input type: "+(0,lN.inspect)(t))}});var lf=w(Yg=>{"use strict";m();T();N();Object.defineProperty(Yg,"__esModule",{value:!0});Yg.valueFromAST=cf;var oW=Xt(),uW=Ir(),cW=tu(),dl=Ft(),tc=wt();function cf(e,t,n){if(e){if(e.kind===dl.Kind.VARIABLE){let r=e.name.value;if(n==null||n[r]===void 0)return;let i=n[r];return i===null&&(0,tc.isNonNullType)(t)?void 0:i}if((0,tc.isNonNullType)(t))return e.kind===dl.Kind.NULL?void 0:cf(e,t.ofType,n);if(e.kind===dl.Kind.NULL)return null;if((0,tc.isListType)(t)){let r=t.ofType;if(e.kind===dl.Kind.LIST){let a=[];for(let o of e.values)if(Iw(o,n)){if((0,tc.isNonNullType)(r))return;a.push(null)}else{let c=cf(o,r,n);if(c===void 0)return;a.push(c)}return a}let i=cf(e,r,n);return i===void 0?void 0:[i]}if((0,tc.isInputObjectType)(t)){if(e.kind!==dl.Kind.OBJECT)return;let r=Object.create(null),i=(0,cW.keyMap)(e.fields,a=>a.name.value);for(let a of Object.values(t.getFields())){let o=i[a.name];if(!o||Iw(o.value,n)){if(a.defaultValue!==void 0)r[a.name]=a.defaultValue;else if((0,tc.isNonNullType)(a.type))return;continue}let c=cf(o.value,a.type,n);if(c===void 0)return;r[a.name]=c}if(t.isOneOf){let a=Object.keys(r);if(a.length!==1||r[a[0]]===null)return}return r}if((0,tc.isLeafType)(t)){let r;try{r=t.parseLiteral(e,n)}catch(i){return}return r===void 0?void 0:r}(0,uW.invariant)(!1,"Unexpected input type: "+(0,oW.inspect)(t))}}function Iw(e,t){return e.kind===dl.Kind.VARIABLE&&(t==null||t[e.name.value]===void 0)}});var ml=w(df=>{"use strict";m();T();N();Object.defineProperty(df,"__esModule",{value:!0});df.getArgumentValues=Sw;df.getDirectiveValues=TW;df.getVariableValues=mW;var fl=Xt(),lW=tu(),dW=Gg(),Is=ze(),gw=Ft(),_w=li(),pl=wt(),fW=Qg(),pW=Fa(),vw=lf();function mW(e,t,n,r){let i=[],a=r==null?void 0:r.maxErrors;try{let o=NW(e,t,n,c=>{if(a!=null&&i.length>=a)throw new Is.GraphQLError("Too many errors processing variables, error limit reached. Execution aborted.");i.push(c)});if(i.length===0)return{coerced:o}}catch(o){i.push(o)}return{errors:i}}function NW(e,t,n,r){let i={};for(let a of t){let o=a.variable.name.value,c=(0,pW.typeFromAST)(e,a.type);if(!(0,pl.isInputType)(c)){let d=(0,_w.print)(a.type);r(new Is.GraphQLError(`Variable "$${o}" expected value of type "${d}" which cannot be used as an input type.`,{nodes:a.type}));continue}if(!Ow(n,o)){if(a.defaultValue)i[o]=(0,vw.valueFromAST)(a.defaultValue,c);else if((0,pl.isNonNullType)(c)){let d=(0,fl.inspect)(c);r(new Is.GraphQLError(`Variable "$${o}" of required type "${d}" was not provided.`,{nodes:a}))}continue}let l=n[o];if(l===null&&(0,pl.isNonNullType)(c)){let d=(0,fl.inspect)(c);r(new Is.GraphQLError(`Variable "$${o}" of non-null type "${d}" must not be null.`,{nodes:a}));continue}i[o]=(0,fW.coerceInputValue)(l,c,(d,p,y)=>{let I=`Variable "$${o}" got invalid value `+(0,fl.inspect)(p);d.length>0&&(I+=` at "${o}${(0,dW.printPathArray)(d)}"`),r(new Is.GraphQLError(I+"; "+y.message,{nodes:a,originalError:y}))})}return i}function Sw(e,t,n){var r;let i={},a=(r=t.arguments)!==null&&r!==void 0?r:[],o=(0,lW.keyMap)(a,c=>c.name.value);for(let c of e.args){let l=c.name,d=c.type,p=o[l];if(!p){if(c.defaultValue!==void 0)i[l]=c.defaultValue;else if((0,pl.isNonNullType)(d))throw new Is.GraphQLError(`Argument "${l}" of required type "${(0,fl.inspect)(d)}" was not provided.`,{nodes:t});continue}let y=p.value,I=y.kind===gw.Kind.NULL;if(y.kind===gw.Kind.VARIABLE){let F=y.name.value;if(n==null||!Ow(n,F)){if(c.defaultValue!==void 0)i[l]=c.defaultValue;else if((0,pl.isNonNullType)(d))throw new Is.GraphQLError(`Argument "${l}" of required type "${(0,fl.inspect)(d)}" was provided the variable "$${F}" which was not provided a runtime value.`,{nodes:y});continue}I=n[F]==null}if(I&&(0,pl.isNonNullType)(d))throw new Is.GraphQLError(`Argument "${l}" of non-null type "${(0,fl.inspect)(d)}" must not be null.`,{nodes:y});let v=(0,vw.valueFromAST)(y,d,n);if(v===void 0)throw new Is.GraphQLError(`Argument "${l}" has invalid value ${(0,_w.print)(y)}.`,{nodes:y});i[l]=v}return i}function TW(e,t,n){var r;let i=(r=t.directives)===null||r===void 0?void 0:r.find(a=>a.name.value===e.name);if(i)return Sw(e,i,n)}function Ow(e,t){return Object.prototype.hasOwnProperty.call(e,t)}});var pN=w(fN=>{"use strict";m();T();N();Object.defineProperty(fN,"__esModule",{value:!0});fN.collectFields=yW;fN.collectSubfields=IW;var Jg=Ft(),EW=wt(),Dw=Qr(),hW=Fa(),bw=ml();function yW(e,t,n,r,i){let a=new Map;return dN(e,t,n,r,i,a,new Set),a}function IW(e,t,n,r,i){let a=new Map,o=new Set;for(let c of i)c.selectionSet&&dN(e,t,n,r,c.selectionSet,a,o);return a}function dN(e,t,n,r,i,a,o){for(let c of i.selections)switch(c.kind){case Jg.Kind.FIELD:{if(!Hg(n,c))continue;let l=gW(c),d=a.get(l);d!==void 0?d.push(c):a.set(l,[c]);break}case Jg.Kind.INLINE_FRAGMENT:{if(!Hg(n,c)||!Aw(e,c,r))continue;dN(e,t,n,r,c.selectionSet,a,o);break}case Jg.Kind.FRAGMENT_SPREAD:{let l=c.name.value;if(o.has(l)||!Hg(n,c))continue;o.add(l);let d=t[l];if(!d||!Aw(e,d,r))continue;dN(e,t,n,r,d.selectionSet,a,o);break}}}function Hg(e,t){let n=(0,bw.getDirectiveValues)(Dw.GraphQLSkipDirective,t,e);if((n==null?void 0:n.if)===!0)return!1;let r=(0,bw.getDirectiveValues)(Dw.GraphQLIncludeDirective,t,e);return(r==null?void 0:r.if)!==!1}function Aw(e,t,n){let r=t.typeCondition;if(!r)return!0;let i=(0,hW.typeFromAST)(e,r);return i===n?!0:(0,EW.isAbstractType)(i)?e.isSubType(i,n):!1}function gW(e){return e.alias?e.alias.value:e.name.value}});var Wg=w(zg=>{"use strict";m();T();N();Object.defineProperty(zg,"__esModule",{value:!0});zg.SingleFieldSubscriptionsRule=SW;var Rw=ze(),_W=Ft(),vW=pN();function SW(e){return{OperationDefinition(t){if(t.operation==="subscription"){let n=e.getSchema(),r=n.getSubscriptionType();if(r){let i=t.name?t.name.value:null,a=Object.create(null),o=e.getDocument(),c=Object.create(null);for(let d of o.definitions)d.kind===_W.Kind.FRAGMENT_DEFINITION&&(c[d.name.value]=d);let l=(0,vW.collectFields)(n,c,a,r,t.selectionSet);if(l.size>1){let y=[...l.values()].slice(1).flat();e.reportError(new Rw.GraphQLError(i!=null?`Subscription "${i}" must select only one top level field.`:"Anonymous Subscription must select only one top level field.",{nodes:y}))}for(let d of l.values())d[0].name.value.startsWith("__")&&e.reportError(new Rw.GraphQLError(i!=null?`Subscription "${i}" must not select an introspection top level field.`:"Anonymous Subscription must not select an introspection top level field.",{nodes:d}))}}}}}});var mN=w(Xg=>{"use strict";m();T();N();Object.defineProperty(Xg,"__esModule",{value:!0});Xg.groupBy=OW;function OW(e,t){let n=new Map;for(let r of e){let i=t(r),a=n.get(i);a===void 0?n.set(i,[r]):a.push(r)}return n}});var e_=w(Zg=>{"use strict";m();T();N();Object.defineProperty(Zg,"__esModule",{value:!0});Zg.UniqueArgumentDefinitionNamesRule=AW;var DW=mN(),bW=ze();function AW(e){return{DirectiveDefinition(r){var i;let a=(i=r.arguments)!==null&&i!==void 0?i:[];return n(`@${r.name.value}`,a)},InterfaceTypeDefinition:t,InterfaceTypeExtension:t,ObjectTypeDefinition:t,ObjectTypeExtension:t};function t(r){var i;let a=r.name.value,o=(i=r.fields)!==null&&i!==void 0?i:[];for(let l of o){var c;let d=l.name.value,p=(c=l.arguments)!==null&&c!==void 0?c:[];n(`${a}.${d}`,p)}return!1}function n(r,i){let a=(0,DW.groupBy)(i,o=>o.name.value);for(let[o,c]of a)c.length>1&&e.reportError(new bW.GraphQLError(`Argument "${r}(${o}:)" can only be defined once.`,{nodes:c.map(l=>l.name)}));return!1}}});var n_=w(t_=>{"use strict";m();T();N();Object.defineProperty(t_,"__esModule",{value:!0});t_.UniqueArgumentNamesRule=FW;var RW=mN(),PW=ze();function FW(e){return{Field:t,Directive:t};function t(n){var r;let i=(r=n.arguments)!==null&&r!==void 0?r:[],a=(0,RW.groupBy)(i,o=>o.name.value);for(let[o,c]of a)c.length>1&&e.reportError(new PW.GraphQLError(`There can be only one argument named "${o}".`,{nodes:c.map(l=>l.name)}))}}});var i_=w(r_=>{"use strict";m();T();N();Object.defineProperty(r_,"__esModule",{value:!0});r_.UniqueDirectiveNamesRule=wW;var Pw=ze();function wW(e){let t=Object.create(null),n=e.getSchema();return{DirectiveDefinition(r){let i=r.name.value;if(n!=null&&n.getDirective(i)){e.reportError(new Pw.GraphQLError(`Directive "@${i}" already exists in the schema. It cannot be redefined.`,{nodes:r.name}));return}return t[i]?e.reportError(new Pw.GraphQLError(`There can be only one directive named "@${i}".`,{nodes:[t[i],r.name]})):t[i]=r.name,!1}}}});var o_=w(s_=>{"use strict";m();T();N();Object.defineProperty(s_,"__esModule",{value:!0});s_.UniqueDirectivesPerLocationRule=BW;var LW=ze(),a_=Ft(),Fw=ec(),CW=Qr();function BW(e){let t=Object.create(null),n=e.getSchema(),r=n?n.getDirectives():CW.specifiedDirectives;for(let c of r)t[c.name]=!c.isRepeatable;let i=e.getDocument().definitions;for(let c of i)c.kind===a_.Kind.DIRECTIVE_DEFINITION&&(t[c.name.value]=!c.repeatable);let a=Object.create(null),o=Object.create(null);return{enter(c){if(!("directives"in c)||!c.directives)return;let l;if(c.kind===a_.Kind.SCHEMA_DEFINITION||c.kind===a_.Kind.SCHEMA_EXTENSION)l=a;else if((0,Fw.isTypeDefinitionNode)(c)||(0,Fw.isTypeExtensionNode)(c)){let d=c.name.value;l=o[d],l===void 0&&(o[d]=l=Object.create(null))}else l=Object.create(null);for(let d of c.directives){let p=d.name.value;t[p]&&(l[p]?e.reportError(new LW.GraphQLError(`The directive "@${p}" can only be used once at this location.`,{nodes:[l[p],d]})):l[p]=d)}}}}});var c_=w(u_=>{"use strict";m();T();N();Object.defineProperty(u_,"__esModule",{value:!0});u_.UniqueEnumValueNamesRule=kW;var ww=ze(),UW=wt();function kW(e){let t=e.getSchema(),n=t?t.getTypeMap():Object.create(null),r=Object.create(null);return{EnumTypeDefinition:i,EnumTypeExtension:i};function i(a){var o;let c=a.name.value;r[c]||(r[c]=Object.create(null));let l=(o=a.values)!==null&&o!==void 0?o:[],d=r[c];for(let p of l){let y=p.name.value,I=n[c];(0,UW.isEnumType)(I)&&I.getValue(y)?e.reportError(new ww.GraphQLError(`Enum value "${c}.${y}" already exists in the schema. It cannot also be defined in this type extension.`,{nodes:p.name})):d[y]?e.reportError(new ww.GraphQLError(`Enum value "${c}.${y}" can only be defined once.`,{nodes:[d[y],p.name]})):d[y]=p.name}return!1}}});var f_=w(d_=>{"use strict";m();T();N();Object.defineProperty(d_,"__esModule",{value:!0});d_.UniqueFieldDefinitionNamesRule=MW;var Lw=ze(),l_=wt();function MW(e){let t=e.getSchema(),n=t?t.getTypeMap():Object.create(null),r=Object.create(null);return{InputObjectTypeDefinition:i,InputObjectTypeExtension:i,InterfaceTypeDefinition:i,InterfaceTypeExtension:i,ObjectTypeDefinition:i,ObjectTypeExtension:i};function i(a){var o;let c=a.name.value;r[c]||(r[c]=Object.create(null));let l=(o=a.fields)!==null&&o!==void 0?o:[],d=r[c];for(let p of l){let y=p.name.value;xW(n[c],y)?e.reportError(new Lw.GraphQLError(`Field "${c}.${y}" already exists in the schema. It cannot also be defined in this type extension.`,{nodes:p.name})):d[y]?e.reportError(new Lw.GraphQLError(`Field "${c}.${y}" can only be defined once.`,{nodes:[d[y],p.name]})):d[y]=p.name}return!1}}function xW(e,t){return(0,l_.isObjectType)(e)||(0,l_.isInterfaceType)(e)||(0,l_.isInputObjectType)(e)?e.getFields()[t]!=null:!1}});var m_=w(p_=>{"use strict";m();T();N();Object.defineProperty(p_,"__esModule",{value:!0});p_.UniqueFragmentNamesRule=VW;var qW=ze();function VW(e){let t=Object.create(null);return{OperationDefinition:()=>!1,FragmentDefinition(n){let r=n.name.value;return t[r]?e.reportError(new qW.GraphQLError(`There can be only one fragment named "${r}".`,{nodes:[t[r],n.name]})):t[r]=n.name,!1}}}});var T_=w(N_=>{"use strict";m();T();N();Object.defineProperty(N_,"__esModule",{value:!0});N_.UniqueInputFieldNamesRule=GW;var jW=Ir(),KW=ze();function GW(e){let t=[],n=Object.create(null);return{ObjectValue:{enter(){t.push(n),n=Object.create(null)},leave(){let r=t.pop();r||(0,jW.invariant)(!1),n=r}},ObjectField(r){let i=r.name.value;n[i]?e.reportError(new KW.GraphQLError(`There can be only one input field named "${i}".`,{nodes:[n[i],r.name]})):n[i]=r.name}}}});var h_=w(E_=>{"use strict";m();T();N();Object.defineProperty(E_,"__esModule",{value:!0});E_.UniqueOperationNamesRule=QW;var $W=ze();function QW(e){let t=Object.create(null);return{OperationDefinition(n){let r=n.name;return r&&(t[r.value]?e.reportError(new $W.GraphQLError(`There can be only one operation named "${r.value}".`,{nodes:[t[r.value],r]})):t[r.value]=r),!1},FragmentDefinition:()=>!1}}});var I_=w(y_=>{"use strict";m();T();N();Object.defineProperty(y_,"__esModule",{value:!0});y_.UniqueOperationTypesRule=YW;var Cw=ze();function YW(e){let t=e.getSchema(),n=Object.create(null),r=t?{query:t.getQueryType(),mutation:t.getMutationType(),subscription:t.getSubscriptionType()}:{};return{SchemaDefinition:i,SchemaExtension:i};function i(a){var o;let c=(o=a.operationTypes)!==null&&o!==void 0?o:[];for(let l of c){let d=l.operation,p=n[d];r[d]?e.reportError(new Cw.GraphQLError(`Type for ${d} already defined in the schema. It cannot be redefined.`,{nodes:l})):p?e.reportError(new Cw.GraphQLError(`There can be only one ${d} type in schema.`,{nodes:[p,l]})):n[d]=l}return!1}}});var __=w(g_=>{"use strict";m();T();N();Object.defineProperty(g_,"__esModule",{value:!0});g_.UniqueTypeNamesRule=JW;var Bw=ze();function JW(e){let t=Object.create(null),n=e.getSchema();return{ScalarTypeDefinition:r,ObjectTypeDefinition:r,InterfaceTypeDefinition:r,UnionTypeDefinition:r,EnumTypeDefinition:r,InputObjectTypeDefinition:r};function r(i){let a=i.name.value;if(n!=null&&n.getType(a)){e.reportError(new Bw.GraphQLError(`Type "${a}" already exists in the schema. It cannot also be defined in this type definition.`,{nodes:i.name}));return}return t[a]?e.reportError(new Bw.GraphQLError(`There can be only one type named "${a}".`,{nodes:[t[a],i.name]})):t[a]=i.name,!1}}});var S_=w(v_=>{"use strict";m();T();N();Object.defineProperty(v_,"__esModule",{value:!0});v_.UniqueVariableNamesRule=WW;var HW=mN(),zW=ze();function WW(e){return{OperationDefinition(t){var n;let r=(n=t.variableDefinitions)!==null&&n!==void 0?n:[],i=(0,HW.groupBy)(r,a=>a.variable.name.value);for(let[a,o]of i)o.length>1&&e.reportError(new zW.GraphQLError(`There can be only one variable named "$${a}".`,{nodes:o.map(c=>c.variable.name)}))}}}});var b_=w(D_=>{"use strict";m();T();N();Object.defineProperty(D_,"__esModule",{value:!0});D_.ValuesOfCorrectTypeRule=t4;var XW=eu(),ff=Xt(),ZW=tu(),e4=nu(),La=ze(),O_=Ft(),NN=li(),wa=wt();function t4(e){let t={};return{OperationDefinition:{enter(){t={}}},VariableDefinition(n){t[n.variable.name.value]=n},ListValue(n){let r=(0,wa.getNullableType)(e.getParentInputType());if(!(0,wa.isListType)(r))return nc(e,n),!1},ObjectValue(n){let r=(0,wa.getNamedType)(e.getInputType());if(!(0,wa.isInputObjectType)(r))return nc(e,n),!1;let i=(0,ZW.keyMap)(n.fields,a=>a.name.value);for(let a of Object.values(r.getFields()))if(!i[a.name]&&(0,wa.isRequiredInputField)(a)){let c=(0,ff.inspect)(a.type);e.reportError(new La.GraphQLError(`Field "${r.name}.${a.name}" of required type "${c}" was not provided.`,{nodes:n}))}r.isOneOf&&n4(e,n,r,i,t)},ObjectField(n){let r=(0,wa.getNamedType)(e.getParentInputType());if(!e.getInputType()&&(0,wa.isInputObjectType)(r)){let a=(0,e4.suggestionList)(n.name.value,Object.keys(r.getFields()));e.reportError(new La.GraphQLError(`Field "${n.name.value}" is not defined by type "${r.name}".`+(0,XW.didYouMean)(a),{nodes:n}))}},NullValue(n){let r=e.getInputType();(0,wa.isNonNullType)(r)&&e.reportError(new La.GraphQLError(`Expected value of type "${(0,ff.inspect)(r)}", found ${(0,NN.print)(n)}.`,{nodes:n}))},EnumValue:n=>nc(e,n),IntValue:n=>nc(e,n),FloatValue:n=>nc(e,n),StringValue:n=>nc(e,n),BooleanValue:n=>nc(e,n)}}function nc(e,t){let n=e.getInputType();if(!n)return;let r=(0,wa.getNamedType)(n);if(!(0,wa.isLeafType)(r)){let i=(0,ff.inspect)(n);e.reportError(new La.GraphQLError(`Expected value of type "${i}", found ${(0,NN.print)(t)}.`,{nodes:t}));return}try{if(r.parseLiteral(t,void 0)===void 0){let a=(0,ff.inspect)(n);e.reportError(new La.GraphQLError(`Expected value of type "${a}", found ${(0,NN.print)(t)}.`,{nodes:t}))}}catch(i){let a=(0,ff.inspect)(n);i instanceof La.GraphQLError?e.reportError(i):e.reportError(new La.GraphQLError(`Expected value of type "${a}", found ${(0,NN.print)(t)}; `+i.message,{nodes:t,originalError:i}))}}function n4(e,t,n,r,i){var a;let o=Object.keys(r);if(o.length!==1){e.reportError(new La.GraphQLError(`OneOf Input Object "${n.name}" must specify exactly one key.`,{nodes:[t]}));return}let l=(a=r[o[0]])===null||a===void 0?void 0:a.value,d=!l||l.kind===O_.Kind.NULL,p=(l==null?void 0:l.kind)===O_.Kind.VARIABLE;if(d){e.reportError(new La.GraphQLError(`Field "${n.name}.${o[0]}" must be non-null.`,{nodes:[t]}));return}if(p){let y=l.name.value;i[y].type.kind!==O_.Kind.NON_NULL_TYPE&&e.reportError(new La.GraphQLError(`Variable "${y}" must be non-nullable to be used for OneOf Input Object "${n.name}".`,{nodes:[t]}))}}});var R_=w(A_=>{"use strict";m();T();N();Object.defineProperty(A_,"__esModule",{value:!0});A_.VariablesAreInputTypesRule=o4;var r4=ze(),i4=li(),a4=wt(),s4=Fa();function o4(e){return{VariableDefinition(t){let n=(0,s4.typeFromAST)(e.getSchema(),t.type);if(n!==void 0&&!(0,a4.isInputType)(n)){let r=t.variable.name.value,i=(0,i4.print)(t.type);e.reportError(new r4.GraphQLError(`Variable "$${r}" cannot be non-input type "${i}".`,{nodes:t.type}))}}}}});var F_=w(P_=>{"use strict";m();T();N();Object.defineProperty(P_,"__esModule",{value:!0});P_.VariablesInAllowedPositionRule=d4;var Uw=Xt(),u4=ze(),c4=Ft(),kw=wt(),Mw=Qd(),l4=Fa();function d4(e){let t=Object.create(null);return{OperationDefinition:{enter(){t=Object.create(null)},leave(n){let r=e.getRecursiveVariableUsages(n);for(let{node:i,type:a,defaultValue:o}of r){let c=i.name.value,l=t[c];if(l&&a){let d=e.getSchema(),p=(0,l4.typeFromAST)(d,l.type);if(p&&!f4(d,p,l.defaultValue,a,o)){let y=(0,Uw.inspect)(p),I=(0,Uw.inspect)(a);e.reportError(new u4.GraphQLError(`Variable "$${c}" of type "${y}" used in position expecting type "${I}".`,{nodes:[l,i]}))}}}}},VariableDefinition(n){t[n.variable.name.value]=n}}}function f4(e,t,n,r,i){if((0,kw.isNonNullType)(r)&&!(0,kw.isNonNullType)(t)){if(!(n!=null&&n.kind!==c4.Kind.NULL)&&!(i!==void 0))return!1;let c=r.ofType;return(0,Mw.isTypeSubTypeOf)(e,t,c)}return(0,Mw.isTypeSubTypeOf)(e,t,r)}});var w_=w(su=>{"use strict";m();T();N();Object.defineProperty(su,"__esModule",{value:!0});su.specifiedSDLRules=su.specifiedRules=su.recommendedRules=void 0;var p4=HI(),m4=WI(),N4=ZI(),xw=eg(),qw=ig(),T4=sg(),Vw=cg(),E4=dg(),h4=pg(),y4=Ng(),I4=Eg(),g4=yg(),_4=gg(),v4=vg(),S4=Lg(),O4=Ug(),D4=Mg(),jw=qg(),b4=jg(),A4=Wg(),R4=e_(),Kw=n_(),P4=i_(),Gw=o_(),F4=c_(),w4=f_(),L4=m_(),$w=T_(),C4=h_(),B4=I_(),U4=__(),k4=S_(),M4=b_(),x4=R_(),q4=F_(),Qw=Object.freeze([y4.MaxIntrospectionDepthRule]);su.recommendedRules=Qw;var V4=Object.freeze([p4.ExecutableDefinitionsRule,C4.UniqueOperationNamesRule,E4.LoneAnonymousOperationRule,A4.SingleFieldSubscriptionsRule,Vw.KnownTypeNamesRule,N4.FragmentsOnCompositeTypesRule,x4.VariablesAreInputTypesRule,b4.ScalarLeafsRule,m4.FieldsOnCorrectTypeRule,L4.UniqueFragmentNamesRule,T4.KnownFragmentNamesRule,_4.NoUnusedFragmentsRule,O4.PossibleFragmentSpreadsRule,I4.NoFragmentCyclesRule,k4.UniqueVariableNamesRule,g4.NoUndefinedVariablesRule,v4.NoUnusedVariablesRule,qw.KnownDirectivesRule,Gw.UniqueDirectivesPerLocationRule,xw.KnownArgumentNamesRule,Kw.UniqueArgumentNamesRule,M4.ValuesOfCorrectTypeRule,jw.ProvidedRequiredArgumentsRule,q4.VariablesInAllowedPositionRule,S4.OverlappingFieldsCanBeMergedRule,$w.UniqueInputFieldNamesRule,...Qw]);su.specifiedRules=V4;var j4=Object.freeze([h4.LoneSchemaDefinitionRule,B4.UniqueOperationTypesRule,U4.UniqueTypeNamesRule,F4.UniqueEnumValueNamesRule,w4.UniqueFieldDefinitionNamesRule,R4.UniqueArgumentDefinitionNamesRule,P4.UniqueDirectiveNamesRule,Vw.KnownTypeNamesRule,qw.KnownDirectivesRule,Gw.UniqueDirectivesPerLocationRule,D4.PossibleTypeExtensionsRule,xw.KnownArgumentNamesOnDirectivesRule,Kw.UniqueArgumentNamesRule,$w.UniqueInputFieldNamesRule,jw.ProvidedRequiredArgumentsOnDirectivesRule]);su.specifiedSDLRules=j4});var B_=w(ou=>{"use strict";m();T();N();Object.defineProperty(ou,"__esModule",{value:!0});ou.ValidationContext=ou.SDLValidationContext=ou.ASTValidationContext=void 0;var Yw=Ft(),K4=Qu(),Jw=nN(),pf=class{constructor(t,n){this._ast=t,this._fragments=void 0,this._fragmentSpreads=new Map,this._recursivelyReferencedFragments=new Map,this._onError=n}get[Symbol.toStringTag](){return"ASTValidationContext"}reportError(t){this._onError(t)}getDocument(){return this._ast}getFragment(t){let n;if(this._fragments)n=this._fragments;else{n=Object.create(null);for(let r of this.getDocument().definitions)r.kind===Yw.Kind.FRAGMENT_DEFINITION&&(n[r.name.value]=r);this._fragments=n}return n[t]}getFragmentSpreads(t){let n=this._fragmentSpreads.get(t);if(!n){n=[];let r=[t],i;for(;i=r.pop();)for(let a of i.selections)a.kind===Yw.Kind.FRAGMENT_SPREAD?n.push(a):a.selectionSet&&r.push(a.selectionSet);this._fragmentSpreads.set(t,n)}return n}getRecursivelyReferencedFragments(t){let n=this._recursivelyReferencedFragments.get(t);if(!n){n=[];let r=Object.create(null),i=[t.selectionSet],a;for(;a=i.pop();)for(let o of this.getFragmentSpreads(a)){let c=o.name.value;if(r[c]!==!0){r[c]=!0;let l=this.getFragment(c);l&&(n.push(l),i.push(l.selectionSet))}}this._recursivelyReferencedFragments.set(t,n)}return n}};ou.ASTValidationContext=pf;var L_=class extends pf{constructor(t,n,r){super(t,r),this._schema=n}get[Symbol.toStringTag](){return"SDLValidationContext"}getSchema(){return this._schema}};ou.SDLValidationContext=L_;var C_=class extends pf{constructor(t,n,r,i){super(n,i),this._schema=t,this._typeInfo=r,this._variableUsages=new Map,this._recursiveVariableUsages=new Map}get[Symbol.toStringTag](){return"ValidationContext"}getSchema(){return this._schema}getVariableUsages(t){let n=this._variableUsages.get(t);if(!n){let r=[],i=new Jw.TypeInfo(this._schema);(0,K4.visit)(t,(0,Jw.visitWithTypeInfo)(i,{VariableDefinition:()=>!1,Variable(a){r.push({node:a,type:i.getInputType(),defaultValue:i.getDefaultValue()})}})),n=r,this._variableUsages.set(t,n)}return n}getRecursiveVariableUsages(t){let n=this._recursiveVariableUsages.get(t);if(!n){n=this.getVariableUsages(t);for(let r of this.getRecursivelyReferencedFragments(t))n=n.concat(this.getVariableUsages(r));this._recursiveVariableUsages.set(t,n)}return n}getType(){return this._typeInfo.getType()}getParentType(){return this._typeInfo.getParentType()}getInputType(){return this._typeInfo.getInputType()}getParentInputType(){return this._typeInfo.getParentInputType()}getFieldDef(){return this._typeInfo.getFieldDef()}getDirective(){return this._typeInfo.getDirective()}getArgument(){return this._typeInfo.getArgument()}getEnumValue(){return this._typeInfo.getEnumValue()}};ou.ValidationContext=C_});var Tl=w(Nl=>{"use strict";m();T();N();Object.defineProperty(Nl,"__esModule",{value:!0});Nl.assertValidSDL=J4;Nl.assertValidSDLExtension=H4;Nl.validate=Y4;Nl.validateSDL=U_;var G4=Br(),$4=ze(),TN=Qu(),Q4=nf(),Hw=nN(),zw=w_(),Ww=B_();function Y4(e,t,n=zw.specifiedRules,r,i=new Hw.TypeInfo(e)){var a;let o=(a=r==null?void 0:r.maxErrors)!==null&&a!==void 0?a:100;t||(0,G4.devAssert)(!1,"Must provide document."),(0,Q4.assertValidSchema)(e);let c=Object.freeze({}),l=[],d=new Ww.ValidationContext(e,t,i,y=>{if(l.length>=o)throw l.push(new $4.GraphQLError("Too many validation errors, error limit reached. Validation aborted.")),c;l.push(y)}),p=(0,TN.visitInParallel)(n.map(y=>y(d)));try{(0,TN.visit)(t,(0,Hw.visitWithTypeInfo)(i,p))}catch(y){if(y!==c)throw y}return l}function U_(e,t,n=zw.specifiedSDLRules){let r=[],i=new Ww.SDLValidationContext(e,t,o=>{r.push(o)}),a=n.map(o=>o(i));return(0,TN.visit)(e,(0,TN.visitInParallel)(a)),r}function J4(e){let t=U_(e);if(t.length!==0)throw new Error(t.map(n=>n.message).join(` +`))}var ug=class{constructor(t){this._errors=[],this.schema=t}reportError(t,n){let r=Array.isArray(n)?n.filter(Boolean):n;this._errors.push(new j6.GraphQLError(t,{nodes:r}))}getErrors(){return this._errors}};function $6(e){let t=e.schema,n=t.getQueryType();if(!n)e.reportError("Query root type must be provided.",t.astNode);else if(!(0,Cn.isObjectType)(n)){var r;e.reportError(`Query root type must be Object type, it cannot be ${(0,Ar.inspect)(n)}.`,(r=og(t,sg.OperationTypeNode.QUERY))!==null&&r!==void 0?r:n.astNode)}let i=t.getMutationType();if(i&&!(0,Cn.isObjectType)(i)){var a;e.reportError(`Mutation root type must be Object type if provided, it cannot be ${(0,Ar.inspect)(i)}.`,(a=og(t,sg.OperationTypeNode.MUTATION))!==null&&a!==void 0?a:i.astNode)}let o=t.getSubscriptionType();if(o&&!(0,Cn.isObjectType)(o)){var c;e.reportError(`Subscription root type must be Object type if provided, it cannot be ${(0,Ar.inspect)(o)}.`,(c=og(t,sg.OperationTypeNode.SUBSCRIPTION))!==null&&c!==void 0?c:o.astNode)}}function og(e,t){var n;return(n=[e.astNode,...e.extensionASTNodes].flatMap(r=>{var i;return(i=r==null?void 0:r.operationTypes)!==null&&i!==void 0?i:[]}).find(r=>r.operation===t))===null||n===void 0?void 0:n.type}function Q6(e){for(let n of e.schema.getDirectives()){if(!(0,HF.isDirective)(n)){e.reportError(`Expected directive but got: ${(0,Ar.inspect)(n)}.`,n==null?void 0:n.astNode);continue}cc(e,n);for(let r of n.args)if(cc(e,r),(0,Cn.isInputType)(r.type)||e.reportError(`The type of @${n.name}(${r.name}:) must be Input Type but got: ${(0,Ar.inspect)(r.type)}.`,r.astNode),(0,Cn.isRequiredArgument)(r)&&r.deprecationReason!=null){var t;e.reportError(`Required argument @${n.name}(${r.name}:) cannot be deprecated.`,[cg(r.astNode),(t=r.astNode)===null||t===void 0?void 0:t.type])}}}function cc(e,t){t.name.startsWith("__")&&e.reportError(`Name "${t.name}" must not begin with "__", which is reserved by GraphQL introspection.`,t.astNode)}function Y6(e){let t=ez(e),n=e.schema.getTypeMap();for(let r of Object.values(n)){if(!(0,Cn.isNamedType)(r)){e.reportError(`Expected GraphQL named type but got: ${(0,Ar.inspect)(r)}.`,r.astNode);continue}(0,V6.isIntrospectionType)(r)||cc(e,r),(0,Cn.isObjectType)(r)||(0,Cn.isInterfaceType)(r)?(QF(e,r),YF(e,r)):(0,Cn.isUnionType)(r)?z6(e,r):(0,Cn.isEnumType)(r)?W6(e,r):(0,Cn.isInputObjectType)(r)&&(X6(e,r),t(r))}}function QF(e,t){let n=Object.values(t.getFields());n.length===0&&e.reportError(`Type ${t.name} must define one or more fields.`,[t.astNode,...t.extensionASTNodes]);for(let o of n){if(cc(e,o),!(0,Cn.isOutputType)(o.type)){var r;e.reportError(`The type of ${t.name}.${o.name} must be Output Type but got: ${(0,Ar.inspect)(o.type)}.`,(r=o.astNode)===null||r===void 0?void 0:r.type)}for(let c of o.args){let l=c.name;if(cc(e,c),!(0,Cn.isInputType)(c.type)){var i;e.reportError(`The type of ${t.name}.${o.name}(${l}:) must be Input Type but got: ${(0,Ar.inspect)(c.type)}.`,(i=c.astNode)===null||i===void 0?void 0:i.type)}if((0,Cn.isRequiredArgument)(c)&&c.deprecationReason!=null){var a;e.reportError(`Required argument ${t.name}.${o.name}(${l}:) cannot be deprecated.`,[cg(c.astNode),(a=c.astNode)===null||a===void 0?void 0:a.type])}}}}function YF(e,t){let n=Object.create(null);for(let r of t.getInterfaces()){if(!(0,Cn.isInterfaceType)(r)){e.reportError(`Type ${(0,Ar.inspect)(t)} must only implement Interface types, it cannot implement ${(0,Ar.inspect)(r)}.`,pp(t,r));continue}if(t===r){e.reportError(`Type ${t.name} cannot implement itself because it would create a circular reference.`,pp(t,r));continue}if(n[r.name]){e.reportError(`Type ${t.name} can only implement ${r.name} once.`,pp(t,r));continue}n[r.name]=!0,H6(e,t,r),J6(e,t,r)}}function J6(e,t,n){let r=t.getFields();for(let l of Object.values(n.getFields())){let d=l.name,f=r[d];if(!f){e.reportError(`Interface field ${n.name}.${d} expected but ${t.name} does not provide it.`,[l.astNode,t.astNode,...t.extensionASTNodes]);continue}if(!(0,$F.isTypeSubTypeOf)(e.schema,f.type,l.type)){var i,a;e.reportError(`Interface field ${n.name}.${d} expects type ${(0,Ar.inspect)(l.type)} but ${t.name}.${d} is type ${(0,Ar.inspect)(f.type)}.`,[(i=l.astNode)===null||i===void 0?void 0:i.type,(a=f.astNode)===null||a===void 0?void 0:a.type])}for(let y of l.args){let I=y.name,v=f.args.find(w=>w.name===I);if(!v){e.reportError(`Interface field argument ${n.name}.${d}(${I}:) expected but ${t.name}.${d} does not provide it.`,[y.astNode,f.astNode]);continue}if(!(0,$F.isEqualType)(y.type,v.type)){var o,c;e.reportError(`Interface field argument ${n.name}.${d}(${I}:) expects type ${(0,Ar.inspect)(y.type)} but ${t.name}.${d}(${I}:) is type ${(0,Ar.inspect)(v.type)}.`,[(o=y.astNode)===null||o===void 0?void 0:o.type,(c=v.astNode)===null||c===void 0?void 0:c.type])}}for(let y of f.args){let I=y.name;!l.args.find(w=>w.name===I)&&(0,Cn.isRequiredArgument)(y)&&e.reportError(`Object field ${t.name}.${d} includes required argument ${I} that is missing from the Interface field ${n.name}.${d}.`,[y.astNode,l.astNode])}}}function H6(e,t,n){let r=t.getInterfaces();for(let i of n.getInterfaces())r.includes(i)||e.reportError(i===t?`Type ${t.name} cannot implement ${n.name} because it would create a circular reference.`:`Type ${t.name} must implement ${i.name} because it is implemented by ${n.name}.`,[...pp(n,i),...pp(t,n)])}function z6(e,t){let n=t.getTypes();n.length===0&&e.reportError(`Union type ${t.name} must define one or more member types.`,[t.astNode,...t.extensionASTNodes]);let r=Object.create(null);for(let i of n){if(r[i.name]){e.reportError(`Union type ${t.name} can only include type ${i.name} once.`,JF(t,i.name));continue}r[i.name]=!0,(0,Cn.isObjectType)(i)||e.reportError(`Union type ${t.name} can only include Object types, it cannot include ${(0,Ar.inspect)(i)}.`,JF(t,String(i)))}}function W6(e,t){let n=t.getValues();n.length===0&&e.reportError(`Enum type ${t.name} must define one or more values.`,[t.astNode,...t.extensionASTNodes]);for(let r of n)cc(e,r)}function X6(e,t){let n=Object.values(t.getFields());n.length===0&&e.reportError(`Input Object type ${t.name} must define one or more fields.`,[t.astNode,...t.extensionASTNodes]);for(let a of n){if(cc(e,a),!(0,Cn.isInputType)(a.type)){var r;e.reportError(`The type of ${t.name}.${a.name} must be Input Type but got: ${(0,Ar.inspect)(a.type)}.`,(r=a.astNode)===null||r===void 0?void 0:r.type)}if((0,Cn.isRequiredInputField)(a)&&a.deprecationReason!=null){var i;e.reportError(`Required input field ${t.name}.${a.name} cannot be deprecated.`,[cg(a.astNode),(i=a.astNode)===null||i===void 0?void 0:i.type])}t.isOneOf&&Z6(t,a,e)}}function Z6(e,t,n){if((0,Cn.isNonNullType)(t.type)){var r;n.reportError(`OneOf input field ${e.name}.${t.name} must be nullable.`,(r=t.astNode)===null||r===void 0?void 0:r.type)}t.defaultValue!==void 0&&n.reportError(`OneOf input field ${e.name}.${t.name} cannot have a default value.`,t.astNode)}function ez(e){let t=Object.create(null),n=[],r=Object.create(null);return i;function i(a){if(t[a.name])return;t[a.name]=!0,r[a.name]=n.length;let o=Object.values(a.getFields());for(let c of o)if((0,Cn.isNonNullType)(c.type)&&(0,Cn.isInputObjectType)(c.type.ofType)){let l=c.type.ofType,d=r[l.name];if(n.push(c),d===void 0)i(l);else{let f=n.slice(d),y=f.map(I=>I.name).join(".");e.reportError(`Cannot reference Input Object "${l.name}" within itself through a series of non-null fields: "${y}".`,f.map(I=>I.astNode))}n.pop()}r[a.name]=void 0}}function pp(e,t){let{astNode:n,extensionASTNodes:r}=e;return(n!=null?[n,...r]:r).flatMap(a=>{var o;return(o=a.interfaces)!==null&&o!==void 0?o:[]}).filter(a=>a.name.value===t.name)}function JF(e,t){let{astNode:n,extensionASTNodes:r}=e;return(n!=null?[n,...r]:r).flatMap(a=>{var o;return(o=a.types)!==null&&o!==void 0?o:[]}).filter(a=>a.name.value===t)}function cg(e){var t;return e==null||(t=e.directives)===null||t===void 0?void 0:t.find(n=>n.name.value===HF.GraphQLDeprecatedDirective.name)}});var xa=F(pg=>{"use strict";m();T();N();Object.defineProperty(pg,"__esModule",{value:!0});pg.typeFromAST=dg;var lg=Lt(),WF=Ct();function dg(e,t){switch(t.kind){case lg.Kind.LIST_TYPE:{let n=dg(e,t.type);return n&&new WF.GraphQLList(n)}case lg.Kind.NON_NULL_TYPE:{let n=dg(e,t.type);return n&&new WF.GraphQLNonNull(n)}case lg.Kind.NAMED_TYPE:return e.getType(t.name.value)}}});var hN=F(mp=>{"use strict";m();T();N();Object.defineProperty(mp,"__esModule",{value:!0});mp.TypeInfo=void 0;mp.visitWithTypeInfo=rz;var tz=Ba(),Bn=Lt(),XF=nc(),Un=Ct(),Il=ki(),ZF=xa(),fg=class{constructor(t,n,r){this._schema=t,this._typeStack=[],this._parentTypeStack=[],this._inputTypeStack=[],this._fieldDefStack=[],this._defaultValueStack=[],this._directive=null,this._argument=null,this._enumValue=null,this._getFieldDef=r!=null?r:nz,n&&((0,Un.isInputType)(n)&&this._inputTypeStack.push(n),(0,Un.isCompositeType)(n)&&this._parentTypeStack.push(n),(0,Un.isOutputType)(n)&&this._typeStack.push(n))}get[Symbol.toStringTag](){return"TypeInfo"}getType(){if(this._typeStack.length>0)return this._typeStack[this._typeStack.length-1]}getParentType(){if(this._parentTypeStack.length>0)return this._parentTypeStack[this._parentTypeStack.length-1]}getInputType(){if(this._inputTypeStack.length>0)return this._inputTypeStack[this._inputTypeStack.length-1]}getParentInputType(){if(this._inputTypeStack.length>1)return this._inputTypeStack[this._inputTypeStack.length-2]}getFieldDef(){if(this._fieldDefStack.length>0)return this._fieldDefStack[this._fieldDefStack.length-1]}getDefaultValue(){if(this._defaultValueStack.length>0)return this._defaultValueStack[this._defaultValueStack.length-1]}getDirective(){return this._directive}getArgument(){return this._argument}getEnumValue(){return this._enumValue}enter(t){let n=this._schema;switch(t.kind){case Bn.Kind.SELECTION_SET:{let i=(0,Un.getNamedType)(this.getType());this._parentTypeStack.push((0,Un.isCompositeType)(i)?i:void 0);break}case Bn.Kind.FIELD:{let i=this.getParentType(),a,o;i&&(a=this._getFieldDef(n,i,t),a&&(o=a.type)),this._fieldDefStack.push(a),this._typeStack.push((0,Un.isOutputType)(o)?o:void 0);break}case Bn.Kind.DIRECTIVE:this._directive=n.getDirective(t.name.value);break;case Bn.Kind.OPERATION_DEFINITION:{let i=n.getRootType(t.operation);this._typeStack.push((0,Un.isObjectType)(i)?i:void 0);break}case Bn.Kind.INLINE_FRAGMENT:case Bn.Kind.FRAGMENT_DEFINITION:{let i=t.typeCondition,a=i?(0,ZF.typeFromAST)(n,i):(0,Un.getNamedType)(this.getType());this._typeStack.push((0,Un.isOutputType)(a)?a:void 0);break}case Bn.Kind.VARIABLE_DEFINITION:{let i=(0,ZF.typeFromAST)(n,t.type);this._inputTypeStack.push((0,Un.isInputType)(i)?i:void 0);break}case Bn.Kind.ARGUMENT:{var r;let i,a,o=(r=this.getDirective())!==null&&r!==void 0?r:this.getFieldDef();o&&(i=o.args.find(c=>c.name===t.name.value),i&&(a=i.type)),this._argument=i,this._defaultValueStack.push(i?i.defaultValue:void 0),this._inputTypeStack.push((0,Un.isInputType)(a)?a:void 0);break}case Bn.Kind.LIST:{let i=(0,Un.getNullableType)(this.getInputType()),a=(0,Un.isListType)(i)?i.ofType:i;this._defaultValueStack.push(void 0),this._inputTypeStack.push((0,Un.isInputType)(a)?a:void 0);break}case Bn.Kind.OBJECT_FIELD:{let i=(0,Un.getNamedType)(this.getInputType()),a,o;(0,Un.isInputObjectType)(i)&&(o=i.getFields()[t.name.value],o&&(a=o.type)),this._defaultValueStack.push(o?o.defaultValue:void 0),this._inputTypeStack.push((0,Un.isInputType)(a)?a:void 0);break}case Bn.Kind.ENUM:{let i=(0,Un.getNamedType)(this.getInputType()),a;(0,Un.isEnumType)(i)&&(a=i.getValue(t.value)),this._enumValue=a;break}default:}}leave(t){switch(t.kind){case Bn.Kind.SELECTION_SET:this._parentTypeStack.pop();break;case Bn.Kind.FIELD:this._fieldDefStack.pop(),this._typeStack.pop();break;case Bn.Kind.DIRECTIVE:this._directive=null;break;case Bn.Kind.OPERATION_DEFINITION:case Bn.Kind.INLINE_FRAGMENT:case Bn.Kind.FRAGMENT_DEFINITION:this._typeStack.pop();break;case Bn.Kind.VARIABLE_DEFINITION:this._inputTypeStack.pop();break;case Bn.Kind.ARGUMENT:this._argument=null,this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case Bn.Kind.LIST:case Bn.Kind.OBJECT_FIELD:this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case Bn.Kind.ENUM:this._enumValue=null;break;default:}}};mp.TypeInfo=fg;function nz(e,t,n){let r=n.name.value;if(r===Il.SchemaMetaFieldDef.name&&e.getQueryType()===t)return Il.SchemaMetaFieldDef;if(r===Il.TypeMetaFieldDef.name&&e.getQueryType()===t)return Il.TypeMetaFieldDef;if(r===Il.TypeNameMetaFieldDef.name&&(0,Un.isCompositeType)(t))return Il.TypeNameMetaFieldDef;if((0,Un.isObjectType)(t)||(0,Un.isInterfaceType)(t))return t.getFields()[r]}function rz(e,t){return{enter(...n){let r=n[0];e.enter(r);let i=(0,XF.getEnterLeaveForKind)(t,r.kind).enter;if(i){let a=i.apply(t,n);return a!==void 0&&(e.leave(r),(0,tz.isNode)(a)&&e.enter(a)),a}},leave(...n){let r=n[0],i=(0,XF.getEnterLeaveForKind)(t,r.kind).leave,a;return i&&(a=i.apply(t,n)),e.leave(r),a}}}});var lc=F(Mi=>{"use strict";m();T();N();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.isConstValueNode=mg;Mi.isDefinitionNode=iz;Mi.isExecutableDefinitionNode=ew;Mi.isSelectionNode=az;Mi.isTypeDefinitionNode=rw;Mi.isTypeExtensionNode=aw;Mi.isTypeNode=sz;Mi.isTypeSystemDefinitionNode=nw;Mi.isTypeSystemExtensionNode=iw;Mi.isValueNode=tw;var Bt=Lt();function iz(e){return ew(e)||nw(e)||iw(e)}function ew(e){return e.kind===Bt.Kind.OPERATION_DEFINITION||e.kind===Bt.Kind.FRAGMENT_DEFINITION}function az(e){return e.kind===Bt.Kind.FIELD||e.kind===Bt.Kind.FRAGMENT_SPREAD||e.kind===Bt.Kind.INLINE_FRAGMENT}function tw(e){return e.kind===Bt.Kind.VARIABLE||e.kind===Bt.Kind.INT||e.kind===Bt.Kind.FLOAT||e.kind===Bt.Kind.STRING||e.kind===Bt.Kind.BOOLEAN||e.kind===Bt.Kind.NULL||e.kind===Bt.Kind.ENUM||e.kind===Bt.Kind.LIST||e.kind===Bt.Kind.OBJECT}function mg(e){return tw(e)&&(e.kind===Bt.Kind.LIST?e.values.some(mg):e.kind===Bt.Kind.OBJECT?e.fields.some(t=>mg(t.value)):e.kind!==Bt.Kind.VARIABLE)}function sz(e){return e.kind===Bt.Kind.NAMED_TYPE||e.kind===Bt.Kind.LIST_TYPE||e.kind===Bt.Kind.NON_NULL_TYPE}function nw(e){return e.kind===Bt.Kind.SCHEMA_DEFINITION||rw(e)||e.kind===Bt.Kind.DIRECTIVE_DEFINITION}function rw(e){return e.kind===Bt.Kind.SCALAR_TYPE_DEFINITION||e.kind===Bt.Kind.OBJECT_TYPE_DEFINITION||e.kind===Bt.Kind.INTERFACE_TYPE_DEFINITION||e.kind===Bt.Kind.UNION_TYPE_DEFINITION||e.kind===Bt.Kind.ENUM_TYPE_DEFINITION||e.kind===Bt.Kind.INPUT_OBJECT_TYPE_DEFINITION}function iw(e){return e.kind===Bt.Kind.SCHEMA_EXTENSION||aw(e)}function aw(e){return e.kind===Bt.Kind.SCALAR_TYPE_EXTENSION||e.kind===Bt.Kind.OBJECT_TYPE_EXTENSION||e.kind===Bt.Kind.INTERFACE_TYPE_EXTENSION||e.kind===Bt.Kind.UNION_TYPE_EXTENSION||e.kind===Bt.Kind.ENUM_TYPE_EXTENSION||e.kind===Bt.Kind.INPUT_OBJECT_TYPE_EXTENSION}});var Tg=F(Ng=>{"use strict";m();T();N();Object.defineProperty(Ng,"__esModule",{value:!0});Ng.ExecutableDefinitionsRule=cz;var oz=ze(),sw=Lt(),uz=lc();function cz(e){return{Document(t){for(let n of t.definitions)if(!(0,uz.isExecutableDefinitionNode)(n)){let r=n.kind===sw.Kind.SCHEMA_DEFINITION||n.kind===sw.Kind.SCHEMA_EXTENSION?"schema":'"'+n.name.value+'"';e.reportError(new oz.GraphQLError(`The ${r} definition is not executable.`,{nodes:n}))}return!1}}}});var hg=F(Eg=>{"use strict";m();T();N();Object.defineProperty(Eg,"__esModule",{value:!0});Eg.FieldsOnCorrectTypeRule=fz;var ow=uu(),lz=Wd(),dz=lu(),pz=ze(),Np=Ct();function fz(e){return{Field(t){let n=e.getParentType();if(n&&!e.getFieldDef()){let i=e.getSchema(),a=t.name.value,o=(0,ow.didYouMean)("to use an inline fragment on",mz(i,n,a));o===""&&(o=(0,ow.didYouMean)(Nz(n,a))),e.reportError(new pz.GraphQLError(`Cannot query field "${a}" on type "${n.name}".`+o,{nodes:t}))}}}}function mz(e,t,n){if(!(0,Np.isAbstractType)(t))return[];let r=new Set,i=Object.create(null);for(let o of e.getPossibleTypes(t))if(o.getFields()[n]){r.add(o),i[o.name]=1;for(let c of o.getInterfaces()){var a;c.getFields()[n]&&(r.add(c),i[c.name]=((a=i[c.name])!==null&&a!==void 0?a:0)+1)}}return[...r].sort((o,c)=>{let l=i[c.name]-i[o.name];return l!==0?l:(0,Np.isInterfaceType)(o)&&e.isSubType(o,c)?-1:(0,Np.isInterfaceType)(c)&&e.isSubType(c,o)?1:(0,lz.naturalCompare)(o.name,c.name)}).map(o=>o.name)}function Nz(e,t){if((0,Np.isObjectType)(e)||(0,Np.isInterfaceType)(e)){let n=Object.keys(e.getFields());return(0,dz.suggestionList)(t,n)}return[]}});var Ig=F(yg=>{"use strict";m();T();N();Object.defineProperty(yg,"__esModule",{value:!0});yg.FragmentsOnCompositeTypesRule=Tz;var uw=ze(),cw=Ti(),lw=Ct(),dw=xa();function Tz(e){return{InlineFragment(t){let n=t.typeCondition;if(n){let r=(0,dw.typeFromAST)(e.getSchema(),n);if(r&&!(0,lw.isCompositeType)(r)){let i=(0,cw.print)(n);e.reportError(new uw.GraphQLError(`Fragment cannot condition on non composite type "${i}".`,{nodes:n}))}}},FragmentDefinition(t){let n=(0,dw.typeFromAST)(e.getSchema(),t.typeCondition);if(n&&!(0,lw.isCompositeType)(n)){let r=(0,cw.print)(t.typeCondition);e.reportError(new uw.GraphQLError(`Fragment "${t.name.value}" cannot condition on non composite type "${r}".`,{nodes:t.typeCondition}))}}}}});var gg=F(yN=>{"use strict";m();T();N();Object.defineProperty(yN,"__esModule",{value:!0});yN.KnownArgumentNamesOnDirectivesRule=Nw;yN.KnownArgumentNamesRule=yz;var pw=uu(),fw=lu(),mw=ze(),Ez=Lt(),hz=ei();function yz(e){return $(M({},Nw(e)),{Argument(t){let n=e.getArgument(),r=e.getFieldDef(),i=e.getParentType();if(!n&&r&&i){let a=t.name.value,o=r.args.map(l=>l.name),c=(0,fw.suggestionList)(a,o);e.reportError(new mw.GraphQLError(`Unknown argument "${a}" on field "${i.name}.${r.name}".`+(0,pw.didYouMean)(c),{nodes:t}))}}})}function Nw(e){let t=Object.create(null),n=e.getSchema(),r=n?n.getDirectives():hz.specifiedDirectives;for(let o of r)t[o.name]=o.args.map(c=>c.name);let i=e.getDocument().definitions;for(let o of i)if(o.kind===Ez.Kind.DIRECTIVE_DEFINITION){var a;let c=(a=o.arguments)!==null&&a!==void 0?a:[];t[o.name.value]=c.map(l=>l.name.value)}return{Directive(o){let c=o.name.value,l=t[c];if(o.arguments&&l)for(let d of o.arguments){let f=d.name.value;if(!l.includes(f)){let y=(0,fw.suggestionList)(f,l);e.reportError(new mw.GraphQLError(`Unknown argument "${f}" on directive "@${c}".`+(0,pw.didYouMean)(y),{nodes:d}))}}return!1}}}});var Og=F(Sg=>{"use strict";m();T();N();Object.defineProperty(Sg,"__esModule",{value:!0});Sg.KnownDirectivesRule=_z;var Iz=Wt(),_g=Dr(),Tw=ze(),vg=Ba(),ar=fl(),gn=Lt(),gz=ei();function _z(e){let t=Object.create(null),n=e.getSchema(),r=n?n.getDirectives():gz.specifiedDirectives;for(let a of r)t[a.name]=a.locations;let i=e.getDocument().definitions;for(let a of i)a.kind===gn.Kind.DIRECTIVE_DEFINITION&&(t[a.name.value]=a.locations.map(o=>o.value));return{Directive(a,o,c,l,d){let f=a.name.value,y=t[f];if(!y){e.reportError(new Tw.GraphQLError(`Unknown directive "@${f}".`,{nodes:a}));return}let I=vz(d);I&&!y.includes(I)&&e.reportError(new Tw.GraphQLError(`Directive "@${f}" may not be used on ${I}.`,{nodes:a}))}}}function vz(e){let t=e[e.length-1];switch("kind"in t||(0,_g.invariant)(!1),t.kind){case gn.Kind.OPERATION_DEFINITION:return Sz(t.operation);case gn.Kind.FIELD:return ar.DirectiveLocation.FIELD;case gn.Kind.FRAGMENT_SPREAD:return ar.DirectiveLocation.FRAGMENT_SPREAD;case gn.Kind.INLINE_FRAGMENT:return ar.DirectiveLocation.INLINE_FRAGMENT;case gn.Kind.FRAGMENT_DEFINITION:return ar.DirectiveLocation.FRAGMENT_DEFINITION;case gn.Kind.VARIABLE_DEFINITION:return ar.DirectiveLocation.VARIABLE_DEFINITION;case gn.Kind.SCHEMA_DEFINITION:case gn.Kind.SCHEMA_EXTENSION:return ar.DirectiveLocation.SCHEMA;case gn.Kind.SCALAR_TYPE_DEFINITION:case gn.Kind.SCALAR_TYPE_EXTENSION:return ar.DirectiveLocation.SCALAR;case gn.Kind.OBJECT_TYPE_DEFINITION:case gn.Kind.OBJECT_TYPE_EXTENSION:return ar.DirectiveLocation.OBJECT;case gn.Kind.FIELD_DEFINITION:return ar.DirectiveLocation.FIELD_DEFINITION;case gn.Kind.INTERFACE_TYPE_DEFINITION:case gn.Kind.INTERFACE_TYPE_EXTENSION:return ar.DirectiveLocation.INTERFACE;case gn.Kind.UNION_TYPE_DEFINITION:case gn.Kind.UNION_TYPE_EXTENSION:return ar.DirectiveLocation.UNION;case gn.Kind.ENUM_TYPE_DEFINITION:case gn.Kind.ENUM_TYPE_EXTENSION:return ar.DirectiveLocation.ENUM;case gn.Kind.ENUM_VALUE_DEFINITION:return ar.DirectiveLocation.ENUM_VALUE;case gn.Kind.INPUT_OBJECT_TYPE_DEFINITION:case gn.Kind.INPUT_OBJECT_TYPE_EXTENSION:return ar.DirectiveLocation.INPUT_OBJECT;case gn.Kind.INPUT_VALUE_DEFINITION:{let n=e[e.length-3];return"kind"in n||(0,_g.invariant)(!1),n.kind===gn.Kind.INPUT_OBJECT_TYPE_DEFINITION?ar.DirectiveLocation.INPUT_FIELD_DEFINITION:ar.DirectiveLocation.ARGUMENT_DEFINITION}default:(0,_g.invariant)(!1,"Unexpected kind: "+(0,Iz.inspect)(t.kind))}}function Sz(e){switch(e){case vg.OperationTypeNode.QUERY:return ar.DirectiveLocation.QUERY;case vg.OperationTypeNode.MUTATION:return ar.DirectiveLocation.MUTATION;case vg.OperationTypeNode.SUBSCRIPTION:return ar.DirectiveLocation.SUBSCRIPTION}}});var bg=F(Dg=>{"use strict";m();T();N();Object.defineProperty(Dg,"__esModule",{value:!0});Dg.KnownFragmentNamesRule=Dz;var Oz=ze();function Dz(e){return{FragmentSpread(t){let n=t.name.value;e.getFragment(n)||e.reportError(new Oz.GraphQLError(`Unknown fragment "${n}".`,{nodes:t.name}))}}}});var Pg=F(Rg=>{"use strict";m();T();N();Object.defineProperty(Rg,"__esModule",{value:!0});Rg.KnownTypeNamesRule=wz;var bz=uu(),Az=lu(),Rz=ze(),Ag=lc(),Pz=ki(),Fz=Ma();function wz(e){let t=e.getSchema(),n=t?t.getTypeMap():Object.create(null),r=Object.create(null);for(let a of e.getDocument().definitions)(0,Ag.isTypeDefinitionNode)(a)&&(r[a.name.value]=!0);let i=[...Object.keys(n),...Object.keys(r)];return{NamedType(a,o,c,l,d){let f=a.name.value;if(!n[f]&&!r[f]){var y;let I=(y=d[2])!==null&&y!==void 0?y:c,v=I!=null&&Lz(I);if(v&&Ew.includes(f))return;let w=(0,Az.suggestionList)(f,v?Ew.concat(i):i);e.reportError(new Rz.GraphQLError(`Unknown type "${f}".`+(0,bz.didYouMean)(w),{nodes:a}))}}}}var Ew=[...Fz.specifiedScalarTypes,...Pz.introspectionTypes].map(e=>e.name);function Lz(e){return"kind"in e&&((0,Ag.isTypeSystemDefinitionNode)(e)||(0,Ag.isTypeSystemExtensionNode)(e))}});var wg=F(Fg=>{"use strict";m();T();N();Object.defineProperty(Fg,"__esModule",{value:!0});Fg.LoneAnonymousOperationRule=Uz;var Cz=ze(),Bz=Lt();function Uz(e){let t=0;return{Document(n){t=n.definitions.filter(r=>r.kind===Bz.Kind.OPERATION_DEFINITION).length},OperationDefinition(n){!n.name&&t>1&&e.reportError(new Cz.GraphQLError("This anonymous operation must be the only defined operation.",{nodes:n}))}}}});var Cg=F(Lg=>{"use strict";m();T();N();Object.defineProperty(Lg,"__esModule",{value:!0});Lg.LoneSchemaDefinitionRule=kz;var hw=ze();function kz(e){var t,n,r;let i=e.getSchema(),a=(t=(n=(r=i==null?void 0:i.astNode)!==null&&r!==void 0?r:i==null?void 0:i.getQueryType())!==null&&n!==void 0?n:i==null?void 0:i.getMutationType())!==null&&t!==void 0?t:i==null?void 0:i.getSubscriptionType(),o=0;return{SchemaDefinition(c){if(a){e.reportError(new hw.GraphQLError("Cannot define a new schema within a schema extension.",{nodes:c}));return}o>0&&e.reportError(new hw.GraphQLError("Must provide only one schema definition.",{nodes:c})),++o}}}});var Ug=F(Bg=>{"use strict";m();T();N();Object.defineProperty(Bg,"__esModule",{value:!0});Bg.MaxIntrospectionDepthRule=qz;var Mz=ze(),yw=Lt(),xz=3;function qz(e){function t(n,r=Object.create(null),i=0){if(n.kind===yw.Kind.FRAGMENT_SPREAD){let a=n.name.value;if(r[a]===!0)return!1;let o=e.getFragment(a);if(!o)return!1;try{return r[a]=!0,t(o,r,i)}finally{r[a]=void 0}}if(n.kind===yw.Kind.FIELD&&(n.name.value==="fields"||n.name.value==="interfaces"||n.name.value==="possibleTypes"||n.name.value==="inputFields")&&(i++,i>=xz))return!0;if("selectionSet"in n&&n.selectionSet){for(let a of n.selectionSet.selections)if(t(a,r,i))return!0}return!1}return{Field(n){if((n.name.value==="__schema"||n.name.value==="__type")&&t(n))return e.reportError(new Mz.GraphQLError("Maximum introspection depth exceeded",{nodes:[n]})),!1}}}});var Mg=F(kg=>{"use strict";m();T();N();Object.defineProperty(kg,"__esModule",{value:!0});kg.NoFragmentCyclesRule=Vz;var jz=ze();function Vz(e){let t=Object.create(null),n=[],r=Object.create(null);return{OperationDefinition:()=>!1,FragmentDefinition(a){return i(a),!1}};function i(a){if(t[a.name.value])return;let o=a.name.value;t[o]=!0;let c=e.getFragmentSpreads(a.selectionSet);if(c.length!==0){r[o]=n.length;for(let l of c){let d=l.name.value,f=r[d];if(n.push(l),f===void 0){let y=e.getFragment(d);y&&i(y)}else{let y=n.slice(f),I=y.slice(0,-1).map(v=>'"'+v.name.value+'"').join(", ");e.reportError(new jz.GraphQLError(`Cannot spread fragment "${d}" within itself`+(I!==""?` via ${I}.`:"."),{nodes:y}))}n.pop()}r[o]=void 0}}}});var qg=F(xg=>{"use strict";m();T();N();Object.defineProperty(xg,"__esModule",{value:!0});xg.NoUndefinedVariablesRule=Gz;var Kz=ze();function Gz(e){let t=Object.create(null);return{OperationDefinition:{enter(){t=Object.create(null)},leave(n){let r=e.getRecursiveVariableUsages(n);for(let{node:i}of r){let a=i.name.value;t[a]!==!0&&e.reportError(new Kz.GraphQLError(n.name?`Variable "$${a}" is not defined by operation "${n.name.value}".`:`Variable "$${a}" is not defined.`,{nodes:[i,n]}))}}},VariableDefinition(n){t[n.variable.name.value]=!0}}}});var Vg=F(jg=>{"use strict";m();T();N();Object.defineProperty(jg,"__esModule",{value:!0});jg.NoUnusedFragmentsRule=Qz;var $z=ze();function Qz(e){let t=[],n=[];return{OperationDefinition(r){return t.push(r),!1},FragmentDefinition(r){return n.push(r),!1},Document:{leave(){let r=Object.create(null);for(let i of t)for(let a of e.getRecursivelyReferencedFragments(i))r[a.name.value]=!0;for(let i of n){let a=i.name.value;r[a]!==!0&&e.reportError(new $z.GraphQLError(`Fragment "${a}" is never used.`,{nodes:i}))}}}}}});var Gg=F(Kg=>{"use strict";m();T();N();Object.defineProperty(Kg,"__esModule",{value:!0});Kg.NoUnusedVariablesRule=Jz;var Yz=ze();function Jz(e){let t=[];return{OperationDefinition:{enter(){t=[]},leave(n){let r=Object.create(null),i=e.getRecursiveVariableUsages(n);for(let{node:a}of i)r[a.name.value]=!0;for(let a of t){let o=a.variable.name.value;r[o]!==!0&&e.reportError(new Yz.GraphQLError(n.name?`Variable "$${o}" is never used in operation "${n.name.value}".`:`Variable "$${o}" is never used.`,{nodes:a}))}}},VariableDefinition(n){t.push(n)}}}});var Yg=F(Qg=>{"use strict";m();T();N();Object.defineProperty(Qg,"__esModule",{value:!0});Qg.sortValueNode=$g;var Hz=Wd(),bs=Lt();function $g(e){switch(e.kind){case bs.Kind.OBJECT:return $(M({},e),{fields:zz(e.fields)});case bs.Kind.LIST:return $(M({},e),{values:e.values.map($g)});case bs.Kind.INT:case bs.Kind.FLOAT:case bs.Kind.STRING:case bs.Kind.BOOLEAN:case bs.Kind.NULL:case bs.Kind.ENUM:case bs.Kind.VARIABLE:return e}}function zz(e){return e.map(t=>$(M({},t),{value:$g(t.value)})).sort((t,n)=>(0,Hz.naturalCompare)(t.name.value,n.name.value))}});var e_=F(Zg=>{"use strict";m();T();N();Object.defineProperty(Zg,"__esModule",{value:!0});Zg.OverlappingFieldsCanBeMergedRule=eW;var Iw=Wt(),Wz=ze(),Jg=Lt(),Xz=Ti(),ti=Ct(),Zz=Yg(),_w=xa();function vw(e){return Array.isArray(e)?e.map(([t,n])=>`subfields "${t}" conflict because `+vw(n)).join(" and "):e}function eW(e){let t=new Wg,n=new Map;return{SelectionSet(r){let i=tW(e,n,t,e.getParentType(),r);for(let[[a,o],c,l]of i){let d=vw(o);e.reportError(new Wz.GraphQLError(`Fields "${a}" conflict because ${d}. Use different aliases on the fields to fetch both if this was intentional.`,{nodes:c.concat(l)}))}}}}function tW(e,t,n,r,i){let a=[],[o,c]=_N(e,t,r,i);if(rW(e,a,t,n,o),c.length!==0)for(let l=0;l1)for(let c=0;c[a.value,o]));return n.every(a=>{let o=a.value,c=i.get(a.name.value);return c===void 0?!1:gw(o)===gw(c)})}function gw(e){return(0,Xz.print)((0,Zz.sortValueNode)(e))}function Hg(e,t){return(0,ti.isListType)(e)?(0,ti.isListType)(t)?Hg(e.ofType,t.ofType):!0:(0,ti.isListType)(t)?!0:(0,ti.isNonNullType)(e)?(0,ti.isNonNullType)(t)?Hg(e.ofType,t.ofType):!0:(0,ti.isNonNullType)(t)?!0:(0,ti.isLeafType)(e)||(0,ti.isLeafType)(t)?e!==t:!1}function _N(e,t,n,r){let i=t.get(r);if(i)return i;let a=Object.create(null),o=Object.create(null);Ow(e,n,r,a,o);let c=[a,Object.keys(o)];return t.set(r,c),c}function zg(e,t,n){let r=t.get(n.selectionSet);if(r)return r;let i=(0,_w.typeFromAST)(e.getSchema(),n.typeCondition);return _N(e,t,i,n.selectionSet)}function Ow(e,t,n,r,i){for(let a of n.selections)switch(a.kind){case Jg.Kind.FIELD:{let o=a.name.value,c;((0,ti.isObjectType)(t)||(0,ti.isInterfaceType)(t))&&(c=t.getFields()[o]);let l=a.alias?a.alias.value:o;r[l]||(r[l]=[]),r[l].push([t,a,c]);break}case Jg.Kind.FRAGMENT_SPREAD:i[a.name.value]=!0;break;case Jg.Kind.INLINE_FRAGMENT:{let o=a.typeCondition,c=o?(0,_w.typeFromAST)(e.getSchema(),o):t;Ow(e,c,a.selectionSet,r,i);break}}}function aW(e,t,n,r){if(e.length>0)return[[t,e.map(([i])=>i)],[n,...e.map(([,i])=>i).flat()],[r,...e.map(([,,i])=>i).flat()]]}var Wg=class{constructor(){this._data=new Map}has(t,n,r){var i;let[a,o]=t{"use strict";m();T();N();Object.defineProperty(n_,"__esModule",{value:!0});n_.PossibleFragmentSpreadsRule=oW;var vN=Wt(),Dw=ze(),t_=Ct(),bw=rp(),sW=xa();function oW(e){return{InlineFragment(t){let n=e.getType(),r=e.getParentType();if((0,t_.isCompositeType)(n)&&(0,t_.isCompositeType)(r)&&!(0,bw.doTypesOverlap)(e.getSchema(),n,r)){let i=(0,vN.inspect)(r),a=(0,vN.inspect)(n);e.reportError(new Dw.GraphQLError(`Fragment cannot be spread here as objects of type "${i}" can never be of type "${a}".`,{nodes:t}))}},FragmentSpread(t){let n=t.name.value,r=uW(e,n),i=e.getParentType();if(r&&i&&!(0,bw.doTypesOverlap)(e.getSchema(),r,i)){let a=(0,vN.inspect)(i),o=(0,vN.inspect)(r);e.reportError(new Dw.GraphQLError(`Fragment "${n}" cannot be spread here as objects of type "${a}" can never be of type "${o}".`,{nodes:t}))}}}}function uW(e,t){let n=e.getFragment(t);if(n){let r=(0,sW.typeFromAST)(e.getSchema(),n.typeCondition);if((0,t_.isCompositeType)(r))return r}}});var a_=F(i_=>{"use strict";m();T();N();Object.defineProperty(i_,"__esModule",{value:!0});i_.PossibleTypeExtensionsRule=pW;var cW=uu(),Rw=Wt(),Pw=Dr(),lW=lu(),Aw=ze(),Sn=Lt(),dW=lc(),gl=Ct();function pW(e){let t=e.getSchema(),n=Object.create(null);for(let i of e.getDocument().definitions)(0,dW.isTypeDefinitionNode)(i)&&(n[i.name.value]=i);return{ScalarTypeExtension:r,ObjectTypeExtension:r,InterfaceTypeExtension:r,UnionTypeExtension:r,EnumTypeExtension:r,InputObjectTypeExtension:r};function r(i){let a=i.name.value,o=n[a],c=t==null?void 0:t.getType(a),l;if(o?l=fW[o.kind]:c&&(l=mW(c)),l){if(l!==i.kind){let d=NW(i.kind);e.reportError(new Aw.GraphQLError(`Cannot extend non-${d} type "${a}".`,{nodes:o?[o,i]:i}))}}else{let d=Object.keys(M(M({},n),t==null?void 0:t.getTypeMap())),f=(0,lW.suggestionList)(a,d);e.reportError(new Aw.GraphQLError(`Cannot extend type "${a}" because it is not defined.`+(0,cW.didYouMean)(f),{nodes:i.name}))}}}var fW={[Sn.Kind.SCALAR_TYPE_DEFINITION]:Sn.Kind.SCALAR_TYPE_EXTENSION,[Sn.Kind.OBJECT_TYPE_DEFINITION]:Sn.Kind.OBJECT_TYPE_EXTENSION,[Sn.Kind.INTERFACE_TYPE_DEFINITION]:Sn.Kind.INTERFACE_TYPE_EXTENSION,[Sn.Kind.UNION_TYPE_DEFINITION]:Sn.Kind.UNION_TYPE_EXTENSION,[Sn.Kind.ENUM_TYPE_DEFINITION]:Sn.Kind.ENUM_TYPE_EXTENSION,[Sn.Kind.INPUT_OBJECT_TYPE_DEFINITION]:Sn.Kind.INPUT_OBJECT_TYPE_EXTENSION};function mW(e){if((0,gl.isScalarType)(e))return Sn.Kind.SCALAR_TYPE_EXTENSION;if((0,gl.isObjectType)(e))return Sn.Kind.OBJECT_TYPE_EXTENSION;if((0,gl.isInterfaceType)(e))return Sn.Kind.INTERFACE_TYPE_EXTENSION;if((0,gl.isUnionType)(e))return Sn.Kind.UNION_TYPE_EXTENSION;if((0,gl.isEnumType)(e))return Sn.Kind.ENUM_TYPE_EXTENSION;if((0,gl.isInputObjectType)(e))return Sn.Kind.INPUT_OBJECT_TYPE_EXTENSION;(0,Pw.invariant)(!1,"Unexpected type: "+(0,Rw.inspect)(e))}function NW(e){switch(e){case Sn.Kind.SCALAR_TYPE_EXTENSION:return"scalar";case Sn.Kind.OBJECT_TYPE_EXTENSION:return"object";case Sn.Kind.INTERFACE_TYPE_EXTENSION:return"interface";case Sn.Kind.UNION_TYPE_EXTENSION:return"union";case Sn.Kind.ENUM_TYPE_EXTENSION:return"enum";case Sn.Kind.INPUT_OBJECT_TYPE_EXTENSION:return"input object";default:(0,Pw.invariant)(!1,"Unexpected kind: "+(0,Rw.inspect)(e))}}});var o_=F(SN=>{"use strict";m();T();N();Object.defineProperty(SN,"__esModule",{value:!0});SN.ProvidedRequiredArgumentsOnDirectivesRule=Bw;SN.ProvidedRequiredArgumentsRule=hW;var ww=Wt(),Fw=cu(),Lw=ze(),Cw=Lt(),TW=Ti(),s_=Ct(),EW=ei();function hW(e){return $(M({},Bw(e)),{Field:{leave(t){var n;let r=e.getFieldDef();if(!r)return!1;let i=new Set((n=t.arguments)===null||n===void 0?void 0:n.map(a=>a.name.value));for(let a of r.args)if(!i.has(a.name)&&(0,s_.isRequiredArgument)(a)){let o=(0,ww.inspect)(a.type);e.reportError(new Lw.GraphQLError(`Field "${r.name}" argument "${a.name}" of type "${o}" is required, but it was not provided.`,{nodes:t}))}}}})}function Bw(e){var t;let n=Object.create(null),r=e.getSchema(),i=(t=r==null?void 0:r.getDirectives())!==null&&t!==void 0?t:EW.specifiedDirectives;for(let c of i)n[c.name]=(0,Fw.keyMap)(c.args.filter(s_.isRequiredArgument),l=>l.name);let a=e.getDocument().definitions;for(let c of a)if(c.kind===Cw.Kind.DIRECTIVE_DEFINITION){var o;let l=(o=c.arguments)!==null&&o!==void 0?o:[];n[c.name.value]=(0,Fw.keyMap)(l.filter(yW),d=>d.name.value)}return{Directive:{leave(c){let l=c.name.value,d=n[l];if(d){var f;let y=(f=c.arguments)!==null&&f!==void 0?f:[],I=new Set(y.map(v=>v.name.value));for(let[v,w]of Object.entries(d))if(!I.has(v)){let U=(0,s_.isType)(w.type)?(0,ww.inspect)(w.type):(0,TW.print)(w.type);e.reportError(new Lw.GraphQLError(`Directive "@${l}" argument "${v}" of type "${U}" is required, but it was not provided.`,{nodes:c}))}}}}}}function yW(e){return e.type.kind===Cw.Kind.NON_NULL_TYPE&&e.defaultValue==null}});var c_=F(u_=>{"use strict";m();T();N();Object.defineProperty(u_,"__esModule",{value:!0});u_.ScalarLeafsRule=IW;var Uw=Wt(),kw=ze(),Mw=Ct();function IW(e){return{Field(t){let n=e.getType(),r=t.selectionSet;if(n){if((0,Mw.isLeafType)((0,Mw.getNamedType)(n))){if(r){let i=t.name.value,a=(0,Uw.inspect)(n);e.reportError(new kw.GraphQLError(`Field "${i}" must not have a selection since type "${a}" has no subfields.`,{nodes:r}))}}else if(!r){let i=t.name.value,a=(0,Uw.inspect)(n);e.reportError(new kw.GraphQLError(`Field "${i}" of type "${a}" must have a selection of subfields. Did you mean "${i} { ... }"?`,{nodes:t}))}}}}}});var d_=F(l_=>{"use strict";m();T();N();Object.defineProperty(l_,"__esModule",{value:!0});l_.printPathArray=gW;function gW(e){return e.map(t=>typeof t=="number"?"["+t.toString()+"]":"."+t).join("")}});var Tp=F(ON=>{"use strict";m();T();N();Object.defineProperty(ON,"__esModule",{value:!0});ON.addPath=_W;ON.pathToArray=vW;function _W(e,t,n){return{prev:e,key:t,typename:n}}function vW(e){let t=[],n=e;for(;n;)t.push(n.key),n=n.prev;return t.reverse()}});var f_=F(p_=>{"use strict";m();T();N();Object.defineProperty(p_,"__esModule",{value:!0});p_.coerceInputValue=PW;var SW=uu(),DN=Wt(),OW=Dr(),DW=mN(),bW=Ca(),fa=Tp(),AW=d_(),RW=lu(),As=ze(),Ep=Ct();function PW(e,t,n=FW){return hp(e,t,n,void 0)}function FW(e,t,n){let r="Invalid value "+(0,DN.inspect)(t);throw e.length>0&&(r+=` at "value${(0,AW.printPathArray)(e)}"`),n.message=r+": "+n.message,n}function hp(e,t,n,r){if((0,Ep.isNonNullType)(t)){if(e!=null)return hp(e,t.ofType,n,r);n((0,fa.pathToArray)(r),e,new As.GraphQLError(`Expected non-nullable type "${(0,DN.inspect)(t)}" not to be null.`));return}if(e==null)return null;if((0,Ep.isListType)(t)){let i=t.ofType;return(0,DW.isIterableObject)(e)?Array.from(e,(a,o)=>{let c=(0,fa.addPath)(r,o,void 0);return hp(a,i,n,c)}):[hp(e,i,n,r)]}if((0,Ep.isInputObjectType)(t)){if(!(0,bW.isObjectLike)(e)){n((0,fa.pathToArray)(r),e,new As.GraphQLError(`Expected type "${t.name}" to be an object.`));return}let i={},a=t.getFields();for(let o of Object.values(a)){let c=e[o.name];if(c===void 0){if(o.defaultValue!==void 0)i[o.name]=o.defaultValue;else if((0,Ep.isNonNullType)(o.type)){let l=(0,DN.inspect)(o.type);n((0,fa.pathToArray)(r),e,new As.GraphQLError(`Field "${o.name}" of required type "${l}" was not provided.`))}continue}i[o.name]=hp(c,o.type,n,(0,fa.addPath)(r,o.name,t.name))}for(let o of Object.keys(e))if(!a[o]){let c=(0,RW.suggestionList)(o,Object.keys(t.getFields()));n((0,fa.pathToArray)(r),e,new As.GraphQLError(`Field "${o}" is not defined by type "${t.name}".`+(0,SW.didYouMean)(c)))}if(t.isOneOf){let o=Object.keys(i);o.length!==1&&n((0,fa.pathToArray)(r),e,new As.GraphQLError(`Exactly one key must be specified for OneOf type "${t.name}".`));let c=o[0],l=i[c];l===null&&n((0,fa.pathToArray)(r).concat(c),l,new As.GraphQLError(`Field "${c}" must be non-null.`))}return i}if((0,Ep.isLeafType)(t)){let i;try{i=t.parseValue(e)}catch(a){a instanceof As.GraphQLError?n((0,fa.pathToArray)(r),e,a):n((0,fa.pathToArray)(r),e,new As.GraphQLError(`Expected type "${t.name}". `+a.message,{originalError:a}));return}return i===void 0&&n((0,fa.pathToArray)(r),e,new As.GraphQLError(`Expected type "${t.name}".`)),i}(0,OW.invariant)(!1,"Unexpected input type: "+(0,DN.inspect)(t))}});var Ip=F(m_=>{"use strict";m();T();N();Object.defineProperty(m_,"__esModule",{value:!0});m_.valueFromAST=yp;var wW=Wt(),LW=Dr(),CW=cu(),_l=Lt(),dc=Ct();function yp(e,t,n){if(e){if(e.kind===_l.Kind.VARIABLE){let r=e.name.value;if(n==null||n[r]===void 0)return;let i=n[r];return i===null&&(0,dc.isNonNullType)(t)?void 0:i}if((0,dc.isNonNullType)(t))return e.kind===_l.Kind.NULL?void 0:yp(e,t.ofType,n);if(e.kind===_l.Kind.NULL)return null;if((0,dc.isListType)(t)){let r=t.ofType;if(e.kind===_l.Kind.LIST){let a=[];for(let o of e.values)if(xw(o,n)){if((0,dc.isNonNullType)(r))return;a.push(null)}else{let c=yp(o,r,n);if(c===void 0)return;a.push(c)}return a}let i=yp(e,r,n);return i===void 0?void 0:[i]}if((0,dc.isInputObjectType)(t)){if(e.kind!==_l.Kind.OBJECT)return;let r=Object.create(null),i=(0,CW.keyMap)(e.fields,a=>a.name.value);for(let a of Object.values(t.getFields())){let o=i[a.name];if(!o||xw(o.value,n)){if(a.defaultValue!==void 0)r[a.name]=a.defaultValue;else if((0,dc.isNonNullType)(a.type))return;continue}let c=yp(o.value,a.type,n);if(c===void 0)return;r[a.name]=c}if(t.isOneOf){let a=Object.keys(r);if(a.length!==1||r[a[0]]===null)return}return r}if((0,dc.isLeafType)(t)){let r;try{r=t.parseLiteral(e,n)}catch(i){return}return r===void 0?void 0:r}(0,LW.invariant)(!1,"Unexpected input type: "+(0,wW.inspect)(t))}}function xw(e,t){return e.kind===_l.Kind.VARIABLE&&(t==null||t[e.name.value]===void 0)}});var Ol=F(gp=>{"use strict";m();T();N();Object.defineProperty(gp,"__esModule",{value:!0});gp.getArgumentValues=Kw;gp.getDirectiveValues=jW;gp.getVariableValues=xW;var vl=Wt(),BW=cu(),UW=d_(),Rs=ze(),qw=Lt(),jw=Ti(),Sl=Ct(),kW=f_(),MW=xa(),Vw=Ip();function xW(e,t,n,r){let i=[],a=r==null?void 0:r.maxErrors;try{let o=qW(e,t,n,c=>{if(a!=null&&i.length>=a)throw new Rs.GraphQLError("Too many errors processing variables, error limit reached. Execution aborted.");i.push(c)});if(i.length===0)return{coerced:o}}catch(o){i.push(o)}return{errors:i}}function qW(e,t,n,r){let i={};for(let a of t){let o=a.variable.name.value,c=(0,MW.typeFromAST)(e,a.type);if(!(0,Sl.isInputType)(c)){let d=(0,jw.print)(a.type);r(new Rs.GraphQLError(`Variable "$${o}" expected value of type "${d}" which cannot be used as an input type.`,{nodes:a.type}));continue}if(!Gw(n,o)){if(a.defaultValue)i[o]=(0,Vw.valueFromAST)(a.defaultValue,c);else if((0,Sl.isNonNullType)(c)){let d=(0,vl.inspect)(c);r(new Rs.GraphQLError(`Variable "$${o}" of required type "${d}" was not provided.`,{nodes:a}))}continue}let l=n[o];if(l===null&&(0,Sl.isNonNullType)(c)){let d=(0,vl.inspect)(c);r(new Rs.GraphQLError(`Variable "$${o}" of non-null type "${d}" must not be null.`,{nodes:a}));continue}i[o]=(0,kW.coerceInputValue)(l,c,(d,f,y)=>{let I=`Variable "$${o}" got invalid value `+(0,vl.inspect)(f);d.length>0&&(I+=` at "${o}${(0,UW.printPathArray)(d)}"`),r(new Rs.GraphQLError(I+"; "+y.message,{nodes:a,originalError:y}))})}return i}function Kw(e,t,n){var r;let i={},a=(r=t.arguments)!==null&&r!==void 0?r:[],o=(0,BW.keyMap)(a,c=>c.name.value);for(let c of e.args){let l=c.name,d=c.type,f=o[l];if(!f){if(c.defaultValue!==void 0)i[l]=c.defaultValue;else if((0,Sl.isNonNullType)(d))throw new Rs.GraphQLError(`Argument "${l}" of required type "${(0,vl.inspect)(d)}" was not provided.`,{nodes:t});continue}let y=f.value,I=y.kind===qw.Kind.NULL;if(y.kind===qw.Kind.VARIABLE){let w=y.name.value;if(n==null||!Gw(n,w)){if(c.defaultValue!==void 0)i[l]=c.defaultValue;else if((0,Sl.isNonNullType)(d))throw new Rs.GraphQLError(`Argument "${l}" of required type "${(0,vl.inspect)(d)}" was provided the variable "$${w}" which was not provided a runtime value.`,{nodes:y});continue}I=n[w]==null}if(I&&(0,Sl.isNonNullType)(d))throw new Rs.GraphQLError(`Argument "${l}" of non-null type "${(0,vl.inspect)(d)}" must not be null.`,{nodes:y});let v=(0,Vw.valueFromAST)(y,d,n);if(v===void 0)throw new Rs.GraphQLError(`Argument "${l}" has invalid value ${(0,jw.print)(y)}.`,{nodes:y});i[l]=v}return i}function jW(e,t,n){var r;let i=(r=t.directives)===null||r===void 0?void 0:r.find(a=>a.name.value===e.name);if(i)return Kw(e,i,n)}function Gw(e,t){return Object.prototype.hasOwnProperty.call(e,t)}});var RN=F(AN=>{"use strict";m();T();N();Object.defineProperty(AN,"__esModule",{value:!0});AN.collectFields=GW;AN.collectSubfields=$W;var N_=Lt(),VW=Ct(),$w=ei(),KW=xa(),Qw=Ol();function GW(e,t,n,r,i){let a=new Map;return bN(e,t,n,r,i,a,new Set),a}function $W(e,t,n,r,i){let a=new Map,o=new Set;for(let c of i)c.selectionSet&&bN(e,t,n,r,c.selectionSet,a,o);return a}function bN(e,t,n,r,i,a,o){for(let c of i.selections)switch(c.kind){case N_.Kind.FIELD:{if(!T_(n,c))continue;let l=QW(c),d=a.get(l);d!==void 0?d.push(c):a.set(l,[c]);break}case N_.Kind.INLINE_FRAGMENT:{if(!T_(n,c)||!Yw(e,c,r))continue;bN(e,t,n,r,c.selectionSet,a,o);break}case N_.Kind.FRAGMENT_SPREAD:{let l=c.name.value;if(o.has(l)||!T_(n,c))continue;o.add(l);let d=t[l];if(!d||!Yw(e,d,r))continue;bN(e,t,n,r,d.selectionSet,a,o);break}}}function T_(e,t){let n=(0,Qw.getDirectiveValues)($w.GraphQLSkipDirective,t,e);if((n==null?void 0:n.if)===!0)return!1;let r=(0,Qw.getDirectiveValues)($w.GraphQLIncludeDirective,t,e);return(r==null?void 0:r.if)!==!1}function Yw(e,t,n){let r=t.typeCondition;if(!r)return!0;let i=(0,KW.typeFromAST)(e,r);return i===n?!0:(0,VW.isAbstractType)(i)?e.isSubType(i,n):!1}function QW(e){return e.alias?e.alias.value:e.name.value}});var h_=F(E_=>{"use strict";m();T();N();Object.defineProperty(E_,"__esModule",{value:!0});E_.SingleFieldSubscriptionsRule=HW;var Jw=ze(),YW=Lt(),JW=RN();function HW(e){return{OperationDefinition(t){if(t.operation==="subscription"){let n=e.getSchema(),r=n.getSubscriptionType();if(r){let i=t.name?t.name.value:null,a=Object.create(null),o=e.getDocument(),c=Object.create(null);for(let d of o.definitions)d.kind===YW.Kind.FRAGMENT_DEFINITION&&(c[d.name.value]=d);let l=(0,JW.collectFields)(n,c,a,r,t.selectionSet);if(l.size>1){let y=[...l.values()].slice(1).flat();e.reportError(new Jw.GraphQLError(i!=null?`Subscription "${i}" must select only one top level field.`:"Anonymous Subscription must select only one top level field.",{nodes:y}))}for(let d of l.values())d[0].name.value.startsWith("__")&&e.reportError(new Jw.GraphQLError(i!=null?`Subscription "${i}" must not select an introspection top level field.`:"Anonymous Subscription must not select an introspection top level field.",{nodes:d}))}}}}}});var PN=F(y_=>{"use strict";m();T();N();Object.defineProperty(y_,"__esModule",{value:!0});y_.groupBy=zW;function zW(e,t){let n=new Map;for(let r of e){let i=t(r),a=n.get(i);a===void 0?n.set(i,[r]):a.push(r)}return n}});var g_=F(I_=>{"use strict";m();T();N();Object.defineProperty(I_,"__esModule",{value:!0});I_.UniqueArgumentDefinitionNamesRule=ZW;var WW=PN(),XW=ze();function ZW(e){return{DirectiveDefinition(r){var i;let a=(i=r.arguments)!==null&&i!==void 0?i:[];return n(`@${r.name.value}`,a)},InterfaceTypeDefinition:t,InterfaceTypeExtension:t,ObjectTypeDefinition:t,ObjectTypeExtension:t};function t(r){var i;let a=r.name.value,o=(i=r.fields)!==null&&i!==void 0?i:[];for(let l of o){var c;let d=l.name.value,f=(c=l.arguments)!==null&&c!==void 0?c:[];n(`${a}.${d}`,f)}return!1}function n(r,i){let a=(0,WW.groupBy)(i,o=>o.name.value);for(let[o,c]of a)c.length>1&&e.reportError(new XW.GraphQLError(`Argument "${r}(${o}:)" can only be defined once.`,{nodes:c.map(l=>l.name)}));return!1}}});var v_=F(__=>{"use strict";m();T();N();Object.defineProperty(__,"__esModule",{value:!0});__.UniqueArgumentNamesRule=n4;var e4=PN(),t4=ze();function n4(e){return{Field:t,Directive:t};function t(n){var r;let i=(r=n.arguments)!==null&&r!==void 0?r:[],a=(0,e4.groupBy)(i,o=>o.name.value);for(let[o,c]of a)c.length>1&&e.reportError(new t4.GraphQLError(`There can be only one argument named "${o}".`,{nodes:c.map(l=>l.name)}))}}});var O_=F(S_=>{"use strict";m();T();N();Object.defineProperty(S_,"__esModule",{value:!0});S_.UniqueDirectiveNamesRule=r4;var Hw=ze();function r4(e){let t=Object.create(null),n=e.getSchema();return{DirectiveDefinition(r){let i=r.name.value;if(n!=null&&n.getDirective(i)){e.reportError(new Hw.GraphQLError(`Directive "@${i}" already exists in the schema. It cannot be redefined.`,{nodes:r.name}));return}return t[i]?e.reportError(new Hw.GraphQLError(`There can be only one directive named "@${i}".`,{nodes:[t[i],r.name]})):t[i]=r.name,!1}}}});var A_=F(b_=>{"use strict";m();T();N();Object.defineProperty(b_,"__esModule",{value:!0});b_.UniqueDirectivesPerLocationRule=s4;var i4=ze(),D_=Lt(),zw=lc(),a4=ei();function s4(e){let t=Object.create(null),n=e.getSchema(),r=n?n.getDirectives():a4.specifiedDirectives;for(let c of r)t[c.name]=!c.isRepeatable;let i=e.getDocument().definitions;for(let c of i)c.kind===D_.Kind.DIRECTIVE_DEFINITION&&(t[c.name.value]=!c.repeatable);let a=Object.create(null),o=Object.create(null);return{enter(c){if(!("directives"in c)||!c.directives)return;let l;if(c.kind===D_.Kind.SCHEMA_DEFINITION||c.kind===D_.Kind.SCHEMA_EXTENSION)l=a;else if((0,zw.isTypeDefinitionNode)(c)||(0,zw.isTypeExtensionNode)(c)){let d=c.name.value;l=o[d],l===void 0&&(o[d]=l=Object.create(null))}else l=Object.create(null);for(let d of c.directives){let f=d.name.value;t[f]&&(l[f]?e.reportError(new i4.GraphQLError(`The directive "@${f}" can only be used once at this location.`,{nodes:[l[f],d]})):l[f]=d)}}}}});var P_=F(R_=>{"use strict";m();T();N();Object.defineProperty(R_,"__esModule",{value:!0});R_.UniqueEnumValueNamesRule=u4;var Ww=ze(),o4=Ct();function u4(e){let t=e.getSchema(),n=t?t.getTypeMap():Object.create(null),r=Object.create(null);return{EnumTypeDefinition:i,EnumTypeExtension:i};function i(a){var o;let c=a.name.value;r[c]||(r[c]=Object.create(null));let l=(o=a.values)!==null&&o!==void 0?o:[],d=r[c];for(let f of l){let y=f.name.value,I=n[c];(0,o4.isEnumType)(I)&&I.getValue(y)?e.reportError(new Ww.GraphQLError(`Enum value "${c}.${y}" already exists in the schema. It cannot also be defined in this type extension.`,{nodes:f.name})):d[y]?e.reportError(new Ww.GraphQLError(`Enum value "${c}.${y}" can only be defined once.`,{nodes:[d[y],f.name]})):d[y]=f.name}return!1}}});var L_=F(w_=>{"use strict";m();T();N();Object.defineProperty(w_,"__esModule",{value:!0});w_.UniqueFieldDefinitionNamesRule=c4;var Xw=ze(),F_=Ct();function c4(e){let t=e.getSchema(),n=t?t.getTypeMap():Object.create(null),r=Object.create(null);return{InputObjectTypeDefinition:i,InputObjectTypeExtension:i,InterfaceTypeDefinition:i,InterfaceTypeExtension:i,ObjectTypeDefinition:i,ObjectTypeExtension:i};function i(a){var o;let c=a.name.value;r[c]||(r[c]=Object.create(null));let l=(o=a.fields)!==null&&o!==void 0?o:[],d=r[c];for(let f of l){let y=f.name.value;l4(n[c],y)?e.reportError(new Xw.GraphQLError(`Field "${c}.${y}" already exists in the schema. It cannot also be defined in this type extension.`,{nodes:f.name})):d[y]?e.reportError(new Xw.GraphQLError(`Field "${c}.${y}" can only be defined once.`,{nodes:[d[y],f.name]})):d[y]=f.name}return!1}}function l4(e,t){return(0,F_.isObjectType)(e)||(0,F_.isInterfaceType)(e)||(0,F_.isInputObjectType)(e)?e.getFields()[t]!=null:!1}});var B_=F(C_=>{"use strict";m();T();N();Object.defineProperty(C_,"__esModule",{value:!0});C_.UniqueFragmentNamesRule=p4;var d4=ze();function p4(e){let t=Object.create(null);return{OperationDefinition:()=>!1,FragmentDefinition(n){let r=n.name.value;return t[r]?e.reportError(new d4.GraphQLError(`There can be only one fragment named "${r}".`,{nodes:[t[r],n.name]})):t[r]=n.name,!1}}}});var k_=F(U_=>{"use strict";m();T();N();Object.defineProperty(U_,"__esModule",{value:!0});U_.UniqueInputFieldNamesRule=N4;var f4=Dr(),m4=ze();function N4(e){let t=[],n=Object.create(null);return{ObjectValue:{enter(){t.push(n),n=Object.create(null)},leave(){let r=t.pop();r||(0,f4.invariant)(!1),n=r}},ObjectField(r){let i=r.name.value;n[i]?e.reportError(new m4.GraphQLError(`There can be only one input field named "${i}".`,{nodes:[n[i],r.name]})):n[i]=r.name}}}});var x_=F(M_=>{"use strict";m();T();N();Object.defineProperty(M_,"__esModule",{value:!0});M_.UniqueOperationNamesRule=E4;var T4=ze();function E4(e){let t=Object.create(null);return{OperationDefinition(n){let r=n.name;return r&&(t[r.value]?e.reportError(new T4.GraphQLError(`There can be only one operation named "${r.value}".`,{nodes:[t[r.value],r]})):t[r.value]=r),!1},FragmentDefinition:()=>!1}}});var j_=F(q_=>{"use strict";m();T();N();Object.defineProperty(q_,"__esModule",{value:!0});q_.UniqueOperationTypesRule=h4;var Zw=ze();function h4(e){let t=e.getSchema(),n=Object.create(null),r=t?{query:t.getQueryType(),mutation:t.getMutationType(),subscription:t.getSubscriptionType()}:{};return{SchemaDefinition:i,SchemaExtension:i};function i(a){var o;let c=(o=a.operationTypes)!==null&&o!==void 0?o:[];for(let l of c){let d=l.operation,f=n[d];r[d]?e.reportError(new Zw.GraphQLError(`Type for ${d} already defined in the schema. It cannot be redefined.`,{nodes:l})):f?e.reportError(new Zw.GraphQLError(`There can be only one ${d} type in schema.`,{nodes:[f,l]})):n[d]=l}return!1}}});var K_=F(V_=>{"use strict";m();T();N();Object.defineProperty(V_,"__esModule",{value:!0});V_.UniqueTypeNamesRule=y4;var eL=ze();function y4(e){let t=Object.create(null),n=e.getSchema();return{ScalarTypeDefinition:r,ObjectTypeDefinition:r,InterfaceTypeDefinition:r,UnionTypeDefinition:r,EnumTypeDefinition:r,InputObjectTypeDefinition:r};function r(i){let a=i.name.value;if(n!=null&&n.getType(a)){e.reportError(new eL.GraphQLError(`Type "${a}" already exists in the schema. It cannot also be defined in this type definition.`,{nodes:i.name}));return}return t[a]?e.reportError(new eL.GraphQLError(`There can be only one type named "${a}".`,{nodes:[t[a],i.name]})):t[a]=i.name,!1}}});var $_=F(G_=>{"use strict";m();T();N();Object.defineProperty(G_,"__esModule",{value:!0});G_.UniqueVariableNamesRule=_4;var I4=PN(),g4=ze();function _4(e){return{OperationDefinition(t){var n;let r=(n=t.variableDefinitions)!==null&&n!==void 0?n:[],i=(0,I4.groupBy)(r,a=>a.variable.name.value);for(let[a,o]of i)o.length>1&&e.reportError(new g4.GraphQLError(`There can be only one variable named "$${a}".`,{nodes:o.map(c=>c.variable.name)}))}}}});var J_=F(Y_=>{"use strict";m();T();N();Object.defineProperty(Y_,"__esModule",{value:!0});Y_.ValuesOfCorrectTypeRule=D4;var v4=uu(),_p=Wt(),S4=cu(),O4=lu(),ja=ze(),Q_=Lt(),FN=Ti(),qa=Ct();function D4(e){let t={};return{OperationDefinition:{enter(){t={}}},VariableDefinition(n){t[n.variable.name.value]=n},ListValue(n){let r=(0,qa.getNullableType)(e.getParentInputType());if(!(0,qa.isListType)(r))return pc(e,n),!1},ObjectValue(n){let r=(0,qa.getNamedType)(e.getInputType());if(!(0,qa.isInputObjectType)(r))return pc(e,n),!1;let i=(0,S4.keyMap)(n.fields,a=>a.name.value);for(let a of Object.values(r.getFields()))if(!i[a.name]&&(0,qa.isRequiredInputField)(a)){let c=(0,_p.inspect)(a.type);e.reportError(new ja.GraphQLError(`Field "${r.name}.${a.name}" of required type "${c}" was not provided.`,{nodes:n}))}r.isOneOf&&b4(e,n,r,i,t)},ObjectField(n){let r=(0,qa.getNamedType)(e.getParentInputType());if(!e.getInputType()&&(0,qa.isInputObjectType)(r)){let a=(0,O4.suggestionList)(n.name.value,Object.keys(r.getFields()));e.reportError(new ja.GraphQLError(`Field "${n.name.value}" is not defined by type "${r.name}".`+(0,v4.didYouMean)(a),{nodes:n}))}},NullValue(n){let r=e.getInputType();(0,qa.isNonNullType)(r)&&e.reportError(new ja.GraphQLError(`Expected value of type "${(0,_p.inspect)(r)}", found ${(0,FN.print)(n)}.`,{nodes:n}))},EnumValue:n=>pc(e,n),IntValue:n=>pc(e,n),FloatValue:n=>pc(e,n),StringValue:n=>pc(e,n),BooleanValue:n=>pc(e,n)}}function pc(e,t){let n=e.getInputType();if(!n)return;let r=(0,qa.getNamedType)(n);if(!(0,qa.isLeafType)(r)){let i=(0,_p.inspect)(n);e.reportError(new ja.GraphQLError(`Expected value of type "${i}", found ${(0,FN.print)(t)}.`,{nodes:t}));return}try{if(r.parseLiteral(t,void 0)===void 0){let a=(0,_p.inspect)(n);e.reportError(new ja.GraphQLError(`Expected value of type "${a}", found ${(0,FN.print)(t)}.`,{nodes:t}))}}catch(i){let a=(0,_p.inspect)(n);i instanceof ja.GraphQLError?e.reportError(i):e.reportError(new ja.GraphQLError(`Expected value of type "${a}", found ${(0,FN.print)(t)}; `+i.message,{nodes:t,originalError:i}))}}function b4(e,t,n,r,i){var a;let o=Object.keys(r);if(o.length!==1){e.reportError(new ja.GraphQLError(`OneOf Input Object "${n.name}" must specify exactly one key.`,{nodes:[t]}));return}let l=(a=r[o[0]])===null||a===void 0?void 0:a.value,d=!l||l.kind===Q_.Kind.NULL,f=(l==null?void 0:l.kind)===Q_.Kind.VARIABLE;if(d){e.reportError(new ja.GraphQLError(`Field "${n.name}.${o[0]}" must be non-null.`,{nodes:[t]}));return}if(f){let y=l.name.value;i[y].type.kind!==Q_.Kind.NON_NULL_TYPE&&e.reportError(new ja.GraphQLError(`Variable "${y}" must be non-nullable to be used for OneOf Input Object "${n.name}".`,{nodes:[t]}))}}});var z_=F(H_=>{"use strict";m();T();N();Object.defineProperty(H_,"__esModule",{value:!0});H_.VariablesAreInputTypesRule=w4;var A4=ze(),R4=Ti(),P4=Ct(),F4=xa();function w4(e){return{VariableDefinition(t){let n=(0,F4.typeFromAST)(e.getSchema(),t.type);if(n!==void 0&&!(0,P4.isInputType)(n)){let r=t.variable.name.value,i=(0,R4.print)(t.type);e.reportError(new A4.GraphQLError(`Variable "$${r}" cannot be non-input type "${i}".`,{nodes:t.type}))}}}}});var X_=F(W_=>{"use strict";m();T();N();Object.defineProperty(W_,"__esModule",{value:!0});W_.VariablesInAllowedPositionRule=U4;var tL=Wt(),L4=ze(),C4=Lt(),nL=Ct(),rL=rp(),B4=xa();function U4(e){let t=Object.create(null);return{OperationDefinition:{enter(){t=Object.create(null)},leave(n){let r=e.getRecursiveVariableUsages(n);for(let{node:i,type:a,defaultValue:o}of r){let c=i.name.value,l=t[c];if(l&&a){let d=e.getSchema(),f=(0,B4.typeFromAST)(d,l.type);if(f&&!k4(d,f,l.defaultValue,a,o)){let y=(0,tL.inspect)(f),I=(0,tL.inspect)(a);e.reportError(new L4.GraphQLError(`Variable "$${c}" of type "${y}" used in position expecting type "${I}".`,{nodes:[l,i]}))}}}}},VariableDefinition(n){t[n.variable.name.value]=n}}}function k4(e,t,n,r,i){if((0,nL.isNonNullType)(r)&&!(0,nL.isNonNullType)(t)){if(!(n!=null&&n.kind!==C4.Kind.NULL)&&!(i!==void 0))return!1;let c=r.ofType;return(0,rL.isTypeSubTypeOf)(e,t,c)}return(0,rL.isTypeSubTypeOf)(e,t,r)}});var Z_=F(mu=>{"use strict";m();T();N();Object.defineProperty(mu,"__esModule",{value:!0});mu.specifiedSDLRules=mu.specifiedRules=mu.recommendedRules=void 0;var M4=Tg(),x4=hg(),q4=Ig(),iL=gg(),aL=Og(),j4=bg(),sL=Pg(),V4=wg(),K4=Cg(),G4=Ug(),$4=Mg(),Q4=qg(),Y4=Vg(),J4=Gg(),H4=e_(),z4=r_(),W4=a_(),oL=o_(),X4=c_(),Z4=h_(),e8=g_(),uL=v_(),t8=O_(),cL=A_(),n8=P_(),r8=L_(),i8=B_(),lL=k_(),a8=x_(),s8=j_(),o8=K_(),u8=$_(),c8=J_(),l8=z_(),d8=X_(),dL=Object.freeze([G4.MaxIntrospectionDepthRule]);mu.recommendedRules=dL;var p8=Object.freeze([M4.ExecutableDefinitionsRule,a8.UniqueOperationNamesRule,V4.LoneAnonymousOperationRule,Z4.SingleFieldSubscriptionsRule,sL.KnownTypeNamesRule,q4.FragmentsOnCompositeTypesRule,l8.VariablesAreInputTypesRule,X4.ScalarLeafsRule,x4.FieldsOnCorrectTypeRule,i8.UniqueFragmentNamesRule,j4.KnownFragmentNamesRule,Y4.NoUnusedFragmentsRule,z4.PossibleFragmentSpreadsRule,$4.NoFragmentCyclesRule,u8.UniqueVariableNamesRule,Q4.NoUndefinedVariablesRule,J4.NoUnusedVariablesRule,aL.KnownDirectivesRule,cL.UniqueDirectivesPerLocationRule,iL.KnownArgumentNamesRule,uL.UniqueArgumentNamesRule,c8.ValuesOfCorrectTypeRule,oL.ProvidedRequiredArgumentsRule,d8.VariablesInAllowedPositionRule,H4.OverlappingFieldsCanBeMergedRule,lL.UniqueInputFieldNamesRule,...dL]);mu.specifiedRules=p8;var f8=Object.freeze([K4.LoneSchemaDefinitionRule,s8.UniqueOperationTypesRule,o8.UniqueTypeNamesRule,n8.UniqueEnumValueNamesRule,r8.UniqueFieldDefinitionNamesRule,e8.UniqueArgumentDefinitionNamesRule,t8.UniqueDirectiveNamesRule,sL.KnownTypeNamesRule,aL.KnownDirectivesRule,cL.UniqueDirectivesPerLocationRule,W4.PossibleTypeExtensionsRule,iL.KnownArgumentNamesOnDirectivesRule,uL.UniqueArgumentNamesRule,lL.UniqueInputFieldNamesRule,oL.ProvidedRequiredArgumentsOnDirectivesRule]);mu.specifiedSDLRules=f8});var nv=F(Nu=>{"use strict";m();T();N();Object.defineProperty(Nu,"__esModule",{value:!0});Nu.ValidationContext=Nu.SDLValidationContext=Nu.ASTValidationContext=void 0;var pL=Lt(),m8=nc(),fL=hN(),vp=class{constructor(t,n){this._ast=t,this._fragments=void 0,this._fragmentSpreads=new Map,this._recursivelyReferencedFragments=new Map,this._onError=n}get[Symbol.toStringTag](){return"ASTValidationContext"}reportError(t){this._onError(t)}getDocument(){return this._ast}getFragment(t){let n;if(this._fragments)n=this._fragments;else{n=Object.create(null);for(let r of this.getDocument().definitions)r.kind===pL.Kind.FRAGMENT_DEFINITION&&(n[r.name.value]=r);this._fragments=n}return n[t]}getFragmentSpreads(t){let n=this._fragmentSpreads.get(t);if(!n){n=[];let r=[t],i;for(;i=r.pop();)for(let a of i.selections)a.kind===pL.Kind.FRAGMENT_SPREAD?n.push(a):a.selectionSet&&r.push(a.selectionSet);this._fragmentSpreads.set(t,n)}return n}getRecursivelyReferencedFragments(t){let n=this._recursivelyReferencedFragments.get(t);if(!n){n=[];let r=Object.create(null),i=[t.selectionSet],a;for(;a=i.pop();)for(let o of this.getFragmentSpreads(a)){let c=o.name.value;if(r[c]!==!0){r[c]=!0;let l=this.getFragment(c);l&&(n.push(l),i.push(l.selectionSet))}}this._recursivelyReferencedFragments.set(t,n)}return n}};Nu.ASTValidationContext=vp;var ev=class extends vp{constructor(t,n,r){super(t,r),this._schema=n}get[Symbol.toStringTag](){return"SDLValidationContext"}getSchema(){return this._schema}};Nu.SDLValidationContext=ev;var tv=class extends vp{constructor(t,n,r,i){super(n,i),this._schema=t,this._typeInfo=r,this._variableUsages=new Map,this._recursiveVariableUsages=new Map}get[Symbol.toStringTag](){return"ValidationContext"}getSchema(){return this._schema}getVariableUsages(t){let n=this._variableUsages.get(t);if(!n){let r=[],i=new fL.TypeInfo(this._schema);(0,m8.visit)(t,(0,fL.visitWithTypeInfo)(i,{VariableDefinition:()=>!1,Variable(a){r.push({node:a,type:i.getInputType(),defaultValue:i.getDefaultValue()})}})),n=r,this._variableUsages.set(t,n)}return n}getRecursiveVariableUsages(t){let n=this._recursiveVariableUsages.get(t);if(!n){n=this.getVariableUsages(t);for(let r of this.getRecursivelyReferencedFragments(t))n=n.concat(this.getVariableUsages(r));this._recursiveVariableUsages.set(t,n)}return n}getType(){return this._typeInfo.getType()}getParentType(){return this._typeInfo.getParentType()}getInputType(){return this._typeInfo.getInputType()}getParentInputType(){return this._typeInfo.getParentInputType()}getFieldDef(){return this._typeInfo.getFieldDef()}getDirective(){return this._typeInfo.getDirective()}getArgument(){return this._typeInfo.getArgument()}getEnumValue(){return this._typeInfo.getEnumValue()}};Nu.ValidationContext=tv});var bl=F(Dl=>{"use strict";m();T();N();Object.defineProperty(Dl,"__esModule",{value:!0});Dl.assertValidSDL=y8;Dl.assertValidSDLExtension=I8;Dl.validate=h8;Dl.validateSDL=rv;var N8=Vr(),T8=ze(),wN=nc(),E8=fp(),mL=hN(),NL=Z_(),TL=nv();function h8(e,t,n=NL.specifiedRules,r,i=new mL.TypeInfo(e)){var a;let o=(a=r==null?void 0:r.maxErrors)!==null&&a!==void 0?a:100;t||(0,N8.devAssert)(!1,"Must provide document."),(0,E8.assertValidSchema)(e);let c=Object.freeze({}),l=[],d=new TL.ValidationContext(e,t,i,y=>{if(l.length>=o)throw l.push(new T8.GraphQLError("Too many validation errors, error limit reached. Validation aborted.")),c;l.push(y)}),f=(0,wN.visitInParallel)(n.map(y=>y(d)));try{(0,wN.visit)(t,(0,mL.visitWithTypeInfo)(i,f))}catch(y){if(y!==c)throw y}return l}function rv(e,t,n=NL.specifiedSDLRules){let r=[],i=new TL.SDLValidationContext(e,t,o=>{r.push(o)}),a=n.map(o=>o(i));return(0,wN.visit)(e,(0,wN.visitInParallel)(a)),r}function y8(e){let t=rv(e);if(t.length!==0)throw new Error(t.map(n=>n.message).join(` -`))}function H4(e,t){let n=U_(e,t);if(n.length!==0)throw new Error(n.map(r=>r.message).join(` +`))}function I8(e,t){let n=rv(e,t);if(n.length!==0)throw new Error(n.map(r=>r.message).join(` -`))}});var Xw=w(k_=>{"use strict";m();T();N();Object.defineProperty(k_,"__esModule",{value:!0});k_.memoize3=z4;function z4(e){let t;return function(r,i,a){t===void 0&&(t=new WeakMap);let o=t.get(r);o===void 0&&(o=new WeakMap,t.set(r,o));let c=o.get(i);c===void 0&&(c=new WeakMap,o.set(i,c));let l=c.get(a);return l===void 0&&(l=e(r,i,a),c.set(a,l)),l}}});var Zw=w(M_=>{"use strict";m();T();N();Object.defineProperty(M_,"__esModule",{value:!0});M_.promiseForObject=W4;function W4(e){return Promise.all(Object.values(e)).then(t=>{let n=Object.create(null);for(let[r,i]of Object.keys(e).entries())n[i]=t[r];return n})}});var eL=w(x_=>{"use strict";m();T();N();Object.defineProperty(x_,"__esModule",{value:!0});x_.promiseReduce=Z4;var X4=hm();function Z4(e,t,n){let r=n;for(let i of e)r=(0,X4.isPromise)(r)?r.then(a=>t(a,i)):t(r,i);return r}});var tL=w(V_=>{"use strict";m();T();N();Object.defineProperty(V_,"__esModule",{value:!0});V_.toError=t8;var e8=Xt();function t8(e){return e instanceof Error?e:new q_(e)}var q_=class extends Error{constructor(t){super("Unexpected error value: "+(0,e8.inspect)(t)),this.name="NonErrorThrown",this.thrownValue=t}}});var EN=w(j_=>{"use strict";m();T();N();Object.defineProperty(j_,"__esModule",{value:!0});j_.locatedError=i8;var n8=tL(),r8=ze();function i8(e,t,n){var r;let i=(0,n8.toError)(e);return a8(i)?i:new r8.GraphQLError(i.message,{nodes:(r=i.nodes)!==null&&r!==void 0?r:t,source:i.source,positions:i.positions,path:n,originalError:i})}function a8(e){return Array.isArray(e.path)}});var Nf=w(Ci=>{"use strict";m();T();N();Object.defineProperty(Ci,"__esModule",{value:!0});Ci.assertValidExecutionArguments=cL;Ci.buildExecutionContext=lL;Ci.buildResolveInfo=fL;Ci.defaultTypeResolver=Ci.defaultFieldResolver=void 0;Ci.execute=uL;Ci.executeSync=f8;Ci.getFieldDef=mL;var G_=Br(),rc=Xt(),s8=Ir(),o8=Xm(),Y_=Da(),sa=hm(),u8=Xw(),ic=sf(),nL=Zw(),c8=eL(),Li=ze(),yN=EN(),K_=ba(),rL=Ft(),uu=wt(),El=Fi(),l8=nf(),sL=pN(),oL=ml(),d8=(0,u8.memoize3)((e,t,n)=>(0,sL.collectSubfields)(e.schema,e.fragments,e.variableValues,t,n));function uL(e){arguments.length<2||(0,G_.devAssert)(!1,"graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.");let{schema:t,document:n,variableValues:r,rootValue:i}=e;cL(t,n,r);let a=lL(e);if(!("schema"in a))return{errors:a};try{let{operation:o}=a,c=p8(a,o,i);return(0,sa.isPromise)(c)?c.then(l=>hN(l,a.errors),l=>(a.errors.push(l),hN(null,a.errors))):hN(c,a.errors)}catch(o){return a.errors.push(o),hN(null,a.errors)}}function f8(e){let t=uL(e);if((0,sa.isPromise)(t))throw new Error("GraphQL execution failed to complete synchronously.");return t}function hN(e,t){return t.length===0?{data:e}:{errors:t,data:e}}function cL(e,t,n){t||(0,G_.devAssert)(!1,"Must provide document."),(0,l8.assertValidSchema)(e),n==null||(0,Y_.isObjectLike)(n)||(0,G_.devAssert)(!1,"Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.")}function lL(e){var t,n;let{schema:r,document:i,rootValue:a,contextValue:o,variableValues:c,operationName:l,fieldResolver:d,typeResolver:p,subscribeFieldResolver:y}=e,I,v=Object.create(null);for(let K of i.definitions)switch(K.kind){case rL.Kind.OPERATION_DEFINITION:if(l==null){if(I!==void 0)return[new Li.GraphQLError("Must provide operation name if query contains multiple operations.")];I=K}else((t=K.name)===null||t===void 0?void 0:t.value)===l&&(I=K);break;case rL.Kind.FRAGMENT_DEFINITION:v[K.name.value]=K;break;default:}if(!I)return l!=null?[new Li.GraphQLError(`Unknown operation named "${l}".`)]:[new Li.GraphQLError("Must provide an operation.")];let F=(n=I.variableDefinitions)!==null&&n!==void 0?n:[],k=(0,oL.getVariableValues)(r,F,c!=null?c:{},{maxErrors:50});return k.errors?k.errors:{schema:r,fragments:v,rootValue:a,contextValue:o,operation:I,variableValues:k.coerced,fieldResolver:d!=null?d:Q_,typeResolver:p!=null?p:pL,subscribeFieldResolver:y!=null?y:Q_,errors:[]}}function p8(e,t,n){let r=e.schema.getRootType(t.operation);if(r==null)throw new Li.GraphQLError(`Schema is not configured to execute ${t.operation} operation.`,{nodes:t});let i=(0,sL.collectFields)(e.schema,e.fragments,e.variableValues,r,t.selectionSet),a=void 0;switch(t.operation){case K_.OperationTypeNode.QUERY:return IN(e,r,n,a,i);case K_.OperationTypeNode.MUTATION:return m8(e,r,n,a,i);case K_.OperationTypeNode.SUBSCRIPTION:return IN(e,r,n,a,i)}}function m8(e,t,n,r,i){return(0,c8.promiseReduce)(i.entries(),(a,[o,c])=>{let l=(0,ic.addPath)(r,o,t.name),d=dL(e,t,n,c,l);return d===void 0?a:(0,sa.isPromise)(d)?d.then(p=>(a[o]=p,a)):(a[o]=d,a)},Object.create(null))}function IN(e,t,n,r,i){let a=Object.create(null),o=!1;try{for(let[c,l]of i.entries()){let d=(0,ic.addPath)(r,c,t.name),p=dL(e,t,n,l,d);p!==void 0&&(a[c]=p,(0,sa.isPromise)(p)&&(o=!0))}}catch(c){if(o)return(0,nL.promiseForObject)(a).finally(()=>{throw c});throw c}return o?(0,nL.promiseForObject)(a):a}function dL(e,t,n,r,i){var a;let o=mL(e.schema,t,r[0]);if(!o)return;let c=o.type,l=(a=o.resolve)!==null&&a!==void 0?a:e.fieldResolver,d=fL(e,o,r,t,i);try{let p=(0,oL.getArgumentValues)(o,r[0],e.variableValues),y=e.contextValue,I=l(n,p,y,d),v;return(0,sa.isPromise)(I)?v=I.then(F=>mf(e,c,r,d,i,F)):v=mf(e,c,r,d,i,I),(0,sa.isPromise)(v)?v.then(void 0,F=>{let k=(0,yN.locatedError)(F,r,(0,ic.pathToArray)(i));return gN(k,c,e)}):v}catch(p){let y=(0,yN.locatedError)(p,r,(0,ic.pathToArray)(i));return gN(y,c,e)}}function fL(e,t,n,r,i){return{fieldName:t.name,fieldNodes:n,returnType:t.type,parentType:r,path:i,schema:e.schema,fragments:e.fragments,rootValue:e.rootValue,operation:e.operation,variableValues:e.variableValues}}function gN(e,t,n){if((0,uu.isNonNullType)(t))throw e;return n.errors.push(e),null}function mf(e,t,n,r,i,a){if(a instanceof Error)throw a;if((0,uu.isNonNullType)(t)){let o=mf(e,t.ofType,n,r,i,a);if(o===null)throw new Error(`Cannot return null for non-nullable field ${r.parentType.name}.${r.fieldName}.`);return o}if(a==null)return null;if((0,uu.isListType)(t))return N8(e,t,n,r,i,a);if((0,uu.isLeafType)(t))return T8(t,a);if((0,uu.isAbstractType)(t))return E8(e,t,n,r,i,a);if((0,uu.isObjectType)(t))return $_(e,t,n,r,i,a);(0,s8.invariant)(!1,"Cannot complete value of unexpected output type: "+(0,rc.inspect)(t))}function N8(e,t,n,r,i,a){if(!(0,o8.isIterableObject)(a))throw new Li.GraphQLError(`Expected Iterable, but did not find one for field "${r.parentType.name}.${r.fieldName}".`);let o=t.ofType,c=!1,l=Array.from(a,(d,p)=>{let y=(0,ic.addPath)(i,p,void 0);try{let I;return(0,sa.isPromise)(d)?I=d.then(v=>mf(e,o,n,r,y,v)):I=mf(e,o,n,r,y,d),(0,sa.isPromise)(I)?(c=!0,I.then(void 0,v=>{let F=(0,yN.locatedError)(v,n,(0,ic.pathToArray)(y));return gN(F,o,e)})):I}catch(I){let v=(0,yN.locatedError)(I,n,(0,ic.pathToArray)(y));return gN(v,o,e)}});return c?Promise.all(l):l}function T8(e,t){let n=e.serialize(t);if(n==null)throw new Error(`Expected \`${(0,rc.inspect)(e)}.serialize(${(0,rc.inspect)(t)})\` to return non-nullable value, returned: ${(0,rc.inspect)(n)}`);return n}function E8(e,t,n,r,i,a){var o;let c=(o=t.resolveType)!==null&&o!==void 0?o:e.typeResolver,l=e.contextValue,d=c(a,l,r,t);return(0,sa.isPromise)(d)?d.then(p=>$_(e,iL(p,e,t,n,r,a),n,r,i,a)):$_(e,iL(d,e,t,n,r,a),n,r,i,a)}function iL(e,t,n,r,i,a){if(e==null)throw new Li.GraphQLError(`Abstract type "${n.name}" must resolve to an Object type at runtime for field "${i.parentType.name}.${i.fieldName}". Either the "${n.name}" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.`,r);if((0,uu.isObjectType)(e))throw new Li.GraphQLError("Support for returning GraphQLObjectType from resolveType was removed in graphql-js@16.0.0 please return type name instead.");if(typeof e!="string")throw new Li.GraphQLError(`Abstract type "${n.name}" must resolve to an Object type at runtime for field "${i.parentType.name}.${i.fieldName}" with value ${(0,rc.inspect)(a)}, received "${(0,rc.inspect)(e)}".`);let o=t.schema.getType(e);if(o==null)throw new Li.GraphQLError(`Abstract type "${n.name}" was resolved to a type "${e}" that does not exist inside the schema.`,{nodes:r});if(!(0,uu.isObjectType)(o))throw new Li.GraphQLError(`Abstract type "${n.name}" was resolved to a non-object type "${e}".`,{nodes:r});if(!t.schema.isSubType(n,o))throw new Li.GraphQLError(`Runtime Object type "${o.name}" is not a possible type for "${n.name}".`,{nodes:r});return o}function $_(e,t,n,r,i,a){let o=d8(e,t,n);if(t.isTypeOf){let c=t.isTypeOf(a,e.contextValue,r);if((0,sa.isPromise)(c))return c.then(l=>{if(!l)throw aL(t,a,n);return IN(e,t,a,i,o)});if(!c)throw aL(t,a,n)}return IN(e,t,a,i,o)}function aL(e,t,n){return new Li.GraphQLError(`Expected value of type "${e.name}" but got: ${(0,rc.inspect)(t)}.`,{nodes:n})}var pL=function(e,t,n,r){if((0,Y_.isObjectLike)(e)&&typeof e.__typename=="string")return e.__typename;let i=n.schema.getPossibleTypes(r),a=[];for(let o=0;o{for(let c=0;c{"use strict";m();T();N();Object.defineProperty(_N,"__esModule",{value:!0});_N.graphql=S8;_N.graphqlSync=O8;var h8=Br(),y8=hm(),I8=il(),g8=nf(),_8=Tl(),v8=Nf();function S8(e){return new Promise(t=>t(NL(e)))}function O8(e){let t=NL(e);if((0,y8.isPromise)(t))throw new Error("GraphQL execution failed to complete synchronously.");return t}function NL(e){arguments.length<2||(0,h8.devAssert)(!1,"graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.");let{schema:t,source:n,rootValue:r,contextValue:i,variableValues:a,operationName:o,fieldResolver:c,typeResolver:l}=e,d=(0,g8.validateSchema)(t);if(d.length>0)return{errors:d};let p;try{p=(0,I8.parse)(n)}catch(I){return{errors:[I]}}let y=(0,_8.validate)(t,p);return y.length>0?{errors:y}:(0,v8.execute)({schema:t,document:p,rootValue:r,contextValue:i,variableValues:a,operationName:o,fieldResolver:c,typeResolver:l})}});var yL=w(ye=>{"use strict";m();T();N();Object.defineProperty(ye,"__esModule",{value:!0});Object.defineProperty(ye,"DEFAULT_DEPRECATION_REASON",{enumerable:!0,get:function(){return oa.DEFAULT_DEPRECATION_REASON}});Object.defineProperty(ye,"GRAPHQL_MAX_INT",{enumerable:!0,get:function(){return gs.GRAPHQL_MAX_INT}});Object.defineProperty(ye,"GRAPHQL_MIN_INT",{enumerable:!0,get:function(){return gs.GRAPHQL_MIN_INT}});Object.defineProperty(ye,"GraphQLBoolean",{enumerable:!0,get:function(){return gs.GraphQLBoolean}});Object.defineProperty(ye,"GraphQLDeprecatedDirective",{enumerable:!0,get:function(){return oa.GraphQLDeprecatedDirective}});Object.defineProperty(ye,"GraphQLDirective",{enumerable:!0,get:function(){return oa.GraphQLDirective}});Object.defineProperty(ye,"GraphQLEnumType",{enumerable:!0,get:function(){return rt.GraphQLEnumType}});Object.defineProperty(ye,"GraphQLFloat",{enumerable:!0,get:function(){return gs.GraphQLFloat}});Object.defineProperty(ye,"GraphQLID",{enumerable:!0,get:function(){return gs.GraphQLID}});Object.defineProperty(ye,"GraphQLIncludeDirective",{enumerable:!0,get:function(){return oa.GraphQLIncludeDirective}});Object.defineProperty(ye,"GraphQLInputObjectType",{enumerable:!0,get:function(){return rt.GraphQLInputObjectType}});Object.defineProperty(ye,"GraphQLInt",{enumerable:!0,get:function(){return gs.GraphQLInt}});Object.defineProperty(ye,"GraphQLInterfaceType",{enumerable:!0,get:function(){return rt.GraphQLInterfaceType}});Object.defineProperty(ye,"GraphQLList",{enumerable:!0,get:function(){return rt.GraphQLList}});Object.defineProperty(ye,"GraphQLNonNull",{enumerable:!0,get:function(){return rt.GraphQLNonNull}});Object.defineProperty(ye,"GraphQLObjectType",{enumerable:!0,get:function(){return rt.GraphQLObjectType}});Object.defineProperty(ye,"GraphQLOneOfDirective",{enumerable:!0,get:function(){return oa.GraphQLOneOfDirective}});Object.defineProperty(ye,"GraphQLScalarType",{enumerable:!0,get:function(){return rt.GraphQLScalarType}});Object.defineProperty(ye,"GraphQLSchema",{enumerable:!0,get:function(){return J_.GraphQLSchema}});Object.defineProperty(ye,"GraphQLSkipDirective",{enumerable:!0,get:function(){return oa.GraphQLSkipDirective}});Object.defineProperty(ye,"GraphQLSpecifiedByDirective",{enumerable:!0,get:function(){return oa.GraphQLSpecifiedByDirective}});Object.defineProperty(ye,"GraphQLString",{enumerable:!0,get:function(){return gs.GraphQLString}});Object.defineProperty(ye,"GraphQLUnionType",{enumerable:!0,get:function(){return rt.GraphQLUnionType}});Object.defineProperty(ye,"SchemaMetaFieldDef",{enumerable:!0,get:function(){return Jr.SchemaMetaFieldDef}});Object.defineProperty(ye,"TypeKind",{enumerable:!0,get:function(){return Jr.TypeKind}});Object.defineProperty(ye,"TypeMetaFieldDef",{enumerable:!0,get:function(){return Jr.TypeMetaFieldDef}});Object.defineProperty(ye,"TypeNameMetaFieldDef",{enumerable:!0,get:function(){return Jr.TypeNameMetaFieldDef}});Object.defineProperty(ye,"__Directive",{enumerable:!0,get:function(){return Jr.__Directive}});Object.defineProperty(ye,"__DirectiveLocation",{enumerable:!0,get:function(){return Jr.__DirectiveLocation}});Object.defineProperty(ye,"__EnumValue",{enumerable:!0,get:function(){return Jr.__EnumValue}});Object.defineProperty(ye,"__Field",{enumerable:!0,get:function(){return Jr.__Field}});Object.defineProperty(ye,"__InputValue",{enumerable:!0,get:function(){return Jr.__InputValue}});Object.defineProperty(ye,"__Schema",{enumerable:!0,get:function(){return Jr.__Schema}});Object.defineProperty(ye,"__Type",{enumerable:!0,get:function(){return Jr.__Type}});Object.defineProperty(ye,"__TypeKind",{enumerable:!0,get:function(){return Jr.__TypeKind}});Object.defineProperty(ye,"assertAbstractType",{enumerable:!0,get:function(){return rt.assertAbstractType}});Object.defineProperty(ye,"assertCompositeType",{enumerable:!0,get:function(){return rt.assertCompositeType}});Object.defineProperty(ye,"assertDirective",{enumerable:!0,get:function(){return oa.assertDirective}});Object.defineProperty(ye,"assertEnumType",{enumerable:!0,get:function(){return rt.assertEnumType}});Object.defineProperty(ye,"assertEnumValueName",{enumerable:!0,get:function(){return hL.assertEnumValueName}});Object.defineProperty(ye,"assertInputObjectType",{enumerable:!0,get:function(){return rt.assertInputObjectType}});Object.defineProperty(ye,"assertInputType",{enumerable:!0,get:function(){return rt.assertInputType}});Object.defineProperty(ye,"assertInterfaceType",{enumerable:!0,get:function(){return rt.assertInterfaceType}});Object.defineProperty(ye,"assertLeafType",{enumerable:!0,get:function(){return rt.assertLeafType}});Object.defineProperty(ye,"assertListType",{enumerable:!0,get:function(){return rt.assertListType}});Object.defineProperty(ye,"assertName",{enumerable:!0,get:function(){return hL.assertName}});Object.defineProperty(ye,"assertNamedType",{enumerable:!0,get:function(){return rt.assertNamedType}});Object.defineProperty(ye,"assertNonNullType",{enumerable:!0,get:function(){return rt.assertNonNullType}});Object.defineProperty(ye,"assertNullableType",{enumerable:!0,get:function(){return rt.assertNullableType}});Object.defineProperty(ye,"assertObjectType",{enumerable:!0,get:function(){return rt.assertObjectType}});Object.defineProperty(ye,"assertOutputType",{enumerable:!0,get:function(){return rt.assertOutputType}});Object.defineProperty(ye,"assertScalarType",{enumerable:!0,get:function(){return rt.assertScalarType}});Object.defineProperty(ye,"assertSchema",{enumerable:!0,get:function(){return J_.assertSchema}});Object.defineProperty(ye,"assertType",{enumerable:!0,get:function(){return rt.assertType}});Object.defineProperty(ye,"assertUnionType",{enumerable:!0,get:function(){return rt.assertUnionType}});Object.defineProperty(ye,"assertValidSchema",{enumerable:!0,get:function(){return EL.assertValidSchema}});Object.defineProperty(ye,"assertWrappingType",{enumerable:!0,get:function(){return rt.assertWrappingType}});Object.defineProperty(ye,"getNamedType",{enumerable:!0,get:function(){return rt.getNamedType}});Object.defineProperty(ye,"getNullableType",{enumerable:!0,get:function(){return rt.getNullableType}});Object.defineProperty(ye,"introspectionTypes",{enumerable:!0,get:function(){return Jr.introspectionTypes}});Object.defineProperty(ye,"isAbstractType",{enumerable:!0,get:function(){return rt.isAbstractType}});Object.defineProperty(ye,"isCompositeType",{enumerable:!0,get:function(){return rt.isCompositeType}});Object.defineProperty(ye,"isDirective",{enumerable:!0,get:function(){return oa.isDirective}});Object.defineProperty(ye,"isEnumType",{enumerable:!0,get:function(){return rt.isEnumType}});Object.defineProperty(ye,"isInputObjectType",{enumerable:!0,get:function(){return rt.isInputObjectType}});Object.defineProperty(ye,"isInputType",{enumerable:!0,get:function(){return rt.isInputType}});Object.defineProperty(ye,"isInterfaceType",{enumerable:!0,get:function(){return rt.isInterfaceType}});Object.defineProperty(ye,"isIntrospectionType",{enumerable:!0,get:function(){return Jr.isIntrospectionType}});Object.defineProperty(ye,"isLeafType",{enumerable:!0,get:function(){return rt.isLeafType}});Object.defineProperty(ye,"isListType",{enumerable:!0,get:function(){return rt.isListType}});Object.defineProperty(ye,"isNamedType",{enumerable:!0,get:function(){return rt.isNamedType}});Object.defineProperty(ye,"isNonNullType",{enumerable:!0,get:function(){return rt.isNonNullType}});Object.defineProperty(ye,"isNullableType",{enumerable:!0,get:function(){return rt.isNullableType}});Object.defineProperty(ye,"isObjectType",{enumerable:!0,get:function(){return rt.isObjectType}});Object.defineProperty(ye,"isOutputType",{enumerable:!0,get:function(){return rt.isOutputType}});Object.defineProperty(ye,"isRequiredArgument",{enumerable:!0,get:function(){return rt.isRequiredArgument}});Object.defineProperty(ye,"isRequiredInputField",{enumerable:!0,get:function(){return rt.isRequiredInputField}});Object.defineProperty(ye,"isScalarType",{enumerable:!0,get:function(){return rt.isScalarType}});Object.defineProperty(ye,"isSchema",{enumerable:!0,get:function(){return J_.isSchema}});Object.defineProperty(ye,"isSpecifiedDirective",{enumerable:!0,get:function(){return oa.isSpecifiedDirective}});Object.defineProperty(ye,"isSpecifiedScalarType",{enumerable:!0,get:function(){return gs.isSpecifiedScalarType}});Object.defineProperty(ye,"isType",{enumerable:!0,get:function(){return rt.isType}});Object.defineProperty(ye,"isUnionType",{enumerable:!0,get:function(){return rt.isUnionType}});Object.defineProperty(ye,"isWrappingType",{enumerable:!0,get:function(){return rt.isWrappingType}});Object.defineProperty(ye,"resolveObjMapThunk",{enumerable:!0,get:function(){return rt.resolveObjMapThunk}});Object.defineProperty(ye,"resolveReadonlyArrayThunk",{enumerable:!0,get:function(){return rt.resolveReadonlyArrayThunk}});Object.defineProperty(ye,"specifiedDirectives",{enumerable:!0,get:function(){return oa.specifiedDirectives}});Object.defineProperty(ye,"specifiedScalarTypes",{enumerable:!0,get:function(){return gs.specifiedScalarTypes}});Object.defineProperty(ye,"validateSchema",{enumerable:!0,get:function(){return EL.validateSchema}});var J_=Xu(),rt=wt(),oa=Qr(),gs=Pa(),Jr=Fi(),EL=nf(),hL=Vd()});var gL=w(kt=>{"use strict";m();T();N();Object.defineProperty(kt,"__esModule",{value:!0});Object.defineProperty(kt,"BREAK",{enumerable:!0,get:function(){return Tf.BREAK}});Object.defineProperty(kt,"DirectiveLocation",{enumerable:!0,get:function(){return w8.DirectiveLocation}});Object.defineProperty(kt,"Kind",{enumerable:!0,get:function(){return A8.Kind}});Object.defineProperty(kt,"Lexer",{enumerable:!0,get:function(){return P8.Lexer}});Object.defineProperty(kt,"Location",{enumerable:!0,get:function(){return H_.Location}});Object.defineProperty(kt,"OperationTypeNode",{enumerable:!0,get:function(){return H_.OperationTypeNode}});Object.defineProperty(kt,"Source",{enumerable:!0,get:function(){return D8.Source}});Object.defineProperty(kt,"Token",{enumerable:!0,get:function(){return H_.Token}});Object.defineProperty(kt,"TokenKind",{enumerable:!0,get:function(){return R8.TokenKind}});Object.defineProperty(kt,"getEnterLeaveForKind",{enumerable:!0,get:function(){return Tf.getEnterLeaveForKind}});Object.defineProperty(kt,"getLocation",{enumerable:!0,get:function(){return b8.getLocation}});Object.defineProperty(kt,"getVisitFn",{enumerable:!0,get:function(){return Tf.getVisitFn}});Object.defineProperty(kt,"isConstValueNode",{enumerable:!0,get:function(){return Ca.isConstValueNode}});Object.defineProperty(kt,"isDefinitionNode",{enumerable:!0,get:function(){return Ca.isDefinitionNode}});Object.defineProperty(kt,"isExecutableDefinitionNode",{enumerable:!0,get:function(){return Ca.isExecutableDefinitionNode}});Object.defineProperty(kt,"isSelectionNode",{enumerable:!0,get:function(){return Ca.isSelectionNode}});Object.defineProperty(kt,"isTypeDefinitionNode",{enumerable:!0,get:function(){return Ca.isTypeDefinitionNode}});Object.defineProperty(kt,"isTypeExtensionNode",{enumerable:!0,get:function(){return Ca.isTypeExtensionNode}});Object.defineProperty(kt,"isTypeNode",{enumerable:!0,get:function(){return Ca.isTypeNode}});Object.defineProperty(kt,"isTypeSystemDefinitionNode",{enumerable:!0,get:function(){return Ca.isTypeSystemDefinitionNode}});Object.defineProperty(kt,"isTypeSystemExtensionNode",{enumerable:!0,get:function(){return Ca.isTypeSystemExtensionNode}});Object.defineProperty(kt,"isValueNode",{enumerable:!0,get:function(){return Ca.isValueNode}});Object.defineProperty(kt,"parse",{enumerable:!0,get:function(){return vN.parse}});Object.defineProperty(kt,"parseConstValue",{enumerable:!0,get:function(){return vN.parseConstValue}});Object.defineProperty(kt,"parseType",{enumerable:!0,get:function(){return vN.parseType}});Object.defineProperty(kt,"parseValue",{enumerable:!0,get:function(){return vN.parseValue}});Object.defineProperty(kt,"print",{enumerable:!0,get:function(){return F8.print}});Object.defineProperty(kt,"printLocation",{enumerable:!0,get:function(){return IL.printLocation}});Object.defineProperty(kt,"printSourceLocation",{enumerable:!0,get:function(){return IL.printSourceLocation}});Object.defineProperty(kt,"visit",{enumerable:!0,get:function(){return Tf.visit}});Object.defineProperty(kt,"visitInParallel",{enumerable:!0,get:function(){return Tf.visitInParallel}});var D8=Am(),b8=ym(),IL=$y(),A8=Ft(),R8=Ld(),P8=Sm(),vN=il(),F8=li(),Tf=Qu(),H_=ba(),Ca=ec(),w8=nl()});var _L=w(z_=>{"use strict";m();T();N();Object.defineProperty(z_,"__esModule",{value:!0});z_.isAsyncIterable=L8;function L8(e){return typeof(e==null?void 0:e[Symbol.asyncIterator])=="function"}});var vL=w(W_=>{"use strict";m();T();N();Object.defineProperty(W_,"__esModule",{value:!0});W_.mapAsyncIterator=C8;function C8(e,t){let n=e[Symbol.asyncIterator]();function r(a){return Di(this,null,function*(){if(a.done)return a;try{return{value:yield t(a.value),done:!1}}catch(o){if(typeof n.return=="function")try{yield n.return()}catch(c){}throw o}})}return{next(){return Di(this,null,function*(){return r(yield n.next())})},return(){return Di(this,null,function*(){return typeof n.return=="function"?r(yield n.return()):{value:void 0,done:!0}})},throw(a){return Di(this,null,function*(){if(typeof n.throw=="function")return r(yield n.throw(a));throw a})},[Symbol.asyncIterator](){return this}}}});var bL=w(SN=>{"use strict";m();T();N();Object.defineProperty(SN,"__esModule",{value:!0});SN.createSourceEventStream=DL;SN.subscribe=V8;var B8=Br(),U8=Xt(),OL=_L(),SL=sf(),X_=ze(),k8=EN(),M8=pN(),Ef=Nf(),x8=vL(),q8=ml();function V8(t){return Di(this,arguments,function*(e){arguments.length<2||(0,B8.devAssert)(!1,"graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.");let n=yield DL(e);if(!(0,OL.isAsyncIterable)(n))return n;let r=i=>(0,Ef.execute)(Q(x({},e),{rootValue:i}));return(0,x8.mapAsyncIterator)(n,r)})}function j8(e){let t=e[0];return t&&"document"in t?t:{schema:t,document:e[1],rootValue:e[2],contextValue:e[3],variableValues:e[4],operationName:e[5],subscribeFieldResolver:e[6]}}function DL(...e){return Di(this,null,function*(){let t=j8(e),{schema:n,document:r,variableValues:i}=t;(0,Ef.assertValidExecutionArguments)(n,r,i);let a=(0,Ef.buildExecutionContext)(t);if(!("schema"in a))return{errors:a};try{let o=yield K8(a);if(!(0,OL.isAsyncIterable)(o))throw new Error(`Subscription field must return Async Iterable. Received: ${(0,U8.inspect)(o)}.`);return o}catch(o){if(o instanceof X_.GraphQLError)return{errors:[o]};throw o}})}function K8(e){return Di(this,null,function*(){let{schema:t,fragments:n,operation:r,variableValues:i,rootValue:a}=e,o=t.getSubscriptionType();if(o==null)throw new X_.GraphQLError("Schema is not configured to execute subscription operation.",{nodes:r});let c=(0,M8.collectFields)(t,n,i,o,r.selectionSet),[l,d]=[...c.entries()][0],p=(0,Ef.getFieldDef)(t,o,d[0]);if(!p){let F=d[0].name.value;throw new X_.GraphQLError(`The subscription field "${F}" is not defined.`,{nodes:d})}let y=(0,SL.addPath)(void 0,l,o.name),I=(0,Ef.buildResolveInfo)(e,p,d,o,y);try{var v;let F=(0,q8.getArgumentValues)(p,d[0],i),k=e.contextValue,J=yield((v=p.subscribe)!==null&&v!==void 0?v:e.subscribeFieldResolver)(a,F,k,I);if(J instanceof Error)throw J;return J}catch(F){throw(0,k8.locatedError)(F,d,(0,SL.pathToArray)(y))}})}});var RL=w(Bi=>{"use strict";m();T();N();Object.defineProperty(Bi,"__esModule",{value:!0});Object.defineProperty(Bi,"createSourceEventStream",{enumerable:!0,get:function(){return AL.createSourceEventStream}});Object.defineProperty(Bi,"defaultFieldResolver",{enumerable:!0,get:function(){return ON.defaultFieldResolver}});Object.defineProperty(Bi,"defaultTypeResolver",{enumerable:!0,get:function(){return ON.defaultTypeResolver}});Object.defineProperty(Bi,"execute",{enumerable:!0,get:function(){return ON.execute}});Object.defineProperty(Bi,"executeSync",{enumerable:!0,get:function(){return ON.executeSync}});Object.defineProperty(Bi,"getArgumentValues",{enumerable:!0,get:function(){return Z_.getArgumentValues}});Object.defineProperty(Bi,"getDirectiveValues",{enumerable:!0,get:function(){return Z_.getDirectiveValues}});Object.defineProperty(Bi,"getVariableValues",{enumerable:!0,get:function(){return Z_.getVariableValues}});Object.defineProperty(Bi,"responsePathAsArray",{enumerable:!0,get:function(){return G8.pathToArray}});Object.defineProperty(Bi,"subscribe",{enumerable:!0,get:function(){return AL.subscribe}});var G8=sf(),ON=Nf(),AL=bL(),Z_=ml()});var PL=w(nv=>{"use strict";m();T();N();Object.defineProperty(nv,"__esModule",{value:!0});nv.NoDeprecatedCustomRule=$8;var ev=Ir(),hf=ze(),tv=wt();function $8(e){return{Field(t){let n=e.getFieldDef(),r=n==null?void 0:n.deprecationReason;if(n&&r!=null){let i=e.getParentType();i!=null||(0,ev.invariant)(!1),e.reportError(new hf.GraphQLError(`The field ${i.name}.${n.name} is deprecated. ${r}`,{nodes:t}))}},Argument(t){let n=e.getArgument(),r=n==null?void 0:n.deprecationReason;if(n&&r!=null){let i=e.getDirective();if(i!=null)e.reportError(new hf.GraphQLError(`Directive "@${i.name}" argument "${n.name}" is deprecated. ${r}`,{nodes:t}));else{let a=e.getParentType(),o=e.getFieldDef();a!=null&&o!=null||(0,ev.invariant)(!1),e.reportError(new hf.GraphQLError(`Field "${a.name}.${o.name}" argument "${n.name}" is deprecated. ${r}`,{nodes:t}))}}},ObjectField(t){let n=(0,tv.getNamedType)(e.getParentInputType());if((0,tv.isInputObjectType)(n)){let r=n.getFields()[t.name.value],i=r==null?void 0:r.deprecationReason;i!=null&&e.reportError(new hf.GraphQLError(`The input field ${n.name}.${r.name} is deprecated. ${i}`,{nodes:t}))}},EnumValue(t){let n=e.getEnumValue(),r=n==null?void 0:n.deprecationReason;if(n&&r!=null){let i=(0,tv.getNamedType)(e.getInputType());i!=null||(0,ev.invariant)(!1),e.reportError(new hf.GraphQLError(`The enum value "${i.name}.${n.name}" is deprecated. ${r}`,{nodes:t}))}}}}});var FL=w(rv=>{"use strict";m();T();N();Object.defineProperty(rv,"__esModule",{value:!0});rv.NoSchemaIntrospectionCustomRule=H8;var Q8=ze(),Y8=wt(),J8=Fi();function H8(e){return{Field(t){let n=(0,Y8.getNamedType)(e.getType());n&&(0,J8.isIntrospectionType)(n)&&e.reportError(new Q8.GraphQLError(`GraphQL introspection has been disabled, but the requested query contained the field "${t.name.value}".`,{nodes:t}))}}}});var LL=w(ft=>{"use strict";m();T();N();Object.defineProperty(ft,"__esModule",{value:!0});Object.defineProperty(ft,"ExecutableDefinitionsRule",{enumerable:!0,get:function(){return X8.ExecutableDefinitionsRule}});Object.defineProperty(ft,"FieldsOnCorrectTypeRule",{enumerable:!0,get:function(){return Z8.FieldsOnCorrectTypeRule}});Object.defineProperty(ft,"FragmentsOnCompositeTypesRule",{enumerable:!0,get:function(){return e5.FragmentsOnCompositeTypesRule}});Object.defineProperty(ft,"KnownArgumentNamesRule",{enumerable:!0,get:function(){return t5.KnownArgumentNamesRule}});Object.defineProperty(ft,"KnownDirectivesRule",{enumerable:!0,get:function(){return n5.KnownDirectivesRule}});Object.defineProperty(ft,"KnownFragmentNamesRule",{enumerable:!0,get:function(){return r5.KnownFragmentNamesRule}});Object.defineProperty(ft,"KnownTypeNamesRule",{enumerable:!0,get:function(){return i5.KnownTypeNamesRule}});Object.defineProperty(ft,"LoneAnonymousOperationRule",{enumerable:!0,get:function(){return a5.LoneAnonymousOperationRule}});Object.defineProperty(ft,"LoneSchemaDefinitionRule",{enumerable:!0,get:function(){return O5.LoneSchemaDefinitionRule}});Object.defineProperty(ft,"MaxIntrospectionDepthRule",{enumerable:!0,get:function(){return S5.MaxIntrospectionDepthRule}});Object.defineProperty(ft,"NoDeprecatedCustomRule",{enumerable:!0,get:function(){return L5.NoDeprecatedCustomRule}});Object.defineProperty(ft,"NoFragmentCyclesRule",{enumerable:!0,get:function(){return s5.NoFragmentCyclesRule}});Object.defineProperty(ft,"NoSchemaIntrospectionCustomRule",{enumerable:!0,get:function(){return C5.NoSchemaIntrospectionCustomRule}});Object.defineProperty(ft,"NoUndefinedVariablesRule",{enumerable:!0,get:function(){return o5.NoUndefinedVariablesRule}});Object.defineProperty(ft,"NoUnusedFragmentsRule",{enumerable:!0,get:function(){return u5.NoUnusedFragmentsRule}});Object.defineProperty(ft,"NoUnusedVariablesRule",{enumerable:!0,get:function(){return c5.NoUnusedVariablesRule}});Object.defineProperty(ft,"OverlappingFieldsCanBeMergedRule",{enumerable:!0,get:function(){return l5.OverlappingFieldsCanBeMergedRule}});Object.defineProperty(ft,"PossibleFragmentSpreadsRule",{enumerable:!0,get:function(){return d5.PossibleFragmentSpreadsRule}});Object.defineProperty(ft,"PossibleTypeExtensionsRule",{enumerable:!0,get:function(){return w5.PossibleTypeExtensionsRule}});Object.defineProperty(ft,"ProvidedRequiredArgumentsRule",{enumerable:!0,get:function(){return f5.ProvidedRequiredArgumentsRule}});Object.defineProperty(ft,"ScalarLeafsRule",{enumerable:!0,get:function(){return p5.ScalarLeafsRule}});Object.defineProperty(ft,"SingleFieldSubscriptionsRule",{enumerable:!0,get:function(){return m5.SingleFieldSubscriptionsRule}});Object.defineProperty(ft,"UniqueArgumentDefinitionNamesRule",{enumerable:!0,get:function(){return P5.UniqueArgumentDefinitionNamesRule}});Object.defineProperty(ft,"UniqueArgumentNamesRule",{enumerable:!0,get:function(){return N5.UniqueArgumentNamesRule}});Object.defineProperty(ft,"UniqueDirectiveNamesRule",{enumerable:!0,get:function(){return F5.UniqueDirectiveNamesRule}});Object.defineProperty(ft,"UniqueDirectivesPerLocationRule",{enumerable:!0,get:function(){return T5.UniqueDirectivesPerLocationRule}});Object.defineProperty(ft,"UniqueEnumValueNamesRule",{enumerable:!0,get:function(){return A5.UniqueEnumValueNamesRule}});Object.defineProperty(ft,"UniqueFieldDefinitionNamesRule",{enumerable:!0,get:function(){return R5.UniqueFieldDefinitionNamesRule}});Object.defineProperty(ft,"UniqueFragmentNamesRule",{enumerable:!0,get:function(){return E5.UniqueFragmentNamesRule}});Object.defineProperty(ft,"UniqueInputFieldNamesRule",{enumerable:!0,get:function(){return h5.UniqueInputFieldNamesRule}});Object.defineProperty(ft,"UniqueOperationNamesRule",{enumerable:!0,get:function(){return y5.UniqueOperationNamesRule}});Object.defineProperty(ft,"UniqueOperationTypesRule",{enumerable:!0,get:function(){return D5.UniqueOperationTypesRule}});Object.defineProperty(ft,"UniqueTypeNamesRule",{enumerable:!0,get:function(){return b5.UniqueTypeNamesRule}});Object.defineProperty(ft,"UniqueVariableNamesRule",{enumerable:!0,get:function(){return I5.UniqueVariableNamesRule}});Object.defineProperty(ft,"ValidationContext",{enumerable:!0,get:function(){return W8.ValidationContext}});Object.defineProperty(ft,"ValuesOfCorrectTypeRule",{enumerable:!0,get:function(){return g5.ValuesOfCorrectTypeRule}});Object.defineProperty(ft,"VariablesAreInputTypesRule",{enumerable:!0,get:function(){return _5.VariablesAreInputTypesRule}});Object.defineProperty(ft,"VariablesInAllowedPositionRule",{enumerable:!0,get:function(){return v5.VariablesInAllowedPositionRule}});Object.defineProperty(ft,"recommendedRules",{enumerable:!0,get:function(){return wL.recommendedRules}});Object.defineProperty(ft,"specifiedRules",{enumerable:!0,get:function(){return wL.specifiedRules}});Object.defineProperty(ft,"validate",{enumerable:!0,get:function(){return z8.validate}});var z8=Tl(),W8=B_(),wL=w_(),X8=HI(),Z8=WI(),e5=ZI(),t5=eg(),n5=ig(),r5=sg(),i5=cg(),a5=dg(),s5=Eg(),o5=yg(),u5=gg(),c5=vg(),l5=Lg(),d5=Ug(),f5=qg(),p5=jg(),m5=Wg(),N5=n_(),T5=o_(),E5=m_(),h5=T_(),y5=h_(),I5=S_(),g5=b_(),_5=R_(),v5=F_(),S5=Ng(),O5=pg(),D5=I_(),b5=__(),A5=c_(),R5=f_(),P5=e_(),F5=i_(),w5=Mg(),L5=PL(),C5=FL()});var CL=w(ac=>{"use strict";m();T();N();Object.defineProperty(ac,"__esModule",{value:!0});Object.defineProperty(ac,"GraphQLError",{enumerable:!0,get:function(){return iv.GraphQLError}});Object.defineProperty(ac,"formatError",{enumerable:!0,get:function(){return iv.formatError}});Object.defineProperty(ac,"locatedError",{enumerable:!0,get:function(){return U5.locatedError}});Object.defineProperty(ac,"printError",{enumerable:!0,get:function(){return iv.printError}});Object.defineProperty(ac,"syntaxError",{enumerable:!0,get:function(){return B5.syntaxError}});var iv=ze(),B5=gm(),U5=EN()});var sv=w(av=>{"use strict";m();T();N();Object.defineProperty(av,"__esModule",{value:!0});av.getIntrospectionQuery=k5;function k5(e){let t=x({descriptions:!0,specifiedByUrl:!1,directiveIsRepeatable:!1,schemaDescription:!1,inputValueDeprecation:!1,oneOf:!1},e),n=t.descriptions?"description":"",r=t.specifiedByUrl?"specifiedByURL":"",i=t.directiveIsRepeatable?"isRepeatable":"",a=t.schemaDescription?n:"";function o(l){return t.inputValueDeprecation?l:""}let c=t.oneOf?"isOneOf":"";return` +`))}});var EL=F(iv=>{"use strict";m();T();N();Object.defineProperty(iv,"__esModule",{value:!0});iv.memoize3=g8;function g8(e){let t;return function(r,i,a){t===void 0&&(t=new WeakMap);let o=t.get(r);o===void 0&&(o=new WeakMap,t.set(r,o));let c=o.get(i);c===void 0&&(c=new WeakMap,o.set(i,c));let l=c.get(a);return l===void 0&&(l=e(r,i,a),c.set(a,l)),l}}});var hL=F(av=>{"use strict";m();T();N();Object.defineProperty(av,"__esModule",{value:!0});av.promiseForObject=_8;function _8(e){return Promise.all(Object.values(e)).then(t=>{let n=Object.create(null);for(let[r,i]of Object.keys(e).entries())n[i]=t[r];return n})}});var yL=F(sv=>{"use strict";m();T();N();Object.defineProperty(sv,"__esModule",{value:!0});sv.promiseReduce=S8;var v8=Cm();function S8(e,t,n){let r=n;for(let i of e)r=(0,v8.isPromise)(r)?r.then(a=>t(a,i)):t(r,i);return r}});var IL=F(uv=>{"use strict";m();T();N();Object.defineProperty(uv,"__esModule",{value:!0});uv.toError=D8;var O8=Wt();function D8(e){return e instanceof Error?e:new ov(e)}var ov=class extends Error{constructor(t){super("Unexpected error value: "+(0,O8.inspect)(t)),this.name="NonErrorThrown",this.thrownValue=t}}});var LN=F(cv=>{"use strict";m();T();N();Object.defineProperty(cv,"__esModule",{value:!0});cv.locatedError=R8;var b8=IL(),A8=ze();function R8(e,t,n){var r;let i=(0,b8.toError)(e);return P8(i)?i:new A8.GraphQLError(i.message,{nodes:(r=i.nodes)!==null&&r!==void 0?r:t,source:i.source,positions:i.positions,path:n,originalError:i})}function P8(e){return Array.isArray(e.path)}});var Op=F(qi=>{"use strict";m();T();N();Object.defineProperty(qi,"__esModule",{value:!0});qi.assertValidExecutionArguments=AL;qi.buildExecutionContext=RL;qi.buildResolveInfo=FL;qi.defaultTypeResolver=qi.defaultFieldResolver=void 0;qi.execute=bL;qi.executeSync=k8;qi.getFieldDef=LL;var dv=Vr(),fc=Wt(),F8=Dr(),w8=mN(),mv=Ca(),ma=Cm(),L8=EL(),mc=Tp(),gL=hL(),C8=yL(),xi=ze(),BN=LN(),lv=Ba(),_L=Lt(),Tu=Ct(),Al=ki(),B8=fp(),OL=RN(),DL=Ol(),U8=(0,L8.memoize3)((e,t,n)=>(0,OL.collectSubfields)(e.schema,e.fragments,e.variableValues,t,n));function bL(e){arguments.length<2||(0,dv.devAssert)(!1,"graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.");let{schema:t,document:n,variableValues:r,rootValue:i}=e;AL(t,n,r);let a=RL(e);if(!("schema"in a))return{errors:a};try{let{operation:o}=a,c=M8(a,o,i);return(0,ma.isPromise)(c)?c.then(l=>CN(l,a.errors),l=>(a.errors.push(l),CN(null,a.errors))):CN(c,a.errors)}catch(o){return a.errors.push(o),CN(null,a.errors)}}function k8(e){let t=bL(e);if((0,ma.isPromise)(t))throw new Error("GraphQL execution failed to complete synchronously.");return t}function CN(e,t){return t.length===0?{data:e}:{errors:t,data:e}}function AL(e,t,n){t||(0,dv.devAssert)(!1,"Must provide document."),(0,B8.assertValidSchema)(e),n==null||(0,mv.isObjectLike)(n)||(0,dv.devAssert)(!1,"Variables must be provided as an Object where each property is a variable value. Perhaps look to see if an unparsed JSON string was provided.")}function RL(e){var t,n;let{schema:r,document:i,rootValue:a,contextValue:o,variableValues:c,operationName:l,fieldResolver:d,typeResolver:f,subscribeFieldResolver:y}=e,I,v=Object.create(null);for(let V of i.definitions)switch(V.kind){case _L.Kind.OPERATION_DEFINITION:if(l==null){if(I!==void 0)return[new xi.GraphQLError("Must provide operation name if query contains multiple operations.")];I=V}else((t=V.name)===null||t===void 0?void 0:t.value)===l&&(I=V);break;case _L.Kind.FRAGMENT_DEFINITION:v[V.name.value]=V;break;default:}if(!I)return l!=null?[new xi.GraphQLError(`Unknown operation named "${l}".`)]:[new xi.GraphQLError("Must provide an operation.")];let w=(n=I.variableDefinitions)!==null&&n!==void 0?n:[],U=(0,DL.getVariableValues)(r,w,c!=null?c:{},{maxErrors:50});return U.errors?U.errors:{schema:r,fragments:v,rootValue:a,contextValue:o,operation:I,variableValues:U.coerced,fieldResolver:d!=null?d:fv,typeResolver:f!=null?f:wL,subscribeFieldResolver:y!=null?y:fv,errors:[]}}function M8(e,t,n){let r=e.schema.getRootType(t.operation);if(r==null)throw new xi.GraphQLError(`Schema is not configured to execute ${t.operation} operation.`,{nodes:t});let i=(0,OL.collectFields)(e.schema,e.fragments,e.variableValues,r,t.selectionSet),a=void 0;switch(t.operation){case lv.OperationTypeNode.QUERY:return UN(e,r,n,a,i);case lv.OperationTypeNode.MUTATION:return x8(e,r,n,a,i);case lv.OperationTypeNode.SUBSCRIPTION:return UN(e,r,n,a,i)}}function x8(e,t,n,r,i){return(0,C8.promiseReduce)(i.entries(),(a,[o,c])=>{let l=(0,mc.addPath)(r,o,t.name),d=PL(e,t,n,c,l);return d===void 0?a:(0,ma.isPromise)(d)?d.then(f=>(a[o]=f,a)):(a[o]=d,a)},Object.create(null))}function UN(e,t,n,r,i){let a=Object.create(null),o=!1;try{for(let[c,l]of i.entries()){let d=(0,mc.addPath)(r,c,t.name),f=PL(e,t,n,l,d);f!==void 0&&(a[c]=f,(0,ma.isPromise)(f)&&(o=!0))}}catch(c){if(o)return(0,gL.promiseForObject)(a).finally(()=>{throw c});throw c}return o?(0,gL.promiseForObject)(a):a}function PL(e,t,n,r,i){var a;let o=LL(e.schema,t,r[0]);if(!o)return;let c=o.type,l=(a=o.resolve)!==null&&a!==void 0?a:e.fieldResolver,d=FL(e,o,r,t,i);try{let f=(0,DL.getArgumentValues)(o,r[0],e.variableValues),y=e.contextValue,I=l(n,f,y,d),v;return(0,ma.isPromise)(I)?v=I.then(w=>Sp(e,c,r,d,i,w)):v=Sp(e,c,r,d,i,I),(0,ma.isPromise)(v)?v.then(void 0,w=>{let U=(0,BN.locatedError)(w,r,(0,mc.pathToArray)(i));return kN(U,c,e)}):v}catch(f){let y=(0,BN.locatedError)(f,r,(0,mc.pathToArray)(i));return kN(y,c,e)}}function FL(e,t,n,r,i){return{fieldName:t.name,fieldNodes:n,returnType:t.type,parentType:r,path:i,schema:e.schema,fragments:e.fragments,rootValue:e.rootValue,operation:e.operation,variableValues:e.variableValues}}function kN(e,t,n){if((0,Tu.isNonNullType)(t))throw e;return n.errors.push(e),null}function Sp(e,t,n,r,i,a){if(a instanceof Error)throw a;if((0,Tu.isNonNullType)(t)){let o=Sp(e,t.ofType,n,r,i,a);if(o===null)throw new Error(`Cannot return null for non-nullable field ${r.parentType.name}.${r.fieldName}.`);return o}if(a==null)return null;if((0,Tu.isListType)(t))return q8(e,t,n,r,i,a);if((0,Tu.isLeafType)(t))return j8(t,a);if((0,Tu.isAbstractType)(t))return V8(e,t,n,r,i,a);if((0,Tu.isObjectType)(t))return pv(e,t,n,r,i,a);(0,F8.invariant)(!1,"Cannot complete value of unexpected output type: "+(0,fc.inspect)(t))}function q8(e,t,n,r,i,a){if(!(0,w8.isIterableObject)(a))throw new xi.GraphQLError(`Expected Iterable, but did not find one for field "${r.parentType.name}.${r.fieldName}".`);let o=t.ofType,c=!1,l=Array.from(a,(d,f)=>{let y=(0,mc.addPath)(i,f,void 0);try{let I;return(0,ma.isPromise)(d)?I=d.then(v=>Sp(e,o,n,r,y,v)):I=Sp(e,o,n,r,y,d),(0,ma.isPromise)(I)?(c=!0,I.then(void 0,v=>{let w=(0,BN.locatedError)(v,n,(0,mc.pathToArray)(y));return kN(w,o,e)})):I}catch(I){let v=(0,BN.locatedError)(I,n,(0,mc.pathToArray)(y));return kN(v,o,e)}});return c?Promise.all(l):l}function j8(e,t){let n=e.serialize(t);if(n==null)throw new Error(`Expected \`${(0,fc.inspect)(e)}.serialize(${(0,fc.inspect)(t)})\` to return non-nullable value, returned: ${(0,fc.inspect)(n)}`);return n}function V8(e,t,n,r,i,a){var o;let c=(o=t.resolveType)!==null&&o!==void 0?o:e.typeResolver,l=e.contextValue,d=c(a,l,r,t);return(0,ma.isPromise)(d)?d.then(f=>pv(e,vL(f,e,t,n,r,a),n,r,i,a)):pv(e,vL(d,e,t,n,r,a),n,r,i,a)}function vL(e,t,n,r,i,a){if(e==null)throw new xi.GraphQLError(`Abstract type "${n.name}" must resolve to an Object type at runtime for field "${i.parentType.name}.${i.fieldName}". Either the "${n.name}" type should provide a "resolveType" function or each possible type should provide an "isTypeOf" function.`,r);if((0,Tu.isObjectType)(e))throw new xi.GraphQLError("Support for returning GraphQLObjectType from resolveType was removed in graphql-js@16.0.0 please return type name instead.");if(typeof e!="string")throw new xi.GraphQLError(`Abstract type "${n.name}" must resolve to an Object type at runtime for field "${i.parentType.name}.${i.fieldName}" with value ${(0,fc.inspect)(a)}, received "${(0,fc.inspect)(e)}".`);let o=t.schema.getType(e);if(o==null)throw new xi.GraphQLError(`Abstract type "${n.name}" was resolved to a type "${e}" that does not exist inside the schema.`,{nodes:r});if(!(0,Tu.isObjectType)(o))throw new xi.GraphQLError(`Abstract type "${n.name}" was resolved to a non-object type "${e}".`,{nodes:r});if(!t.schema.isSubType(n,o))throw new xi.GraphQLError(`Runtime Object type "${o.name}" is not a possible type for "${n.name}".`,{nodes:r});return o}function pv(e,t,n,r,i,a){let o=U8(e,t,n);if(t.isTypeOf){let c=t.isTypeOf(a,e.contextValue,r);if((0,ma.isPromise)(c))return c.then(l=>{if(!l)throw SL(t,a,n);return UN(e,t,a,i,o)});if(!c)throw SL(t,a,n)}return UN(e,t,a,i,o)}function SL(e,t,n){return new xi.GraphQLError(`Expected value of type "${e.name}" but got: ${(0,fc.inspect)(t)}.`,{nodes:n})}var wL=function(e,t,n,r){if((0,mv.isObjectLike)(e)&&typeof e.__typename=="string")return e.__typename;let i=n.schema.getPossibleTypes(r),a=[];for(let o=0;o{for(let c=0;c{"use strict";m();T();N();Object.defineProperty(MN,"__esModule",{value:!0});MN.graphql=H8;MN.graphqlSync=z8;var K8=Vr(),G8=Cm(),$8=Nl(),Q8=fp(),Y8=bl(),J8=Op();function H8(e){return new Promise(t=>t(CL(e)))}function z8(e){let t=CL(e);if((0,G8.isPromise)(t))throw new Error("GraphQL execution failed to complete synchronously.");return t}function CL(e){arguments.length<2||(0,K8.devAssert)(!1,"graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.");let{schema:t,source:n,rootValue:r,contextValue:i,variableValues:a,operationName:o,fieldResolver:c,typeResolver:l}=e,d=(0,Q8.validateSchema)(t);if(d.length>0)return{errors:d};let f;try{f=(0,$8.parse)(n)}catch(I){return{errors:[I]}}let y=(0,Y8.validate)(t,f);return y.length>0?{errors:y}:(0,J8.execute)({schema:t,document:f,rootValue:r,contextValue:i,variableValues:a,operationName:o,fieldResolver:c,typeResolver:l})}});var ML=F(he=>{"use strict";m();T();N();Object.defineProperty(he,"__esModule",{value:!0});Object.defineProperty(he,"DEFAULT_DEPRECATION_REASON",{enumerable:!0,get:function(){return Na.DEFAULT_DEPRECATION_REASON}});Object.defineProperty(he,"GRAPHQL_MAX_INT",{enumerable:!0,get:function(){return Ps.GRAPHQL_MAX_INT}});Object.defineProperty(he,"GRAPHQL_MIN_INT",{enumerable:!0,get:function(){return Ps.GRAPHQL_MIN_INT}});Object.defineProperty(he,"GraphQLBoolean",{enumerable:!0,get:function(){return Ps.GraphQLBoolean}});Object.defineProperty(he,"GraphQLDeprecatedDirective",{enumerable:!0,get:function(){return Na.GraphQLDeprecatedDirective}});Object.defineProperty(he,"GraphQLDirective",{enumerable:!0,get:function(){return Na.GraphQLDirective}});Object.defineProperty(he,"GraphQLEnumType",{enumerable:!0,get:function(){return it.GraphQLEnumType}});Object.defineProperty(he,"GraphQLFloat",{enumerable:!0,get:function(){return Ps.GraphQLFloat}});Object.defineProperty(he,"GraphQLID",{enumerable:!0,get:function(){return Ps.GraphQLID}});Object.defineProperty(he,"GraphQLIncludeDirective",{enumerable:!0,get:function(){return Na.GraphQLIncludeDirective}});Object.defineProperty(he,"GraphQLInputObjectType",{enumerable:!0,get:function(){return it.GraphQLInputObjectType}});Object.defineProperty(he,"GraphQLInt",{enumerable:!0,get:function(){return Ps.GraphQLInt}});Object.defineProperty(he,"GraphQLInterfaceType",{enumerable:!0,get:function(){return it.GraphQLInterfaceType}});Object.defineProperty(he,"GraphQLList",{enumerable:!0,get:function(){return it.GraphQLList}});Object.defineProperty(he,"GraphQLNonNull",{enumerable:!0,get:function(){return it.GraphQLNonNull}});Object.defineProperty(he,"GraphQLObjectType",{enumerable:!0,get:function(){return it.GraphQLObjectType}});Object.defineProperty(he,"GraphQLOneOfDirective",{enumerable:!0,get:function(){return Na.GraphQLOneOfDirective}});Object.defineProperty(he,"GraphQLScalarType",{enumerable:!0,get:function(){return it.GraphQLScalarType}});Object.defineProperty(he,"GraphQLSchema",{enumerable:!0,get:function(){return Nv.GraphQLSchema}});Object.defineProperty(he,"GraphQLSkipDirective",{enumerable:!0,get:function(){return Na.GraphQLSkipDirective}});Object.defineProperty(he,"GraphQLSpecifiedByDirective",{enumerable:!0,get:function(){return Na.GraphQLSpecifiedByDirective}});Object.defineProperty(he,"GraphQLString",{enumerable:!0,get:function(){return Ps.GraphQLString}});Object.defineProperty(he,"GraphQLUnionType",{enumerable:!0,get:function(){return it.GraphQLUnionType}});Object.defineProperty(he,"SchemaMetaFieldDef",{enumerable:!0,get:function(){return ni.SchemaMetaFieldDef}});Object.defineProperty(he,"TypeKind",{enumerable:!0,get:function(){return ni.TypeKind}});Object.defineProperty(he,"TypeMetaFieldDef",{enumerable:!0,get:function(){return ni.TypeMetaFieldDef}});Object.defineProperty(he,"TypeNameMetaFieldDef",{enumerable:!0,get:function(){return ni.TypeNameMetaFieldDef}});Object.defineProperty(he,"__Directive",{enumerable:!0,get:function(){return ni.__Directive}});Object.defineProperty(he,"__DirectiveLocation",{enumerable:!0,get:function(){return ni.__DirectiveLocation}});Object.defineProperty(he,"__EnumValue",{enumerable:!0,get:function(){return ni.__EnumValue}});Object.defineProperty(he,"__Field",{enumerable:!0,get:function(){return ni.__Field}});Object.defineProperty(he,"__InputValue",{enumerable:!0,get:function(){return ni.__InputValue}});Object.defineProperty(he,"__Schema",{enumerable:!0,get:function(){return ni.__Schema}});Object.defineProperty(he,"__Type",{enumerable:!0,get:function(){return ni.__Type}});Object.defineProperty(he,"__TypeKind",{enumerable:!0,get:function(){return ni.__TypeKind}});Object.defineProperty(he,"assertAbstractType",{enumerable:!0,get:function(){return it.assertAbstractType}});Object.defineProperty(he,"assertCompositeType",{enumerable:!0,get:function(){return it.assertCompositeType}});Object.defineProperty(he,"assertDirective",{enumerable:!0,get:function(){return Na.assertDirective}});Object.defineProperty(he,"assertEnumType",{enumerable:!0,get:function(){return it.assertEnumType}});Object.defineProperty(he,"assertEnumValueName",{enumerable:!0,get:function(){return kL.assertEnumValueName}});Object.defineProperty(he,"assertInputObjectType",{enumerable:!0,get:function(){return it.assertInputObjectType}});Object.defineProperty(he,"assertInputType",{enumerable:!0,get:function(){return it.assertInputType}});Object.defineProperty(he,"assertInterfaceType",{enumerable:!0,get:function(){return it.assertInterfaceType}});Object.defineProperty(he,"assertLeafType",{enumerable:!0,get:function(){return it.assertLeafType}});Object.defineProperty(he,"assertListType",{enumerable:!0,get:function(){return it.assertListType}});Object.defineProperty(he,"assertName",{enumerable:!0,get:function(){return kL.assertName}});Object.defineProperty(he,"assertNamedType",{enumerable:!0,get:function(){return it.assertNamedType}});Object.defineProperty(he,"assertNonNullType",{enumerable:!0,get:function(){return it.assertNonNullType}});Object.defineProperty(he,"assertNullableType",{enumerable:!0,get:function(){return it.assertNullableType}});Object.defineProperty(he,"assertObjectType",{enumerable:!0,get:function(){return it.assertObjectType}});Object.defineProperty(he,"assertOutputType",{enumerable:!0,get:function(){return it.assertOutputType}});Object.defineProperty(he,"assertScalarType",{enumerable:!0,get:function(){return it.assertScalarType}});Object.defineProperty(he,"assertSchema",{enumerable:!0,get:function(){return Nv.assertSchema}});Object.defineProperty(he,"assertType",{enumerable:!0,get:function(){return it.assertType}});Object.defineProperty(he,"assertUnionType",{enumerable:!0,get:function(){return it.assertUnionType}});Object.defineProperty(he,"assertValidSchema",{enumerable:!0,get:function(){return UL.assertValidSchema}});Object.defineProperty(he,"assertWrappingType",{enumerable:!0,get:function(){return it.assertWrappingType}});Object.defineProperty(he,"getNamedType",{enumerable:!0,get:function(){return it.getNamedType}});Object.defineProperty(he,"getNullableType",{enumerable:!0,get:function(){return it.getNullableType}});Object.defineProperty(he,"introspectionTypes",{enumerable:!0,get:function(){return ni.introspectionTypes}});Object.defineProperty(he,"isAbstractType",{enumerable:!0,get:function(){return it.isAbstractType}});Object.defineProperty(he,"isCompositeType",{enumerable:!0,get:function(){return it.isCompositeType}});Object.defineProperty(he,"isDirective",{enumerable:!0,get:function(){return Na.isDirective}});Object.defineProperty(he,"isEnumType",{enumerable:!0,get:function(){return it.isEnumType}});Object.defineProperty(he,"isInputObjectType",{enumerable:!0,get:function(){return it.isInputObjectType}});Object.defineProperty(he,"isInputType",{enumerable:!0,get:function(){return it.isInputType}});Object.defineProperty(he,"isInterfaceType",{enumerable:!0,get:function(){return it.isInterfaceType}});Object.defineProperty(he,"isIntrospectionType",{enumerable:!0,get:function(){return ni.isIntrospectionType}});Object.defineProperty(he,"isLeafType",{enumerable:!0,get:function(){return it.isLeafType}});Object.defineProperty(he,"isListType",{enumerable:!0,get:function(){return it.isListType}});Object.defineProperty(he,"isNamedType",{enumerable:!0,get:function(){return it.isNamedType}});Object.defineProperty(he,"isNonNullType",{enumerable:!0,get:function(){return it.isNonNullType}});Object.defineProperty(he,"isNullableType",{enumerable:!0,get:function(){return it.isNullableType}});Object.defineProperty(he,"isObjectType",{enumerable:!0,get:function(){return it.isObjectType}});Object.defineProperty(he,"isOutputType",{enumerable:!0,get:function(){return it.isOutputType}});Object.defineProperty(he,"isRequiredArgument",{enumerable:!0,get:function(){return it.isRequiredArgument}});Object.defineProperty(he,"isRequiredInputField",{enumerable:!0,get:function(){return it.isRequiredInputField}});Object.defineProperty(he,"isScalarType",{enumerable:!0,get:function(){return it.isScalarType}});Object.defineProperty(he,"isSchema",{enumerable:!0,get:function(){return Nv.isSchema}});Object.defineProperty(he,"isSpecifiedDirective",{enumerable:!0,get:function(){return Na.isSpecifiedDirective}});Object.defineProperty(he,"isSpecifiedScalarType",{enumerable:!0,get:function(){return Ps.isSpecifiedScalarType}});Object.defineProperty(he,"isType",{enumerable:!0,get:function(){return it.isType}});Object.defineProperty(he,"isUnionType",{enumerable:!0,get:function(){return it.isUnionType}});Object.defineProperty(he,"isWrappingType",{enumerable:!0,get:function(){return it.isWrappingType}});Object.defineProperty(he,"resolveObjMapThunk",{enumerable:!0,get:function(){return it.resolveObjMapThunk}});Object.defineProperty(he,"resolveReadonlyArrayThunk",{enumerable:!0,get:function(){return it.resolveReadonlyArrayThunk}});Object.defineProperty(he,"specifiedDirectives",{enumerable:!0,get:function(){return Na.specifiedDirectives}});Object.defineProperty(he,"specifiedScalarTypes",{enumerable:!0,get:function(){return Ps.specifiedScalarTypes}});Object.defineProperty(he,"validateSchema",{enumerable:!0,get:function(){return UL.validateSchema}});var Nv=uc(),it=Ct(),Na=ei(),Ps=Ma(),ni=ki(),UL=fp(),kL=Xd()});var qL=F(kt=>{"use strict";m();T();N();Object.defineProperty(kt,"__esModule",{value:!0});Object.defineProperty(kt,"BREAK",{enumerable:!0,get:function(){return Dp.BREAK}});Object.defineProperty(kt,"DirectiveLocation",{enumerable:!0,get:function(){return r5.DirectiveLocation}});Object.defineProperty(kt,"Kind",{enumerable:!0,get:function(){return Z8.Kind}});Object.defineProperty(kt,"Lexer",{enumerable:!0,get:function(){return t5.Lexer}});Object.defineProperty(kt,"Location",{enumerable:!0,get:function(){return Tv.Location}});Object.defineProperty(kt,"OperationTypeNode",{enumerable:!0,get:function(){return Tv.OperationTypeNode}});Object.defineProperty(kt,"Source",{enumerable:!0,get:function(){return W8.Source}});Object.defineProperty(kt,"Token",{enumerable:!0,get:function(){return Tv.Token}});Object.defineProperty(kt,"TokenKind",{enumerable:!0,get:function(){return e5.TokenKind}});Object.defineProperty(kt,"getEnterLeaveForKind",{enumerable:!0,get:function(){return Dp.getEnterLeaveForKind}});Object.defineProperty(kt,"getLocation",{enumerable:!0,get:function(){return X8.getLocation}});Object.defineProperty(kt,"getVisitFn",{enumerable:!0,get:function(){return Dp.getVisitFn}});Object.defineProperty(kt,"isConstValueNode",{enumerable:!0,get:function(){return Va.isConstValueNode}});Object.defineProperty(kt,"isDefinitionNode",{enumerable:!0,get:function(){return Va.isDefinitionNode}});Object.defineProperty(kt,"isExecutableDefinitionNode",{enumerable:!0,get:function(){return Va.isExecutableDefinitionNode}});Object.defineProperty(kt,"isSelectionNode",{enumerable:!0,get:function(){return Va.isSelectionNode}});Object.defineProperty(kt,"isTypeDefinitionNode",{enumerable:!0,get:function(){return Va.isTypeDefinitionNode}});Object.defineProperty(kt,"isTypeExtensionNode",{enumerable:!0,get:function(){return Va.isTypeExtensionNode}});Object.defineProperty(kt,"isTypeNode",{enumerable:!0,get:function(){return Va.isTypeNode}});Object.defineProperty(kt,"isTypeSystemDefinitionNode",{enumerable:!0,get:function(){return Va.isTypeSystemDefinitionNode}});Object.defineProperty(kt,"isTypeSystemExtensionNode",{enumerable:!0,get:function(){return Va.isTypeSystemExtensionNode}});Object.defineProperty(kt,"isValueNode",{enumerable:!0,get:function(){return Va.isValueNode}});Object.defineProperty(kt,"parse",{enumerable:!0,get:function(){return xN.parse}});Object.defineProperty(kt,"parseConstValue",{enumerable:!0,get:function(){return xN.parseConstValue}});Object.defineProperty(kt,"parseType",{enumerable:!0,get:function(){return xN.parseType}});Object.defineProperty(kt,"parseValue",{enumerable:!0,get:function(){return xN.parseValue}});Object.defineProperty(kt,"print",{enumerable:!0,get:function(){return n5.print}});Object.defineProperty(kt,"printLocation",{enumerable:!0,get:function(){return xL.printLocation}});Object.defineProperty(kt,"printSourceLocation",{enumerable:!0,get:function(){return xL.printSourceLocation}});Object.defineProperty(kt,"visit",{enumerable:!0,get:function(){return Dp.visit}});Object.defineProperty(kt,"visitInParallel",{enumerable:!0,get:function(){return Dp.visitInParallel}});var W8=Gm(),X8=Bm(),xL=pI(),Z8=Lt(),e5=Gd(),t5=qm(),xN=Nl(),n5=Ti(),Dp=nc(),Tv=Ba(),Va=lc(),r5=fl()});var jL=F(Ev=>{"use strict";m();T();N();Object.defineProperty(Ev,"__esModule",{value:!0});Ev.isAsyncIterable=i5;function i5(e){return typeof(e==null?void 0:e[Symbol.asyncIterator])=="function"}});var VL=F(hv=>{"use strict";m();T();N();Object.defineProperty(hv,"__esModule",{value:!0});hv.mapAsyncIterator=a5;function a5(e,t){let n=e[Symbol.asyncIterator]();function r(a){return wi(this,null,function*(){if(a.done)return a;try{return{value:yield t(a.value),done:!1}}catch(o){if(typeof n.return=="function")try{yield n.return()}catch(c){}throw o}})}return{next(){return wi(this,null,function*(){return r(yield n.next())})},return(){return wi(this,null,function*(){return typeof n.return=="function"?r(yield n.return()):{value:void 0,done:!0}})},throw(a){return wi(this,null,function*(){if(typeof n.throw=="function")return r(yield n.throw(a));throw a})},[Symbol.asyncIterator](){return this}}}});var QL=F(qN=>{"use strict";m();T();N();Object.defineProperty(qN,"__esModule",{value:!0});qN.createSourceEventStream=$L;qN.subscribe=p5;var s5=Vr(),o5=Wt(),GL=jL(),KL=Tp(),yv=ze(),u5=LN(),c5=RN(),bp=Op(),l5=VL(),d5=Ol();function p5(t){return wi(this,arguments,function*(e){arguments.length<2||(0,s5.devAssert)(!1,"graphql@16 dropped long-deprecated support for positional arguments, please pass an object instead.");let n=yield $L(e);if(!(0,GL.isAsyncIterable)(n))return n;let r=i=>(0,bp.execute)($(M({},e),{rootValue:i}));return(0,l5.mapAsyncIterator)(n,r)})}function f5(e){let t=e[0];return t&&"document"in t?t:{schema:t,document:e[1],rootValue:e[2],contextValue:e[3],variableValues:e[4],operationName:e[5],subscribeFieldResolver:e[6]}}function $L(...e){return wi(this,null,function*(){let t=f5(e),{schema:n,document:r,variableValues:i}=t;(0,bp.assertValidExecutionArguments)(n,r,i);let a=(0,bp.buildExecutionContext)(t);if(!("schema"in a))return{errors:a};try{let o=yield m5(a);if(!(0,GL.isAsyncIterable)(o))throw new Error(`Subscription field must return Async Iterable. Received: ${(0,o5.inspect)(o)}.`);return o}catch(o){if(o instanceof yv.GraphQLError)return{errors:[o]};throw o}})}function m5(e){return wi(this,null,function*(){let{schema:t,fragments:n,operation:r,variableValues:i,rootValue:a}=e,o=t.getSubscriptionType();if(o==null)throw new yv.GraphQLError("Schema is not configured to execute subscription operation.",{nodes:r});let c=(0,c5.collectFields)(t,n,i,o,r.selectionSet),[l,d]=[...c.entries()][0],f=(0,bp.getFieldDef)(t,o,d[0]);if(!f){let w=d[0].name.value;throw new yv.GraphQLError(`The subscription field "${w}" is not defined.`,{nodes:d})}let y=(0,KL.addPath)(void 0,l,o.name),I=(0,bp.buildResolveInfo)(e,f,d,o,y);try{var v;let w=(0,d5.getArgumentValues)(f,d[0],i),U=e.contextValue,Y=yield((v=f.subscribe)!==null&&v!==void 0?v:e.subscribeFieldResolver)(a,w,U,I);if(Y instanceof Error)throw Y;return Y}catch(w){throw(0,u5.locatedError)(w,d,(0,KL.pathToArray)(y))}})}});var JL=F(ji=>{"use strict";m();T();N();Object.defineProperty(ji,"__esModule",{value:!0});Object.defineProperty(ji,"createSourceEventStream",{enumerable:!0,get:function(){return YL.createSourceEventStream}});Object.defineProperty(ji,"defaultFieldResolver",{enumerable:!0,get:function(){return jN.defaultFieldResolver}});Object.defineProperty(ji,"defaultTypeResolver",{enumerable:!0,get:function(){return jN.defaultTypeResolver}});Object.defineProperty(ji,"execute",{enumerable:!0,get:function(){return jN.execute}});Object.defineProperty(ji,"executeSync",{enumerable:!0,get:function(){return jN.executeSync}});Object.defineProperty(ji,"getArgumentValues",{enumerable:!0,get:function(){return Iv.getArgumentValues}});Object.defineProperty(ji,"getDirectiveValues",{enumerable:!0,get:function(){return Iv.getDirectiveValues}});Object.defineProperty(ji,"getVariableValues",{enumerable:!0,get:function(){return Iv.getVariableValues}});Object.defineProperty(ji,"responsePathAsArray",{enumerable:!0,get:function(){return N5.pathToArray}});Object.defineProperty(ji,"subscribe",{enumerable:!0,get:function(){return YL.subscribe}});var N5=Tp(),jN=Op(),YL=QL(),Iv=Ol()});var HL=F(vv=>{"use strict";m();T();N();Object.defineProperty(vv,"__esModule",{value:!0});vv.NoDeprecatedCustomRule=T5;var gv=Dr(),Ap=ze(),_v=Ct();function T5(e){return{Field(t){let n=e.getFieldDef(),r=n==null?void 0:n.deprecationReason;if(n&&r!=null){let i=e.getParentType();i!=null||(0,gv.invariant)(!1),e.reportError(new Ap.GraphQLError(`The field ${i.name}.${n.name} is deprecated. ${r}`,{nodes:t}))}},Argument(t){let n=e.getArgument(),r=n==null?void 0:n.deprecationReason;if(n&&r!=null){let i=e.getDirective();if(i!=null)e.reportError(new Ap.GraphQLError(`Directive "@${i.name}" argument "${n.name}" is deprecated. ${r}`,{nodes:t}));else{let a=e.getParentType(),o=e.getFieldDef();a!=null&&o!=null||(0,gv.invariant)(!1),e.reportError(new Ap.GraphQLError(`Field "${a.name}.${o.name}" argument "${n.name}" is deprecated. ${r}`,{nodes:t}))}}},ObjectField(t){let n=(0,_v.getNamedType)(e.getParentInputType());if((0,_v.isInputObjectType)(n)){let r=n.getFields()[t.name.value],i=r==null?void 0:r.deprecationReason;i!=null&&e.reportError(new Ap.GraphQLError(`The input field ${n.name}.${r.name} is deprecated. ${i}`,{nodes:t}))}},EnumValue(t){let n=e.getEnumValue(),r=n==null?void 0:n.deprecationReason;if(n&&r!=null){let i=(0,_v.getNamedType)(e.getInputType());i!=null||(0,gv.invariant)(!1),e.reportError(new Ap.GraphQLError(`The enum value "${i.name}.${n.name}" is deprecated. ${r}`,{nodes:t}))}}}}});var zL=F(Sv=>{"use strict";m();T();N();Object.defineProperty(Sv,"__esModule",{value:!0});Sv.NoSchemaIntrospectionCustomRule=I5;var E5=ze(),h5=Ct(),y5=ki();function I5(e){return{Field(t){let n=(0,h5.getNamedType)(e.getType());n&&(0,y5.isIntrospectionType)(n)&&e.reportError(new E5.GraphQLError(`GraphQL introspection has been disabled, but the requested query contained the field "${t.name.value}".`,{nodes:t}))}}}});var XL=F(mt=>{"use strict";m();T();N();Object.defineProperty(mt,"__esModule",{value:!0});Object.defineProperty(mt,"ExecutableDefinitionsRule",{enumerable:!0,get:function(){return v5.ExecutableDefinitionsRule}});Object.defineProperty(mt,"FieldsOnCorrectTypeRule",{enumerable:!0,get:function(){return S5.FieldsOnCorrectTypeRule}});Object.defineProperty(mt,"FragmentsOnCompositeTypesRule",{enumerable:!0,get:function(){return O5.FragmentsOnCompositeTypesRule}});Object.defineProperty(mt,"KnownArgumentNamesRule",{enumerable:!0,get:function(){return D5.KnownArgumentNamesRule}});Object.defineProperty(mt,"KnownDirectivesRule",{enumerable:!0,get:function(){return b5.KnownDirectivesRule}});Object.defineProperty(mt,"KnownFragmentNamesRule",{enumerable:!0,get:function(){return A5.KnownFragmentNamesRule}});Object.defineProperty(mt,"KnownTypeNamesRule",{enumerable:!0,get:function(){return R5.KnownTypeNamesRule}});Object.defineProperty(mt,"LoneAnonymousOperationRule",{enumerable:!0,get:function(){return P5.LoneAnonymousOperationRule}});Object.defineProperty(mt,"LoneSchemaDefinitionRule",{enumerable:!0,get:function(){return z5.LoneSchemaDefinitionRule}});Object.defineProperty(mt,"MaxIntrospectionDepthRule",{enumerable:!0,get:function(){return H5.MaxIntrospectionDepthRule}});Object.defineProperty(mt,"NoDeprecatedCustomRule",{enumerable:!0,get:function(){return iX.NoDeprecatedCustomRule}});Object.defineProperty(mt,"NoFragmentCyclesRule",{enumerable:!0,get:function(){return F5.NoFragmentCyclesRule}});Object.defineProperty(mt,"NoSchemaIntrospectionCustomRule",{enumerable:!0,get:function(){return aX.NoSchemaIntrospectionCustomRule}});Object.defineProperty(mt,"NoUndefinedVariablesRule",{enumerable:!0,get:function(){return w5.NoUndefinedVariablesRule}});Object.defineProperty(mt,"NoUnusedFragmentsRule",{enumerable:!0,get:function(){return L5.NoUnusedFragmentsRule}});Object.defineProperty(mt,"NoUnusedVariablesRule",{enumerable:!0,get:function(){return C5.NoUnusedVariablesRule}});Object.defineProperty(mt,"OverlappingFieldsCanBeMergedRule",{enumerable:!0,get:function(){return B5.OverlappingFieldsCanBeMergedRule}});Object.defineProperty(mt,"PossibleFragmentSpreadsRule",{enumerable:!0,get:function(){return U5.PossibleFragmentSpreadsRule}});Object.defineProperty(mt,"PossibleTypeExtensionsRule",{enumerable:!0,get:function(){return rX.PossibleTypeExtensionsRule}});Object.defineProperty(mt,"ProvidedRequiredArgumentsRule",{enumerable:!0,get:function(){return k5.ProvidedRequiredArgumentsRule}});Object.defineProperty(mt,"ScalarLeafsRule",{enumerable:!0,get:function(){return M5.ScalarLeafsRule}});Object.defineProperty(mt,"SingleFieldSubscriptionsRule",{enumerable:!0,get:function(){return x5.SingleFieldSubscriptionsRule}});Object.defineProperty(mt,"UniqueArgumentDefinitionNamesRule",{enumerable:!0,get:function(){return tX.UniqueArgumentDefinitionNamesRule}});Object.defineProperty(mt,"UniqueArgumentNamesRule",{enumerable:!0,get:function(){return q5.UniqueArgumentNamesRule}});Object.defineProperty(mt,"UniqueDirectiveNamesRule",{enumerable:!0,get:function(){return nX.UniqueDirectiveNamesRule}});Object.defineProperty(mt,"UniqueDirectivesPerLocationRule",{enumerable:!0,get:function(){return j5.UniqueDirectivesPerLocationRule}});Object.defineProperty(mt,"UniqueEnumValueNamesRule",{enumerable:!0,get:function(){return Z5.UniqueEnumValueNamesRule}});Object.defineProperty(mt,"UniqueFieldDefinitionNamesRule",{enumerable:!0,get:function(){return eX.UniqueFieldDefinitionNamesRule}});Object.defineProperty(mt,"UniqueFragmentNamesRule",{enumerable:!0,get:function(){return V5.UniqueFragmentNamesRule}});Object.defineProperty(mt,"UniqueInputFieldNamesRule",{enumerable:!0,get:function(){return K5.UniqueInputFieldNamesRule}});Object.defineProperty(mt,"UniqueOperationNamesRule",{enumerable:!0,get:function(){return G5.UniqueOperationNamesRule}});Object.defineProperty(mt,"UniqueOperationTypesRule",{enumerable:!0,get:function(){return W5.UniqueOperationTypesRule}});Object.defineProperty(mt,"UniqueTypeNamesRule",{enumerable:!0,get:function(){return X5.UniqueTypeNamesRule}});Object.defineProperty(mt,"UniqueVariableNamesRule",{enumerable:!0,get:function(){return $5.UniqueVariableNamesRule}});Object.defineProperty(mt,"ValidationContext",{enumerable:!0,get:function(){return _5.ValidationContext}});Object.defineProperty(mt,"ValuesOfCorrectTypeRule",{enumerable:!0,get:function(){return Q5.ValuesOfCorrectTypeRule}});Object.defineProperty(mt,"VariablesAreInputTypesRule",{enumerable:!0,get:function(){return Y5.VariablesAreInputTypesRule}});Object.defineProperty(mt,"VariablesInAllowedPositionRule",{enumerable:!0,get:function(){return J5.VariablesInAllowedPositionRule}});Object.defineProperty(mt,"recommendedRules",{enumerable:!0,get:function(){return WL.recommendedRules}});Object.defineProperty(mt,"specifiedRules",{enumerable:!0,get:function(){return WL.specifiedRules}});Object.defineProperty(mt,"validate",{enumerable:!0,get:function(){return g5.validate}});var g5=bl(),_5=nv(),WL=Z_(),v5=Tg(),S5=hg(),O5=Ig(),D5=gg(),b5=Og(),A5=bg(),R5=Pg(),P5=wg(),F5=Mg(),w5=qg(),L5=Vg(),C5=Gg(),B5=e_(),U5=r_(),k5=o_(),M5=c_(),x5=h_(),q5=v_(),j5=A_(),V5=B_(),K5=k_(),G5=x_(),$5=$_(),Q5=J_(),Y5=z_(),J5=X_(),H5=Ug(),z5=Cg(),W5=j_(),X5=K_(),Z5=P_(),eX=L_(),tX=g_(),nX=O_(),rX=a_(),iX=HL(),aX=zL()});var ZL=F(Nc=>{"use strict";m();T();N();Object.defineProperty(Nc,"__esModule",{value:!0});Object.defineProperty(Nc,"GraphQLError",{enumerable:!0,get:function(){return Ov.GraphQLError}});Object.defineProperty(Nc,"formatError",{enumerable:!0,get:function(){return Ov.formatError}});Object.defineProperty(Nc,"locatedError",{enumerable:!0,get:function(){return oX.locatedError}});Object.defineProperty(Nc,"printError",{enumerable:!0,get:function(){return Ov.printError}});Object.defineProperty(Nc,"syntaxError",{enumerable:!0,get:function(){return sX.syntaxError}});var Ov=ze(),sX=km(),oX=LN()});var bv=F(Dv=>{"use strict";m();T();N();Object.defineProperty(Dv,"__esModule",{value:!0});Dv.getIntrospectionQuery=uX;function uX(e){let t=M({descriptions:!0,specifiedByUrl:!1,directiveIsRepeatable:!1,schemaDescription:!1,inputValueDeprecation:!1,oneOf:!1},e),n=t.descriptions?"description":"",r=t.specifiedByUrl?"specifiedByURL":"",i=t.directiveIsRepeatable?"isRepeatable":"",a=t.schemaDescription?n:"";function o(l){return t.inputValueDeprecation?l:""}let c=t.oneOf?"isOneOf":"";return` query IntrospectionQuery { __schema { ${a} @@ -177,87 +177,87 @@ In some cases, you need to provide options to alter GraphQL's execution behavior } } } - `}});var BL=w(ov=>{"use strict";m();T();N();Object.defineProperty(ov,"__esModule",{value:!0});ov.getOperationAST=x5;var M5=Ft();function x5(e,t){let n=null;for(let i of e.definitions)if(i.kind===M5.Kind.OPERATION_DEFINITION){var r;if(t==null){if(n)return null;n=i}else if(((r=i.name)===null||r===void 0?void 0:r.value)===t)return i}return n}});var UL=w(uv=>{"use strict";m();T();N();Object.defineProperty(uv,"__esModule",{value:!0});uv.getOperationRootType=q5;var DN=ze();function q5(e,t){if(t.operation==="query"){let n=e.getQueryType();if(!n)throw new DN.GraphQLError("Schema does not define the required query root type.",{nodes:t});return n}if(t.operation==="mutation"){let n=e.getMutationType();if(!n)throw new DN.GraphQLError("Schema is not configured for mutations.",{nodes:t});return n}if(t.operation==="subscription"){let n=e.getSubscriptionType();if(!n)throw new DN.GraphQLError("Schema is not configured for subscriptions.",{nodes:t});return n}throw new DN.GraphQLError("Can only have query, mutation and subscription operations.",{nodes:t})}});var kL=w(cv=>{"use strict";m();T();N();Object.defineProperty(cv,"__esModule",{value:!0});cv.introspectionFromSchema=$5;var V5=Ir(),j5=il(),K5=Nf(),G5=sv();function $5(e,t){let n=x({specifiedByUrl:!0,directiveIsRepeatable:!0,schemaDescription:!0,inputValueDeprecation:!0,oneOf:!0},t),r=(0,j5.parse)((0,G5.getIntrospectionQuery)(n)),i=(0,K5.executeSync)({schema:e,document:r});return!i.errors&&i.data||(0,V5.invariant)(!1),i.data}});var xL=w(lv=>{"use strict";m();T();N();Object.defineProperty(lv,"__esModule",{value:!0});lv.buildClientSchema=X5;var Q5=Br(),di=Xt(),ML=Da(),bN=xd(),Y5=il(),fi=wt(),J5=Qr(),Ba=Fi(),H5=Pa(),z5=Xu(),W5=lf();function X5(e,t){(0,ML.isObjectLike)(e)&&(0,ML.isObjectLike)(e.__schema)||(0,Q5.devAssert)(!1,`Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: ${(0,di.inspect)(e)}.`);let n=e.__schema,r=(0,bN.keyValMap)(n.types,ee=>ee.name,ee=>I(ee));for(let ee of[...H5.specifiedScalarTypes,...Ba.introspectionTypes])r[ee.name]&&(r[ee.name]=ee);let i=n.queryType?p(n.queryType):null,a=n.mutationType?p(n.mutationType):null,o=n.subscriptionType?p(n.subscriptionType):null,c=n.directives?n.directives.map(tt):[];return new z5.GraphQLSchema({description:n.description,query:i,mutation:a,subscription:o,types:Object.values(r),directives:c,assumeValid:t==null?void 0:t.assumeValid});function l(ee){if(ee.kind===Ba.TypeKind.LIST){let Se=ee.ofType;if(!Se)throw new Error("Decorated type deeper than introspection query.");return new fi.GraphQLList(l(Se))}if(ee.kind===Ba.TypeKind.NON_NULL){let Se=ee.ofType;if(!Se)throw new Error("Decorated type deeper than introspection query.");let _t=l(Se);return new fi.GraphQLNonNull((0,fi.assertNullableType)(_t))}return d(ee)}function d(ee){let Se=ee.name;if(!Se)throw new Error(`Unknown type reference: ${(0,di.inspect)(ee)}.`);let _t=r[Se];if(!_t)throw new Error(`Invalid or incomplete schema, unknown type: ${Se}. Ensure that a full introspection query is used in order to build a client schema.`);return _t}function p(ee){return(0,fi.assertObjectType)(d(ee))}function y(ee){return(0,fi.assertInterfaceType)(d(ee))}function I(ee){if(ee!=null&&ee.name!=null&&ee.kind!=null)switch(ee.kind){case Ba.TypeKind.SCALAR:return v(ee);case Ba.TypeKind.OBJECT:return k(ee);case Ba.TypeKind.INTERFACE:return K(ee);case Ba.TypeKind.UNION:return J(ee);case Ba.TypeKind.ENUM:return se(ee);case Ba.TypeKind.INPUT_OBJECT:return ie(ee)}let Se=(0,di.inspect)(ee);throw new Error(`Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${Se}.`)}function v(ee){return new fi.GraphQLScalarType({name:ee.name,description:ee.description,specifiedByURL:ee.specifiedByURL})}function F(ee){if(ee.interfaces===null&&ee.kind===Ba.TypeKind.INTERFACE)return[];if(!ee.interfaces){let Se=(0,di.inspect)(ee);throw new Error(`Introspection result missing interfaces: ${Se}.`)}return ee.interfaces.map(y)}function k(ee){return new fi.GraphQLObjectType({name:ee.name,description:ee.description,interfaces:()=>F(ee),fields:()=>Te(ee)})}function K(ee){return new fi.GraphQLInterfaceType({name:ee.name,description:ee.description,interfaces:()=>F(ee),fields:()=>Te(ee)})}function J(ee){if(!ee.possibleTypes){let Se=(0,di.inspect)(ee);throw new Error(`Introspection result missing possibleTypes: ${Se}.`)}return new fi.GraphQLUnionType({name:ee.name,description:ee.description,types:()=>ee.possibleTypes.map(p)})}function se(ee){if(!ee.enumValues){let Se=(0,di.inspect)(ee);throw new Error(`Introspection result missing enumValues: ${Se}.`)}return new fi.GraphQLEnumType({name:ee.name,description:ee.description,values:(0,bN.keyValMap)(ee.enumValues,Se=>Se.name,Se=>({description:Se.description,deprecationReason:Se.deprecationReason}))})}function ie(ee){if(!ee.inputFields){let Se=(0,di.inspect)(ee);throw new Error(`Introspection result missing inputFields: ${Se}.`)}return new fi.GraphQLInputObjectType({name:ee.name,description:ee.description,fields:()=>Re(ee.inputFields),isOneOf:ee.isOneOf})}function Te(ee){if(!ee.fields)throw new Error(`Introspection result missing fields: ${(0,di.inspect)(ee)}.`);return(0,bN.keyValMap)(ee.fields,Se=>Se.name,de)}function de(ee){let Se=l(ee.type);if(!(0,fi.isOutputType)(Se)){let _t=(0,di.inspect)(Se);throw new Error(`Introspection must provide output type for fields, but received: ${_t}.`)}if(!ee.args){let _t=(0,di.inspect)(ee);throw new Error(`Introspection result missing field args: ${_t}.`)}return{description:ee.description,deprecationReason:ee.deprecationReason,type:Se,args:Re(ee.args)}}function Re(ee){return(0,bN.keyValMap)(ee,Se=>Se.name,xe)}function xe(ee){let Se=l(ee.type);if(!(0,fi.isInputType)(Se)){let en=(0,di.inspect)(Se);throw new Error(`Introspection must provide input type for arguments, but received: ${en}.`)}let _t=ee.defaultValue!=null?(0,W5.valueFromAST)((0,Y5.parseValue)(ee.defaultValue),Se):void 0;return{description:ee.description,type:Se,defaultValue:_t,deprecationReason:ee.deprecationReason}}function tt(ee){if(!ee.args){let Se=(0,di.inspect)(ee);throw new Error(`Introspection result missing directive args: ${Se}.`)}if(!ee.locations){let Se=(0,di.inspect)(ee);throw new Error(`Introspection result missing directive locations: ${Se}.`)}return new J5.GraphQLDirective({name:ee.name,description:ee.description,isRepeatable:ee.isRepeatable,locations:ee.locations.slice(),args:Re(ee.args)})}}});var fv=w(RN=>{"use strict";m();T();N();Object.defineProperty(RN,"__esModule",{value:!0});RN.extendSchema=iX;RN.extendSchemaImpl=YL;var Z5=Br(),eX=Xt(),tX=Ir(),nX=tu(),yf=dI(),Ui=Ft(),qL=ec(),_n=wt(),If=Qr(),$L=Fi(),QL=Pa(),VL=Xu(),rX=Tl(),dv=ml(),jL=lf();function iX(e,t,n){(0,VL.assertSchema)(e),t!=null&&t.kind===Ui.Kind.DOCUMENT||(0,Z5.devAssert)(!1,"Must provide valid Document AST."),(n==null?void 0:n.assumeValid)!==!0&&(n==null?void 0:n.assumeValidSDL)!==!0&&(0,rX.assertValidSDLExtension)(t,e);let r=e.toConfig(),i=YL(r,t,n);return r===i?e:new VL.GraphQLSchema(i)}function YL(e,t,n){var r,i,a,o;let c=[],l=Object.create(null),d=[],p,y=[];for(let ue of t.definitions)if(ue.kind===Ui.Kind.SCHEMA_DEFINITION)p=ue;else if(ue.kind===Ui.Kind.SCHEMA_EXTENSION)y.push(ue);else if((0,qL.isTypeDefinitionNode)(ue))c.push(ue);else if((0,qL.isTypeExtensionNode)(ue)){let be=ue.name.value,ve=l[be];l[be]=ve?ve.concat([ue]):[ue]}else ue.kind===Ui.Kind.DIRECTIVE_DEFINITION&&d.push(ue);if(Object.keys(l).length===0&&c.length===0&&d.length===0&&y.length===0&&p==null)return e;let I=Object.create(null);for(let ue of e.types)I[ue.name]=se(ue);for(let ue of c){var v;let be=ue.name.value;I[be]=(v=KL[be])!==null&&v!==void 0?v:Rn(ue)}let F=x(x({query:e.query&&K(e.query),mutation:e.mutation&&K(e.mutation),subscription:e.subscription&&K(e.subscription)},p&&_t([p])),_t(y));return Q(x({description:(r=p)===null||r===void 0||(i=r.description)===null||i===void 0?void 0:i.value},F),{types:Object.values(I),directives:[...e.directives.map(J),...d.map(An)],extensions:Object.create(null),astNode:(a=p)!==null&&a!==void 0?a:e.astNode,extensionASTNodes:e.extensionASTNodes.concat(y),assumeValid:(o=n==null?void 0:n.assumeValid)!==null&&o!==void 0?o:!1});function k(ue){return(0,_n.isListType)(ue)?new _n.GraphQLList(k(ue.ofType)):(0,_n.isNonNullType)(ue)?new _n.GraphQLNonNull(k(ue.ofType)):K(ue)}function K(ue){return I[ue.name]}function J(ue){let be=ue.toConfig();return new If.GraphQLDirective(Q(x({},be),{args:(0,yf.mapValue)(be.args,Se)}))}function se(ue){if((0,$L.isIntrospectionType)(ue)||(0,QL.isSpecifiedScalarType)(ue))return ue;if((0,_n.isScalarType)(ue))return de(ue);if((0,_n.isObjectType)(ue))return Re(ue);if((0,_n.isInterfaceType)(ue))return xe(ue);if((0,_n.isUnionType)(ue))return tt(ue);if((0,_n.isEnumType)(ue))return Te(ue);if((0,_n.isInputObjectType)(ue))return ie(ue);(0,tX.invariant)(!1,"Unexpected type: "+(0,eX.inspect)(ue))}function ie(ue){var be;let ve=ue.toConfig(),Ce=(be=l[ve.name])!==null&&be!==void 0?be:[];return new _n.GraphQLInputObjectType(Q(x({},ve),{fields:()=>x(x({},(0,yf.mapValue)(ve.fields,vt=>Q(x({},vt),{type:k(vt.type)}))),Pr(Ce)),extensionASTNodes:ve.extensionASTNodes.concat(Ce)}))}function Te(ue){var be;let ve=ue.toConfig(),Ce=(be=l[ue.name])!==null&&be!==void 0?be:[];return new _n.GraphQLEnumType(Q(x({},ve),{values:x(x({},ve.values),Fr(Ce)),extensionASTNodes:ve.extensionASTNodes.concat(Ce)}))}function de(ue){var be;let ve=ue.toConfig(),Ce=(be=l[ve.name])!==null&&be!==void 0?be:[],vt=ve.specifiedByURL;for(let oe of Ce){var Y;vt=(Y=GL(oe))!==null&&Y!==void 0?Y:vt}return new _n.GraphQLScalarType(Q(x({},ve),{specifiedByURL:vt,extensionASTNodes:ve.extensionASTNodes.concat(Ce)}))}function Re(ue){var be;let ve=ue.toConfig(),Ce=(be=l[ve.name])!==null&&be!==void 0?be:[];return new _n.GraphQLObjectType(Q(x({},ve),{interfaces:()=>[...ue.getInterfaces().map(K),...kn(Ce)],fields:()=>x(x({},(0,yf.mapValue)(ve.fields,ee)),Qt(Ce)),extensionASTNodes:ve.extensionASTNodes.concat(Ce)}))}function xe(ue){var be;let ve=ue.toConfig(),Ce=(be=l[ve.name])!==null&&be!==void 0?be:[];return new _n.GraphQLInterfaceType(Q(x({},ve),{interfaces:()=>[...ue.getInterfaces().map(K),...kn(Ce)],fields:()=>x(x({},(0,yf.mapValue)(ve.fields,ee)),Qt(Ce)),extensionASTNodes:ve.extensionASTNodes.concat(Ce)}))}function tt(ue){var be;let ve=ue.toConfig(),Ce=(be=l[ve.name])!==null&&be!==void 0?be:[];return new _n.GraphQLUnionType(Q(x({},ve),{types:()=>[...ue.getTypes().map(K),...zt(Ce)],extensionASTNodes:ve.extensionASTNodes.concat(Ce)}))}function ee(ue){return Q(x({},ue),{type:k(ue.type),args:ue.args&&(0,yf.mapValue)(ue.args,Se)})}function Se(ue){return Q(x({},ue),{type:k(ue.type)})}function _t(ue){let be={};for(let Ce of ue){var ve;let vt=(ve=Ce.operationTypes)!==null&&ve!==void 0?ve:[];for(let Y of vt)be[Y.operation]=en(Y.type)}return be}function en(ue){var be;let ve=ue.name.value,Ce=(be=KL[ve])!==null&&be!==void 0?be:I[ve];if(Ce===void 0)throw new Error(`Unknown type: "${ve}".`);return Ce}function tn(ue){return ue.kind===Ui.Kind.LIST_TYPE?new _n.GraphQLList(tn(ue.type)):ue.kind===Ui.Kind.NON_NULL_TYPE?new _n.GraphQLNonNull(tn(ue.type)):en(ue)}function An(ue){var be;return new If.GraphQLDirective({name:ue.name.value,description:(be=ue.description)===null||be===void 0?void 0:be.value,locations:ue.locations.map(({value:ve})=>ve),isRepeatable:ue.repeatable,args:mn(ue.arguments),astNode:ue})}function Qt(ue){let be=Object.create(null);for(let vt of ue){var ve;let Y=(ve=vt.fields)!==null&&ve!==void 0?ve:[];for(let oe of Y){var Ce;be[oe.name.value]={type:tn(oe.type),description:(Ce=oe.description)===null||Ce===void 0?void 0:Ce.value,args:mn(oe.arguments),deprecationReason:AN(oe),astNode:oe}}}return be}function mn(ue){let be=ue!=null?ue:[],ve=Object.create(null);for(let vt of be){var Ce;let Y=tn(vt.type);ve[vt.name.value]={type:Y,description:(Ce=vt.description)===null||Ce===void 0?void 0:Ce.value,defaultValue:(0,jL.valueFromAST)(vt.defaultValue,Y),deprecationReason:AN(vt),astNode:vt}}return ve}function Pr(ue){let be=Object.create(null);for(let vt of ue){var ve;let Y=(ve=vt.fields)!==null&&ve!==void 0?ve:[];for(let oe of Y){var Ce;let qe=tn(oe.type);be[oe.name.value]={type:qe,description:(Ce=oe.description)===null||Ce===void 0?void 0:Ce.value,defaultValue:(0,jL.valueFromAST)(oe.defaultValue,qe),deprecationReason:AN(oe),astNode:oe}}}return be}function Fr(ue){let be=Object.create(null);for(let vt of ue){var ve;let Y=(ve=vt.values)!==null&&ve!==void 0?ve:[];for(let oe of Y){var Ce;be[oe.name.value]={description:(Ce=oe.description)===null||Ce===void 0?void 0:Ce.value,deprecationReason:AN(oe),astNode:oe}}}return be}function kn(ue){return ue.flatMap(be=>{var ve,Ce;return(ve=(Ce=be.interfaces)===null||Ce===void 0?void 0:Ce.map(en))!==null&&ve!==void 0?ve:[]})}function zt(ue){return ue.flatMap(be=>{var ve,Ce;return(ve=(Ce=be.types)===null||Ce===void 0?void 0:Ce.map(en))!==null&&ve!==void 0?ve:[]})}function Rn(ue){var be;let ve=ue.name.value,Ce=(be=l[ve])!==null&&be!==void 0?be:[];switch(ue.kind){case Ui.Kind.OBJECT_TYPE_DEFINITION:{var vt;let nt=[ue,...Ce];return new _n.GraphQLObjectType({name:ve,description:(vt=ue.description)===null||vt===void 0?void 0:vt.value,interfaces:()=>kn(nt),fields:()=>Qt(nt),astNode:ue,extensionASTNodes:Ce})}case Ui.Kind.INTERFACE_TYPE_DEFINITION:{var Y;let nt=[ue,...Ce];return new _n.GraphQLInterfaceType({name:ve,description:(Y=ue.description)===null||Y===void 0?void 0:Y.value,interfaces:()=>kn(nt),fields:()=>Qt(nt),astNode:ue,extensionASTNodes:Ce})}case Ui.Kind.ENUM_TYPE_DEFINITION:{var oe;let nt=[ue,...Ce];return new _n.GraphQLEnumType({name:ve,description:(oe=ue.description)===null||oe===void 0?void 0:oe.value,values:Fr(nt),astNode:ue,extensionASTNodes:Ce})}case Ui.Kind.UNION_TYPE_DEFINITION:{var qe;let nt=[ue,...Ce];return new _n.GraphQLUnionType({name:ve,description:(qe=ue.description)===null||qe===void 0?void 0:qe.value,types:()=>zt(nt),astNode:ue,extensionASTNodes:Ce})}case Ui.Kind.SCALAR_TYPE_DEFINITION:{var Ye;return new _n.GraphQLScalarType({name:ve,description:(Ye=ue.description)===null||Ye===void 0?void 0:Ye.value,specifiedByURL:GL(ue),astNode:ue,extensionASTNodes:Ce})}case Ui.Kind.INPUT_OBJECT_TYPE_DEFINITION:{var Ut;let nt=[ue,...Ce];return new _n.GraphQLInputObjectType({name:ve,description:(Ut=ue.description)===null||Ut===void 0?void 0:Ut.value,fields:()=>Pr(nt),astNode:ue,extensionASTNodes:Ce,isOneOf:aX(ue)})}}}}var KL=(0,nX.keyMap)([...QL.specifiedScalarTypes,...$L.introspectionTypes],e=>e.name);function AN(e){let t=(0,dv.getDirectiveValues)(If.GraphQLDeprecatedDirective,e);return t==null?void 0:t.reason}function GL(e){let t=(0,dv.getDirectiveValues)(If.GraphQLSpecifiedByDirective,e);return t==null?void 0:t.url}function aX(e){return!!(0,dv.getDirectiveValues)(If.GraphQLOneOfDirective,e)}});var HL=w(PN=>{"use strict";m();T();N();Object.defineProperty(PN,"__esModule",{value:!0});PN.buildASTSchema=JL;PN.buildSchema=pX;var sX=Br(),oX=Ft(),uX=il(),cX=Qr(),lX=Xu(),dX=Tl(),fX=fv();function JL(e,t){e!=null&&e.kind===oX.Kind.DOCUMENT||(0,sX.devAssert)(!1,"Must provide valid Document AST."),(t==null?void 0:t.assumeValid)!==!0&&(t==null?void 0:t.assumeValidSDL)!==!0&&(0,dX.assertValidSDL)(e);let n={description:void 0,types:[],directives:[],extensions:Object.create(null),extensionASTNodes:[],assumeValid:!1},r=(0,fX.extendSchemaImpl)(n,e,t);if(r.astNode==null)for(let a of r.types)switch(a.name){case"Query":r.query=a;break;case"Mutation":r.mutation=a;break;case"Subscription":r.subscription=a;break}let i=[...r.directives,...cX.specifiedDirectives.filter(a=>r.directives.every(o=>o.name!==a.name))];return new lX.GraphQLSchema(Q(x({},r),{directives:i}))}function pX(e,t){let n=(0,uX.parse)(e,{noLocation:t==null?void 0:t.noLocation,allowLegacyFragmentVariables:t==null?void 0:t.allowLegacyFragmentVariables});return JL(n,{assumeValidSDL:t==null?void 0:t.assumeValidSDL,assumeValid:t==null?void 0:t.assumeValid})}});var XL=w(mv=>{"use strict";m();T();N();Object.defineProperty(mv,"__esModule",{value:!0});mv.lexicographicSortSchema=IX;var mX=Xt(),NX=Ir(),TX=xd(),zL=qd(),Ur=wt(),EX=Qr(),hX=Fi(),yX=Xu();function IX(e){let t=e.toConfig(),n=(0,TX.keyValMap)(pv(t.types),I=>I.name,y);return new yX.GraphQLSchema(Q(x({},t),{types:Object.values(n),directives:pv(t.directives).map(o),query:a(t.query),mutation:a(t.mutation),subscription:a(t.subscription)}));function r(I){return(0,Ur.isListType)(I)?new Ur.GraphQLList(r(I.ofType)):(0,Ur.isNonNullType)(I)?new Ur.GraphQLNonNull(r(I.ofType)):i(I)}function i(I){return n[I.name]}function a(I){return I&&i(I)}function o(I){let v=I.toConfig();return new EX.GraphQLDirective(Q(x({},v),{locations:WL(v.locations,F=>F),args:c(v.args)}))}function c(I){return FN(I,v=>Q(x({},v),{type:r(v.type)}))}function l(I){return FN(I,v=>Q(x({},v),{type:r(v.type),args:v.args&&c(v.args)}))}function d(I){return FN(I,v=>Q(x({},v),{type:r(v.type)}))}function p(I){return pv(I).map(i)}function y(I){if((0,Ur.isScalarType)(I)||(0,hX.isIntrospectionType)(I))return I;if((0,Ur.isObjectType)(I)){let v=I.toConfig();return new Ur.GraphQLObjectType(Q(x({},v),{interfaces:()=>p(v.interfaces),fields:()=>l(v.fields)}))}if((0,Ur.isInterfaceType)(I)){let v=I.toConfig();return new Ur.GraphQLInterfaceType(Q(x({},v),{interfaces:()=>p(v.interfaces),fields:()=>l(v.fields)}))}if((0,Ur.isUnionType)(I)){let v=I.toConfig();return new Ur.GraphQLUnionType(Q(x({},v),{types:()=>p(v.types)}))}if((0,Ur.isEnumType)(I)){let v=I.toConfig();return new Ur.GraphQLEnumType(Q(x({},v),{values:FN(v.values,F=>F)}))}if((0,Ur.isInputObjectType)(I)){let v=I.toConfig();return new Ur.GraphQLInputObjectType(Q(x({},v),{fields:()=>d(v.fields)}))}(0,NX.invariant)(!1,"Unexpected type: "+(0,mX.inspect)(I))}}function FN(e,t){let n=Object.create(null);for(let r of Object.keys(e).sort(zL.naturalCompare))n[r]=t(e[r]);return n}function pv(e){return WL(e,t=>t.name)}function WL(e,t){return e.slice().sort((n,r)=>{let i=t(n),a=t(r);return(0,zL.naturalCompare)(i,a)})}});var aC=w(gf=>{"use strict";m();T();N();Object.defineProperty(gf,"__esModule",{value:!0});gf.printIntrospectionSchema=bX;gf.printSchema=DX;gf.printType=tC;var gX=Xt(),_X=Ir(),vX=Fd(),Tv=Ft(),wN=li(),hl=wt(),Ev=Qr(),ZL=Fi(),SX=Pa(),OX=Zd();function DX(e){return eC(e,t=>!(0,Ev.isSpecifiedDirective)(t),AX)}function bX(e){return eC(e,Ev.isSpecifiedDirective,ZL.isIntrospectionType)}function AX(e){return!(0,SX.isSpecifiedScalarType)(e)&&!(0,ZL.isIntrospectionType)(e)}function eC(e,t,n){let r=e.getDirectives().filter(t),i=Object.values(e.getTypeMap()).filter(n);return[RX(e),...r.map(a=>kX(a)),...i.map(a=>tC(a))].filter(Boolean).join(` + `}});var eC=F(Av=>{"use strict";m();T();N();Object.defineProperty(Av,"__esModule",{value:!0});Av.getOperationAST=lX;var cX=Lt();function lX(e,t){let n=null;for(let i of e.definitions)if(i.kind===cX.Kind.OPERATION_DEFINITION){var r;if(t==null){if(n)return null;n=i}else if(((r=i.name)===null||r===void 0?void 0:r.value)===t)return i}return n}});var tC=F(Rv=>{"use strict";m();T();N();Object.defineProperty(Rv,"__esModule",{value:!0});Rv.getOperationRootType=dX;var VN=ze();function dX(e,t){if(t.operation==="query"){let n=e.getQueryType();if(!n)throw new VN.GraphQLError("Schema does not define the required query root type.",{nodes:t});return n}if(t.operation==="mutation"){let n=e.getMutationType();if(!n)throw new VN.GraphQLError("Schema is not configured for mutations.",{nodes:t});return n}if(t.operation==="subscription"){let n=e.getSubscriptionType();if(!n)throw new VN.GraphQLError("Schema is not configured for subscriptions.",{nodes:t});return n}throw new VN.GraphQLError("Can only have query, mutation and subscription operations.",{nodes:t})}});var nC=F(Pv=>{"use strict";m();T();N();Object.defineProperty(Pv,"__esModule",{value:!0});Pv.introspectionFromSchema=TX;var pX=Dr(),fX=Nl(),mX=Op(),NX=bv();function TX(e,t){let n=M({specifiedByUrl:!0,directiveIsRepeatable:!0,schemaDescription:!0,inputValueDeprecation:!0,oneOf:!0},t),r=(0,fX.parse)((0,NX.getIntrospectionQuery)(n)),i=(0,mX.executeSync)({schema:e,document:r});return!i.errors&&i.data||(0,pX.invariant)(!1),i.data}});var iC=F(Fv=>{"use strict";m();T();N();Object.defineProperty(Fv,"__esModule",{value:!0});Fv.buildClientSchema=vX;var EX=Vr(),Ei=Wt(),rC=Ca(),KN=zd(),hX=Nl(),hi=Ct(),yX=ei(),Ka=ki(),IX=Ma(),gX=uc(),_X=Ip();function vX(e,t){(0,rC.isObjectLike)(e)&&(0,rC.isObjectLike)(e.__schema)||(0,EX.devAssert)(!1,`Invalid or incomplete introspection result. Ensure that you are passing "data" property of introspection response and no "errors" was returned alongside: ${(0,Ei.inspect)(e)}.`);let n=e.__schema,r=(0,KN.keyValMap)(n.types,X=>X.name,X=>I(X));for(let X of[...IX.specifiedScalarTypes,...Ka.introspectionTypes])r[X.name]&&(r[X.name]=X);let i=n.queryType?f(n.queryType):null,a=n.mutationType?f(n.mutationType):null,o=n.subscriptionType?f(n.subscriptionType):null,c=n.directives?n.directives.map(nt):[];return new gX.GraphQLSchema({description:n.description,query:i,mutation:a,subscription:o,types:Object.values(r),directives:c,assumeValid:t==null?void 0:t.assumeValid});function l(X){if(X.kind===Ka.TypeKind.LIST){let _e=X.ofType;if(!_e)throw new Error("Decorated type deeper than introspection query.");return new hi.GraphQLList(l(_e))}if(X.kind===Ka.TypeKind.NON_NULL){let _e=X.ofType;if(!_e)throw new Error("Decorated type deeper than introspection query.");let vt=l(_e);return new hi.GraphQLNonNull((0,hi.assertNullableType)(vt))}return d(X)}function d(X){let _e=X.name;if(!_e)throw new Error(`Unknown type reference: ${(0,Ei.inspect)(X)}.`);let vt=r[_e];if(!vt)throw new Error(`Invalid or incomplete schema, unknown type: ${_e}. Ensure that a full introspection query is used in order to build a client schema.`);return vt}function f(X){return(0,hi.assertObjectType)(d(X))}function y(X){return(0,hi.assertInterfaceType)(d(X))}function I(X){if(X!=null&&X.name!=null&&X.kind!=null)switch(X.kind){case Ka.TypeKind.SCALAR:return v(X);case Ka.TypeKind.OBJECT:return U(X);case Ka.TypeKind.INTERFACE:return V(X);case Ka.TypeKind.UNION:return Y(X);case Ka.TypeKind.ENUM:return re(X);case Ka.TypeKind.INPUT_OBJECT:return ne(X)}let _e=(0,Ei.inspect)(X);throw new Error(`Invalid or incomplete introspection result. Ensure that a full introspection query is used in order to build a client schema: ${_e}.`)}function v(X){return new hi.GraphQLScalarType({name:X.name,description:X.description,specifiedByURL:X.specifiedByURL})}function w(X){if(X.interfaces===null&&X.kind===Ka.TypeKind.INTERFACE)return[];if(!X.interfaces){let _e=(0,Ei.inspect)(X);throw new Error(`Introspection result missing interfaces: ${_e}.`)}return X.interfaces.map(y)}function U(X){return new hi.GraphQLObjectType({name:X.name,description:X.description,interfaces:()=>w(X),fields:()=>me(X)})}function V(X){return new hi.GraphQLInterfaceType({name:X.name,description:X.description,interfaces:()=>w(X),fields:()=>me(X)})}function Y(X){if(!X.possibleTypes){let _e=(0,Ei.inspect)(X);throw new Error(`Introspection result missing possibleTypes: ${_e}.`)}return new hi.GraphQLUnionType({name:X.name,description:X.description,types:()=>X.possibleTypes.map(f)})}function re(X){if(!X.enumValues){let _e=(0,Ei.inspect)(X);throw new Error(`Introspection result missing enumValues: ${_e}.`)}return new hi.GraphQLEnumType({name:X.name,description:X.description,values:(0,KN.keyValMap)(X.enumValues,_e=>_e.name,_e=>({description:_e.description,deprecationReason:_e.deprecationReason}))})}function ne(X){if(!X.inputFields){let _e=(0,Ei.inspect)(X);throw new Error(`Introspection result missing inputFields: ${_e}.`)}return new hi.GraphQLInputObjectType({name:X.name,description:X.description,fields:()=>Ae(X.inputFields),isOneOf:X.isOneOf})}function me(X){if(!X.fields)throw new Error(`Introspection result missing fields: ${(0,Ei.inspect)(X)}.`);return(0,KN.keyValMap)(X.fields,_e=>_e.name,ue)}function ue(X){let _e=l(X.type);if(!(0,hi.isOutputType)(_e)){let vt=(0,Ei.inspect)(_e);throw new Error(`Introspection must provide output type for fields, but received: ${vt}.`)}if(!X.args){let vt=(0,Ei.inspect)(X);throw new Error(`Introspection result missing field args: ${vt}.`)}return{description:X.description,deprecationReason:X.deprecationReason,type:_e,args:Ae(X.args)}}function Ae(X){return(0,KN.keyValMap)(X,_e=>_e.name,Me)}function Me(X){let _e=l(X.type);if(!(0,hi.isInputType)(_e)){let nn=(0,Ei.inspect)(_e);throw new Error(`Introspection must provide input type for arguments, but received: ${nn}.`)}let vt=X.defaultValue!=null?(0,_X.valueFromAST)((0,hX.parseValue)(X.defaultValue),_e):void 0;return{description:X.description,type:_e,defaultValue:vt,deprecationReason:X.deprecationReason}}function nt(X){if(!X.args){let _e=(0,Ei.inspect)(X);throw new Error(`Introspection result missing directive args: ${_e}.`)}if(!X.locations){let _e=(0,Ei.inspect)(X);throw new Error(`Introspection result missing directive locations: ${_e}.`)}return new yX.GraphQLDirective({name:X.name,description:X.description,isRepeatable:X.isRepeatable,locations:X.locations.slice(),args:Ae(X.args)})}}});var Lv=F($N=>{"use strict";m();T();N();Object.defineProperty($N,"__esModule",{value:!0});$N.extendSchema=RX;$N.extendSchemaImpl=pC;var SX=Vr(),OX=Wt(),DX=Dr(),bX=cu(),Rp=wI(),Vi=Lt(),aC=lc(),On=Ct(),Pp=ei(),lC=ki(),dC=Ma(),sC=uc(),AX=bl(),wv=Ol(),oC=Ip();function RX(e,t,n){(0,sC.assertSchema)(e),t!=null&&t.kind===Vi.Kind.DOCUMENT||(0,SX.devAssert)(!1,"Must provide valid Document AST."),(n==null?void 0:n.assumeValid)!==!0&&(n==null?void 0:n.assumeValidSDL)!==!0&&(0,AX.assertValidSDLExtension)(t,e);let r=e.toConfig(),i=pC(r,t,n);return r===i?e:new sC.GraphQLSchema(i)}function pC(e,t,n){var r,i,a,o;let c=[],l=Object.create(null),d=[],f,y=[];for(let ae of t.definitions)if(ae.kind===Vi.Kind.SCHEMA_DEFINITION)f=ae;else if(ae.kind===Vi.Kind.SCHEMA_EXTENSION)y.push(ae);else if((0,aC.isTypeDefinitionNode)(ae))c.push(ae);else if((0,aC.isTypeExtensionNode)(ae)){let De=ae.name.value,Ie=l[De];l[De]=Ie?Ie.concat([ae]):[ae]}else ae.kind===Vi.Kind.DIRECTIVE_DEFINITION&&d.push(ae);if(Object.keys(l).length===0&&c.length===0&&d.length===0&&y.length===0&&f==null)return e;let I=Object.create(null);for(let ae of e.types)I[ae.name]=re(ae);for(let ae of c){var v;let De=ae.name.value;I[De]=(v=uC[De])!==null&&v!==void 0?v:wn(ae)}let w=M(M({query:e.query&&V(e.query),mutation:e.mutation&&V(e.mutation),subscription:e.subscription&&V(e.subscription)},f&&vt([f])),vt(y));return $(M({description:(r=f)===null||r===void 0||(i=r.description)===null||i===void 0?void 0:i.value},w),{types:Object.values(I),directives:[...e.directives.map(Y),...d.map(Fn)],extensions:Object.create(null),astNode:(a=f)!==null&&a!==void 0?a:e.astNode,extensionASTNodes:e.extensionASTNodes.concat(y),assumeValid:(o=n==null?void 0:n.assumeValid)!==null&&o!==void 0?o:!1});function U(ae){return(0,On.isListType)(ae)?new On.GraphQLList(U(ae.ofType)):(0,On.isNonNullType)(ae)?new On.GraphQLNonNull(U(ae.ofType)):V(ae)}function V(ae){return I[ae.name]}function Y(ae){let De=ae.toConfig();return new Pp.GraphQLDirective($(M({},De),{args:(0,Rp.mapValue)(De.args,_e)}))}function re(ae){if((0,lC.isIntrospectionType)(ae)||(0,dC.isSpecifiedScalarType)(ae))return ae;if((0,On.isScalarType)(ae))return ue(ae);if((0,On.isObjectType)(ae))return Ae(ae);if((0,On.isInterfaceType)(ae))return Me(ae);if((0,On.isUnionType)(ae))return nt(ae);if((0,On.isEnumType)(ae))return me(ae);if((0,On.isInputObjectType)(ae))return ne(ae);(0,DX.invariant)(!1,"Unexpected type: "+(0,OX.inspect)(ae))}function ne(ae){var De;let Ie=ae.toConfig(),Le=(De=l[Ie.name])!==null&&De!==void 0?De:[];return new On.GraphQLInputObjectType($(M({},Ie),{fields:()=>M(M({},(0,Rp.mapValue)(Ie.fields,St=>$(M({},St),{type:U(St.type)}))),kr(Le)),extensionASTNodes:Ie.extensionASTNodes.concat(Le)}))}function me(ae){var De;let Ie=ae.toConfig(),Le=(De=l[ae.name])!==null&&De!==void 0?De:[];return new On.GraphQLEnumType($(M({},Ie),{values:M(M({},Ie.values),Mr(Le)),extensionASTNodes:Ie.extensionASTNodes.concat(Le)}))}function ue(ae){var De;let Ie=ae.toConfig(),Le=(De=l[Ie.name])!==null&&De!==void 0?De:[],St=Ie.specifiedByURL;for(let ie of Le){var Q;St=(Q=cC(ie))!==null&&Q!==void 0?Q:St}return new On.GraphQLScalarType($(M({},Ie),{specifiedByURL:St,extensionASTNodes:Ie.extensionASTNodes.concat(Le)}))}function Ae(ae){var De;let Ie=ae.toConfig(),Le=(De=l[Ie.name])!==null&&De!==void 0?De:[];return new On.GraphQLObjectType($(M({},Ie),{interfaces:()=>[...ae.getInterfaces().map(V),...jn(Le)],fields:()=>M(M({},(0,Rp.mapValue)(Ie.fields,X)),$t(Le)),extensionASTNodes:Ie.extensionASTNodes.concat(Le)}))}function Me(ae){var De;let Ie=ae.toConfig(),Le=(De=l[Ie.name])!==null&&De!==void 0?De:[];return new On.GraphQLInterfaceType($(M({},Ie),{interfaces:()=>[...ae.getInterfaces().map(V),...jn(Le)],fields:()=>M(M({},(0,Rp.mapValue)(Ie.fields,X)),$t(Le)),extensionASTNodes:Ie.extensionASTNodes.concat(Le)}))}function nt(ae){var De;let Ie=ae.toConfig(),Le=(De=l[Ie.name])!==null&&De!==void 0?De:[];return new On.GraphQLUnionType($(M({},Ie),{types:()=>[...ae.getTypes().map(V),...Ht(Le)],extensionASTNodes:Ie.extensionASTNodes.concat(Le)}))}function X(ae){return $(M({},ae),{type:U(ae.type),args:ae.args&&(0,Rp.mapValue)(ae.args,_e)})}function _e(ae){return $(M({},ae),{type:U(ae.type)})}function vt(ae){let De={};for(let Le of ae){var Ie;let St=(Ie=Le.operationTypes)!==null&&Ie!==void 0?Ie:[];for(let Q of St)De[Q.operation]=nn(Q.type)}return De}function nn(ae){var De;let Ie=ae.name.value,Le=(De=uC[Ie])!==null&&De!==void 0?De:I[Ie];if(Le===void 0)throw new Error(`Unknown type: "${Ie}".`);return Le}function rn(ae){return ae.kind===Vi.Kind.LIST_TYPE?new On.GraphQLList(rn(ae.type)):ae.kind===Vi.Kind.NON_NULL_TYPE?new On.GraphQLNonNull(rn(ae.type)):nn(ae)}function Fn(ae){var De;return new Pp.GraphQLDirective({name:ae.name.value,description:(De=ae.description)===null||De===void 0?void 0:De.value,locations:ae.locations.map(({value:Ie})=>Ie),isRepeatable:ae.repeatable,args:En(ae.arguments),astNode:ae})}function $t(ae){let De=Object.create(null);for(let St of ae){var Ie;let Q=(Ie=St.fields)!==null&&Ie!==void 0?Ie:[];for(let ie of Q){var Le;De[ie.name.value]={type:rn(ie.type),description:(Le=ie.description)===null||Le===void 0?void 0:Le.value,args:En(ie.arguments),deprecationReason:GN(ie),astNode:ie}}}return De}function En(ae){let De=ae!=null?ae:[],Ie=Object.create(null);for(let St of De){var Le;let Q=rn(St.type);Ie[St.name.value]={type:Q,description:(Le=St.description)===null||Le===void 0?void 0:Le.value,defaultValue:(0,oC.valueFromAST)(St.defaultValue,Q),deprecationReason:GN(St),astNode:St}}return Ie}function kr(ae){let De=Object.create(null);for(let St of ae){var Ie;let Q=(Ie=St.fields)!==null&&Ie!==void 0?Ie:[];for(let ie of Q){var Le;let xe=rn(ie.type);De[ie.name.value]={type:xe,description:(Le=ie.description)===null||Le===void 0?void 0:Le.value,defaultValue:(0,oC.valueFromAST)(ie.defaultValue,xe),deprecationReason:GN(ie),astNode:ie}}}return De}function Mr(ae){let De=Object.create(null);for(let St of ae){var Ie;let Q=(Ie=St.values)!==null&&Ie!==void 0?Ie:[];for(let ie of Q){var Le;De[ie.name.value]={description:(Le=ie.description)===null||Le===void 0?void 0:Le.value,deprecationReason:GN(ie),astNode:ie}}}return De}function jn(ae){return ae.flatMap(De=>{var Ie,Le;return(Ie=(Le=De.interfaces)===null||Le===void 0?void 0:Le.map(nn))!==null&&Ie!==void 0?Ie:[]})}function Ht(ae){return ae.flatMap(De=>{var Ie,Le;return(Ie=(Le=De.types)===null||Le===void 0?void 0:Le.map(nn))!==null&&Ie!==void 0?Ie:[]})}function wn(ae){var De;let Ie=ae.name.value,Le=(De=l[Ie])!==null&&De!==void 0?De:[];switch(ae.kind){case Vi.Kind.OBJECT_TYPE_DEFINITION:{var St;let rt=[ae,...Le];return new On.GraphQLObjectType({name:Ie,description:(St=ae.description)===null||St===void 0?void 0:St.value,interfaces:()=>jn(rt),fields:()=>$t(rt),astNode:ae,extensionASTNodes:Le})}case Vi.Kind.INTERFACE_TYPE_DEFINITION:{var Q;let rt=[ae,...Le];return new On.GraphQLInterfaceType({name:Ie,description:(Q=ae.description)===null||Q===void 0?void 0:Q.value,interfaces:()=>jn(rt),fields:()=>$t(rt),astNode:ae,extensionASTNodes:Le})}case Vi.Kind.ENUM_TYPE_DEFINITION:{var ie;let rt=[ae,...Le];return new On.GraphQLEnumType({name:Ie,description:(ie=ae.description)===null||ie===void 0?void 0:ie.value,values:Mr(rt),astNode:ae,extensionASTNodes:Le})}case Vi.Kind.UNION_TYPE_DEFINITION:{var xe;let rt=[ae,...Le];return new On.GraphQLUnionType({name:Ie,description:(xe=ae.description)===null||xe===void 0?void 0:xe.value,types:()=>Ht(rt),astNode:ae,extensionASTNodes:Le})}case Vi.Kind.SCALAR_TYPE_DEFINITION:{var Ye;return new On.GraphQLScalarType({name:Ie,description:(Ye=ae.description)===null||Ye===void 0?void 0:Ye.value,specifiedByURL:cC(ae),astNode:ae,extensionASTNodes:Le})}case Vi.Kind.INPUT_OBJECT_TYPE_DEFINITION:{var Ut;let rt=[ae,...Le];return new On.GraphQLInputObjectType({name:Ie,description:(Ut=ae.description)===null||Ut===void 0?void 0:Ut.value,fields:()=>kr(rt),astNode:ae,extensionASTNodes:Le,isOneOf:PX(ae)})}}}}var uC=(0,bX.keyMap)([...dC.specifiedScalarTypes,...lC.introspectionTypes],e=>e.name);function GN(e){let t=(0,wv.getDirectiveValues)(Pp.GraphQLDeprecatedDirective,e);return t==null?void 0:t.reason}function cC(e){let t=(0,wv.getDirectiveValues)(Pp.GraphQLSpecifiedByDirective,e);return t==null?void 0:t.url}function PX(e){return!!(0,wv.getDirectiveValues)(Pp.GraphQLOneOfDirective,e)}});var mC=F(QN=>{"use strict";m();T();N();Object.defineProperty(QN,"__esModule",{value:!0});QN.buildASTSchema=fC;QN.buildSchema=MX;var FX=Vr(),wX=Lt(),LX=Nl(),CX=ei(),BX=uc(),UX=bl(),kX=Lv();function fC(e,t){e!=null&&e.kind===wX.Kind.DOCUMENT||(0,FX.devAssert)(!1,"Must provide valid Document AST."),(t==null?void 0:t.assumeValid)!==!0&&(t==null?void 0:t.assumeValidSDL)!==!0&&(0,UX.assertValidSDL)(e);let n={description:void 0,types:[],directives:[],extensions:Object.create(null),extensionASTNodes:[],assumeValid:!1},r=(0,kX.extendSchemaImpl)(n,e,t);if(r.astNode==null)for(let a of r.types)switch(a.name){case"Query":r.query=a;break;case"Mutation":r.mutation=a;break;case"Subscription":r.subscription=a;break}let i=[...r.directives,...CX.specifiedDirectives.filter(a=>r.directives.every(o=>o.name!==a.name))];return new BX.GraphQLSchema($(M({},r),{directives:i}))}function MX(e,t){let n=(0,LX.parse)(e,{noLocation:t==null?void 0:t.noLocation,allowLegacyFragmentVariables:t==null?void 0:t.allowLegacyFragmentVariables});return fC(n,{assumeValidSDL:t==null?void 0:t.assumeValidSDL,assumeValid:t==null?void 0:t.assumeValid})}});var EC=F(Bv=>{"use strict";m();T();N();Object.defineProperty(Bv,"__esModule",{value:!0});Bv.lexicographicSortSchema=$X;var xX=Wt(),qX=Dr(),jX=zd(),NC=Wd(),Kr=Ct(),VX=ei(),KX=ki(),GX=uc();function $X(e){let t=e.toConfig(),n=(0,jX.keyValMap)(Cv(t.types),I=>I.name,y);return new GX.GraphQLSchema($(M({},t),{types:Object.values(n),directives:Cv(t.directives).map(o),query:a(t.query),mutation:a(t.mutation),subscription:a(t.subscription)}));function r(I){return(0,Kr.isListType)(I)?new Kr.GraphQLList(r(I.ofType)):(0,Kr.isNonNullType)(I)?new Kr.GraphQLNonNull(r(I.ofType)):i(I)}function i(I){return n[I.name]}function a(I){return I&&i(I)}function o(I){let v=I.toConfig();return new VX.GraphQLDirective($(M({},v),{locations:TC(v.locations,w=>w),args:c(v.args)}))}function c(I){return YN(I,v=>$(M({},v),{type:r(v.type)}))}function l(I){return YN(I,v=>$(M({},v),{type:r(v.type),args:v.args&&c(v.args)}))}function d(I){return YN(I,v=>$(M({},v),{type:r(v.type)}))}function f(I){return Cv(I).map(i)}function y(I){if((0,Kr.isScalarType)(I)||(0,KX.isIntrospectionType)(I))return I;if((0,Kr.isObjectType)(I)){let v=I.toConfig();return new Kr.GraphQLObjectType($(M({},v),{interfaces:()=>f(v.interfaces),fields:()=>l(v.fields)}))}if((0,Kr.isInterfaceType)(I)){let v=I.toConfig();return new Kr.GraphQLInterfaceType($(M({},v),{interfaces:()=>f(v.interfaces),fields:()=>l(v.fields)}))}if((0,Kr.isUnionType)(I)){let v=I.toConfig();return new Kr.GraphQLUnionType($(M({},v),{types:()=>f(v.types)}))}if((0,Kr.isEnumType)(I)){let v=I.toConfig();return new Kr.GraphQLEnumType($(M({},v),{values:YN(v.values,w=>w)}))}if((0,Kr.isInputObjectType)(I)){let v=I.toConfig();return new Kr.GraphQLInputObjectType($(M({},v),{fields:()=>d(v.fields)}))}(0,qX.invariant)(!1,"Unexpected type: "+(0,xX.inspect)(I))}}function YN(e,t){let n=Object.create(null);for(let r of Object.keys(e).sort(NC.naturalCompare))n[r]=t(e[r]);return n}function Cv(e){return TC(e,t=>t.name)}function TC(e,t){return e.slice().sort((n,r)=>{let i=t(n),a=t(r);return(0,NC.naturalCompare)(i,a)})}});var SC=F(Fp=>{"use strict";m();T();N();Object.defineProperty(Fp,"__esModule",{value:!0});Fp.printIntrospectionSchema=XX;Fp.printSchema=WX;Fp.printType=IC;var QX=Wt(),YX=Dr(),JX=Vd(),kv=Lt(),JN=Ti(),Rl=Ct(),Mv=ei(),hC=ki(),HX=Ma(),zX=lp();function WX(e){return yC(e,t=>!(0,Mv.isSpecifiedDirective)(t),ZX)}function XX(e){return yC(e,Mv.isSpecifiedDirective,hC.isIntrospectionType)}function ZX(e){return!(0,HX.isSpecifiedScalarType)(e)&&!(0,hC.isIntrospectionType)(e)}function yC(e,t,n){let r=e.getDirectives().filter(t),i=Object.values(e.getTypeMap()).filter(n);return[e9(e),...r.map(a=>u9(a)),...i.map(a=>IC(a))].filter(Boolean).join(` -`)}function RX(e){if(e.description==null&&PX(e))return;let t=[],n=e.getQueryType();n&&t.push(` query: ${n.name}`);let r=e.getMutationType();r&&t.push(` mutation: ${r.name}`);let i=e.getSubscriptionType();return i&&t.push(` subscription: ${i.name}`),ki(e)+`schema { +`)}function e9(e){if(e.description==null&&t9(e))return;let t=[],n=e.getQueryType();n&&t.push(` query: ${n.name}`);let r=e.getMutationType();r&&t.push(` mutation: ${r.name}`);let i=e.getSubscriptionType();return i&&t.push(` subscription: ${i.name}`),Ki(e)+`schema { ${t.join(` `)} -}`}function PX(e){let t=e.getQueryType();if(t&&t.name!=="Query")return!1;let n=e.getMutationType();if(n&&n.name!=="Mutation")return!1;let r=e.getSubscriptionType();return!(r&&r.name!=="Subscription")}function tC(e){if((0,hl.isScalarType)(e))return FX(e);if((0,hl.isObjectType)(e))return wX(e);if((0,hl.isInterfaceType)(e))return LX(e);if((0,hl.isUnionType)(e))return CX(e);if((0,hl.isEnumType)(e))return BX(e);if((0,hl.isInputObjectType)(e))return UX(e);(0,_X.invariant)(!1,"Unexpected type: "+(0,gX.inspect)(e))}function FX(e){return ki(e)+`scalar ${e.name}`+MX(e)}function nC(e){let t=e.getInterfaces();return t.length?" implements "+t.map(n=>n.name).join(" & "):""}function wX(e){return ki(e)+`type ${e.name}`+nC(e)+rC(e)}function LX(e){return ki(e)+`interface ${e.name}`+nC(e)+rC(e)}function CX(e){let t=e.getTypes(),n=t.length?" = "+t.join(" | "):"";return ki(e)+"union "+e.name+n}function BX(e){let t=e.getValues().map((n,r)=>ki(n," ",!r)+" "+n.name+yv(n.deprecationReason));return ki(e)+`enum ${e.name}`+hv(t)}function UX(e){let t=Object.values(e.getFields()).map((n,r)=>ki(n," ",!r)+" "+Nv(n));return ki(e)+`input ${e.name}`+(e.isOneOf?" @oneOf":"")+hv(t)}function rC(e){let t=Object.values(e.getFields()).map((n,r)=>ki(n," ",!r)+" "+n.name+iC(n.args," ")+": "+String(n.type)+yv(n.deprecationReason));return hv(t)}function hv(e){return e.length!==0?` { +}`}function t9(e){let t=e.getQueryType();if(t&&t.name!=="Query")return!1;let n=e.getMutationType();if(n&&n.name!=="Mutation")return!1;let r=e.getSubscriptionType();return!(r&&r.name!=="Subscription")}function IC(e){if((0,Rl.isScalarType)(e))return n9(e);if((0,Rl.isObjectType)(e))return r9(e);if((0,Rl.isInterfaceType)(e))return i9(e);if((0,Rl.isUnionType)(e))return a9(e);if((0,Rl.isEnumType)(e))return s9(e);if((0,Rl.isInputObjectType)(e))return o9(e);(0,YX.invariant)(!1,"Unexpected type: "+(0,QX.inspect)(e))}function n9(e){return Ki(e)+`scalar ${e.name}`+c9(e)}function gC(e){let t=e.getInterfaces();return t.length?" implements "+t.map(n=>n.name).join(" & "):""}function r9(e){return Ki(e)+`type ${e.name}`+gC(e)+_C(e)}function i9(e){return Ki(e)+`interface ${e.name}`+gC(e)+_C(e)}function a9(e){let t=e.getTypes(),n=t.length?" = "+t.join(" | "):"";return Ki(e)+"union "+e.name+n}function s9(e){let t=e.getValues().map((n,r)=>Ki(n," ",!r)+" "+n.name+qv(n.deprecationReason));return Ki(e)+`enum ${e.name}`+xv(t)}function o9(e){let t=Object.values(e.getFields()).map((n,r)=>Ki(n," ",!r)+" "+Uv(n));return Ki(e)+`input ${e.name}`+(e.isOneOf?" @oneOf":"")+xv(t)}function _C(e){let t=Object.values(e.getFields()).map((n,r)=>Ki(n," ",!r)+" "+n.name+vC(n.args," ")+": "+String(n.type)+qv(n.deprecationReason));return xv(t)}function xv(e){return e.length!==0?` { `+e.join(` `)+` -}`:""}function iC(e,t=""){return e.length===0?"":e.every(n=>!n.description)?"("+e.map(Nv).join(", ")+")":`( -`+e.map((n,r)=>ki(n," "+t,!r)+" "+t+Nv(n)).join(` +}`:""}function vC(e,t=""){return e.length===0?"":e.every(n=>!n.description)?"("+e.map(Uv).join(", ")+")":`( +`+e.map((n,r)=>Ki(n," "+t,!r)+" "+t+Uv(n)).join(` `)+` -`+t+")"}function Nv(e){let t=(0,OX.astFromValue)(e.defaultValue,e.type),n=e.name+": "+String(e.type);return t&&(n+=` = ${(0,wN.print)(t)}`),n+yv(e.deprecationReason)}function kX(e){return ki(e)+"directive @"+e.name+iC(e.args)+(e.isRepeatable?" repeatable":"")+" on "+e.locations.join(" | ")}function yv(e){return e==null?"":e!==Ev.DEFAULT_DEPRECATION_REASON?` @deprecated(reason: ${(0,wN.print)({kind:Tv.Kind.STRING,value:e})})`:" @deprecated"}function MX(e){return e.specifiedByURL==null?"":` @specifiedBy(url: ${(0,wN.print)({kind:Tv.Kind.STRING,value:e.specifiedByURL})})`}function ki(e,t="",n=!0){let{description:r}=e;if(r==null)return"";let i=(0,wN.print)({kind:Tv.Kind.STRING,value:r,block:(0,vX.isPrintableAsBlockString)(r)});return(t&&!n?` +`+t+")"}function Uv(e){let t=(0,zX.astFromValue)(e.defaultValue,e.type),n=e.name+": "+String(e.type);return t&&(n+=` = ${(0,JN.print)(t)}`),n+qv(e.deprecationReason)}function u9(e){return Ki(e)+"directive @"+e.name+vC(e.args)+(e.isRepeatable?" repeatable":"")+" on "+e.locations.join(" | ")}function qv(e){return e==null?"":e!==Mv.DEFAULT_DEPRECATION_REASON?` @deprecated(reason: ${(0,JN.print)({kind:kv.Kind.STRING,value:e})})`:" @deprecated"}function c9(e){return e.specifiedByURL==null?"":` @specifiedBy(url: ${(0,JN.print)({kind:kv.Kind.STRING,value:e.specifiedByURL})})`}function Ki(e,t="",n=!0){let{description:r}=e;if(r==null)return"";let i=(0,JN.print)({kind:kv.Kind.STRING,value:r,block:(0,JX.isPrintableAsBlockString)(r)});return(t&&!n?` `+t:t)+i.replace(/\n/g,` `+t)+` -`}});var sC=w(Iv=>{"use strict";m();T();N();Object.defineProperty(Iv,"__esModule",{value:!0});Iv.concatAST=qX;var xX=Ft();function qX(e){let t=[];for(let n of e)t.push(...n.definitions);return{kind:xX.Kind.DOCUMENT,definitions:t}}});var cC=w(gv=>{"use strict";m();T();N();Object.defineProperty(gv,"__esModule",{value:!0});gv.separateOperations=jX;var LN=Ft(),VX=Qu();function jX(e){let t=[],n=Object.create(null);for(let i of e.definitions)switch(i.kind){case LN.Kind.OPERATION_DEFINITION:t.push(i);break;case LN.Kind.FRAGMENT_DEFINITION:n[i.name.value]=oC(i.selectionSet);break;default:}let r=Object.create(null);for(let i of t){let a=new Set;for(let c of oC(i.selectionSet))uC(a,n,c);let o=i.name?i.name.value:"";r[o]={kind:LN.Kind.DOCUMENT,definitions:e.definitions.filter(c=>c===i||c.kind===LN.Kind.FRAGMENT_DEFINITION&&a.has(c.name.value))}}return r}function uC(e,t,n){if(!e.has(n)){e.add(n);let r=t[n];if(r!==void 0)for(let i of r)uC(e,t,i)}}function oC(e){let t=[];return(0,VX.visit)(e,{FragmentSpread(n){t.push(n.name.value)}}),t}});var fC=w(vv=>{"use strict";m();T();N();Object.defineProperty(vv,"__esModule",{value:!0});vv.stripIgnoredCharacters=GX;var KX=Fd(),lC=Sm(),dC=Am(),_v=Ld();function GX(e){let t=(0,dC.isSource)(e)?e:new dC.Source(e),n=t.body,r=new lC.Lexer(t),i="",a=!1;for(;r.advance().kind!==_v.TokenKind.EOF;){let o=r.token,c=o.kind,l=!(0,lC.isPunctuatorTokenKind)(o.kind);a&&(l||o.kind===_v.TokenKind.SPREAD)&&(i+=" ");let d=n.slice(o.start,o.end);c===_v.TokenKind.BLOCK_STRING?i+=(0,KX.printBlockString)(o.value,{minimize:!0}):i+=d,a=l}return i}});var mC=w(CN=>{"use strict";m();T();N();Object.defineProperty(CN,"__esModule",{value:!0});CN.assertValidName=JX;CN.isValidNameError=pC;var $X=Br(),QX=ze(),YX=Vd();function JX(e){let t=pC(e);if(t)throw t;return e}function pC(e){if(typeof e=="string"||(0,$X.devAssert)(!1,"Expected name to be a string."),e.startsWith("__"))return new QX.GraphQLError(`Name "${e}" must not begin with "__", which is reserved by GraphQL introspection.`);try{(0,YX.assertName)(e)}catch(t){return t}}});var _C=w(Ua=>{"use strict";m();T();N();Object.defineProperty(Ua,"__esModule",{value:!0});Ua.DangerousChangeType=Ua.BreakingChangeType=void 0;Ua.findBreakingChanges=e9;Ua.findDangerousChanges=t9;var HX=Xt(),IC=Ir(),NC=tu(),zX=li(),jt=wt(),WX=Pa(),XX=Zd(),ZX=Dg(),Cn;Ua.BreakingChangeType=Cn;(function(e){e.TYPE_REMOVED="TYPE_REMOVED",e.TYPE_CHANGED_KIND="TYPE_CHANGED_KIND",e.TYPE_REMOVED_FROM_UNION="TYPE_REMOVED_FROM_UNION",e.VALUE_REMOVED_FROM_ENUM="VALUE_REMOVED_FROM_ENUM",e.REQUIRED_INPUT_FIELD_ADDED="REQUIRED_INPUT_FIELD_ADDED",e.IMPLEMENTED_INTERFACE_REMOVED="IMPLEMENTED_INTERFACE_REMOVED",e.FIELD_REMOVED="FIELD_REMOVED",e.FIELD_CHANGED_KIND="FIELD_CHANGED_KIND",e.REQUIRED_ARG_ADDED="REQUIRED_ARG_ADDED",e.ARG_REMOVED="ARG_REMOVED",e.ARG_CHANGED_KIND="ARG_CHANGED_KIND",e.DIRECTIVE_REMOVED="DIRECTIVE_REMOVED",e.DIRECTIVE_ARG_REMOVED="DIRECTIVE_ARG_REMOVED",e.REQUIRED_DIRECTIVE_ARG_ADDED="REQUIRED_DIRECTIVE_ARG_ADDED",e.DIRECTIVE_REPEATABLE_REMOVED="DIRECTIVE_REPEATABLE_REMOVED",e.DIRECTIVE_LOCATION_REMOVED="DIRECTIVE_LOCATION_REMOVED"})(Cn||(Ua.BreakingChangeType=Cn={}));var ua;Ua.DangerousChangeType=ua;(function(e){e.VALUE_ADDED_TO_ENUM="VALUE_ADDED_TO_ENUM",e.TYPE_ADDED_TO_UNION="TYPE_ADDED_TO_UNION",e.OPTIONAL_INPUT_FIELD_ADDED="OPTIONAL_INPUT_FIELD_ADDED",e.OPTIONAL_ARG_ADDED="OPTIONAL_ARG_ADDED",e.IMPLEMENTED_INTERFACE_ADDED="IMPLEMENTED_INTERFACE_ADDED",e.ARG_DEFAULT_VALUE_CHANGE="ARG_DEFAULT_VALUE_CHANGE"})(ua||(Ua.DangerousChangeType=ua={}));function e9(e,t){return gC(e,t).filter(n=>n.type in Cn)}function t9(e,t){return gC(e,t).filter(n=>n.type in ua)}function gC(e,t){return[...r9(e,t),...n9(e,t)]}function n9(e,t){let n=[],r=_s(e.getDirectives(),t.getDirectives());for(let i of r.removed)n.push({type:Cn.DIRECTIVE_REMOVED,description:`${i.name} was removed.`});for(let[i,a]of r.persisted){let o=_s(i.args,a.args);for(let c of o.added)(0,jt.isRequiredArgument)(c)&&n.push({type:Cn.REQUIRED_DIRECTIVE_ARG_ADDED,description:`A required arg ${c.name} on directive ${i.name} was added.`});for(let c of o.removed)n.push({type:Cn.DIRECTIVE_ARG_REMOVED,description:`${c.name} was removed from ${i.name}.`});i.isRepeatable&&!a.isRepeatable&&n.push({type:Cn.DIRECTIVE_REPEATABLE_REMOVED,description:`Repeatable flag was removed from ${i.name}.`});for(let c of i.locations)a.locations.includes(c)||n.push({type:Cn.DIRECTIVE_LOCATION_REMOVED,description:`${c} was removed from ${i.name}.`})}return n}function r9(e,t){let n=[],r=_s(Object.values(e.getTypeMap()),Object.values(t.getTypeMap()));for(let i of r.removed)n.push({type:Cn.TYPE_REMOVED,description:(0,WX.isSpecifiedScalarType)(i)?`Standard scalar ${i.name} was removed because it is not referenced anymore.`:`${i.name} was removed.`});for(let[i,a]of r.persisted)(0,jt.isEnumType)(i)&&(0,jt.isEnumType)(a)?n.push(...s9(i,a)):(0,jt.isUnionType)(i)&&(0,jt.isUnionType)(a)?n.push(...a9(i,a)):(0,jt.isInputObjectType)(i)&&(0,jt.isInputObjectType)(a)?n.push(...i9(i,a)):(0,jt.isObjectType)(i)&&(0,jt.isObjectType)(a)?n.push(...EC(i,a),...TC(i,a)):(0,jt.isInterfaceType)(i)&&(0,jt.isInterfaceType)(a)?n.push(...EC(i,a),...TC(i,a)):i.constructor!==a.constructor&&n.push({type:Cn.TYPE_CHANGED_KIND,description:`${i.name} changed from ${hC(i)} to ${hC(a)}.`});return n}function i9(e,t){let n=[],r=_s(Object.values(e.getFields()),Object.values(t.getFields()));for(let i of r.added)(0,jt.isRequiredInputField)(i)?n.push({type:Cn.REQUIRED_INPUT_FIELD_ADDED,description:`A required field ${i.name} on input type ${e.name} was added.`}):n.push({type:ua.OPTIONAL_INPUT_FIELD_ADDED,description:`An optional field ${i.name} on input type ${e.name} was added.`});for(let i of r.removed)n.push({type:Cn.FIELD_REMOVED,description:`${e.name}.${i.name} was removed.`});for(let[i,a]of r.persisted)vf(i.type,a.type)||n.push({type:Cn.FIELD_CHANGED_KIND,description:`${e.name}.${i.name} changed type from ${String(i.type)} to ${String(a.type)}.`});return n}function a9(e,t){let n=[],r=_s(e.getTypes(),t.getTypes());for(let i of r.added)n.push({type:ua.TYPE_ADDED_TO_UNION,description:`${i.name} was added to union type ${e.name}.`});for(let i of r.removed)n.push({type:Cn.TYPE_REMOVED_FROM_UNION,description:`${i.name} was removed from union type ${e.name}.`});return n}function s9(e,t){let n=[],r=_s(e.getValues(),t.getValues());for(let i of r.added)n.push({type:ua.VALUE_ADDED_TO_ENUM,description:`${i.name} was added to enum type ${e.name}.`});for(let i of r.removed)n.push({type:Cn.VALUE_REMOVED_FROM_ENUM,description:`${i.name} was removed from enum type ${e.name}.`});return n}function TC(e,t){let n=[],r=_s(e.getInterfaces(),t.getInterfaces());for(let i of r.added)n.push({type:ua.IMPLEMENTED_INTERFACE_ADDED,description:`${i.name} added to interfaces implemented by ${e.name}.`});for(let i of r.removed)n.push({type:Cn.IMPLEMENTED_INTERFACE_REMOVED,description:`${e.name} no longer implements interface ${i.name}.`});return n}function EC(e,t){let n=[],r=_s(Object.values(e.getFields()),Object.values(t.getFields()));for(let i of r.removed)n.push({type:Cn.FIELD_REMOVED,description:`${e.name}.${i.name} was removed.`});for(let[i,a]of r.persisted)n.push(...o9(e,i,a)),_f(i.type,a.type)||n.push({type:Cn.FIELD_CHANGED_KIND,description:`${e.name}.${i.name} changed type from ${String(i.type)} to ${String(a.type)}.`});return n}function o9(e,t,n){let r=[],i=_s(t.args,n.args);for(let a of i.removed)r.push({type:Cn.ARG_REMOVED,description:`${e.name}.${t.name} arg ${a.name} was removed.`});for(let[a,o]of i.persisted)if(!vf(a.type,o.type))r.push({type:Cn.ARG_CHANGED_KIND,description:`${e.name}.${t.name} arg ${a.name} has changed type from ${String(a.type)} to ${String(o.type)}.`});else if(a.defaultValue!==void 0)if(o.defaultValue===void 0)r.push({type:ua.ARG_DEFAULT_VALUE_CHANGE,description:`${e.name}.${t.name} arg ${a.name} defaultValue was removed.`});else{let l=yC(a.defaultValue,a.type),d=yC(o.defaultValue,o.type);l!==d&&r.push({type:ua.ARG_DEFAULT_VALUE_CHANGE,description:`${e.name}.${t.name} arg ${a.name} has changed defaultValue from ${l} to ${d}.`})}for(let a of i.added)(0,jt.isRequiredArgument)(a)?r.push({type:Cn.REQUIRED_ARG_ADDED,description:`A required arg ${a.name} on ${e.name}.${t.name} was added.`}):r.push({type:ua.OPTIONAL_ARG_ADDED,description:`An optional arg ${a.name} on ${e.name}.${t.name} was added.`});return r}function _f(e,t){return(0,jt.isListType)(e)?(0,jt.isListType)(t)&&_f(e.ofType,t.ofType)||(0,jt.isNonNullType)(t)&&_f(e,t.ofType):(0,jt.isNonNullType)(e)?(0,jt.isNonNullType)(t)&&_f(e.ofType,t.ofType):(0,jt.isNamedType)(t)&&e.name===t.name||(0,jt.isNonNullType)(t)&&_f(e,t.ofType)}function vf(e,t){return(0,jt.isListType)(e)?(0,jt.isListType)(t)&&vf(e.ofType,t.ofType):(0,jt.isNonNullType)(e)?(0,jt.isNonNullType)(t)&&vf(e.ofType,t.ofType)||!(0,jt.isNonNullType)(t)&&vf(e.ofType,t):(0,jt.isNamedType)(t)&&e.name===t.name}function hC(e){if((0,jt.isScalarType)(e))return"a Scalar type";if((0,jt.isObjectType)(e))return"an Object type";if((0,jt.isInterfaceType)(e))return"an Interface type";if((0,jt.isUnionType)(e))return"a Union type";if((0,jt.isEnumType)(e))return"an Enum type";if((0,jt.isInputObjectType)(e))return"an Input type";(0,IC.invariant)(!1,"Unexpected type: "+(0,HX.inspect)(e))}function yC(e,t){let n=(0,XX.astFromValue)(e,t);return n!=null||(0,IC.invariant)(!1),(0,zX.print)((0,ZX.sortValueNode)(n))}function _s(e,t){let n=[],r=[],i=[],a=(0,NC.keyMap)(e,({name:c})=>c),o=(0,NC.keyMap)(t,({name:c})=>c);for(let c of e){let l=o[c.name];l===void 0?r.push(c):i.push([c,l])}for(let c of t)a[c.name]===void 0&&n.push(c);return{added:n,persisted:i,removed:r}}});var DC=w(Mt=>{"use strict";m();T();N();Object.defineProperty(Mt,"__esModule",{value:!0});Object.defineProperty(Mt,"BreakingChangeType",{enumerable:!0,get:function(){return BN.BreakingChangeType}});Object.defineProperty(Mt,"DangerousChangeType",{enumerable:!0,get:function(){return BN.DangerousChangeType}});Object.defineProperty(Mt,"TypeInfo",{enumerable:!0,get:function(){return SC.TypeInfo}});Object.defineProperty(Mt,"assertValidName",{enumerable:!0,get:function(){return OC.assertValidName}});Object.defineProperty(Mt,"astFromValue",{enumerable:!0,get:function(){return h9.astFromValue}});Object.defineProperty(Mt,"buildASTSchema",{enumerable:!0,get:function(){return vC.buildASTSchema}});Object.defineProperty(Mt,"buildClientSchema",{enumerable:!0,get:function(){return f9.buildClientSchema}});Object.defineProperty(Mt,"buildSchema",{enumerable:!0,get:function(){return vC.buildSchema}});Object.defineProperty(Mt,"coerceInputValue",{enumerable:!0,get:function(){return y9.coerceInputValue}});Object.defineProperty(Mt,"concatAST",{enumerable:!0,get:function(){return I9.concatAST}});Object.defineProperty(Mt,"doTypesOverlap",{enumerable:!0,get:function(){return Ov.doTypesOverlap}});Object.defineProperty(Mt,"extendSchema",{enumerable:!0,get:function(){return p9.extendSchema}});Object.defineProperty(Mt,"findBreakingChanges",{enumerable:!0,get:function(){return BN.findBreakingChanges}});Object.defineProperty(Mt,"findDangerousChanges",{enumerable:!0,get:function(){return BN.findDangerousChanges}});Object.defineProperty(Mt,"getIntrospectionQuery",{enumerable:!0,get:function(){return u9.getIntrospectionQuery}});Object.defineProperty(Mt,"getOperationAST",{enumerable:!0,get:function(){return c9.getOperationAST}});Object.defineProperty(Mt,"getOperationRootType",{enumerable:!0,get:function(){return l9.getOperationRootType}});Object.defineProperty(Mt,"introspectionFromSchema",{enumerable:!0,get:function(){return d9.introspectionFromSchema}});Object.defineProperty(Mt,"isEqualType",{enumerable:!0,get:function(){return Ov.isEqualType}});Object.defineProperty(Mt,"isTypeSubTypeOf",{enumerable:!0,get:function(){return Ov.isTypeSubTypeOf}});Object.defineProperty(Mt,"isValidNameError",{enumerable:!0,get:function(){return OC.isValidNameError}});Object.defineProperty(Mt,"lexicographicSortSchema",{enumerable:!0,get:function(){return m9.lexicographicSortSchema}});Object.defineProperty(Mt,"printIntrospectionSchema",{enumerable:!0,get:function(){return Sv.printIntrospectionSchema}});Object.defineProperty(Mt,"printSchema",{enumerable:!0,get:function(){return Sv.printSchema}});Object.defineProperty(Mt,"printType",{enumerable:!0,get:function(){return Sv.printType}});Object.defineProperty(Mt,"separateOperations",{enumerable:!0,get:function(){return g9.separateOperations}});Object.defineProperty(Mt,"stripIgnoredCharacters",{enumerable:!0,get:function(){return _9.stripIgnoredCharacters}});Object.defineProperty(Mt,"typeFromAST",{enumerable:!0,get:function(){return N9.typeFromAST}});Object.defineProperty(Mt,"valueFromAST",{enumerable:!0,get:function(){return T9.valueFromAST}});Object.defineProperty(Mt,"valueFromASTUntyped",{enumerable:!0,get:function(){return E9.valueFromASTUntyped}});Object.defineProperty(Mt,"visitWithTypeInfo",{enumerable:!0,get:function(){return SC.visitWithTypeInfo}});var u9=sv(),c9=BL(),l9=UL(),d9=kL(),f9=xL(),vC=HL(),p9=fv(),m9=XL(),Sv=aC(),N9=Fa(),T9=lf(),E9=_I(),h9=Zd(),SC=nN(),y9=Qg(),I9=sC(),g9=cC(),_9=fC(),Ov=Qd(),OC=mC(),BN=_C()});var De=w(V=>{"use strict";m();T();N();Object.defineProperty(V,"__esModule",{value:!0});Object.defineProperty(V,"BREAK",{enumerable:!0,get:function(){return Jt.BREAK}});Object.defineProperty(V,"BreakingChangeType",{enumerable:!0,get:function(){return Ht.BreakingChangeType}});Object.defineProperty(V,"DEFAULT_DEPRECATION_REASON",{enumerable:!0,get:function(){return ge.DEFAULT_DEPRECATION_REASON}});Object.defineProperty(V,"DangerousChangeType",{enumerable:!0,get:function(){return Ht.DangerousChangeType}});Object.defineProperty(V,"DirectiveLocation",{enumerable:!0,get:function(){return Jt.DirectiveLocation}});Object.defineProperty(V,"ExecutableDefinitionsRule",{enumerable:!0,get:function(){return Tt.ExecutableDefinitionsRule}});Object.defineProperty(V,"FieldsOnCorrectTypeRule",{enumerable:!0,get:function(){return Tt.FieldsOnCorrectTypeRule}});Object.defineProperty(V,"FragmentsOnCompositeTypesRule",{enumerable:!0,get:function(){return Tt.FragmentsOnCompositeTypesRule}});Object.defineProperty(V,"GRAPHQL_MAX_INT",{enumerable:!0,get:function(){return ge.GRAPHQL_MAX_INT}});Object.defineProperty(V,"GRAPHQL_MIN_INT",{enumerable:!0,get:function(){return ge.GRAPHQL_MIN_INT}});Object.defineProperty(V,"GraphQLBoolean",{enumerable:!0,get:function(){return ge.GraphQLBoolean}});Object.defineProperty(V,"GraphQLDeprecatedDirective",{enumerable:!0,get:function(){return ge.GraphQLDeprecatedDirective}});Object.defineProperty(V,"GraphQLDirective",{enumerable:!0,get:function(){return ge.GraphQLDirective}});Object.defineProperty(V,"GraphQLEnumType",{enumerable:!0,get:function(){return ge.GraphQLEnumType}});Object.defineProperty(V,"GraphQLError",{enumerable:!0,get:function(){return Sf.GraphQLError}});Object.defineProperty(V,"GraphQLFloat",{enumerable:!0,get:function(){return ge.GraphQLFloat}});Object.defineProperty(V,"GraphQLID",{enumerable:!0,get:function(){return ge.GraphQLID}});Object.defineProperty(V,"GraphQLIncludeDirective",{enumerable:!0,get:function(){return ge.GraphQLIncludeDirective}});Object.defineProperty(V,"GraphQLInputObjectType",{enumerable:!0,get:function(){return ge.GraphQLInputObjectType}});Object.defineProperty(V,"GraphQLInt",{enumerable:!0,get:function(){return ge.GraphQLInt}});Object.defineProperty(V,"GraphQLInterfaceType",{enumerable:!0,get:function(){return ge.GraphQLInterfaceType}});Object.defineProperty(V,"GraphQLList",{enumerable:!0,get:function(){return ge.GraphQLList}});Object.defineProperty(V,"GraphQLNonNull",{enumerable:!0,get:function(){return ge.GraphQLNonNull}});Object.defineProperty(V,"GraphQLObjectType",{enumerable:!0,get:function(){return ge.GraphQLObjectType}});Object.defineProperty(V,"GraphQLOneOfDirective",{enumerable:!0,get:function(){return ge.GraphQLOneOfDirective}});Object.defineProperty(V,"GraphQLScalarType",{enumerable:!0,get:function(){return ge.GraphQLScalarType}});Object.defineProperty(V,"GraphQLSchema",{enumerable:!0,get:function(){return ge.GraphQLSchema}});Object.defineProperty(V,"GraphQLSkipDirective",{enumerable:!0,get:function(){return ge.GraphQLSkipDirective}});Object.defineProperty(V,"GraphQLSpecifiedByDirective",{enumerable:!0,get:function(){return ge.GraphQLSpecifiedByDirective}});Object.defineProperty(V,"GraphQLString",{enumerable:!0,get:function(){return ge.GraphQLString}});Object.defineProperty(V,"GraphQLUnionType",{enumerable:!0,get:function(){return ge.GraphQLUnionType}});Object.defineProperty(V,"Kind",{enumerable:!0,get:function(){return Jt.Kind}});Object.defineProperty(V,"KnownArgumentNamesRule",{enumerable:!0,get:function(){return Tt.KnownArgumentNamesRule}});Object.defineProperty(V,"KnownDirectivesRule",{enumerable:!0,get:function(){return Tt.KnownDirectivesRule}});Object.defineProperty(V,"KnownFragmentNamesRule",{enumerable:!0,get:function(){return Tt.KnownFragmentNamesRule}});Object.defineProperty(V,"KnownTypeNamesRule",{enumerable:!0,get:function(){return Tt.KnownTypeNamesRule}});Object.defineProperty(V,"Lexer",{enumerable:!0,get:function(){return Jt.Lexer}});Object.defineProperty(V,"Location",{enumerable:!0,get:function(){return Jt.Location}});Object.defineProperty(V,"LoneAnonymousOperationRule",{enumerable:!0,get:function(){return Tt.LoneAnonymousOperationRule}});Object.defineProperty(V,"LoneSchemaDefinitionRule",{enumerable:!0,get:function(){return Tt.LoneSchemaDefinitionRule}});Object.defineProperty(V,"MaxIntrospectionDepthRule",{enumerable:!0,get:function(){return Tt.MaxIntrospectionDepthRule}});Object.defineProperty(V,"NoDeprecatedCustomRule",{enumerable:!0,get:function(){return Tt.NoDeprecatedCustomRule}});Object.defineProperty(V,"NoFragmentCyclesRule",{enumerable:!0,get:function(){return Tt.NoFragmentCyclesRule}});Object.defineProperty(V,"NoSchemaIntrospectionCustomRule",{enumerable:!0,get:function(){return Tt.NoSchemaIntrospectionCustomRule}});Object.defineProperty(V,"NoUndefinedVariablesRule",{enumerable:!0,get:function(){return Tt.NoUndefinedVariablesRule}});Object.defineProperty(V,"NoUnusedFragmentsRule",{enumerable:!0,get:function(){return Tt.NoUnusedFragmentsRule}});Object.defineProperty(V,"NoUnusedVariablesRule",{enumerable:!0,get:function(){return Tt.NoUnusedVariablesRule}});Object.defineProperty(V,"OperationTypeNode",{enumerable:!0,get:function(){return Jt.OperationTypeNode}});Object.defineProperty(V,"OverlappingFieldsCanBeMergedRule",{enumerable:!0,get:function(){return Tt.OverlappingFieldsCanBeMergedRule}});Object.defineProperty(V,"PossibleFragmentSpreadsRule",{enumerable:!0,get:function(){return Tt.PossibleFragmentSpreadsRule}});Object.defineProperty(V,"PossibleTypeExtensionsRule",{enumerable:!0,get:function(){return Tt.PossibleTypeExtensionsRule}});Object.defineProperty(V,"ProvidedRequiredArgumentsRule",{enumerable:!0,get:function(){return Tt.ProvidedRequiredArgumentsRule}});Object.defineProperty(V,"ScalarLeafsRule",{enumerable:!0,get:function(){return Tt.ScalarLeafsRule}});Object.defineProperty(V,"SchemaMetaFieldDef",{enumerable:!0,get:function(){return ge.SchemaMetaFieldDef}});Object.defineProperty(V,"SingleFieldSubscriptionsRule",{enumerable:!0,get:function(){return Tt.SingleFieldSubscriptionsRule}});Object.defineProperty(V,"Source",{enumerable:!0,get:function(){return Jt.Source}});Object.defineProperty(V,"Token",{enumerable:!0,get:function(){return Jt.Token}});Object.defineProperty(V,"TokenKind",{enumerable:!0,get:function(){return Jt.TokenKind}});Object.defineProperty(V,"TypeInfo",{enumerable:!0,get:function(){return Ht.TypeInfo}});Object.defineProperty(V,"TypeKind",{enumerable:!0,get:function(){return ge.TypeKind}});Object.defineProperty(V,"TypeMetaFieldDef",{enumerable:!0,get:function(){return ge.TypeMetaFieldDef}});Object.defineProperty(V,"TypeNameMetaFieldDef",{enumerable:!0,get:function(){return ge.TypeNameMetaFieldDef}});Object.defineProperty(V,"UniqueArgumentDefinitionNamesRule",{enumerable:!0,get:function(){return Tt.UniqueArgumentDefinitionNamesRule}});Object.defineProperty(V,"UniqueArgumentNamesRule",{enumerable:!0,get:function(){return Tt.UniqueArgumentNamesRule}});Object.defineProperty(V,"UniqueDirectiveNamesRule",{enumerable:!0,get:function(){return Tt.UniqueDirectiveNamesRule}});Object.defineProperty(V,"UniqueDirectivesPerLocationRule",{enumerable:!0,get:function(){return Tt.UniqueDirectivesPerLocationRule}});Object.defineProperty(V,"UniqueEnumValueNamesRule",{enumerable:!0,get:function(){return Tt.UniqueEnumValueNamesRule}});Object.defineProperty(V,"UniqueFieldDefinitionNamesRule",{enumerable:!0,get:function(){return Tt.UniqueFieldDefinitionNamesRule}});Object.defineProperty(V,"UniqueFragmentNamesRule",{enumerable:!0,get:function(){return Tt.UniqueFragmentNamesRule}});Object.defineProperty(V,"UniqueInputFieldNamesRule",{enumerable:!0,get:function(){return Tt.UniqueInputFieldNamesRule}});Object.defineProperty(V,"UniqueOperationNamesRule",{enumerable:!0,get:function(){return Tt.UniqueOperationNamesRule}});Object.defineProperty(V,"UniqueOperationTypesRule",{enumerable:!0,get:function(){return Tt.UniqueOperationTypesRule}});Object.defineProperty(V,"UniqueTypeNamesRule",{enumerable:!0,get:function(){return Tt.UniqueTypeNamesRule}});Object.defineProperty(V,"UniqueVariableNamesRule",{enumerable:!0,get:function(){return Tt.UniqueVariableNamesRule}});Object.defineProperty(V,"ValidationContext",{enumerable:!0,get:function(){return Tt.ValidationContext}});Object.defineProperty(V,"ValuesOfCorrectTypeRule",{enumerable:!0,get:function(){return Tt.ValuesOfCorrectTypeRule}});Object.defineProperty(V,"VariablesAreInputTypesRule",{enumerable:!0,get:function(){return Tt.VariablesAreInputTypesRule}});Object.defineProperty(V,"VariablesInAllowedPositionRule",{enumerable:!0,get:function(){return Tt.VariablesInAllowedPositionRule}});Object.defineProperty(V,"__Directive",{enumerable:!0,get:function(){return ge.__Directive}});Object.defineProperty(V,"__DirectiveLocation",{enumerable:!0,get:function(){return ge.__DirectiveLocation}});Object.defineProperty(V,"__EnumValue",{enumerable:!0,get:function(){return ge.__EnumValue}});Object.defineProperty(V,"__Field",{enumerable:!0,get:function(){return ge.__Field}});Object.defineProperty(V,"__InputValue",{enumerable:!0,get:function(){return ge.__InputValue}});Object.defineProperty(V,"__Schema",{enumerable:!0,get:function(){return ge.__Schema}});Object.defineProperty(V,"__Type",{enumerable:!0,get:function(){return ge.__Type}});Object.defineProperty(V,"__TypeKind",{enumerable:!0,get:function(){return ge.__TypeKind}});Object.defineProperty(V,"assertAbstractType",{enumerable:!0,get:function(){return ge.assertAbstractType}});Object.defineProperty(V,"assertCompositeType",{enumerable:!0,get:function(){return ge.assertCompositeType}});Object.defineProperty(V,"assertDirective",{enumerable:!0,get:function(){return ge.assertDirective}});Object.defineProperty(V,"assertEnumType",{enumerable:!0,get:function(){return ge.assertEnumType}});Object.defineProperty(V,"assertEnumValueName",{enumerable:!0,get:function(){return ge.assertEnumValueName}});Object.defineProperty(V,"assertInputObjectType",{enumerable:!0,get:function(){return ge.assertInputObjectType}});Object.defineProperty(V,"assertInputType",{enumerable:!0,get:function(){return ge.assertInputType}});Object.defineProperty(V,"assertInterfaceType",{enumerable:!0,get:function(){return ge.assertInterfaceType}});Object.defineProperty(V,"assertLeafType",{enumerable:!0,get:function(){return ge.assertLeafType}});Object.defineProperty(V,"assertListType",{enumerable:!0,get:function(){return ge.assertListType}});Object.defineProperty(V,"assertName",{enumerable:!0,get:function(){return ge.assertName}});Object.defineProperty(V,"assertNamedType",{enumerable:!0,get:function(){return ge.assertNamedType}});Object.defineProperty(V,"assertNonNullType",{enumerable:!0,get:function(){return ge.assertNonNullType}});Object.defineProperty(V,"assertNullableType",{enumerable:!0,get:function(){return ge.assertNullableType}});Object.defineProperty(V,"assertObjectType",{enumerable:!0,get:function(){return ge.assertObjectType}});Object.defineProperty(V,"assertOutputType",{enumerable:!0,get:function(){return ge.assertOutputType}});Object.defineProperty(V,"assertScalarType",{enumerable:!0,get:function(){return ge.assertScalarType}});Object.defineProperty(V,"assertSchema",{enumerable:!0,get:function(){return ge.assertSchema}});Object.defineProperty(V,"assertType",{enumerable:!0,get:function(){return ge.assertType}});Object.defineProperty(V,"assertUnionType",{enumerable:!0,get:function(){return ge.assertUnionType}});Object.defineProperty(V,"assertValidName",{enumerable:!0,get:function(){return Ht.assertValidName}});Object.defineProperty(V,"assertValidSchema",{enumerable:!0,get:function(){return ge.assertValidSchema}});Object.defineProperty(V,"assertWrappingType",{enumerable:!0,get:function(){return ge.assertWrappingType}});Object.defineProperty(V,"astFromValue",{enumerable:!0,get:function(){return Ht.astFromValue}});Object.defineProperty(V,"buildASTSchema",{enumerable:!0,get:function(){return Ht.buildASTSchema}});Object.defineProperty(V,"buildClientSchema",{enumerable:!0,get:function(){return Ht.buildClientSchema}});Object.defineProperty(V,"buildSchema",{enumerable:!0,get:function(){return Ht.buildSchema}});Object.defineProperty(V,"coerceInputValue",{enumerable:!0,get:function(){return Ht.coerceInputValue}});Object.defineProperty(V,"concatAST",{enumerable:!0,get:function(){return Ht.concatAST}});Object.defineProperty(V,"createSourceEventStream",{enumerable:!0,get:function(){return ka.createSourceEventStream}});Object.defineProperty(V,"defaultFieldResolver",{enumerable:!0,get:function(){return ka.defaultFieldResolver}});Object.defineProperty(V,"defaultTypeResolver",{enumerable:!0,get:function(){return ka.defaultTypeResolver}});Object.defineProperty(V,"doTypesOverlap",{enumerable:!0,get:function(){return Ht.doTypesOverlap}});Object.defineProperty(V,"execute",{enumerable:!0,get:function(){return ka.execute}});Object.defineProperty(V,"executeSync",{enumerable:!0,get:function(){return ka.executeSync}});Object.defineProperty(V,"extendSchema",{enumerable:!0,get:function(){return Ht.extendSchema}});Object.defineProperty(V,"findBreakingChanges",{enumerable:!0,get:function(){return Ht.findBreakingChanges}});Object.defineProperty(V,"findDangerousChanges",{enumerable:!0,get:function(){return Ht.findDangerousChanges}});Object.defineProperty(V,"formatError",{enumerable:!0,get:function(){return Sf.formatError}});Object.defineProperty(V,"getArgumentValues",{enumerable:!0,get:function(){return ka.getArgumentValues}});Object.defineProperty(V,"getDirectiveValues",{enumerable:!0,get:function(){return ka.getDirectiveValues}});Object.defineProperty(V,"getEnterLeaveForKind",{enumerable:!0,get:function(){return Jt.getEnterLeaveForKind}});Object.defineProperty(V,"getIntrospectionQuery",{enumerable:!0,get:function(){return Ht.getIntrospectionQuery}});Object.defineProperty(V,"getLocation",{enumerable:!0,get:function(){return Jt.getLocation}});Object.defineProperty(V,"getNamedType",{enumerable:!0,get:function(){return ge.getNamedType}});Object.defineProperty(V,"getNullableType",{enumerable:!0,get:function(){return ge.getNullableType}});Object.defineProperty(V,"getOperationAST",{enumerable:!0,get:function(){return Ht.getOperationAST}});Object.defineProperty(V,"getOperationRootType",{enumerable:!0,get:function(){return Ht.getOperationRootType}});Object.defineProperty(V,"getVariableValues",{enumerable:!0,get:function(){return ka.getVariableValues}});Object.defineProperty(V,"getVisitFn",{enumerable:!0,get:function(){return Jt.getVisitFn}});Object.defineProperty(V,"graphql",{enumerable:!0,get:function(){return AC.graphql}});Object.defineProperty(V,"graphqlSync",{enumerable:!0,get:function(){return AC.graphqlSync}});Object.defineProperty(V,"introspectionFromSchema",{enumerable:!0,get:function(){return Ht.introspectionFromSchema}});Object.defineProperty(V,"introspectionTypes",{enumerable:!0,get:function(){return ge.introspectionTypes}});Object.defineProperty(V,"isAbstractType",{enumerable:!0,get:function(){return ge.isAbstractType}});Object.defineProperty(V,"isCompositeType",{enumerable:!0,get:function(){return ge.isCompositeType}});Object.defineProperty(V,"isConstValueNode",{enumerable:!0,get:function(){return Jt.isConstValueNode}});Object.defineProperty(V,"isDefinitionNode",{enumerable:!0,get:function(){return Jt.isDefinitionNode}});Object.defineProperty(V,"isDirective",{enumerable:!0,get:function(){return ge.isDirective}});Object.defineProperty(V,"isEnumType",{enumerable:!0,get:function(){return ge.isEnumType}});Object.defineProperty(V,"isEqualType",{enumerable:!0,get:function(){return Ht.isEqualType}});Object.defineProperty(V,"isExecutableDefinitionNode",{enumerable:!0,get:function(){return Jt.isExecutableDefinitionNode}});Object.defineProperty(V,"isInputObjectType",{enumerable:!0,get:function(){return ge.isInputObjectType}});Object.defineProperty(V,"isInputType",{enumerable:!0,get:function(){return ge.isInputType}});Object.defineProperty(V,"isInterfaceType",{enumerable:!0,get:function(){return ge.isInterfaceType}});Object.defineProperty(V,"isIntrospectionType",{enumerable:!0,get:function(){return ge.isIntrospectionType}});Object.defineProperty(V,"isLeafType",{enumerable:!0,get:function(){return ge.isLeafType}});Object.defineProperty(V,"isListType",{enumerable:!0,get:function(){return ge.isListType}});Object.defineProperty(V,"isNamedType",{enumerable:!0,get:function(){return ge.isNamedType}});Object.defineProperty(V,"isNonNullType",{enumerable:!0,get:function(){return ge.isNonNullType}});Object.defineProperty(V,"isNullableType",{enumerable:!0,get:function(){return ge.isNullableType}});Object.defineProperty(V,"isObjectType",{enumerable:!0,get:function(){return ge.isObjectType}});Object.defineProperty(V,"isOutputType",{enumerable:!0,get:function(){return ge.isOutputType}});Object.defineProperty(V,"isRequiredArgument",{enumerable:!0,get:function(){return ge.isRequiredArgument}});Object.defineProperty(V,"isRequiredInputField",{enumerable:!0,get:function(){return ge.isRequiredInputField}});Object.defineProperty(V,"isScalarType",{enumerable:!0,get:function(){return ge.isScalarType}});Object.defineProperty(V,"isSchema",{enumerable:!0,get:function(){return ge.isSchema}});Object.defineProperty(V,"isSelectionNode",{enumerable:!0,get:function(){return Jt.isSelectionNode}});Object.defineProperty(V,"isSpecifiedDirective",{enumerable:!0,get:function(){return ge.isSpecifiedDirective}});Object.defineProperty(V,"isSpecifiedScalarType",{enumerable:!0,get:function(){return ge.isSpecifiedScalarType}});Object.defineProperty(V,"isType",{enumerable:!0,get:function(){return ge.isType}});Object.defineProperty(V,"isTypeDefinitionNode",{enumerable:!0,get:function(){return Jt.isTypeDefinitionNode}});Object.defineProperty(V,"isTypeExtensionNode",{enumerable:!0,get:function(){return Jt.isTypeExtensionNode}});Object.defineProperty(V,"isTypeNode",{enumerable:!0,get:function(){return Jt.isTypeNode}});Object.defineProperty(V,"isTypeSubTypeOf",{enumerable:!0,get:function(){return Ht.isTypeSubTypeOf}});Object.defineProperty(V,"isTypeSystemDefinitionNode",{enumerable:!0,get:function(){return Jt.isTypeSystemDefinitionNode}});Object.defineProperty(V,"isTypeSystemExtensionNode",{enumerable:!0,get:function(){return Jt.isTypeSystemExtensionNode}});Object.defineProperty(V,"isUnionType",{enumerable:!0,get:function(){return ge.isUnionType}});Object.defineProperty(V,"isValidNameError",{enumerable:!0,get:function(){return Ht.isValidNameError}});Object.defineProperty(V,"isValueNode",{enumerable:!0,get:function(){return Jt.isValueNode}});Object.defineProperty(V,"isWrappingType",{enumerable:!0,get:function(){return ge.isWrappingType}});Object.defineProperty(V,"lexicographicSortSchema",{enumerable:!0,get:function(){return Ht.lexicographicSortSchema}});Object.defineProperty(V,"locatedError",{enumerable:!0,get:function(){return Sf.locatedError}});Object.defineProperty(V,"parse",{enumerable:!0,get:function(){return Jt.parse}});Object.defineProperty(V,"parseConstValue",{enumerable:!0,get:function(){return Jt.parseConstValue}});Object.defineProperty(V,"parseType",{enumerable:!0,get:function(){return Jt.parseType}});Object.defineProperty(V,"parseValue",{enumerable:!0,get:function(){return Jt.parseValue}});Object.defineProperty(V,"print",{enumerable:!0,get:function(){return Jt.print}});Object.defineProperty(V,"printError",{enumerable:!0,get:function(){return Sf.printError}});Object.defineProperty(V,"printIntrospectionSchema",{enumerable:!0,get:function(){return Ht.printIntrospectionSchema}});Object.defineProperty(V,"printLocation",{enumerable:!0,get:function(){return Jt.printLocation}});Object.defineProperty(V,"printSchema",{enumerable:!0,get:function(){return Ht.printSchema}});Object.defineProperty(V,"printSourceLocation",{enumerable:!0,get:function(){return Jt.printSourceLocation}});Object.defineProperty(V,"printType",{enumerable:!0,get:function(){return Ht.printType}});Object.defineProperty(V,"recommendedRules",{enumerable:!0,get:function(){return Tt.recommendedRules}});Object.defineProperty(V,"resolveObjMapThunk",{enumerable:!0,get:function(){return ge.resolveObjMapThunk}});Object.defineProperty(V,"resolveReadonlyArrayThunk",{enumerable:!0,get:function(){return ge.resolveReadonlyArrayThunk}});Object.defineProperty(V,"responsePathAsArray",{enumerable:!0,get:function(){return ka.responsePathAsArray}});Object.defineProperty(V,"separateOperations",{enumerable:!0,get:function(){return Ht.separateOperations}});Object.defineProperty(V,"specifiedDirectives",{enumerable:!0,get:function(){return ge.specifiedDirectives}});Object.defineProperty(V,"specifiedRules",{enumerable:!0,get:function(){return Tt.specifiedRules}});Object.defineProperty(V,"specifiedScalarTypes",{enumerable:!0,get:function(){return ge.specifiedScalarTypes}});Object.defineProperty(V,"stripIgnoredCharacters",{enumerable:!0,get:function(){return Ht.stripIgnoredCharacters}});Object.defineProperty(V,"subscribe",{enumerable:!0,get:function(){return ka.subscribe}});Object.defineProperty(V,"syntaxError",{enumerable:!0,get:function(){return Sf.syntaxError}});Object.defineProperty(V,"typeFromAST",{enumerable:!0,get:function(){return Ht.typeFromAST}});Object.defineProperty(V,"validate",{enumerable:!0,get:function(){return Tt.validate}});Object.defineProperty(V,"validateSchema",{enumerable:!0,get:function(){return ge.validateSchema}});Object.defineProperty(V,"valueFromAST",{enumerable:!0,get:function(){return Ht.valueFromAST}});Object.defineProperty(V,"valueFromASTUntyped",{enumerable:!0,get:function(){return Ht.valueFromASTUntyped}});Object.defineProperty(V,"version",{enumerable:!0,get:function(){return bC.version}});Object.defineProperty(V,"versionInfo",{enumerable:!0,get:function(){return bC.versionInfo}});Object.defineProperty(V,"visit",{enumerable:!0,get:function(){return Jt.visit}});Object.defineProperty(V,"visitInParallel",{enumerable:!0,get:function(){return Jt.visitInParallel}});Object.defineProperty(V,"visitWithTypeInfo",{enumerable:!0,get:function(){return Ht.visitWithTypeInfo}});var bC=_P(),AC=TL(),ge=yL(),Jt=gL(),ka=RL(),Tt=LL(),Sf=CL(),Ht=DC()});var vr=w(A=>{"use strict";m();T();N();Object.defineProperty(A,"__esModule",{value:!0});A.FIELDS=A.FIELD_SET_SCALAR=A.FIELD_UPPER=A.FIELD_PATH=A.FIELD=A.EXTENSIONS=A.EXTENDS=A.EXTERNAL=A.EXECUTION=A.ENUM_VALUE_UPPER=A.ENUM_VALUE=A.ENUM_UPPER=A.ENUM=A.ENTITY_UNION=A.ENTITIES_FIELD=A.ENTITIES=A.EDFS_REDIS_SUBSCRIBE=A.EDFS_REDIS_PUBLISH=A.EDFS_NATS_STREAM_CONFIGURATION=A.EDFS_PUBLISH_RESULT=A.EDFS_NATS_SUBSCRIBE=A.EDFS_NATS_REQUEST=A.EDFS_NATS_PUBLISH=A.EDFS_KAFKA_SUBSCRIBE=A.EDFS_KAFKA_PUBLISH=A.DIRECTIVE_DEFINITION=A.DESCRIPTION_OVERRIDE=A.DEPRECATED_DEFAULT_ARGUMENT_VALUE=A.DEPRECATED=A.DEFAULT_SUBSCRIPTION=A.DEFAULT_QUERY=A.DEFAULT_MUTATION=A.DEFAULT_EDFS_PROVIDER_ID=A.DEFAULT=A.CONSUMER_NAME=A.CONSUMER_INACTIVE_THRESHOLD=A.CONFIGURE_CHILD_DESCRIPTIONS=A.CONFIGURE_DESCRIPTION=A.CONDITION=A.COMPOSE_DIRECTIVE=A.CHANNELS=A.CHANNEL=A.BOOLEAN_SCALAR=A.BOOLEAN=A.ARGUMENT_DEFINITION_UPPER=A.AUTHENTICATED=A.ARGUMENT=A.ANY_SCALAR=A.AND_UPPER=A.AS=void 0;A.OPERATION_TO_DEFAULT=A.ONE_OF=A.NULL=A.NOT_UPPER=A.NON_NULLABLE_STRING=A.NON_NULLABLE_INT=A.NON_NULLABLE_BOOLEAN=A.NON_NULLABLE_EDFS_PUBLISH_EVENT_RESULT=A.NAME=A.NOT_APPLICABLE=A.PROVIDER_TYPE_REDIS=A.PROVIDER_TYPE_NATS=A.PROVIDER_TYPE_KAFKA=A.PROPAGATE=A.MUTATION_UPPER=A.MUTATION=A.NUMBER=A.LITERAL_NEW_LINE=A.LITERAL_SPACE=A.LIST=A.LINK_PURPOSE=A.LINK_IMPORT=A.LINK=A.LEVELS=A.LEFT_PARENTHESIS=A.KEY=A.INTERFACE_OBJECT=A.INTERFACE_UPPER=A.INTERFACE=A.INT_SCALAR=A.INPUT_VALUE=A.INPUT_OBJECT_UPPER=A.INPUT_OBJECT=A.INPUT_FIELD_DEFINITION_UPPER=A.INPUT_FIELD=A.INPUT=A.INLINE_FRAGMENT_UPPER=A.INLINE_FRAGMENT=A.INACCESSIBLE=A.IN_UPPER=A.IMPORT=A.ID_SCALAR=A.HYPHEN_JOIN=A.FROM=A.FRAGMENT_SPREAD_UPPER=A.FRAGMENT_DEFINITION_UPPER=A.FOR=A.FLOAT_SCALAR=A.FIRST_ORDINAL=A.FIELD_DEFINITION_UPPER=void 0;A.TOPICS=A.TOPIC=A.TAG=A.SUCCESS=A.SUBSCRIPTION_UPPER=A.SUBSCRIBE=A.SUBSCRIPTION_FILTER_VALUE=A.SUBSCRIPTION_FILTER_CONDITION=A.SUBSCRIPTION_FILTER=A.SUBSCRIPTION_FIELD_CONDITION=A.SUBSCRIPTION=A.SUBJECTS=A.SUBJECT=A.STRING_SCALAR=A.STRING=A.STREAM_NAME=A.STREAM_CONFIGURATION=A.SPECIFIED_BY=A.SHAREABLE=A.SERVICE_FIELD=A.SERVICE_OBJECT=A.SEMANTIC_NON_NULL=A.SELECTION_REPRESENTATION=A.SECURITY=A.SCOPE_SCALAR=A.SCOPES=A.SCHEMA_UPPER=A.SCHEMA=A.SCALAR_UPPER=A.SCALAR=A.RESOLVABLE=A.REQUIRES_SCOPES=A.REQUIRES=A.REQUIRE_FETCH_REASONS=A.REQUEST=A.REASON=A.QUOTATION_JOIN=A.QUERY_UPPER=A.QUERY=A.PUBLISH=A.PROVIDES=A.PROVIDER_ID=A.PERIOD=A.PARENT_EXTENSION_DATA_MAP=A.PARENT_DEFINITION_DATA_MAP=A.PARENT_DEFINITION_DATA=A.OVERRIDE=A.OR_UPPER=A.OBJECT_UPPER=A.OBJECT=void 0;A.NON_REPEATABLE_PERSISTED_DIRECTIVES=A.OUTPUT_NODE_KINDS=A.INPUT_NODE_KINDS=A.IGNORED_FIELDS=A.INHERITABLE_DIRECTIVE_NAMES=A.PERSISTED_CLIENT_DIRECTIVES=A.AUTHORIZATION_DIRECTIVES=A.ROOT_TYPE_NAMES=A.EXECUTABLE_DIRECTIVE_LOCATIONS=A.VARIABLE_DEFINITION_UPPER=A.VALUES=A.URL_LOWER=A.UNION_UPPER=A.UNION=void 0;var cu=De();A.AS="as";A.AND_UPPER="AND";A.ANY_SCALAR="_Any";A.ARGUMENT="argument";A.AUTHENTICATED="authenticated";A.ARGUMENT_DEFINITION_UPPER="ARGUMENT_DEFINITION";A.BOOLEAN="boolean";A.BOOLEAN_SCALAR="Boolean";A.CHANNEL="channel";A.CHANNELS="channels";A.COMPOSE_DIRECTIVE="composeDirective";A.CONDITION="condition";A.CONFIGURE_DESCRIPTION="openfed__configureDescription";A.CONFIGURE_CHILD_DESCRIPTIONS="openfed__configureChildDescriptions";A.CONSUMER_INACTIVE_THRESHOLD="consumerInactiveThreshold";A.CONSUMER_NAME="consumerName";A.DEFAULT="default";A.DEFAULT_EDFS_PROVIDER_ID="default";A.DEFAULT_MUTATION="Mutation";A.DEFAULT_QUERY="Query";A.DEFAULT_SUBSCRIPTION="Subscription";A.DEPRECATED="deprecated";A.DEPRECATED_DEFAULT_ARGUMENT_VALUE="No longer supported";A.DESCRIPTION_OVERRIDE="descriptionOverride";A.DIRECTIVE_DEFINITION="directive definition";A.EDFS_KAFKA_PUBLISH="edfs__kafkaPublish";A.EDFS_KAFKA_SUBSCRIBE="edfs__kafkaSubscribe";A.EDFS_NATS_PUBLISH="edfs__natsPublish";A.EDFS_NATS_REQUEST="edfs__natsRequest";A.EDFS_NATS_SUBSCRIBE="edfs__natsSubscribe";A.EDFS_PUBLISH_RESULT="edfs__PublishResult";A.EDFS_NATS_STREAM_CONFIGURATION="edfs__NatsStreamConfiguration";A.EDFS_REDIS_PUBLISH="edfs__redisPublish";A.EDFS_REDIS_SUBSCRIBE="edfs__redisSubscribe";A.ENTITIES="entities";A.ENTITIES_FIELD="_entities";A.ENTITY_UNION="_Entity";A.ENUM="Enum";A.ENUM_UPPER="ENUM";A.ENUM_VALUE="Enum Value";A.ENUM_VALUE_UPPER="ENUM_VALUE";A.EXECUTION="EXECUTION";A.EXTERNAL="external";A.EXTENDS="extends";A.EXTENSIONS="extensions";A.FIELD="field";A.FIELD_PATH="fieldPath";A.FIELD_UPPER="FIELD";A.FIELD_SET_SCALAR="openfed__FieldSet";A.FIELDS="fields";A.FIELD_DEFINITION_UPPER="FIELD_DEFINITION";A.FIRST_ORDINAL="1st";A.FLOAT_SCALAR="Float";A.FOR="for";A.FRAGMENT_DEFINITION_UPPER="FRAGMENT_DEFINITION";A.FRAGMENT_SPREAD_UPPER="FRAGMENT_SPREAD";A.FROM="from";A.HYPHEN_JOIN=` +`}});var OC=F(jv=>{"use strict";m();T();N();Object.defineProperty(jv,"__esModule",{value:!0});jv.concatAST=d9;var l9=Lt();function d9(e){let t=[];for(let n of e)t.push(...n.definitions);return{kind:l9.Kind.DOCUMENT,definitions:t}}});var AC=F(Vv=>{"use strict";m();T();N();Object.defineProperty(Vv,"__esModule",{value:!0});Vv.separateOperations=f9;var HN=Lt(),p9=nc();function f9(e){let t=[],n=Object.create(null);for(let i of e.definitions)switch(i.kind){case HN.Kind.OPERATION_DEFINITION:t.push(i);break;case HN.Kind.FRAGMENT_DEFINITION:n[i.name.value]=DC(i.selectionSet);break;default:}let r=Object.create(null);for(let i of t){let a=new Set;for(let c of DC(i.selectionSet))bC(a,n,c);let o=i.name?i.name.value:"";r[o]={kind:HN.Kind.DOCUMENT,definitions:e.definitions.filter(c=>c===i||c.kind===HN.Kind.FRAGMENT_DEFINITION&&a.has(c.name.value))}}return r}function bC(e,t,n){if(!e.has(n)){e.add(n);let r=t[n];if(r!==void 0)for(let i of r)bC(e,t,i)}}function DC(e){let t=[];return(0,p9.visit)(e,{FragmentSpread(n){t.push(n.name.value)}}),t}});var FC=F(Gv=>{"use strict";m();T();N();Object.defineProperty(Gv,"__esModule",{value:!0});Gv.stripIgnoredCharacters=N9;var m9=Vd(),RC=qm(),PC=Gm(),Kv=Gd();function N9(e){let t=(0,PC.isSource)(e)?e:new PC.Source(e),n=t.body,r=new RC.Lexer(t),i="",a=!1;for(;r.advance().kind!==Kv.TokenKind.EOF;){let o=r.token,c=o.kind,l=!(0,RC.isPunctuatorTokenKind)(o.kind);a&&(l||o.kind===Kv.TokenKind.SPREAD)&&(i+=" ");let d=n.slice(o.start,o.end);c===Kv.TokenKind.BLOCK_STRING?i+=(0,m9.printBlockString)(o.value,{minimize:!0}):i+=d,a=l}return i}});var LC=F(zN=>{"use strict";m();T();N();Object.defineProperty(zN,"__esModule",{value:!0});zN.assertValidName=y9;zN.isValidNameError=wC;var T9=Vr(),E9=ze(),h9=Xd();function y9(e){let t=wC(e);if(t)throw t;return e}function wC(e){if(typeof e=="string"||(0,T9.devAssert)(!1,"Expected name to be a string."),e.startsWith("__"))return new E9.GraphQLError(`Name "${e}" must not begin with "__", which is reserved by GraphQL introspection.`);try{(0,h9.assertName)(e)}catch(t){return t}}});var jC=F(Ga=>{"use strict";m();T();N();Object.defineProperty(Ga,"__esModule",{value:!0});Ga.DangerousChangeType=Ga.BreakingChangeType=void 0;Ga.findBreakingChanges=O9;Ga.findDangerousChanges=D9;var I9=Wt(),xC=Dr(),CC=cu(),g9=Ti(),jt=Ct(),_9=Ma(),v9=lp(),S9=Yg(),kn;Ga.BreakingChangeType=kn;(function(e){e.TYPE_REMOVED="TYPE_REMOVED",e.TYPE_CHANGED_KIND="TYPE_CHANGED_KIND",e.TYPE_REMOVED_FROM_UNION="TYPE_REMOVED_FROM_UNION",e.VALUE_REMOVED_FROM_ENUM="VALUE_REMOVED_FROM_ENUM",e.REQUIRED_INPUT_FIELD_ADDED="REQUIRED_INPUT_FIELD_ADDED",e.IMPLEMENTED_INTERFACE_REMOVED="IMPLEMENTED_INTERFACE_REMOVED",e.FIELD_REMOVED="FIELD_REMOVED",e.FIELD_CHANGED_KIND="FIELD_CHANGED_KIND",e.REQUIRED_ARG_ADDED="REQUIRED_ARG_ADDED",e.ARG_REMOVED="ARG_REMOVED",e.ARG_CHANGED_KIND="ARG_CHANGED_KIND",e.DIRECTIVE_REMOVED="DIRECTIVE_REMOVED",e.DIRECTIVE_ARG_REMOVED="DIRECTIVE_ARG_REMOVED",e.REQUIRED_DIRECTIVE_ARG_ADDED="REQUIRED_DIRECTIVE_ARG_ADDED",e.DIRECTIVE_REPEATABLE_REMOVED="DIRECTIVE_REPEATABLE_REMOVED",e.DIRECTIVE_LOCATION_REMOVED="DIRECTIVE_LOCATION_REMOVED"})(kn||(Ga.BreakingChangeType=kn={}));var Ta;Ga.DangerousChangeType=Ta;(function(e){e.VALUE_ADDED_TO_ENUM="VALUE_ADDED_TO_ENUM",e.TYPE_ADDED_TO_UNION="TYPE_ADDED_TO_UNION",e.OPTIONAL_INPUT_FIELD_ADDED="OPTIONAL_INPUT_FIELD_ADDED",e.OPTIONAL_ARG_ADDED="OPTIONAL_ARG_ADDED",e.IMPLEMENTED_INTERFACE_ADDED="IMPLEMENTED_INTERFACE_ADDED",e.ARG_DEFAULT_VALUE_CHANGE="ARG_DEFAULT_VALUE_CHANGE"})(Ta||(Ga.DangerousChangeType=Ta={}));function O9(e,t){return qC(e,t).filter(n=>n.type in kn)}function D9(e,t){return qC(e,t).filter(n=>n.type in Ta)}function qC(e,t){return[...A9(e,t),...b9(e,t)]}function b9(e,t){let n=[],r=Fs(e.getDirectives(),t.getDirectives());for(let i of r.removed)n.push({type:kn.DIRECTIVE_REMOVED,description:`${i.name} was removed.`});for(let[i,a]of r.persisted){let o=Fs(i.args,a.args);for(let c of o.added)(0,jt.isRequiredArgument)(c)&&n.push({type:kn.REQUIRED_DIRECTIVE_ARG_ADDED,description:`A required arg ${c.name} on directive ${i.name} was added.`});for(let c of o.removed)n.push({type:kn.DIRECTIVE_ARG_REMOVED,description:`${c.name} was removed from ${i.name}.`});i.isRepeatable&&!a.isRepeatable&&n.push({type:kn.DIRECTIVE_REPEATABLE_REMOVED,description:`Repeatable flag was removed from ${i.name}.`});for(let c of i.locations)a.locations.includes(c)||n.push({type:kn.DIRECTIVE_LOCATION_REMOVED,description:`${c} was removed from ${i.name}.`})}return n}function A9(e,t){let n=[],r=Fs(Object.values(e.getTypeMap()),Object.values(t.getTypeMap()));for(let i of r.removed)n.push({type:kn.TYPE_REMOVED,description:(0,_9.isSpecifiedScalarType)(i)?`Standard scalar ${i.name} was removed because it is not referenced anymore.`:`${i.name} was removed.`});for(let[i,a]of r.persisted)(0,jt.isEnumType)(i)&&(0,jt.isEnumType)(a)?n.push(...F9(i,a)):(0,jt.isUnionType)(i)&&(0,jt.isUnionType)(a)?n.push(...P9(i,a)):(0,jt.isInputObjectType)(i)&&(0,jt.isInputObjectType)(a)?n.push(...R9(i,a)):(0,jt.isObjectType)(i)&&(0,jt.isObjectType)(a)?n.push(...UC(i,a),...BC(i,a)):(0,jt.isInterfaceType)(i)&&(0,jt.isInterfaceType)(a)?n.push(...UC(i,a),...BC(i,a)):i.constructor!==a.constructor&&n.push({type:kn.TYPE_CHANGED_KIND,description:`${i.name} changed from ${kC(i)} to ${kC(a)}.`});return n}function R9(e,t){let n=[],r=Fs(Object.values(e.getFields()),Object.values(t.getFields()));for(let i of r.added)(0,jt.isRequiredInputField)(i)?n.push({type:kn.REQUIRED_INPUT_FIELD_ADDED,description:`A required field ${i.name} on input type ${e.name} was added.`}):n.push({type:Ta.OPTIONAL_INPUT_FIELD_ADDED,description:`An optional field ${i.name} on input type ${e.name} was added.`});for(let i of r.removed)n.push({type:kn.FIELD_REMOVED,description:`${e.name}.${i.name} was removed.`});for(let[i,a]of r.persisted)Lp(i.type,a.type)||n.push({type:kn.FIELD_CHANGED_KIND,description:`${e.name}.${i.name} changed type from ${String(i.type)} to ${String(a.type)}.`});return n}function P9(e,t){let n=[],r=Fs(e.getTypes(),t.getTypes());for(let i of r.added)n.push({type:Ta.TYPE_ADDED_TO_UNION,description:`${i.name} was added to union type ${e.name}.`});for(let i of r.removed)n.push({type:kn.TYPE_REMOVED_FROM_UNION,description:`${i.name} was removed from union type ${e.name}.`});return n}function F9(e,t){let n=[],r=Fs(e.getValues(),t.getValues());for(let i of r.added)n.push({type:Ta.VALUE_ADDED_TO_ENUM,description:`${i.name} was added to enum type ${e.name}.`});for(let i of r.removed)n.push({type:kn.VALUE_REMOVED_FROM_ENUM,description:`${i.name} was removed from enum type ${e.name}.`});return n}function BC(e,t){let n=[],r=Fs(e.getInterfaces(),t.getInterfaces());for(let i of r.added)n.push({type:Ta.IMPLEMENTED_INTERFACE_ADDED,description:`${i.name} added to interfaces implemented by ${e.name}.`});for(let i of r.removed)n.push({type:kn.IMPLEMENTED_INTERFACE_REMOVED,description:`${e.name} no longer implements interface ${i.name}.`});return n}function UC(e,t){let n=[],r=Fs(Object.values(e.getFields()),Object.values(t.getFields()));for(let i of r.removed)n.push({type:kn.FIELD_REMOVED,description:`${e.name}.${i.name} was removed.`});for(let[i,a]of r.persisted)n.push(...w9(e,i,a)),wp(i.type,a.type)||n.push({type:kn.FIELD_CHANGED_KIND,description:`${e.name}.${i.name} changed type from ${String(i.type)} to ${String(a.type)}.`});return n}function w9(e,t,n){let r=[],i=Fs(t.args,n.args);for(let a of i.removed)r.push({type:kn.ARG_REMOVED,description:`${e.name}.${t.name} arg ${a.name} was removed.`});for(let[a,o]of i.persisted)if(!Lp(a.type,o.type))r.push({type:kn.ARG_CHANGED_KIND,description:`${e.name}.${t.name} arg ${a.name} has changed type from ${String(a.type)} to ${String(o.type)}.`});else if(a.defaultValue!==void 0)if(o.defaultValue===void 0)r.push({type:Ta.ARG_DEFAULT_VALUE_CHANGE,description:`${e.name}.${t.name} arg ${a.name} defaultValue was removed.`});else{let l=MC(a.defaultValue,a.type),d=MC(o.defaultValue,o.type);l!==d&&r.push({type:Ta.ARG_DEFAULT_VALUE_CHANGE,description:`${e.name}.${t.name} arg ${a.name} has changed defaultValue from ${l} to ${d}.`})}for(let a of i.added)(0,jt.isRequiredArgument)(a)?r.push({type:kn.REQUIRED_ARG_ADDED,description:`A required arg ${a.name} on ${e.name}.${t.name} was added.`}):r.push({type:Ta.OPTIONAL_ARG_ADDED,description:`An optional arg ${a.name} on ${e.name}.${t.name} was added.`});return r}function wp(e,t){return(0,jt.isListType)(e)?(0,jt.isListType)(t)&&wp(e.ofType,t.ofType)||(0,jt.isNonNullType)(t)&&wp(e,t.ofType):(0,jt.isNonNullType)(e)?(0,jt.isNonNullType)(t)&&wp(e.ofType,t.ofType):(0,jt.isNamedType)(t)&&e.name===t.name||(0,jt.isNonNullType)(t)&&wp(e,t.ofType)}function Lp(e,t){return(0,jt.isListType)(e)?(0,jt.isListType)(t)&&Lp(e.ofType,t.ofType):(0,jt.isNonNullType)(e)?(0,jt.isNonNullType)(t)&&Lp(e.ofType,t.ofType)||!(0,jt.isNonNullType)(t)&&Lp(e.ofType,t):(0,jt.isNamedType)(t)&&e.name===t.name}function kC(e){if((0,jt.isScalarType)(e))return"a Scalar type";if((0,jt.isObjectType)(e))return"an Object type";if((0,jt.isInterfaceType)(e))return"an Interface type";if((0,jt.isUnionType)(e))return"a Union type";if((0,jt.isEnumType)(e))return"an Enum type";if((0,jt.isInputObjectType)(e))return"an Input type";(0,xC.invariant)(!1,"Unexpected type: "+(0,I9.inspect)(e))}function MC(e,t){let n=(0,v9.astFromValue)(e,t);return n!=null||(0,xC.invariant)(!1),(0,g9.print)((0,S9.sortValueNode)(n))}function Fs(e,t){let n=[],r=[],i=[],a=(0,CC.keyMap)(e,({name:c})=>c),o=(0,CC.keyMap)(t,({name:c})=>c);for(let c of e){let l=o[c.name];l===void 0?r.push(c):i.push([c,l])}for(let c of t)a[c.name]===void 0&&n.push(c);return{added:n,persisted:i,removed:r}}});var $C=F(Mt=>{"use strict";m();T();N();Object.defineProperty(Mt,"__esModule",{value:!0});Object.defineProperty(Mt,"BreakingChangeType",{enumerable:!0,get:function(){return WN.BreakingChangeType}});Object.defineProperty(Mt,"DangerousChangeType",{enumerable:!0,get:function(){return WN.DangerousChangeType}});Object.defineProperty(Mt,"TypeInfo",{enumerable:!0,get:function(){return KC.TypeInfo}});Object.defineProperty(Mt,"assertValidName",{enumerable:!0,get:function(){return GC.assertValidName}});Object.defineProperty(Mt,"astFromValue",{enumerable:!0,get:function(){return K9.astFromValue}});Object.defineProperty(Mt,"buildASTSchema",{enumerable:!0,get:function(){return VC.buildASTSchema}});Object.defineProperty(Mt,"buildClientSchema",{enumerable:!0,get:function(){return k9.buildClientSchema}});Object.defineProperty(Mt,"buildSchema",{enumerable:!0,get:function(){return VC.buildSchema}});Object.defineProperty(Mt,"coerceInputValue",{enumerable:!0,get:function(){return G9.coerceInputValue}});Object.defineProperty(Mt,"concatAST",{enumerable:!0,get:function(){return $9.concatAST}});Object.defineProperty(Mt,"doTypesOverlap",{enumerable:!0,get:function(){return Qv.doTypesOverlap}});Object.defineProperty(Mt,"extendSchema",{enumerable:!0,get:function(){return M9.extendSchema}});Object.defineProperty(Mt,"findBreakingChanges",{enumerable:!0,get:function(){return WN.findBreakingChanges}});Object.defineProperty(Mt,"findDangerousChanges",{enumerable:!0,get:function(){return WN.findDangerousChanges}});Object.defineProperty(Mt,"getIntrospectionQuery",{enumerable:!0,get:function(){return L9.getIntrospectionQuery}});Object.defineProperty(Mt,"getOperationAST",{enumerable:!0,get:function(){return C9.getOperationAST}});Object.defineProperty(Mt,"getOperationRootType",{enumerable:!0,get:function(){return B9.getOperationRootType}});Object.defineProperty(Mt,"introspectionFromSchema",{enumerable:!0,get:function(){return U9.introspectionFromSchema}});Object.defineProperty(Mt,"isEqualType",{enumerable:!0,get:function(){return Qv.isEqualType}});Object.defineProperty(Mt,"isTypeSubTypeOf",{enumerable:!0,get:function(){return Qv.isTypeSubTypeOf}});Object.defineProperty(Mt,"isValidNameError",{enumerable:!0,get:function(){return GC.isValidNameError}});Object.defineProperty(Mt,"lexicographicSortSchema",{enumerable:!0,get:function(){return x9.lexicographicSortSchema}});Object.defineProperty(Mt,"printIntrospectionSchema",{enumerable:!0,get:function(){return $v.printIntrospectionSchema}});Object.defineProperty(Mt,"printSchema",{enumerable:!0,get:function(){return $v.printSchema}});Object.defineProperty(Mt,"printType",{enumerable:!0,get:function(){return $v.printType}});Object.defineProperty(Mt,"separateOperations",{enumerable:!0,get:function(){return Q9.separateOperations}});Object.defineProperty(Mt,"stripIgnoredCharacters",{enumerable:!0,get:function(){return Y9.stripIgnoredCharacters}});Object.defineProperty(Mt,"typeFromAST",{enumerable:!0,get:function(){return q9.typeFromAST}});Object.defineProperty(Mt,"valueFromAST",{enumerable:!0,get:function(){return j9.valueFromAST}});Object.defineProperty(Mt,"valueFromASTUntyped",{enumerable:!0,get:function(){return V9.valueFromASTUntyped}});Object.defineProperty(Mt,"visitWithTypeInfo",{enumerable:!0,get:function(){return KC.visitWithTypeInfo}});var L9=bv(),C9=eC(),B9=tC(),U9=nC(),k9=iC(),VC=mC(),M9=Lv(),x9=EC(),$v=SC(),q9=xa(),j9=Ip(),V9=KI(),K9=lp(),KC=hN(),G9=f_(),$9=OC(),Q9=AC(),Y9=FC(),Qv=rp(),GC=LC(),WN=jC()});var Se=F(q=>{"use strict";m();T();N();Object.defineProperty(q,"__esModule",{value:!0});Object.defineProperty(q,"BREAK",{enumerable:!0,get:function(){return Yt.BREAK}});Object.defineProperty(q,"BreakingChangeType",{enumerable:!0,get:function(){return Jt.BreakingChangeType}});Object.defineProperty(q,"DEFAULT_DEPRECATION_REASON",{enumerable:!0,get:function(){return ye.DEFAULT_DEPRECATION_REASON}});Object.defineProperty(q,"DangerousChangeType",{enumerable:!0,get:function(){return Jt.DangerousChangeType}});Object.defineProperty(q,"DirectiveLocation",{enumerable:!0,get:function(){return Yt.DirectiveLocation}});Object.defineProperty(q,"ExecutableDefinitionsRule",{enumerable:!0,get:function(){return ht.ExecutableDefinitionsRule}});Object.defineProperty(q,"FieldsOnCorrectTypeRule",{enumerable:!0,get:function(){return ht.FieldsOnCorrectTypeRule}});Object.defineProperty(q,"FragmentsOnCompositeTypesRule",{enumerable:!0,get:function(){return ht.FragmentsOnCompositeTypesRule}});Object.defineProperty(q,"GRAPHQL_MAX_INT",{enumerable:!0,get:function(){return ye.GRAPHQL_MAX_INT}});Object.defineProperty(q,"GRAPHQL_MIN_INT",{enumerable:!0,get:function(){return ye.GRAPHQL_MIN_INT}});Object.defineProperty(q,"GraphQLBoolean",{enumerable:!0,get:function(){return ye.GraphQLBoolean}});Object.defineProperty(q,"GraphQLDeprecatedDirective",{enumerable:!0,get:function(){return ye.GraphQLDeprecatedDirective}});Object.defineProperty(q,"GraphQLDirective",{enumerable:!0,get:function(){return ye.GraphQLDirective}});Object.defineProperty(q,"GraphQLEnumType",{enumerable:!0,get:function(){return ye.GraphQLEnumType}});Object.defineProperty(q,"GraphQLError",{enumerable:!0,get:function(){return Cp.GraphQLError}});Object.defineProperty(q,"GraphQLFloat",{enumerable:!0,get:function(){return ye.GraphQLFloat}});Object.defineProperty(q,"GraphQLID",{enumerable:!0,get:function(){return ye.GraphQLID}});Object.defineProperty(q,"GraphQLIncludeDirective",{enumerable:!0,get:function(){return ye.GraphQLIncludeDirective}});Object.defineProperty(q,"GraphQLInputObjectType",{enumerable:!0,get:function(){return ye.GraphQLInputObjectType}});Object.defineProperty(q,"GraphQLInt",{enumerable:!0,get:function(){return ye.GraphQLInt}});Object.defineProperty(q,"GraphQLInterfaceType",{enumerable:!0,get:function(){return ye.GraphQLInterfaceType}});Object.defineProperty(q,"GraphQLList",{enumerable:!0,get:function(){return ye.GraphQLList}});Object.defineProperty(q,"GraphQLNonNull",{enumerable:!0,get:function(){return ye.GraphQLNonNull}});Object.defineProperty(q,"GraphQLObjectType",{enumerable:!0,get:function(){return ye.GraphQLObjectType}});Object.defineProperty(q,"GraphQLOneOfDirective",{enumerable:!0,get:function(){return ye.GraphQLOneOfDirective}});Object.defineProperty(q,"GraphQLScalarType",{enumerable:!0,get:function(){return ye.GraphQLScalarType}});Object.defineProperty(q,"GraphQLSchema",{enumerable:!0,get:function(){return ye.GraphQLSchema}});Object.defineProperty(q,"GraphQLSkipDirective",{enumerable:!0,get:function(){return ye.GraphQLSkipDirective}});Object.defineProperty(q,"GraphQLSpecifiedByDirective",{enumerable:!0,get:function(){return ye.GraphQLSpecifiedByDirective}});Object.defineProperty(q,"GraphQLString",{enumerable:!0,get:function(){return ye.GraphQLString}});Object.defineProperty(q,"GraphQLUnionType",{enumerable:!0,get:function(){return ye.GraphQLUnionType}});Object.defineProperty(q,"Kind",{enumerable:!0,get:function(){return Yt.Kind}});Object.defineProperty(q,"KnownArgumentNamesRule",{enumerable:!0,get:function(){return ht.KnownArgumentNamesRule}});Object.defineProperty(q,"KnownDirectivesRule",{enumerable:!0,get:function(){return ht.KnownDirectivesRule}});Object.defineProperty(q,"KnownFragmentNamesRule",{enumerable:!0,get:function(){return ht.KnownFragmentNamesRule}});Object.defineProperty(q,"KnownTypeNamesRule",{enumerable:!0,get:function(){return ht.KnownTypeNamesRule}});Object.defineProperty(q,"Lexer",{enumerable:!0,get:function(){return Yt.Lexer}});Object.defineProperty(q,"Location",{enumerable:!0,get:function(){return Yt.Location}});Object.defineProperty(q,"LoneAnonymousOperationRule",{enumerable:!0,get:function(){return ht.LoneAnonymousOperationRule}});Object.defineProperty(q,"LoneSchemaDefinitionRule",{enumerable:!0,get:function(){return ht.LoneSchemaDefinitionRule}});Object.defineProperty(q,"MaxIntrospectionDepthRule",{enumerable:!0,get:function(){return ht.MaxIntrospectionDepthRule}});Object.defineProperty(q,"NoDeprecatedCustomRule",{enumerable:!0,get:function(){return ht.NoDeprecatedCustomRule}});Object.defineProperty(q,"NoFragmentCyclesRule",{enumerable:!0,get:function(){return ht.NoFragmentCyclesRule}});Object.defineProperty(q,"NoSchemaIntrospectionCustomRule",{enumerable:!0,get:function(){return ht.NoSchemaIntrospectionCustomRule}});Object.defineProperty(q,"NoUndefinedVariablesRule",{enumerable:!0,get:function(){return ht.NoUndefinedVariablesRule}});Object.defineProperty(q,"NoUnusedFragmentsRule",{enumerable:!0,get:function(){return ht.NoUnusedFragmentsRule}});Object.defineProperty(q,"NoUnusedVariablesRule",{enumerable:!0,get:function(){return ht.NoUnusedVariablesRule}});Object.defineProperty(q,"OperationTypeNode",{enumerable:!0,get:function(){return Yt.OperationTypeNode}});Object.defineProperty(q,"OverlappingFieldsCanBeMergedRule",{enumerable:!0,get:function(){return ht.OverlappingFieldsCanBeMergedRule}});Object.defineProperty(q,"PossibleFragmentSpreadsRule",{enumerable:!0,get:function(){return ht.PossibleFragmentSpreadsRule}});Object.defineProperty(q,"PossibleTypeExtensionsRule",{enumerable:!0,get:function(){return ht.PossibleTypeExtensionsRule}});Object.defineProperty(q,"ProvidedRequiredArgumentsRule",{enumerable:!0,get:function(){return ht.ProvidedRequiredArgumentsRule}});Object.defineProperty(q,"ScalarLeafsRule",{enumerable:!0,get:function(){return ht.ScalarLeafsRule}});Object.defineProperty(q,"SchemaMetaFieldDef",{enumerable:!0,get:function(){return ye.SchemaMetaFieldDef}});Object.defineProperty(q,"SingleFieldSubscriptionsRule",{enumerable:!0,get:function(){return ht.SingleFieldSubscriptionsRule}});Object.defineProperty(q,"Source",{enumerable:!0,get:function(){return Yt.Source}});Object.defineProperty(q,"Token",{enumerable:!0,get:function(){return Yt.Token}});Object.defineProperty(q,"TokenKind",{enumerable:!0,get:function(){return Yt.TokenKind}});Object.defineProperty(q,"TypeInfo",{enumerable:!0,get:function(){return Jt.TypeInfo}});Object.defineProperty(q,"TypeKind",{enumerable:!0,get:function(){return ye.TypeKind}});Object.defineProperty(q,"TypeMetaFieldDef",{enumerable:!0,get:function(){return ye.TypeMetaFieldDef}});Object.defineProperty(q,"TypeNameMetaFieldDef",{enumerable:!0,get:function(){return ye.TypeNameMetaFieldDef}});Object.defineProperty(q,"UniqueArgumentDefinitionNamesRule",{enumerable:!0,get:function(){return ht.UniqueArgumentDefinitionNamesRule}});Object.defineProperty(q,"UniqueArgumentNamesRule",{enumerable:!0,get:function(){return ht.UniqueArgumentNamesRule}});Object.defineProperty(q,"UniqueDirectiveNamesRule",{enumerable:!0,get:function(){return ht.UniqueDirectiveNamesRule}});Object.defineProperty(q,"UniqueDirectivesPerLocationRule",{enumerable:!0,get:function(){return ht.UniqueDirectivesPerLocationRule}});Object.defineProperty(q,"UniqueEnumValueNamesRule",{enumerable:!0,get:function(){return ht.UniqueEnumValueNamesRule}});Object.defineProperty(q,"UniqueFieldDefinitionNamesRule",{enumerable:!0,get:function(){return ht.UniqueFieldDefinitionNamesRule}});Object.defineProperty(q,"UniqueFragmentNamesRule",{enumerable:!0,get:function(){return ht.UniqueFragmentNamesRule}});Object.defineProperty(q,"UniqueInputFieldNamesRule",{enumerable:!0,get:function(){return ht.UniqueInputFieldNamesRule}});Object.defineProperty(q,"UniqueOperationNamesRule",{enumerable:!0,get:function(){return ht.UniqueOperationNamesRule}});Object.defineProperty(q,"UniqueOperationTypesRule",{enumerable:!0,get:function(){return ht.UniqueOperationTypesRule}});Object.defineProperty(q,"UniqueTypeNamesRule",{enumerable:!0,get:function(){return ht.UniqueTypeNamesRule}});Object.defineProperty(q,"UniqueVariableNamesRule",{enumerable:!0,get:function(){return ht.UniqueVariableNamesRule}});Object.defineProperty(q,"ValidationContext",{enumerable:!0,get:function(){return ht.ValidationContext}});Object.defineProperty(q,"ValuesOfCorrectTypeRule",{enumerable:!0,get:function(){return ht.ValuesOfCorrectTypeRule}});Object.defineProperty(q,"VariablesAreInputTypesRule",{enumerable:!0,get:function(){return ht.VariablesAreInputTypesRule}});Object.defineProperty(q,"VariablesInAllowedPositionRule",{enumerable:!0,get:function(){return ht.VariablesInAllowedPositionRule}});Object.defineProperty(q,"__Directive",{enumerable:!0,get:function(){return ye.__Directive}});Object.defineProperty(q,"__DirectiveLocation",{enumerable:!0,get:function(){return ye.__DirectiveLocation}});Object.defineProperty(q,"__EnumValue",{enumerable:!0,get:function(){return ye.__EnumValue}});Object.defineProperty(q,"__Field",{enumerable:!0,get:function(){return ye.__Field}});Object.defineProperty(q,"__InputValue",{enumerable:!0,get:function(){return ye.__InputValue}});Object.defineProperty(q,"__Schema",{enumerable:!0,get:function(){return ye.__Schema}});Object.defineProperty(q,"__Type",{enumerable:!0,get:function(){return ye.__Type}});Object.defineProperty(q,"__TypeKind",{enumerable:!0,get:function(){return ye.__TypeKind}});Object.defineProperty(q,"assertAbstractType",{enumerable:!0,get:function(){return ye.assertAbstractType}});Object.defineProperty(q,"assertCompositeType",{enumerable:!0,get:function(){return ye.assertCompositeType}});Object.defineProperty(q,"assertDirective",{enumerable:!0,get:function(){return ye.assertDirective}});Object.defineProperty(q,"assertEnumType",{enumerable:!0,get:function(){return ye.assertEnumType}});Object.defineProperty(q,"assertEnumValueName",{enumerable:!0,get:function(){return ye.assertEnumValueName}});Object.defineProperty(q,"assertInputObjectType",{enumerable:!0,get:function(){return ye.assertInputObjectType}});Object.defineProperty(q,"assertInputType",{enumerable:!0,get:function(){return ye.assertInputType}});Object.defineProperty(q,"assertInterfaceType",{enumerable:!0,get:function(){return ye.assertInterfaceType}});Object.defineProperty(q,"assertLeafType",{enumerable:!0,get:function(){return ye.assertLeafType}});Object.defineProperty(q,"assertListType",{enumerable:!0,get:function(){return ye.assertListType}});Object.defineProperty(q,"assertName",{enumerable:!0,get:function(){return ye.assertName}});Object.defineProperty(q,"assertNamedType",{enumerable:!0,get:function(){return ye.assertNamedType}});Object.defineProperty(q,"assertNonNullType",{enumerable:!0,get:function(){return ye.assertNonNullType}});Object.defineProperty(q,"assertNullableType",{enumerable:!0,get:function(){return ye.assertNullableType}});Object.defineProperty(q,"assertObjectType",{enumerable:!0,get:function(){return ye.assertObjectType}});Object.defineProperty(q,"assertOutputType",{enumerable:!0,get:function(){return ye.assertOutputType}});Object.defineProperty(q,"assertScalarType",{enumerable:!0,get:function(){return ye.assertScalarType}});Object.defineProperty(q,"assertSchema",{enumerable:!0,get:function(){return ye.assertSchema}});Object.defineProperty(q,"assertType",{enumerable:!0,get:function(){return ye.assertType}});Object.defineProperty(q,"assertUnionType",{enumerable:!0,get:function(){return ye.assertUnionType}});Object.defineProperty(q,"assertValidName",{enumerable:!0,get:function(){return Jt.assertValidName}});Object.defineProperty(q,"assertValidSchema",{enumerable:!0,get:function(){return ye.assertValidSchema}});Object.defineProperty(q,"assertWrappingType",{enumerable:!0,get:function(){return ye.assertWrappingType}});Object.defineProperty(q,"astFromValue",{enumerable:!0,get:function(){return Jt.astFromValue}});Object.defineProperty(q,"buildASTSchema",{enumerable:!0,get:function(){return Jt.buildASTSchema}});Object.defineProperty(q,"buildClientSchema",{enumerable:!0,get:function(){return Jt.buildClientSchema}});Object.defineProperty(q,"buildSchema",{enumerable:!0,get:function(){return Jt.buildSchema}});Object.defineProperty(q,"coerceInputValue",{enumerable:!0,get:function(){return Jt.coerceInputValue}});Object.defineProperty(q,"concatAST",{enumerable:!0,get:function(){return Jt.concatAST}});Object.defineProperty(q,"createSourceEventStream",{enumerable:!0,get:function(){return $a.createSourceEventStream}});Object.defineProperty(q,"defaultFieldResolver",{enumerable:!0,get:function(){return $a.defaultFieldResolver}});Object.defineProperty(q,"defaultTypeResolver",{enumerable:!0,get:function(){return $a.defaultTypeResolver}});Object.defineProperty(q,"doTypesOverlap",{enumerable:!0,get:function(){return Jt.doTypesOverlap}});Object.defineProperty(q,"execute",{enumerable:!0,get:function(){return $a.execute}});Object.defineProperty(q,"executeSync",{enumerable:!0,get:function(){return $a.executeSync}});Object.defineProperty(q,"extendSchema",{enumerable:!0,get:function(){return Jt.extendSchema}});Object.defineProperty(q,"findBreakingChanges",{enumerable:!0,get:function(){return Jt.findBreakingChanges}});Object.defineProperty(q,"findDangerousChanges",{enumerable:!0,get:function(){return Jt.findDangerousChanges}});Object.defineProperty(q,"formatError",{enumerable:!0,get:function(){return Cp.formatError}});Object.defineProperty(q,"getArgumentValues",{enumerable:!0,get:function(){return $a.getArgumentValues}});Object.defineProperty(q,"getDirectiveValues",{enumerable:!0,get:function(){return $a.getDirectiveValues}});Object.defineProperty(q,"getEnterLeaveForKind",{enumerable:!0,get:function(){return Yt.getEnterLeaveForKind}});Object.defineProperty(q,"getIntrospectionQuery",{enumerable:!0,get:function(){return Jt.getIntrospectionQuery}});Object.defineProperty(q,"getLocation",{enumerable:!0,get:function(){return Yt.getLocation}});Object.defineProperty(q,"getNamedType",{enumerable:!0,get:function(){return ye.getNamedType}});Object.defineProperty(q,"getNullableType",{enumerable:!0,get:function(){return ye.getNullableType}});Object.defineProperty(q,"getOperationAST",{enumerable:!0,get:function(){return Jt.getOperationAST}});Object.defineProperty(q,"getOperationRootType",{enumerable:!0,get:function(){return Jt.getOperationRootType}});Object.defineProperty(q,"getVariableValues",{enumerable:!0,get:function(){return $a.getVariableValues}});Object.defineProperty(q,"getVisitFn",{enumerable:!0,get:function(){return Yt.getVisitFn}});Object.defineProperty(q,"graphql",{enumerable:!0,get:function(){return YC.graphql}});Object.defineProperty(q,"graphqlSync",{enumerable:!0,get:function(){return YC.graphqlSync}});Object.defineProperty(q,"introspectionFromSchema",{enumerable:!0,get:function(){return Jt.introspectionFromSchema}});Object.defineProperty(q,"introspectionTypes",{enumerable:!0,get:function(){return ye.introspectionTypes}});Object.defineProperty(q,"isAbstractType",{enumerable:!0,get:function(){return ye.isAbstractType}});Object.defineProperty(q,"isCompositeType",{enumerable:!0,get:function(){return ye.isCompositeType}});Object.defineProperty(q,"isConstValueNode",{enumerable:!0,get:function(){return Yt.isConstValueNode}});Object.defineProperty(q,"isDefinitionNode",{enumerable:!0,get:function(){return Yt.isDefinitionNode}});Object.defineProperty(q,"isDirective",{enumerable:!0,get:function(){return ye.isDirective}});Object.defineProperty(q,"isEnumType",{enumerable:!0,get:function(){return ye.isEnumType}});Object.defineProperty(q,"isEqualType",{enumerable:!0,get:function(){return Jt.isEqualType}});Object.defineProperty(q,"isExecutableDefinitionNode",{enumerable:!0,get:function(){return Yt.isExecutableDefinitionNode}});Object.defineProperty(q,"isInputObjectType",{enumerable:!0,get:function(){return ye.isInputObjectType}});Object.defineProperty(q,"isInputType",{enumerable:!0,get:function(){return ye.isInputType}});Object.defineProperty(q,"isInterfaceType",{enumerable:!0,get:function(){return ye.isInterfaceType}});Object.defineProperty(q,"isIntrospectionType",{enumerable:!0,get:function(){return ye.isIntrospectionType}});Object.defineProperty(q,"isLeafType",{enumerable:!0,get:function(){return ye.isLeafType}});Object.defineProperty(q,"isListType",{enumerable:!0,get:function(){return ye.isListType}});Object.defineProperty(q,"isNamedType",{enumerable:!0,get:function(){return ye.isNamedType}});Object.defineProperty(q,"isNonNullType",{enumerable:!0,get:function(){return ye.isNonNullType}});Object.defineProperty(q,"isNullableType",{enumerable:!0,get:function(){return ye.isNullableType}});Object.defineProperty(q,"isObjectType",{enumerable:!0,get:function(){return ye.isObjectType}});Object.defineProperty(q,"isOutputType",{enumerable:!0,get:function(){return ye.isOutputType}});Object.defineProperty(q,"isRequiredArgument",{enumerable:!0,get:function(){return ye.isRequiredArgument}});Object.defineProperty(q,"isRequiredInputField",{enumerable:!0,get:function(){return ye.isRequiredInputField}});Object.defineProperty(q,"isScalarType",{enumerable:!0,get:function(){return ye.isScalarType}});Object.defineProperty(q,"isSchema",{enumerable:!0,get:function(){return ye.isSchema}});Object.defineProperty(q,"isSelectionNode",{enumerable:!0,get:function(){return Yt.isSelectionNode}});Object.defineProperty(q,"isSpecifiedDirective",{enumerable:!0,get:function(){return ye.isSpecifiedDirective}});Object.defineProperty(q,"isSpecifiedScalarType",{enumerable:!0,get:function(){return ye.isSpecifiedScalarType}});Object.defineProperty(q,"isType",{enumerable:!0,get:function(){return ye.isType}});Object.defineProperty(q,"isTypeDefinitionNode",{enumerable:!0,get:function(){return Yt.isTypeDefinitionNode}});Object.defineProperty(q,"isTypeExtensionNode",{enumerable:!0,get:function(){return Yt.isTypeExtensionNode}});Object.defineProperty(q,"isTypeNode",{enumerable:!0,get:function(){return Yt.isTypeNode}});Object.defineProperty(q,"isTypeSubTypeOf",{enumerable:!0,get:function(){return Jt.isTypeSubTypeOf}});Object.defineProperty(q,"isTypeSystemDefinitionNode",{enumerable:!0,get:function(){return Yt.isTypeSystemDefinitionNode}});Object.defineProperty(q,"isTypeSystemExtensionNode",{enumerable:!0,get:function(){return Yt.isTypeSystemExtensionNode}});Object.defineProperty(q,"isUnionType",{enumerable:!0,get:function(){return ye.isUnionType}});Object.defineProperty(q,"isValidNameError",{enumerable:!0,get:function(){return Jt.isValidNameError}});Object.defineProperty(q,"isValueNode",{enumerable:!0,get:function(){return Yt.isValueNode}});Object.defineProperty(q,"isWrappingType",{enumerable:!0,get:function(){return ye.isWrappingType}});Object.defineProperty(q,"lexicographicSortSchema",{enumerable:!0,get:function(){return Jt.lexicographicSortSchema}});Object.defineProperty(q,"locatedError",{enumerable:!0,get:function(){return Cp.locatedError}});Object.defineProperty(q,"parse",{enumerable:!0,get:function(){return Yt.parse}});Object.defineProperty(q,"parseConstValue",{enumerable:!0,get:function(){return Yt.parseConstValue}});Object.defineProperty(q,"parseType",{enumerable:!0,get:function(){return Yt.parseType}});Object.defineProperty(q,"parseValue",{enumerable:!0,get:function(){return Yt.parseValue}});Object.defineProperty(q,"print",{enumerable:!0,get:function(){return Yt.print}});Object.defineProperty(q,"printError",{enumerable:!0,get:function(){return Cp.printError}});Object.defineProperty(q,"printIntrospectionSchema",{enumerable:!0,get:function(){return Jt.printIntrospectionSchema}});Object.defineProperty(q,"printLocation",{enumerable:!0,get:function(){return Yt.printLocation}});Object.defineProperty(q,"printSchema",{enumerable:!0,get:function(){return Jt.printSchema}});Object.defineProperty(q,"printSourceLocation",{enumerable:!0,get:function(){return Yt.printSourceLocation}});Object.defineProperty(q,"printType",{enumerable:!0,get:function(){return Jt.printType}});Object.defineProperty(q,"recommendedRules",{enumerable:!0,get:function(){return ht.recommendedRules}});Object.defineProperty(q,"resolveObjMapThunk",{enumerable:!0,get:function(){return ye.resolveObjMapThunk}});Object.defineProperty(q,"resolveReadonlyArrayThunk",{enumerable:!0,get:function(){return ye.resolveReadonlyArrayThunk}});Object.defineProperty(q,"responsePathAsArray",{enumerable:!0,get:function(){return $a.responsePathAsArray}});Object.defineProperty(q,"separateOperations",{enumerable:!0,get:function(){return Jt.separateOperations}});Object.defineProperty(q,"specifiedDirectives",{enumerable:!0,get:function(){return ye.specifiedDirectives}});Object.defineProperty(q,"specifiedRules",{enumerable:!0,get:function(){return ht.specifiedRules}});Object.defineProperty(q,"specifiedScalarTypes",{enumerable:!0,get:function(){return ye.specifiedScalarTypes}});Object.defineProperty(q,"stripIgnoredCharacters",{enumerable:!0,get:function(){return Jt.stripIgnoredCharacters}});Object.defineProperty(q,"subscribe",{enumerable:!0,get:function(){return $a.subscribe}});Object.defineProperty(q,"syntaxError",{enumerable:!0,get:function(){return Cp.syntaxError}});Object.defineProperty(q,"typeFromAST",{enumerable:!0,get:function(){return Jt.typeFromAST}});Object.defineProperty(q,"validate",{enumerable:!0,get:function(){return ht.validate}});Object.defineProperty(q,"validateSchema",{enumerable:!0,get:function(){return ye.validateSchema}});Object.defineProperty(q,"valueFromAST",{enumerable:!0,get:function(){return Jt.valueFromAST}});Object.defineProperty(q,"valueFromASTUntyped",{enumerable:!0,get:function(){return Jt.valueFromASTUntyped}});Object.defineProperty(q,"version",{enumerable:!0,get:function(){return QC.version}});Object.defineProperty(q,"versionInfo",{enumerable:!0,get:function(){return QC.versionInfo}});Object.defineProperty(q,"visit",{enumerable:!0,get:function(){return Yt.visit}});Object.defineProperty(q,"visitInParallel",{enumerable:!0,get:function(){return Yt.visitInParallel}});Object.defineProperty(q,"visitWithTypeInfo",{enumerable:!0,get:function(){return Jt.visitWithTypeInfo}});var QC=jP(),YC=BL(),ye=ML(),Yt=qL(),$a=JL(),ht=XL(),Cp=ZL(),Jt=$C()});var sr=F(A=>{"use strict";m();T();N();Object.defineProperty(A,"__esModule",{value:!0});A.FIELDS=A.FIELD_SET_SCALAR=A.FIELD_UPPER=A.FIELD_PATH=A.FIELD=A.EXTENSIONS=A.EXTENDS=A.EXTERNAL=A.EXECUTION=A.ENUM_VALUE_UPPER=A.ENUM_VALUE=A.ENUM_UPPER=A.ENUM=A.ENTITY_UNION=A.ENTITIES_FIELD=A.ENTITIES=A.EDFS_REDIS_SUBSCRIBE=A.EDFS_REDIS_PUBLISH=A.EDFS_NATS_STREAM_CONFIGURATION=A.EDFS_PUBLISH_RESULT=A.EDFS_NATS_SUBSCRIBE=A.EDFS_NATS_REQUEST=A.EDFS_NATS_PUBLISH=A.EDFS_KAFKA_SUBSCRIBE=A.EDFS_KAFKA_PUBLISH=A.DIRECTIVE_DEFINITION=A.DESCRIPTION_OVERRIDE=A.DEPRECATED_DEFAULT_ARGUMENT_VALUE=A.DEPRECATED=A.DEFAULT_SUBSCRIPTION=A.DEFAULT_QUERY=A.DEFAULT_MUTATION=A.DEFAULT_EDFS_PROVIDER_ID=A.DEFAULT=A.CONSUMER_NAME=A.CONSUMER_INACTIVE_THRESHOLD=A.CONFIGURE_CHILD_DESCRIPTIONS=A.CONFIGURE_DESCRIPTION=A.CONDITION=A.COMPOSE_DIRECTIVE=A.CHANNELS=A.CHANNEL=A.BOOLEAN_SCALAR=A.BOOLEAN=A.ARGUMENT_DEFINITION_UPPER=A.AUTHENTICATED=A.ARGUMENT=A.ANY_SCALAR=A.AND_UPPER=A.AS=void 0;A.OPERATION_TO_DEFAULT=A.ONE_OF=A.NULL=A.NOT_UPPER=A.NON_NULLABLE_STRING=A.NON_NULLABLE_INT=A.NON_NULLABLE_BOOLEAN=A.NON_NULLABLE_EDFS_PUBLISH_EVENT_RESULT=A.NAME=A.NOT_APPLICABLE=A.PROVIDER_TYPE_REDIS=A.PROVIDER_TYPE_NATS=A.PROVIDER_TYPE_KAFKA=A.PROPAGATE=A.MUTATION_UPPER=A.MUTATION=A.NUMBER=A.LITERAL_NEW_LINE=A.LITERAL_SPACE=A.LIST=A.LINK_PURPOSE=A.LINK_IMPORT=A.LINK=A.LEVELS=A.LEFT_PARENTHESIS=A.KEY=A.INTERFACE_OBJECT=A.INTERFACE_UPPER=A.INTERFACE=A.INT_SCALAR=A.INPUT_VALUE=A.INPUT_OBJECT_UPPER=A.INPUT_OBJECT=A.INPUT_FIELD_DEFINITION_UPPER=A.INPUT_FIELD=A.INPUT=A.INLINE_FRAGMENT_UPPER=A.INLINE_FRAGMENT=A.INACCESSIBLE=A.IN_UPPER=A.IMPORT=A.ID_SCALAR=A.HYPHEN_JOIN=A.FROM=A.FRAGMENT_SPREAD_UPPER=A.FRAGMENT_DEFINITION_UPPER=A.FOR=A.FLOAT_SCALAR=A.FIRST_ORDINAL=A.FIELD_DEFINITION_UPPER=void 0;A.TOPICS=A.TOPIC=A.TAG=A.SUCCESS=A.SUBSCRIPTION_UPPER=A.SUBSCRIBE=A.SUBSCRIPTION_FILTER_VALUE=A.SUBSCRIPTION_FILTER_CONDITION=A.SUBSCRIPTION_FILTER=A.SUBSCRIPTION_FIELD_CONDITION=A.SUBSCRIPTION=A.SUBJECTS=A.SUBJECT=A.STRING_SCALAR=A.STRING=A.STREAM_NAME=A.STREAM_CONFIGURATION=A.SPECIFIED_BY=A.SHAREABLE=A.SERVICE_FIELD=A.SERVICE_OBJECT=A.SEMANTIC_NON_NULL=A.SELECTION_REPRESENTATION=A.SECURITY=A.SCOPE_SCALAR=A.SCOPES=A.SCHEMA_UPPER=A.SCHEMA=A.SCALAR_UPPER=A.SCALAR=A.RESOLVABLE=A.REQUIRES_SCOPES=A.REQUIRES=A.REQUIRE_FETCH_REASONS=A.REQUEST=A.REASON=A.QUOTATION_JOIN=A.QUERY_UPPER=A.QUERY=A.PUBLISH=A.PROVIDES=A.PROVIDER_ID=A.PERIOD=A.PARENT_EXTENSION_DATA_MAP=A.PARENT_DEFINITION_DATA_MAP=A.PARENT_DEFINITION_DATA=A.OVERRIDE=A.OR_UPPER=A.OBJECT_UPPER=A.OBJECT=void 0;A.NON_REPEATABLE_PERSISTED_DIRECTIVES=A.OUTPUT_NODE_KINDS=A.INPUT_NODE_KINDS=A.IGNORED_FIELDS=A.INHERITABLE_DIRECTIVE_NAMES=A.PERSISTED_CLIENT_DIRECTIVES=A.AUTHORIZATION_DIRECTIVES=A.ROOT_TYPE_NAMES=A.EXECUTABLE_DIRECTIVE_LOCATIONS=A.VARIABLE_DEFINITION_UPPER=A.VALUES=A.URL_LOWER=A.UNION_UPPER=A.UNION=void 0;var Eu=Se();A.AS="as";A.AND_UPPER="AND";A.ANY_SCALAR="_Any";A.ARGUMENT="argument";A.AUTHENTICATED="authenticated";A.ARGUMENT_DEFINITION_UPPER="ARGUMENT_DEFINITION";A.BOOLEAN="boolean";A.BOOLEAN_SCALAR="Boolean";A.CHANNEL="channel";A.CHANNELS="channels";A.COMPOSE_DIRECTIVE="composeDirective";A.CONDITION="condition";A.CONFIGURE_DESCRIPTION="openfed__configureDescription";A.CONFIGURE_CHILD_DESCRIPTIONS="openfed__configureChildDescriptions";A.CONSUMER_INACTIVE_THRESHOLD="consumerInactiveThreshold";A.CONSUMER_NAME="consumerName";A.DEFAULT="default";A.DEFAULT_EDFS_PROVIDER_ID="default";A.DEFAULT_MUTATION="Mutation";A.DEFAULT_QUERY="Query";A.DEFAULT_SUBSCRIPTION="Subscription";A.DEPRECATED="deprecated";A.DEPRECATED_DEFAULT_ARGUMENT_VALUE="No longer supported";A.DESCRIPTION_OVERRIDE="descriptionOverride";A.DIRECTIVE_DEFINITION="directive definition";A.EDFS_KAFKA_PUBLISH="edfs__kafkaPublish";A.EDFS_KAFKA_SUBSCRIBE="edfs__kafkaSubscribe";A.EDFS_NATS_PUBLISH="edfs__natsPublish";A.EDFS_NATS_REQUEST="edfs__natsRequest";A.EDFS_NATS_SUBSCRIBE="edfs__natsSubscribe";A.EDFS_PUBLISH_RESULT="edfs__PublishResult";A.EDFS_NATS_STREAM_CONFIGURATION="edfs__NatsStreamConfiguration";A.EDFS_REDIS_PUBLISH="edfs__redisPublish";A.EDFS_REDIS_SUBSCRIBE="edfs__redisSubscribe";A.ENTITIES="entities";A.ENTITIES_FIELD="_entities";A.ENTITY_UNION="_Entity";A.ENUM="Enum";A.ENUM_UPPER="ENUM";A.ENUM_VALUE="Enum Value";A.ENUM_VALUE_UPPER="ENUM_VALUE";A.EXECUTION="EXECUTION";A.EXTERNAL="external";A.EXTENDS="extends";A.EXTENSIONS="extensions";A.FIELD="field";A.FIELD_PATH="fieldPath";A.FIELD_UPPER="FIELD";A.FIELD_SET_SCALAR="openfed__FieldSet";A.FIELDS="fields";A.FIELD_DEFINITION_UPPER="FIELD_DEFINITION";A.FIRST_ORDINAL="1st";A.FLOAT_SCALAR="Float";A.FOR="for";A.FRAGMENT_DEFINITION_UPPER="FRAGMENT_DEFINITION";A.FRAGMENT_SPREAD_UPPER="FRAGMENT_SPREAD";A.FROM="from";A.HYPHEN_JOIN=` -`;A.ID_SCALAR="ID";A.IMPORT="import";A.IN_UPPER="IN";A.INACCESSIBLE="inaccessible";A.INLINE_FRAGMENT="inlineFragment";A.INLINE_FRAGMENT_UPPER="INLINE_FRAGMENT";A.INPUT="Input";A.INPUT_FIELD="Input field";A.INPUT_FIELD_DEFINITION_UPPER="INPUT_FIELD_DEFINITION";A.INPUT_OBJECT="Input Object";A.INPUT_OBJECT_UPPER="INPUT_OBJECT";A.INPUT_VALUE="Input Value";A.INT_SCALAR="Int";A.INTERFACE="Interface";A.INTERFACE_UPPER="INTERFACE";A.INTERFACE_OBJECT="interfaceObject";A.KEY="key";A.LEFT_PARENTHESIS="(";A.LEVELS="levels";A.LINK="link";A.LINK_IMPORT="link__Import";A.LINK_PURPOSE="link__Purpose";A.LIST="list";A.LITERAL_SPACE=" ";A.LITERAL_NEW_LINE=` -`;A.NUMBER="number";A.MUTATION="Mutation";A.MUTATION_UPPER="MUTATION";A.PROPAGATE="propagate";A.PROVIDER_TYPE_KAFKA="kafka";A.PROVIDER_TYPE_NATS="nats";A.PROVIDER_TYPE_REDIS="redis";A.NOT_APPLICABLE="N/A";A.NAME="name";A.NON_NULLABLE_EDFS_PUBLISH_EVENT_RESULT="edfs__PublishResult!";A.NON_NULLABLE_BOOLEAN="Boolean!";A.NON_NULLABLE_INT="Int!";A.NON_NULLABLE_STRING="String!";A.NOT_UPPER="NOT";A.NULL="Null";A.ONE_OF="oneOf";A.OPERATION_TO_DEFAULT="operationTypeNodeToDefaultType";A.OBJECT="Object";A.OBJECT_UPPER="OBJECT";A.OR_UPPER="OR";A.OVERRIDE="override";A.PARENT_DEFINITION_DATA="parentDefinitionDataByTypeName";A.PARENT_DEFINITION_DATA_MAP="parentDefinitionDataByParentTypeName";A.PARENT_EXTENSION_DATA_MAP="parentExtensionDataByParentTypeName";A.PERIOD=".";A.PROVIDER_ID="providerId";A.PROVIDES="provides";A.PUBLISH="publish";A.QUERY="Query";A.QUERY_UPPER="QUERY";A.QUOTATION_JOIN='", "';A.REASON="reason";A.REQUEST="request";A.REQUIRE_FETCH_REASONS="openfed__requireFetchReasons";A.REQUIRES="requires";A.REQUIRES_SCOPES="requiresScopes";A.RESOLVABLE="resolvable";A.SCALAR="Scalar";A.SCALAR_UPPER="SCALAR";A.SCHEMA="schema";A.SCHEMA_UPPER="SCHEMA";A.SCOPES="scopes";A.SCOPE_SCALAR="openfed__Scope";A.SECURITY="SECURITY";A.SELECTION_REPRESENTATION=" { ... }";A.SEMANTIC_NON_NULL="semanticNonNull";A.SERVICE_OBJECT="_Service";A.SERVICE_FIELD="_service";A.SHAREABLE="shareable";A.SPECIFIED_BY="specifiedBy";A.STREAM_CONFIGURATION="streamConfiguration";A.STREAM_NAME="streamName";A.STRING="string";A.STRING_SCALAR="String";A.SUBJECT="subject";A.SUBJECTS="subjects";A.SUBSCRIPTION="Subscription";A.SUBSCRIPTION_FIELD_CONDITION="openfed__SubscriptionFieldCondition";A.SUBSCRIPTION_FILTER="openfed__subscriptionFilter";A.SUBSCRIPTION_FILTER_CONDITION="openfed__SubscriptionFilterCondition";A.SUBSCRIPTION_FILTER_VALUE="openfed__SubscriptionFilterValue";A.SUBSCRIBE="subscribe";A.SUBSCRIPTION_UPPER="SUBSCRIPTION";A.SUCCESS="success";A.TAG="tag";A.TOPIC="topic";A.TOPICS="topics";A.UNION="Union";A.UNION_UPPER="UNION";A.URL_LOWER="url";A.VALUES="values";A.VARIABLE_DEFINITION_UPPER="VARIABLE_DEFINITION";A.EXECUTABLE_DIRECTIVE_LOCATIONS=new Set([A.FIELD_UPPER,A.FRAGMENT_DEFINITION_UPPER,A.FRAGMENT_SPREAD_UPPER,A.INLINE_FRAGMENT_UPPER,A.MUTATION_UPPER,A.QUERY_UPPER,A.SUBSCRIPTION_UPPER]);A.ROOT_TYPE_NAMES=new Set([A.MUTATION,A.QUERY,A.SUBSCRIPTION]);A.AUTHORIZATION_DIRECTIVES=new Set([A.AUTHENTICATED,A.REQUIRES_SCOPES]);A.PERSISTED_CLIENT_DIRECTIVES=new Set([A.DEPRECATED,A.ONE_OF,A.SEMANTIC_NON_NULL]);A.INHERITABLE_DIRECTIVE_NAMES=new Set([A.EXTERNAL,A.REQUIRE_FETCH_REASONS,A.SHAREABLE]);A.IGNORED_FIELDS=new Set([A.ENTITIES_FIELD,A.SERVICE_FIELD]);A.INPUT_NODE_KINDS=new Set([cu.Kind.ENUM_TYPE_DEFINITION,cu.Kind.INPUT_OBJECT_TYPE_DEFINITION,cu.Kind.SCALAR_TYPE_DEFINITION]);A.OUTPUT_NODE_KINDS=new Set([cu.Kind.ENUM_TYPE_DEFINITION,cu.Kind.INTERFACE_TYPE_DEFINITION,cu.Kind.OBJECT_TYPE_DEFINITION,cu.Kind.SCALAR_TYPE_DEFINITION,cu.Kind.UNION_TYPE_DEFINITION]);A.NON_REPEATABLE_PERSISTED_DIRECTIVES=new Set([A.INACCESSIBLE,A.ONE_OF,A.SEMANTIC_NON_NULL])});var Hr=w(Yn=>{"use strict";m();T();N();Object.defineProperty(Yn,"__esModule",{value:!0});Yn.operationTypeNodeToDefaultType=void 0;Yn.isObjectLikeNodeEntity=v9;Yn.isNodeInterfaceObject=S9;Yn.stringToNameNode=kN;Yn.stringArrayToNameNodeArray=O9;Yn.setToNameNodeArray=D9;Yn.stringToNamedTypeNode=RC;Yn.setToNamedTypeNodeArray=b9;Yn.nodeKindToDirectiveLocation=A9;Yn.isKindAbstract=R9;Yn.extractExecutableDirectiveLocations=P9;Yn.formatDescription=F9;Yn.lexicographicallySortArgumentNodes=PC;Yn.lexicographicallySortSelectionSetNode=UN;Yn.lexicographicallySortDocumentNode=w9;Yn.parse=FC;Yn.safeParse=L9;var xt=De(),Sn=vr();function v9(e){var t;if(!((t=e.directives)!=null&&t.length))return!1;for(let n of e.directives)if(n.name.value===Sn.KEY)return!0;return!1}function S9(e){var t;if(!((t=e.directives)!=null&&t.length))return!1;for(let n of e.directives)if(n.name.value===Sn.INTERFACE_OBJECT)return!0;return!1}function kN(e){return{kind:xt.Kind.NAME,value:e}}function O9(e){let t=[];for(let n of e)t.push(kN(n));return t}function D9(e){let t=[];for(let n of e)t.push(kN(n));return t}function RC(e){return{kind:xt.Kind.NAMED_TYPE,name:kN(e)}}function b9(e){let t=[];for(let n of e)t.push(RC(n));return t}function A9(e){switch(e){case xt.Kind.ARGUMENT:return Sn.ARGUMENT_DEFINITION_UPPER;case xt.Kind.ENUM_TYPE_DEFINITION:case xt.Kind.ENUM_TYPE_EXTENSION:return Sn.ENUM_UPPER;case xt.Kind.ENUM_VALUE_DEFINITION:return Sn.ENUM_VALUE_UPPER;case xt.Kind.FIELD_DEFINITION:return Sn.FIELD_DEFINITION_UPPER;case xt.Kind.FRAGMENT_DEFINITION:return Sn.FRAGMENT_DEFINITION_UPPER;case xt.Kind.FRAGMENT_SPREAD:return Sn.FRAGMENT_SPREAD_UPPER;case xt.Kind.INLINE_FRAGMENT:return Sn.INLINE_FRAGMENT_UPPER;case xt.Kind.INPUT_VALUE_DEFINITION:return Sn.INPUT_FIELD_DEFINITION_UPPER;case xt.Kind.INPUT_OBJECT_TYPE_DEFINITION:case xt.Kind.INPUT_OBJECT_TYPE_EXTENSION:return Sn.INPUT_OBJECT_UPPER;case xt.Kind.INTERFACE_TYPE_DEFINITION:case xt.Kind.INTERFACE_TYPE_EXTENSION:return Sn.INTERFACE_UPPER;case xt.Kind.OBJECT_TYPE_DEFINITION:case xt.Kind.OBJECT_TYPE_EXTENSION:return Sn.OBJECT_UPPER;case xt.Kind.SCALAR_TYPE_DEFINITION:case xt.Kind.SCALAR_TYPE_EXTENSION:return Sn.SCALAR_UPPER;case xt.Kind.SCHEMA_DEFINITION:case xt.Kind.SCHEMA_EXTENSION:return Sn.SCHEMA_UPPER;case xt.Kind.UNION_TYPE_DEFINITION:case xt.Kind.UNION_TYPE_EXTENSION:return Sn.UNION_UPPER;default:return e}}Yn.operationTypeNodeToDefaultType=new Map([[xt.OperationTypeNode.MUTATION,Sn.MUTATION],[xt.OperationTypeNode.QUERY,Sn.QUERY],[xt.OperationTypeNode.SUBSCRIPTION,Sn.SUBSCRIPTION]]);function R9(e){return e===xt.Kind.INTERFACE_TYPE_DEFINITION||e===xt.Kind.UNION_TYPE_DEFINITION}function P9(e,t){for(let n of e){let r=n.value;Sn.EXECUTABLE_DIRECTIVE_LOCATIONS.has(r)&&t.add(r)}return t}function F9(e){if(!e)return e;let t=e.value;if(e.block){let n=t.split(` +`;A.NUMBER="number";A.MUTATION="Mutation";A.MUTATION_UPPER="MUTATION";A.PROPAGATE="propagate";A.PROVIDER_TYPE_KAFKA="kafka";A.PROVIDER_TYPE_NATS="nats";A.PROVIDER_TYPE_REDIS="redis";A.NOT_APPLICABLE="N/A";A.NAME="name";A.NON_NULLABLE_EDFS_PUBLISH_EVENT_RESULT="edfs__PublishResult!";A.NON_NULLABLE_BOOLEAN="Boolean!";A.NON_NULLABLE_INT="Int!";A.NON_NULLABLE_STRING="String!";A.NOT_UPPER="NOT";A.NULL="Null";A.ONE_OF="oneOf";A.OPERATION_TO_DEFAULT="operationTypeNodeToDefaultType";A.OBJECT="Object";A.OBJECT_UPPER="OBJECT";A.OR_UPPER="OR";A.OVERRIDE="override";A.PARENT_DEFINITION_DATA="parentDefinitionDataByTypeName";A.PARENT_DEFINITION_DATA_MAP="parentDefinitionDataByParentTypeName";A.PARENT_EXTENSION_DATA_MAP="parentExtensionDataByParentTypeName";A.PERIOD=".";A.PROVIDER_ID="providerId";A.PROVIDES="provides";A.PUBLISH="publish";A.QUERY="Query";A.QUERY_UPPER="QUERY";A.QUOTATION_JOIN='", "';A.REASON="reason";A.REQUEST="request";A.REQUIRE_FETCH_REASONS="openfed__requireFetchReasons";A.REQUIRES="requires";A.REQUIRES_SCOPES="requiresScopes";A.RESOLVABLE="resolvable";A.SCALAR="Scalar";A.SCALAR_UPPER="SCALAR";A.SCHEMA="schema";A.SCHEMA_UPPER="SCHEMA";A.SCOPES="scopes";A.SCOPE_SCALAR="openfed__Scope";A.SECURITY="SECURITY";A.SELECTION_REPRESENTATION=" { ... }";A.SEMANTIC_NON_NULL="semanticNonNull";A.SERVICE_OBJECT="_Service";A.SERVICE_FIELD="_service";A.SHAREABLE="shareable";A.SPECIFIED_BY="specifiedBy";A.STREAM_CONFIGURATION="streamConfiguration";A.STREAM_NAME="streamName";A.STRING="string";A.STRING_SCALAR="String";A.SUBJECT="subject";A.SUBJECTS="subjects";A.SUBSCRIPTION="Subscription";A.SUBSCRIPTION_FIELD_CONDITION="openfed__SubscriptionFieldCondition";A.SUBSCRIPTION_FILTER="openfed__subscriptionFilter";A.SUBSCRIPTION_FILTER_CONDITION="openfed__SubscriptionFilterCondition";A.SUBSCRIPTION_FILTER_VALUE="openfed__SubscriptionFilterValue";A.SUBSCRIBE="subscribe";A.SUBSCRIPTION_UPPER="SUBSCRIPTION";A.SUCCESS="success";A.TAG="tag";A.TOPIC="topic";A.TOPICS="topics";A.UNION="Union";A.UNION_UPPER="UNION";A.URL_LOWER="url";A.VALUES="values";A.VARIABLE_DEFINITION_UPPER="VARIABLE_DEFINITION";A.EXECUTABLE_DIRECTIVE_LOCATIONS=new Set([A.FIELD_UPPER,A.FRAGMENT_DEFINITION_UPPER,A.FRAGMENT_SPREAD_UPPER,A.INLINE_FRAGMENT_UPPER,A.MUTATION_UPPER,A.QUERY_UPPER,A.SUBSCRIPTION_UPPER]);A.ROOT_TYPE_NAMES=new Set([A.MUTATION,A.QUERY,A.SUBSCRIPTION]);A.AUTHORIZATION_DIRECTIVES=new Set([A.AUTHENTICATED,A.REQUIRES_SCOPES]);A.PERSISTED_CLIENT_DIRECTIVES=new Set([A.DEPRECATED,A.ONE_OF,A.SEMANTIC_NON_NULL]);A.INHERITABLE_DIRECTIVE_NAMES=new Set([A.EXTERNAL,A.REQUIRE_FETCH_REASONS,A.SHAREABLE]);A.IGNORED_FIELDS=new Set([A.ENTITIES_FIELD,A.SERVICE_FIELD]);A.INPUT_NODE_KINDS=new Set([Eu.Kind.ENUM_TYPE_DEFINITION,Eu.Kind.INPUT_OBJECT_TYPE_DEFINITION,Eu.Kind.SCALAR_TYPE_DEFINITION]);A.OUTPUT_NODE_KINDS=new Set([Eu.Kind.ENUM_TYPE_DEFINITION,Eu.Kind.INTERFACE_TYPE_DEFINITION,Eu.Kind.OBJECT_TYPE_DEFINITION,Eu.Kind.SCALAR_TYPE_DEFINITION,Eu.Kind.UNION_TYPE_DEFINITION]);A.NON_REPEATABLE_PERSISTED_DIRECTIVES=new Set([A.INACCESSIBLE,A.ONE_OF,A.SEMANTIC_NON_NULL])});var Rr=F(Wn=>{"use strict";m();T();N();Object.defineProperty(Wn,"__esModule",{value:!0});Wn.operationTypeNodeToDefaultType=void 0;Wn.isObjectLikeNodeEntity=J9;Wn.isNodeInterfaceObject=H9;Wn.stringToNameNode=ZN;Wn.stringArrayToNameNodeArray=z9;Wn.setToNameNodeArray=W9;Wn.stringToNamedTypeNode=JC;Wn.setToNamedTypeNodeArray=X9;Wn.nodeKindToDirectiveLocation=Z9;Wn.isKindAbstract=e7;Wn.extractExecutableDirectiveLocations=t7;Wn.formatDescription=n7;Wn.lexicographicallySortArgumentNodes=HC;Wn.lexicographicallySortSelectionSetNode=XN;Wn.lexicographicallySortDocumentNode=r7;Wn.parse=zC;Wn.safeParse=i7;var xt=Se(),bn=sr();function J9(e){var t;if(!((t=e.directives)!=null&&t.length))return!1;for(let n of e.directives)if(n.name.value===bn.KEY)return!0;return!1}function H9(e){var t;if(!((t=e.directives)!=null&&t.length))return!1;for(let n of e.directives)if(n.name.value===bn.INTERFACE_OBJECT)return!0;return!1}function ZN(e){return{kind:xt.Kind.NAME,value:e}}function z9(e){let t=[];for(let n of e)t.push(ZN(n));return t}function W9(e){let t=[];for(let n of e)t.push(ZN(n));return t}function JC(e){return{kind:xt.Kind.NAMED_TYPE,name:ZN(e)}}function X9(e){let t=[];for(let n of e)t.push(JC(n));return t}function Z9(e){switch(e){case xt.Kind.ARGUMENT:return bn.ARGUMENT_DEFINITION_UPPER;case xt.Kind.ENUM_TYPE_DEFINITION:case xt.Kind.ENUM_TYPE_EXTENSION:return bn.ENUM_UPPER;case xt.Kind.ENUM_VALUE_DEFINITION:return bn.ENUM_VALUE_UPPER;case xt.Kind.FIELD_DEFINITION:return bn.FIELD_DEFINITION_UPPER;case xt.Kind.FRAGMENT_DEFINITION:return bn.FRAGMENT_DEFINITION_UPPER;case xt.Kind.FRAGMENT_SPREAD:return bn.FRAGMENT_SPREAD_UPPER;case xt.Kind.INLINE_FRAGMENT:return bn.INLINE_FRAGMENT_UPPER;case xt.Kind.INPUT_VALUE_DEFINITION:return bn.INPUT_FIELD_DEFINITION_UPPER;case xt.Kind.INPUT_OBJECT_TYPE_DEFINITION:case xt.Kind.INPUT_OBJECT_TYPE_EXTENSION:return bn.INPUT_OBJECT_UPPER;case xt.Kind.INTERFACE_TYPE_DEFINITION:case xt.Kind.INTERFACE_TYPE_EXTENSION:return bn.INTERFACE_UPPER;case xt.Kind.OBJECT_TYPE_DEFINITION:case xt.Kind.OBJECT_TYPE_EXTENSION:return bn.OBJECT_UPPER;case xt.Kind.SCALAR_TYPE_DEFINITION:case xt.Kind.SCALAR_TYPE_EXTENSION:return bn.SCALAR_UPPER;case xt.Kind.SCHEMA_DEFINITION:case xt.Kind.SCHEMA_EXTENSION:return bn.SCHEMA_UPPER;case xt.Kind.UNION_TYPE_DEFINITION:case xt.Kind.UNION_TYPE_EXTENSION:return bn.UNION_UPPER;default:return e}}Wn.operationTypeNodeToDefaultType=new Map([[xt.OperationTypeNode.MUTATION,bn.MUTATION],[xt.OperationTypeNode.QUERY,bn.QUERY],[xt.OperationTypeNode.SUBSCRIPTION,bn.SUBSCRIPTION]]);function e7(e){return e===xt.Kind.INTERFACE_TYPE_DEFINITION||e===xt.Kind.UNION_TYPE_DEFINITION}function t7(e,t){for(let n of e){let r=n.value;bn.EXECUTABLE_DIRECTIVE_LOCATIONS.has(r)&&t.add(r)}return t}function n7(e){if(!e)return e;let t=e.value;if(e.block){let n=t.split(` `);n.length>1&&(t=n.map(r=>r.trimStart()).join(` -`))}return Q(x({},e),{value:t,block:!0})}function PC(e){return e.arguments?e.arguments.sort((n,r)=>n.name.value.localeCompare(r.name.value)):e.arguments}function UN(e){let t=e.selections;return Q(x({},e),{selections:t.sort((n,r)=>{var a,o,c,l;return Sn.NAME in n?Sn.NAME in r?n.name.value.localeCompare(r.name.value):-1:Sn.NAME in r?1:((o=(a=n.typeCondition)==null?void 0:a.name.value)!=null?o:"").localeCompare((l=(c=r.typeCondition)==null?void 0:c.name.value)!=null?l:"")}).map(n=>{switch(n.kind){case xt.Kind.FIELD:return Q(x({},n),{arguments:PC(n),selectionSet:n.selectionSet?UN(n.selectionSet):n.selectionSet});case xt.Kind.FRAGMENT_SPREAD:return n;case xt.Kind.INLINE_FRAGMENT:return Q(x({},n),{selectionSet:UN(n.selectionSet)})}})})}function w9(e){return Q(x({},e),{definitions:e.definitions.map(t=>t.kind!==xt.Kind.OPERATION_DEFINITION?t:Q(x({},t),{selectionSet:UN(t.selectionSet)}))})}function FC(e,t=!0){return(0,xt.parse)(e,{noLocation:t})}function L9(e,t=!0){try{return{documentNode:FC(e,t)}}catch(n){return{error:n}}}});var CC=w(Il=>{"use strict";m();T();N();Object.defineProperty(Il,"__esModule",{value:!0});Il.AccumulatorMap=void 0;Il.mapValue=yl;Il.extendSchemaImpl=C9;var Ue=De(),vs=class extends Map{get[Symbol.toStringTag](){return"AccumulatorMap"}add(t,n){let r=this.get(t);r===void 0?this.set(t,[n]):r.push(n)}};Il.AccumulatorMap=vs;function yl(e,t){let n=Object.create(null);for(let r of Object.keys(e))n[r]=t(e[r],r);return n}function C9(e,t,n){var be,ve,Ce,vt;let r=[],i=new vs,a=new vs,o=new vs,c=new vs,l=new vs,d=new vs,p=[],y,I=[],v=!1;for(let Y of t.definitions){switch(Y.kind){case Ue.Kind.SCHEMA_DEFINITION:y=Y;break;case Ue.Kind.SCHEMA_EXTENSION:I.push(Y);break;case Ue.Kind.DIRECTIVE_DEFINITION:p.push(Y);break;case Ue.Kind.SCALAR_TYPE_DEFINITION:case Ue.Kind.OBJECT_TYPE_DEFINITION:case Ue.Kind.INTERFACE_TYPE_DEFINITION:case Ue.Kind.UNION_TYPE_DEFINITION:case Ue.Kind.ENUM_TYPE_DEFINITION:case Ue.Kind.INPUT_OBJECT_TYPE_DEFINITION:r.push(Y);break;case Ue.Kind.SCALAR_TYPE_EXTENSION:i.add(Y.name.value,Y);break;case Ue.Kind.OBJECT_TYPE_EXTENSION:a.add(Y.name.value,Y);break;case Ue.Kind.INTERFACE_TYPE_EXTENSION:o.add(Y.name.value,Y);break;case Ue.Kind.UNION_TYPE_EXTENSION:c.add(Y.name.value,Y);break;case Ue.Kind.ENUM_TYPE_EXTENSION:l.add(Y.name.value,Y);break;case Ue.Kind.INPUT_OBJECT_TYPE_EXTENSION:d.add(Y.name.value,Y);break;default:continue}v=!0}if(!v)return e;let F=new Map;for(let Y of e.types){let oe=ie(Y);oe&&F.set(Y.name,oe)}for(let Y of r){let oe=Y.name.value;F.set(oe,(be=wC.get(oe))!=null?be:ue(Y))}for(let[Y,oe]of a)F.set(Y,new Ue.GraphQLObjectType({name:Y,interfaces:()=>zt(oe),fields:()=>mn(oe),extensionASTNodes:oe}));if(n!=null&&n.addInvalidExtensionOrphans){for(let[Y,oe]of o)F.set(Y,new Ue.GraphQLInterfaceType({name:Y,interfaces:()=>zt(oe),fields:()=>mn(oe),extensionASTNodes:oe}));for(let[Y,oe]of l)F.set(Y,new Ue.GraphQLEnumType({name:Y,values:kn(oe),extensionASTNodes:oe}));for(let[Y,oe]of c)F.set(Y,new Ue.GraphQLUnionType({name:Y,types:()=>Rn(oe),extensionASTNodes:oe}));for(let[Y,oe]of i)F.set(Y,new Ue.GraphQLScalarType({name:Y,extensionASTNodes:oe}));for(let[Y,oe]of d)F.set(Y,new Ue.GraphQLInputObjectType({name:Y,fields:()=>Fr(oe),extensionASTNodes:oe}))}let k=x(x({query:e.query&&J(e.query),mutation:e.mutation&&J(e.mutation),subscription:e.subscription&&J(e.subscription)},y&&en([y])),en(I));return Q(x({description:(Ce=(ve=y==null?void 0:y.description)==null?void 0:ve.value)!=null?Ce:e.description},k),{types:Array.from(F.values()),directives:[...e.directives.map(se),...p.map(Qt)],extensions:e.extensions,astNode:y!=null?y:e.astNode,extensionASTNodes:e.extensionASTNodes.concat(I),assumeValid:(vt=n==null?void 0:n.assumeValid)!=null?vt:!1});function K(Y){return(0,Ue.isListType)(Y)?new Ue.GraphQLList(K(Y.ofType)):(0,Ue.isNonNullType)(Y)?new Ue.GraphQLNonNull(K(Y.ofType)):J(Y)}function J(Y){return F.get(Y.name)}function se(Y){if((0,Ue.isSpecifiedDirective)(Y))return Y;let oe=Y.toConfig();return new Ue.GraphQLDirective(Q(x({},oe),{args:yl(oe.args,_t)}))}function ie(Y){if((0,Ue.isIntrospectionType)(Y)||(0,Ue.isSpecifiedScalarType)(Y))return Y;if((0,Ue.isScalarType)(Y))return Re(Y);if((0,Ue.isObjectType)(Y))return xe(Y);if((0,Ue.isInterfaceType)(Y))return tt(Y);if((0,Ue.isUnionType)(Y))return ee(Y);if((0,Ue.isEnumType)(Y))return de(Y);if((0,Ue.isInputObjectType)(Y))return Te(Y)}function Te(Y){var Ye;let oe=Y.toConfig(),qe=(Ye=d.get(oe.name))!=null?Ye:[];return new Ue.GraphQLInputObjectType(Q(x({},oe),{fields:()=>x(x({},yl(oe.fields,Ut=>Q(x({},Ut),{type:K(Ut.type)}))),Fr(qe)),extensionASTNodes:oe.extensionASTNodes.concat(qe)}))}function de(Y){var Ye;let oe=Y.toConfig(),qe=(Ye=l.get(Y.name))!=null?Ye:[];return new Ue.GraphQLEnumType(Q(x({},oe),{values:x(x({},oe.values),kn(qe)),extensionASTNodes:oe.extensionASTNodes.concat(qe)}))}function Re(Y){var Ut,nt;let oe=Y.toConfig(),qe=(Ut=i.get(oe.name))!=null?Ut:[],Ye=oe.specifiedByURL;for(let Rt of qe)Ye=(nt=LC(Rt))!=null?nt:Ye;return new Ue.GraphQLScalarType(Q(x({},oe),{specifiedByURL:Ye,extensionASTNodes:oe.extensionASTNodes.concat(qe)}))}function xe(Y){var Ye;let oe=Y.toConfig(),qe=(Ye=a.get(oe.name))!=null?Ye:[];return new Ue.GraphQLObjectType(Q(x({},oe),{interfaces:()=>[...Y.getInterfaces().map(J),...zt(qe)],fields:()=>x(x({},yl(oe.fields,Se)),mn(qe)),extensionASTNodes:oe.extensionASTNodes.concat(qe)}))}function tt(Y){var Ye;let oe=Y.toConfig(),qe=(Ye=o.get(oe.name))!=null?Ye:[];return new Ue.GraphQLInterfaceType(Q(x({},oe),{interfaces:()=>[...Y.getInterfaces().map(J),...zt(qe)],fields:()=>x(x({},yl(oe.fields,Se)),mn(qe)),extensionASTNodes:oe.extensionASTNodes.concat(qe)}))}function ee(Y){var Ye;let oe=Y.toConfig(),qe=(Ye=c.get(oe.name))!=null?Ye:[];return new Ue.GraphQLUnionType(Q(x({},oe),{types:()=>[...Y.getTypes().map(J),...Rn(qe)],extensionASTNodes:oe.extensionASTNodes.concat(qe)}))}function Se(Y){return Q(x({},Y),{type:K(Y.type),args:Y.args&&yl(Y.args,_t)})}function _t(Y){return Q(x({},Y),{type:K(Y.type)})}function en(Y){var qe;let oe={};for(let Ye of Y){let Ut=(qe=Ye.operationTypes)!=null?qe:[];for(let nt of Ut)oe[nt.operation]=tn(nt.type)}return oe}function tn(Y){var Ye;let oe=Y.name.value,qe=(Ye=wC.get(oe))!=null?Ye:F.get(oe);if(qe===void 0)throw new Error(`Unknown type: "${oe}".`);return qe}function An(Y){return Y.kind===Ue.Kind.LIST_TYPE?new Ue.GraphQLList(An(Y.type)):Y.kind===Ue.Kind.NON_NULL_TYPE?new Ue.GraphQLNonNull(An(Y.type)):tn(Y)}function Qt(Y){var oe;return new Ue.GraphQLDirective({name:Y.name.value,description:(oe=Y.description)==null?void 0:oe.value,locations:Y.locations.map(({value:qe})=>qe),isRepeatable:Y.repeatable,args:Pr(Y.arguments),astNode:Y})}function mn(Y){var qe,Ye;let oe=Object.create(null);for(let Ut of Y){let nt=(qe=Ut.fields)!=null?qe:[];for(let Rt of nt)oe[Rt.name.value]={type:An(Rt.type),description:(Ye=Rt.description)==null?void 0:Ye.value,args:Pr(Rt.arguments),deprecationReason:MN(Rt),astNode:Rt}}return oe}function Pr(Y){var Ye;let oe=Y!=null?Y:[],qe=Object.create(null);for(let Ut of oe){let nt=An(Ut.type);qe[Ut.name.value]={type:nt,description:(Ye=Ut.description)==null?void 0:Ye.value,defaultValue:(0,Ue.valueFromAST)(Ut.defaultValue,nt),deprecationReason:MN(Ut),astNode:Ut}}return qe}function Fr(Y){var qe,Ye;let oe=Object.create(null);for(let Ut of Y){let nt=(qe=Ut.fields)!=null?qe:[];for(let Rt of nt){let ns=An(Rt.type);oe[Rt.name.value]={type:ns,description:(Ye=Rt.description)==null?void 0:Ye.value,defaultValue:(0,Ue.valueFromAST)(Rt.defaultValue,ns),deprecationReason:MN(Rt),astNode:Rt}}}return oe}function kn(Y){var qe,Ye;let oe=Object.create(null);for(let Ut of Y){let nt=(qe=Ut.values)!=null?qe:[];for(let Rt of nt)oe[Rt.name.value]={description:(Ye=Rt.description)==null?void 0:Ye.value,deprecationReason:MN(Rt),astNode:Rt}}return oe}function zt(Y){return Y.flatMap(oe=>{var qe,Ye;return(Ye=(qe=oe.interfaces)==null?void 0:qe.map(tn))!=null?Ye:[]})}function Rn(Y){return Y.flatMap(oe=>{var qe,Ye;return(Ye=(qe=oe.types)==null?void 0:qe.map(tn))!=null?Ye:[]})}function ue(Y){var qe,Ye,Ut,nt,Rt,ns,Vr,rs,xc,ga,mr,ri;let oe=Y.name.value;switch(Y.kind){case Ue.Kind.OBJECT_TYPE_DEFINITION:{let Vt=(qe=a.get(oe))!=null?qe:[],Nr=[Y,...Vt];return a.delete(oe),new Ue.GraphQLObjectType({name:oe,description:(Ye=Y.description)==null?void 0:Ye.value,interfaces:()=>zt(Nr),fields:()=>mn(Nr),astNode:Y,extensionASTNodes:Vt})}case Ue.Kind.INTERFACE_TYPE_DEFINITION:{let Vt=(Ut=o.get(oe))!=null?Ut:[],Nr=[Y,...Vt];return o.delete(oe),new Ue.GraphQLInterfaceType({name:oe,description:(nt=Y.description)==null?void 0:nt.value,interfaces:()=>zt(Nr),fields:()=>mn(Nr),astNode:Y,extensionASTNodes:Vt})}case Ue.Kind.ENUM_TYPE_DEFINITION:{let Vt=(Rt=l.get(oe))!=null?Rt:[],Nr=[Y,...Vt];return l.delete(oe),new Ue.GraphQLEnumType({name:oe,description:(ns=Y.description)==null?void 0:ns.value,values:kn(Nr),astNode:Y,extensionASTNodes:Vt})}case Ue.Kind.UNION_TYPE_DEFINITION:{let Vt=(Vr=c.get(oe))!=null?Vr:[],Nr=[Y,...Vt];return c.delete(oe),new Ue.GraphQLUnionType({name:oe,description:(rs=Y.description)==null?void 0:rs.value,types:()=>Rn(Nr),astNode:Y,extensionASTNodes:Vt})}case Ue.Kind.SCALAR_TYPE_DEFINITION:{let Vt=(xc=i.get(oe))!=null?xc:[];return i.delete(oe),new Ue.GraphQLScalarType({name:oe,description:(ga=Y.description)==null?void 0:ga.value,specifiedByURL:LC(Y),astNode:Y,extensionASTNodes:Vt})}case Ue.Kind.INPUT_OBJECT_TYPE_DEFINITION:{let Vt=(mr=d.get(oe))!=null?mr:[],Nr=[Y,...Vt];return d.delete(oe),new Ue.GraphQLInputObjectType({name:oe,description:(ri=Y.description)==null?void 0:ri.value,fields:()=>Fr(Nr),astNode:Y,extensionASTNodes:Vt})}}}}var wC=new Map([...Ue.specifiedScalarTypes,...Ue.introspectionTypes].map(e=>[e.name,e]));function MN(e){let t=(0,Ue.getDirectiveValues)(Ue.GraphQLDeprecatedDirective,e);return t==null?void 0:t.reason}function LC(e){let t=(0,Ue.getDirectiveValues)(Ue.GraphQLSpecifiedByDirective,e);return t==null?void 0:t.url}});var bv=w(Dv=>{"use strict";m();T();N();Object.defineProperty(Dv,"__esModule",{value:!0});Dv.buildASTSchema=k9;var BC=De(),B9=Tl(),U9=CC();function k9(e,t){(t==null?void 0:t.assumeValid)!==!0&&(t==null?void 0:t.assumeValidSDL)!==!0&&(0,B9.assertValidSDL)(e);let n={description:void 0,types:[],directives:[],extensions:Object.create(null),extensionASTNodes:[],assumeValid:!1},r=(0,U9.extendSchemaImpl)(n,e,t);if(r.astNode==null)for(let a of r.types)switch(a.name){case"Query":r.query=a;break;case"Mutation":r.mutation=a;break;case"Subscription":r.subscription=a;break}let i=[...r.directives,...BC.specifiedDirectives.filter(a=>r.directives.every(o=>o.name!==a.name))];return new BC.GraphQLSchema(Q(x({},r),{directives:i}))}});var gl=w(lu=>{"use strict";m();T();N();Object.defineProperty(lu,"__esModule",{value:!0});lu.MAX_INT32=lu.MAX_SUBSCRIPTION_FILTER_DEPTH=lu.MAXIMUM_TYPE_NESTING=void 0;lu.MAXIMUM_TYPE_NESTING=30;lu.MAX_SUBSCRIPTION_FILTER_DEPTH=5;lu.MAX_INT32=un(2,31)-1});var Sr=w(cr=>{"use strict";m();T();N();Object.defineProperty(cr,"__esModule",{value:!0});cr.getOrThrowError=x9;cr.getEntriesNotInHashSet=q9;cr.numberToOrdinal=V9;cr.addIterableValuesToSet=j9;cr.addSets=K9;cr.kindToNodeType=G9;cr.getValueOrDefault=$9;cr.add=Q9;cr.generateSimpleDirective=Y9;cr.generateRequiresScopesDirective=J9;cr.generateSemanticNonNullDirective=H9;cr.copyObjectValueMap=z9;cr.addNewObjectValueMapEntries=W9;cr.copyArrayValueMap=X9;cr.addMapEntries=Z9;cr.getFirstEntry=e7;var Kt=De(),ur=vr(),M9=Mi(),Of=Hr();function x9(e,t,n){let r=e.get(t);if(r===void 0)throw(0,M9.invalidKeyFatalError)(t,n);return r}function q9(e,t){let n=[];for(let r of e)t.has(r)||n.push(r);return n}function V9(e){let t=e.toString();switch(t[t.length-1]){case"1":return`${t}st`;case"2":return`${t}nd`;case"3":return`${t}rd`;default:return`${t}th`}}function j9(e,t){for(let n of e)t.add(n)}function K9(e,t){let n=new Set(e);for(let r of t)n.add(r);return n}function G9(e){switch(e){case Kt.Kind.BOOLEAN:return ur.BOOLEAN_SCALAR;case Kt.Kind.ENUM:case Kt.Kind.ENUM_TYPE_DEFINITION:return ur.ENUM;case Kt.Kind.ENUM_TYPE_EXTENSION:return"Enum extension";case Kt.Kind.ENUM_VALUE_DEFINITION:return ur.ENUM_VALUE;case Kt.Kind.FIELD_DEFINITION:return ur.FIELD;case Kt.Kind.FLOAT:return ur.FLOAT_SCALAR;case Kt.Kind.INPUT_OBJECT_TYPE_DEFINITION:return ur.INPUT_OBJECT;case Kt.Kind.INPUT_OBJECT_TYPE_EXTENSION:return"Input Object extension";case Kt.Kind.INPUT_VALUE_DEFINITION:return ur.INPUT_VALUE;case Kt.Kind.INT:return ur.INT_SCALAR;case Kt.Kind.INTERFACE_TYPE_DEFINITION:return ur.INTERFACE;case Kt.Kind.INTERFACE_TYPE_EXTENSION:return"Interface extension";case Kt.Kind.NULL:return ur.NULL;case Kt.Kind.OBJECT:case Kt.Kind.OBJECT_TYPE_DEFINITION:return ur.OBJECT;case Kt.Kind.OBJECT_TYPE_EXTENSION:return"Object extension";case Kt.Kind.STRING:return ur.STRING_SCALAR;case Kt.Kind.SCALAR_TYPE_DEFINITION:return ur.SCALAR;case Kt.Kind.SCALAR_TYPE_EXTENSION:return"Scalar extension";case Kt.Kind.UNION_TYPE_DEFINITION:return ur.UNION;case Kt.Kind.UNION_TYPE_EXTENSION:return"Union extension";default:return e}}function $9(e,t,n){let r=e.get(t);if(r)return r;let i=n();return e.set(t,i),i}function Q9(e,t){return e.has(t)?!1:(e.add(t),!0)}function Y9(e){return{kind:Kt.Kind.DIRECTIVE,name:(0,Of.stringToNameNode)(e)}}function J9(e){let t=[];for(let n of e){let r=[];for(let i of n)r.push({kind:Kt.Kind.STRING,value:i});t.push({kind:Kt.Kind.LIST,values:r})}return{kind:Kt.Kind.DIRECTIVE,name:(0,Of.stringToNameNode)(ur.REQUIRES_SCOPES),arguments:[{kind:Kt.Kind.ARGUMENT,name:(0,Of.stringToNameNode)(ur.SCOPES),value:{kind:Kt.Kind.LIST,values:t}}]}}function H9(e){let t=Array.from(e).sort((r,i)=>r-i),n=new Array;for(let r of t)n.push({kind:Kt.Kind.INT,value:r.toString()});return{kind:Kt.Kind.DIRECTIVE,name:(0,Of.stringToNameNode)(ur.SEMANTIC_NON_NULL),arguments:[{kind:Kt.Kind.ARGUMENT,name:(0,Of.stringToNameNode)(ur.LEVELS),value:{kind:Kt.Kind.LIST,values:n}}]}}function z9(e){let t=new Map;for(let[n,r]of e)t.set(n,x({},r));return t}function W9(e,t){for(let[n,r]of e)t.set(n,x({},r))}function X9(e){let t=new Map;for(let[n,r]of e)t.set(n,[...r]);return t}function Z9(e,t){for(let[n,r]of e)t.set(n,r)}function e7(e){let{value:t,done:n}=e.values().next();if(!n)return t}});var Df=w(xN=>{"use strict";m();T();N();Object.defineProperty(xN,"__esModule",{value:!0});xN.ExtensionType=void 0;var UC;(function(e){e[e.EXTENDS=0]="EXTENDS",e[e.NONE=1]="NONE",e[e.REAL=2]="REAL"})(UC||(xN.ExtensionType=UC={}))});var du=w(Dr=>{"use strict";m();T();N();Object.defineProperty(Dr,"__esModule",{value:!0});Dr.getMutableDirectiveDefinitionNode=n7;Dr.getMutableEnumNode=r7;Dr.getMutableEnumValueNode=i7;Dr.getMutableFieldNode=a7;Dr.getMutableInputObjectNode=s7;Dr.getMutableInputValueNode=o7;Dr.getMutableInterfaceNode=u7;Dr.getMutableObjectNode=c7;Dr.getMutableObjectExtensionNode=l7;Dr.getMutableScalarNode=d7;Dr.getMutableTypeNode=Av;Dr.getMutableUnionNode=f7;Dr.getTypeNodeNamedTypeName=Rv;Dr.getNamedTypeNode=MC;var Or=De(),_l=Hr(),kC=Mi(),t7=gl();function n7(e){return{arguments:[],kind:e.kind,locations:[],name:x({},e.name),repeatable:e.repeatable,description:(0,_l.formatDescription)(e.description)}}function r7(e){return{kind:Or.Kind.ENUM_TYPE_DEFINITION,name:x({},e)}}function i7(e){return{directives:[],kind:e.kind,name:x({},e.name),description:(0,_l.formatDescription)(e.description)}}function a7(e,t,n){return{arguments:[],directives:[],kind:e.kind,name:x({},e.name),type:Av(e.type,t,n),description:(0,_l.formatDescription)(e.description)}}function s7(e){return{kind:Or.Kind.INPUT_OBJECT_TYPE_DEFINITION,name:x({},e)}}function o7(e,t,n){return{directives:[],kind:e.kind,name:x({},e.name),type:Av(e.type,t,n),defaultValue:e.defaultValue,description:(0,_l.formatDescription)(e.description)}}function u7(e){return{kind:Or.Kind.INTERFACE_TYPE_DEFINITION,name:x({},e)}}function c7(e){return{kind:Or.Kind.OBJECT_TYPE_DEFINITION,name:x({},e)}}function l7(e){let t=e.kind===Or.Kind.OBJECT_TYPE_DEFINITION?e.description:void 0;return{kind:Or.Kind.OBJECT_TYPE_EXTENSION,name:x({},e.name),description:(0,_l.formatDescription)(t)}}function d7(e){return{kind:Or.Kind.SCALAR_TYPE_DEFINITION,name:x({},e)}}function Av(e,t,n){let r={kind:e.kind},i=r;for(let a=0;a{"use strict";m();T();N();Object.defineProperty(qN,"__esModule",{value:!0});qN.DEFAULT_CONSUMER_INACTIVE_THRESHOLD=void 0;qN.DEFAULT_CONSUMER_INACTIVE_THRESHOLD=30});var Ss=w(X=>{"use strict";m();T();N();Object.defineProperty(X,"__esModule",{value:!0});X.MAX_OR_SCOPES=X.EDFS_ARGS_REGEXP=X.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION=X.CONFIGURE_DESCRIPTION_DEFINITION=X.EDFS_NATS_STREAM_CONFIGURATION_DEFINITION=X.SCOPE_SCALAR_DEFINITION=X.FIELD_SET_SCALAR_DEFINITION=X.VERSION_TWO_DIRECTIVE_DEFINITIONS=X.EVENT_DRIVEN_DIRECTIVE_DEFINITIONS_BY_DIRECTIVE_NAME=X.BASE_DIRECTIVE_DEFINITIONS=X.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME=X.SUBSCRIPTION_FIELD_CONDITION_DEFINITION=X.SUBSCRIPTION_FILTER_VALUE_DEFINITION=X.SUBSCRIPTION_FILTER_CONDITION_DEFINITION=X.SUBSCRIPTION_FILTER_DEFINITION=X.SHAREABLE_DEFINITION=X.SEMANTIC_NON_NULL_DEFINITION=X.REQUIRES_SCOPES_DEFINITION=X.REQUIRE_FETCH_REASONS_DEFINITION=X.OVERRIDE_DEFINITION=X.ONE_OF_DEFINITION=X.LINK_DEFINITION=X.LINK_PURPOSE_DEFINITION=X.LINK_IMPORT_DEFINITION=X.INTERFACE_OBJECT_DEFINITION=X.INACCESSIBLE_DEFINITION=X.COMPOSE_DIRECTIVE_DEFINITION=X.AUTHENTICATED_DEFINITION=X.ALL_IN_BUILT_DIRECTIVE_NAMES=X.BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME=X.EDFS_REDIS_SUBSCRIBE_DEFINITION=X.EDFS_REDIS_PUBLISH_DEFINITION=X.TAG_DEFINITION=X.SPECIFIED_BY_DEFINITION=X.REQUIRES_DEFINITION=X.PROVIDES_DEFINITION=X.KEY_DEFINITION=X.REQUIRED_FIELDSET_TYPE_NODE=X.EDFS_NATS_SUBSCRIBE_DEFINITION=X.EDFS_NATS_REQUEST_DEFINITION=X.EDFS_NATS_PUBLISH_DEFINITION=X.EDFS_KAFKA_SUBSCRIBE_DEFINITION=X.EDFS_KAFKA_PUBLISH_DEFINITION=X.EXTERNAL_DEFINITION=X.EXTENDS_DEFINITION=X.DEPRECATED_DEFINITION=X.BASE_SCALARS=X.REQUIRED_STRING_TYPE_NODE=void 0;var ae=De(),re=Hr(),p7=Pv(),U=vr();X.REQUIRED_STRING_TYPE_NODE={kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR)};X.BASE_SCALARS=new Set(["_Any","_Entities",U.BOOLEAN_SCALAR,U.FLOAT_SCALAR,U.ID_SCALAR,U.INT_SCALAR,U.FIELD_SET_SCALAR,U.SCOPE_SCALAR,U.STRING_SCALAR]);X.DEPRECATED_DEFINITION={arguments:[{directives:[],kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.REASON),type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR),defaultValue:{kind:ae.Kind.STRING,value:ae.DEFAULT_DEPRECATION_REASON}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.ARGUMENT_DEFINITION_UPPER,U.ENUM_VALUE_UPPER,U.FIELD_DEFINITION_UPPER,U.INPUT_FIELD_DEFINITION_UPPER]),name:(0,re.stringToNameNode)(U.DEPRECATED),repeatable:!1};X.EXTENDS_DEFINITION={kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.INTERFACE_UPPER,U.OBJECT_UPPER]),name:(0,re.stringToNameNode)(U.EXTENDS),repeatable:!1};X.EXTERNAL_DEFINITION={kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.FIELD_DEFINITION_UPPER,U.OBJECT_UPPER]),name:(0,re.stringToNameNode)(U.EXTERNAL),repeatable:!1};X.EDFS_KAFKA_PUBLISH_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.TOPIC),type:X.REQUIRED_STRING_TYPE_NODE},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.PROVIDER_ID),type:X.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:ae.Kind.STRING,value:U.DEFAULT_EDFS_PROVIDER_ID}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:[(0,re.stringToNameNode)(U.FIELD_DEFINITION_UPPER)],name:(0,re.stringToNameNode)(U.EDFS_KAFKA_PUBLISH),repeatable:!1};X.EDFS_KAFKA_SUBSCRIBE_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.TOPICS),type:{kind:ae.Kind.NON_NULL_TYPE,type:{kind:ae.Kind.LIST_TYPE,type:X.REQUIRED_STRING_TYPE_NODE}}},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.PROVIDER_ID),type:X.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:ae.Kind.STRING,value:U.DEFAULT_EDFS_PROVIDER_ID}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:[(0,re.stringToNameNode)(U.FIELD_DEFINITION_UPPER)],name:(0,re.stringToNameNode)(U.EDFS_KAFKA_SUBSCRIBE),repeatable:!1};X.EDFS_NATS_PUBLISH_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.SUBJECT),type:X.REQUIRED_STRING_TYPE_NODE},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.PROVIDER_ID),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR)},defaultValue:{kind:ae.Kind.STRING,value:U.DEFAULT_EDFS_PROVIDER_ID}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:[(0,re.stringToNameNode)(U.FIELD_DEFINITION_UPPER)],name:(0,re.stringToNameNode)(U.EDFS_NATS_PUBLISH),repeatable:!1};X.EDFS_NATS_REQUEST_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.SUBJECT),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR)}},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.PROVIDER_ID),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR)},defaultValue:{kind:ae.Kind.STRING,value:U.DEFAULT_EDFS_PROVIDER_ID}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:[(0,re.stringToNameNode)(U.FIELD_DEFINITION_UPPER)],name:(0,re.stringToNameNode)(U.EDFS_NATS_REQUEST),repeatable:!1};X.EDFS_NATS_SUBSCRIBE_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.SUBJECTS),type:{kind:ae.Kind.NON_NULL_TYPE,type:{kind:ae.Kind.LIST_TYPE,type:X.REQUIRED_STRING_TYPE_NODE}}},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.PROVIDER_ID),type:X.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:ae.Kind.STRING,value:U.DEFAULT_EDFS_PROVIDER_ID}},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.STREAM_CONFIGURATION),type:(0,re.stringToNamedTypeNode)(U.EDFS_NATS_STREAM_CONFIGURATION)}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:[(0,re.stringToNameNode)(U.FIELD_DEFINITION_UPPER)],name:(0,re.stringToNameNode)(U.EDFS_NATS_SUBSCRIBE),repeatable:!1};X.REQUIRED_FIELDSET_TYPE_NODE={kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.FIELD_SET_SCALAR)};X.KEY_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.FIELDS),type:X.REQUIRED_FIELDSET_TYPE_NODE},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.RESOLVABLE),type:(0,re.stringToNamedTypeNode)(U.BOOLEAN_SCALAR),defaultValue:{kind:ae.Kind.BOOLEAN,value:!0}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.INTERFACE_UPPER,U.OBJECT_UPPER]),name:(0,re.stringToNameNode)(U.KEY),repeatable:!0};X.PROVIDES_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.FIELDS),type:X.REQUIRED_FIELDSET_TYPE_NODE}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:[(0,re.stringToNameNode)(U.FIELD_DEFINITION_UPPER)],name:(0,re.stringToNameNode)(U.PROVIDES),repeatable:!1};X.REQUIRES_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.FIELDS),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.FIELD_SET_SCALAR)}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:[(0,re.stringToNameNode)(U.FIELD_DEFINITION_UPPER)],name:(0,re.stringToNameNode)(U.REQUIRES),repeatable:!1};X.SPECIFIED_BY_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.URL_LOWER),type:X.REQUIRED_STRING_TYPE_NODE}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.SCALAR_UPPER]),name:(0,re.stringToNameNode)(U.SPECIFIED_BY),repeatable:!1};X.TAG_DEFINITION={arguments:[{directives:[],kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.NAME),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR)}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.ARGUMENT_DEFINITION_UPPER,U.ENUM_UPPER,U.ENUM_VALUE_UPPER,U.FIELD_DEFINITION_UPPER,U.INPUT_FIELD_DEFINITION_UPPER,U.INPUT_OBJECT_UPPER,U.INTERFACE_UPPER,U.OBJECT_UPPER,U.SCALAR_UPPER,U.UNION_UPPER]),name:(0,re.stringToNameNode)(U.TAG),repeatable:!0};X.EDFS_REDIS_PUBLISH_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.CHANNEL),type:X.REQUIRED_STRING_TYPE_NODE},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.PROVIDER_ID),type:X.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:ae.Kind.STRING,value:U.DEFAULT_EDFS_PROVIDER_ID}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:[(0,re.stringToNameNode)(U.FIELD_DEFINITION_UPPER)],name:(0,re.stringToNameNode)(U.EDFS_REDIS_PUBLISH),repeatable:!1};X.EDFS_REDIS_SUBSCRIBE_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.CHANNELS),type:{kind:ae.Kind.NON_NULL_TYPE,type:{kind:ae.Kind.LIST_TYPE,type:X.REQUIRED_STRING_TYPE_NODE}}},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.PROVIDER_ID),type:X.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:ae.Kind.STRING,value:U.DEFAULT_EDFS_PROVIDER_ID}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:[(0,re.stringToNameNode)(U.FIELD_DEFINITION_UPPER)],name:(0,re.stringToNameNode)(U.EDFS_REDIS_SUBSCRIBE),repeatable:!1};X.BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME=new Map([[U.DEPRECATED,X.DEPRECATED_DEFINITION],[U.EXTENDS,X.EXTENDS_DEFINITION],[U.EXTERNAL,X.EXTERNAL_DEFINITION],[U.EDFS_KAFKA_PUBLISH,X.EDFS_KAFKA_PUBLISH_DEFINITION],[U.EDFS_KAFKA_SUBSCRIBE,X.EDFS_KAFKA_SUBSCRIBE_DEFINITION],[U.EDFS_NATS_PUBLISH,X.EDFS_NATS_PUBLISH_DEFINITION],[U.EDFS_NATS_REQUEST,X.EDFS_NATS_REQUEST_DEFINITION],[U.EDFS_NATS_SUBSCRIBE,X.EDFS_NATS_SUBSCRIBE_DEFINITION],[U.EDFS_REDIS_PUBLISH,X.EDFS_REDIS_PUBLISH_DEFINITION],[U.EDFS_REDIS_SUBSCRIBE,X.EDFS_REDIS_SUBSCRIBE_DEFINITION],[U.KEY,X.KEY_DEFINITION],[U.PROVIDES,X.PROVIDES_DEFINITION],[U.REQUIRES,X.REQUIRES_DEFINITION],[U.SPECIFIED_BY,X.SPECIFIED_BY_DEFINITION],[U.TAG,X.TAG_DEFINITION]]);X.ALL_IN_BUILT_DIRECTIVE_NAMES=new Set([U.AUTHENTICATED,U.COMPOSE_DIRECTIVE,U.CONFIGURE_DESCRIPTION,U.CONFIGURE_CHILD_DESCRIPTIONS,U.DEPRECATED,U.EDFS_NATS_PUBLISH,U.EDFS_NATS_REQUEST,U.EDFS_NATS_SUBSCRIBE,U.EDFS_KAFKA_PUBLISH,U.EDFS_KAFKA_SUBSCRIBE,U.EDFS_REDIS_PUBLISH,U.EDFS_REDIS_SUBSCRIBE,U.EXTENDS,U.EXTERNAL,U.INACCESSIBLE,U.INTERFACE_OBJECT,U.KEY,U.LINK,U.ONE_OF,U.OVERRIDE,U.PROVIDES,U.REQUIRE_FETCH_REASONS,U.REQUIRES,U.REQUIRES_SCOPES,U.SEMANTIC_NON_NULL,U.SHAREABLE,U.SPECIFIED_BY,U.SUBSCRIPTION_FILTER,U.TAG]);X.AUTHENTICATED_DEFINITION={arguments:[],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.ENUM_UPPER,U.FIELD_DEFINITION_UPPER,U.INTERFACE_UPPER,U.OBJECT_UPPER,U.SCALAR_UPPER]),name:(0,re.stringToNameNode)(U.AUTHENTICATED),repeatable:!1};X.COMPOSE_DIRECTIVE_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.NAME),type:X.REQUIRED_STRING_TYPE_NODE}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.SCHEMA_UPPER]),name:(0,re.stringToNameNode)(U.COMPOSE_DIRECTIVE),repeatable:!0};X.INACCESSIBLE_DEFINITION={arguments:[],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.ARGUMENT_DEFINITION_UPPER,U.ENUM_UPPER,U.ENUM_VALUE_UPPER,U.FIELD_DEFINITION_UPPER,U.INPUT_FIELD_DEFINITION_UPPER,U.INPUT_OBJECT_UPPER,U.INTERFACE_UPPER,U.OBJECT_UPPER,U.SCALAR_UPPER,U.UNION_UPPER]),name:(0,re.stringToNameNode)(U.INACCESSIBLE),repeatable:!1};X.INTERFACE_OBJECT_DEFINITION={kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.OBJECT_UPPER]),name:(0,re.stringToNameNode)(U.INTERFACE_OBJECT),repeatable:!1};X.LINK_IMPORT_DEFINITION={kind:ae.Kind.SCALAR_TYPE_DEFINITION,name:(0,re.stringToNameNode)(U.LINK_IMPORT)};X.LINK_PURPOSE_DEFINITION={kind:ae.Kind.ENUM_TYPE_DEFINITION,name:(0,re.stringToNameNode)(U.LINK_PURPOSE),values:[{directives:[],kind:ae.Kind.ENUM_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.EXECUTION)},{directives:[],kind:ae.Kind.ENUM_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.SECURITY)}]};X.LINK_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.URL_LOWER),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR)}},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.AS),type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR)},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.FOR),type:(0,re.stringToNamedTypeNode)(U.LINK_PURPOSE)},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.IMPORT),type:{kind:ae.Kind.LIST_TYPE,type:(0,re.stringToNamedTypeNode)(U.LINK_IMPORT)}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.SCHEMA_UPPER]),name:(0,re.stringToNameNode)(U.LINK),repeatable:!0};X.ONE_OF_DEFINITION={kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.INPUT_OBJECT_UPPER]),name:(0,re.stringToNameNode)(U.ONE_OF),repeatable:!1};X.OVERRIDE_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.FROM),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR)}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.FIELD_DEFINITION_UPPER]),name:(0,re.stringToNameNode)(U.OVERRIDE),repeatable:!1};X.REQUIRE_FETCH_REASONS_DEFINITION={kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.FIELD_DEFINITION_UPPER,U.INTERFACE_UPPER,U.OBJECT_UPPER]),name:(0,re.stringToNameNode)(U.REQUIRE_FETCH_REASONS),repeatable:!0};X.REQUIRES_SCOPES_DEFINITION={arguments:[{directives:[],kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.SCOPES),type:{kind:ae.Kind.NON_NULL_TYPE,type:{kind:ae.Kind.LIST_TYPE,type:{kind:ae.Kind.NON_NULL_TYPE,type:{kind:ae.Kind.LIST_TYPE,type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.SCOPE_SCALAR)}}}}}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.ENUM_UPPER,U.FIELD_DEFINITION_UPPER,U.INTERFACE_UPPER,U.OBJECT_UPPER,U.SCALAR_UPPER]),name:(0,re.stringToNameNode)(U.REQUIRES_SCOPES),repeatable:!1};X.SEMANTIC_NON_NULL_DEFINITION={arguments:[{directives:[],kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.LEVELS),type:{kind:ae.Kind.NON_NULL_TYPE,type:{kind:ae.Kind.LIST_TYPE,type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.INT_SCALAR)}}},defaultValue:{kind:ae.Kind.LIST,values:[{kind:ae.Kind.INT,value:"0"}]}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:[(0,re.stringToNameNode)(U.FIELD_DEFINITION_UPPER)],name:(0,re.stringToNameNode)(U.SEMANTIC_NON_NULL),repeatable:!1};X.SHAREABLE_DEFINITION={kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.FIELD_DEFINITION_UPPER,U.OBJECT_UPPER]),name:(0,re.stringToNameNode)(U.SHAREABLE),repeatable:!0};X.SUBSCRIPTION_FILTER_DEFINITION={arguments:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.CONDITION),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.SUBSCRIPTION_FILTER_CONDITION)}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.FIELD_DEFINITION_UPPER]),name:(0,re.stringToNameNode)(U.SUBSCRIPTION_FILTER),repeatable:!1};X.SUBSCRIPTION_FILTER_CONDITION_DEFINITION={fields:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.AND_UPPER),type:{kind:ae.Kind.LIST_TYPE,type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.SUBSCRIPTION_FILTER_CONDITION)}}},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.IN_UPPER),type:(0,re.stringToNamedTypeNode)(U.SUBSCRIPTION_FIELD_CONDITION)},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.OR_UPPER),type:{kind:ae.Kind.LIST_TYPE,type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.SUBSCRIPTION_FILTER_CONDITION)}}},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.NOT_UPPER),type:(0,re.stringToNamedTypeNode)(U.SUBSCRIPTION_FILTER_CONDITION)}],kind:ae.Kind.INPUT_OBJECT_TYPE_DEFINITION,name:(0,re.stringToNameNode)(U.SUBSCRIPTION_FILTER_CONDITION)};X.SUBSCRIPTION_FILTER_VALUE_DEFINITION={kind:ae.Kind.SCALAR_TYPE_DEFINITION,name:(0,re.stringToNameNode)(U.SUBSCRIPTION_FILTER_VALUE)};X.SUBSCRIPTION_FIELD_CONDITION_DEFINITION={fields:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.FIELD_PATH),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR)}},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.VALUES),type:{kind:ae.Kind.NON_NULL_TYPE,type:{kind:ae.Kind.LIST_TYPE,type:(0,re.stringToNamedTypeNode)(U.SUBSCRIPTION_FILTER_VALUE)}}}],kind:ae.Kind.INPUT_OBJECT_TYPE_DEFINITION,name:(0,re.stringToNameNode)(U.SUBSCRIPTION_FIELD_CONDITION)};X.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME=new Map([[U.AUTHENTICATED,X.AUTHENTICATED_DEFINITION],[U.COMPOSE_DIRECTIVE,X.COMPOSE_DIRECTIVE_DEFINITION],[U.INACCESSIBLE,X.INACCESSIBLE_DEFINITION],[U.INTERFACE_OBJECT,X.INTERFACE_OBJECT_DEFINITION],[U.LINK,X.LINK_DEFINITION],[U.OVERRIDE,X.OVERRIDE_DEFINITION],[U.REQUIRES_SCOPES,X.REQUIRES_SCOPES_DEFINITION],[U.SHAREABLE,X.SHAREABLE_DEFINITION]]);X.BASE_DIRECTIVE_DEFINITIONS=[X.DEPRECATED_DEFINITION,X.EXTENDS_DEFINITION,X.EXTERNAL_DEFINITION,X.KEY_DEFINITION,X.PROVIDES_DEFINITION,X.REQUIRES_DEFINITION,X.SPECIFIED_BY_DEFINITION,X.TAG_DEFINITION];X.EVENT_DRIVEN_DIRECTIVE_DEFINITIONS_BY_DIRECTIVE_NAME=new Map([[U.EDFS_KAFKA_PUBLISH,X.EDFS_KAFKA_PUBLISH_DEFINITION],[U.EDFS_KAFKA_SUBSCRIBE,X.EDFS_KAFKA_SUBSCRIBE_DEFINITION],[U.EDFS_NATS_PUBLISH,X.EDFS_NATS_PUBLISH_DEFINITION],[U.EDFS_NATS_REQUEST,X.EDFS_NATS_REQUEST_DEFINITION],[U.EDFS_NATS_SUBSCRIBE,X.EDFS_NATS_SUBSCRIBE_DEFINITION],[U.EDFS_REDIS_PUBLISH,X.EDFS_REDIS_PUBLISH_DEFINITION],[U.EDFS_REDIS_SUBSCRIBE,X.EDFS_REDIS_SUBSCRIBE_DEFINITION]]);X.VERSION_TWO_DIRECTIVE_DEFINITIONS=[X.AUTHENTICATED_DEFINITION,X.COMPOSE_DIRECTIVE_DEFINITION,X.INACCESSIBLE_DEFINITION,X.INTERFACE_OBJECT_DEFINITION,X.OVERRIDE_DEFINITION,X.REQUIRES_SCOPES_DEFINITION,X.SHAREABLE_DEFINITION];X.FIELD_SET_SCALAR_DEFINITION={kind:ae.Kind.SCALAR_TYPE_DEFINITION,name:(0,re.stringToNameNode)(U.FIELD_SET_SCALAR)};X.SCOPE_SCALAR_DEFINITION={kind:ae.Kind.SCALAR_TYPE_DEFINITION,name:(0,re.stringToNameNode)(U.SCOPE_SCALAR)};X.EDFS_NATS_STREAM_CONFIGURATION_DEFINITION={kind:ae.Kind.INPUT_OBJECT_TYPE_DEFINITION,name:(0,re.stringToNameNode)(U.EDFS_NATS_STREAM_CONFIGURATION),fields:[{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.CONSUMER_NAME),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR)}},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.STREAM_NAME),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR)}},{kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.CONSUMER_INACTIVE_THRESHOLD),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.INT_SCALAR)},defaultValue:{kind:ae.Kind.INT,value:p7.DEFAULT_CONSUMER_INACTIVE_THRESHOLD.toString()}}]};X.CONFIGURE_DESCRIPTION_DEFINITION={arguments:[{directives:[],kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.PROPAGATE),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.BOOLEAN_SCALAR)},defaultValue:{kind:ae.Kind.BOOLEAN,value:!0}},{directives:[],kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.DESCRIPTION_OVERRIDE),type:(0,re.stringToNamedTypeNode)(U.STRING_SCALAR)}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.ARGUMENT_DEFINITION_UPPER,U.ENUM_UPPER,U.ENUM_VALUE_UPPER,U.FIELD_DEFINITION_UPPER,U.INTERFACE_UPPER,U.INPUT_OBJECT_UPPER,U.INPUT_FIELD_DEFINITION_UPPER,U.OBJECT_UPPER,U.SCALAR_UPPER,U.SCHEMA_UPPER,U.UNION_UPPER]),name:(0,re.stringToNameNode)(U.CONFIGURE_DESCRIPTION),repeatable:!1};X.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION={arguments:[{directives:[],kind:ae.Kind.INPUT_VALUE_DEFINITION,name:(0,re.stringToNameNode)(U.PROPAGATE),type:{kind:ae.Kind.NON_NULL_TYPE,type:(0,re.stringToNamedTypeNode)(U.BOOLEAN_SCALAR)},defaultValue:{kind:ae.Kind.BOOLEAN,value:!0}}],kind:ae.Kind.DIRECTIVE_DEFINITION,locations:(0,re.stringArrayToNameNodeArray)([U.ENUM_UPPER,U.INPUT_OBJECT_UPPER,U.INTERFACE_UPPER,U.OBJECT_UPPER]),name:(0,re.stringToNameNode)(U.CONFIGURE_CHILD_DESCRIPTIONS),repeatable:!1};X.EDFS_ARGS_REGEXP=/{{\s*args\.([a-zA-Z0-9_]+)\s*}}/g;X.MAX_OR_SCOPES=16});var VN=w(sc=>{"use strict";m();T();N();Object.defineProperty(sc,"__esModule",{value:!0});sc.newParentTagData=E7;sc.newChildTagData=h7;sc.validateImplicitFieldSets=y7;sc.newContractTagOptionsFromArrays=I7;sc.getDescriptionFromString=g7;var zr=De(),m7=du(),N7=Ss(),T7=Hr(),xC=Sr();function E7(e){return{childTagDataByChildName:new Map,tagNames:new Set,typeName:e}}function h7(e){return{name:e,tagNames:new Set,tagNamesByArgumentName:new Map}}function y7({conditionalFieldDataByCoords:e,currentSubgraphName:t,entityData:n,implicitKeys:r,objectData:i,parentDefinitionDataByTypeName:a,graphNode:o}){let c=(0,xC.getValueOrDefault)(n.keyFieldSetDatasBySubgraphName,t,()=>new Map);for(let[l,d]of n.documentNodeByKeyFieldSet){if(c.has(l))continue;let p=[i],y=[],I=[],v=-1,F=!0,k=!0;(0,zr.visit)(d,{Argument:{enter(){return k=!1,zr.BREAK}},Field:{enter(K){let J=p[v];if(F)return k=!1,zr.BREAK;let se=K.name.value,ie=J.fieldDataByName.get(se);if(!ie||ie.argumentDataByName.size||y[v].has(se))return k=!1,zr.BREAK;let{isUnconditionallyProvided:Te}=(0,xC.getOrThrowError)(ie.externalFieldDataBySubgraphName,t,`${ie.originalParentTypeName}.${se}.externalFieldDataBySubgraphName`),de=e.get(`${ie.renamedParentTypeName}.${se}`);if(de){if(de.providedBy.length>0)I.push(...de.providedBy);else if(de.requiredBy.length>0)return k=!1,zr.BREAK}else if(!Te)return k=!1,zr.BREAK;y[v].add(se);let Re=(0,m7.getTypeNodeNamedTypeName)(ie.node.type);if(N7.BASE_SCALARS.has(Re))return;let xe=a.get(Re);if(!xe)return k=!1,zr.BREAK;if(xe.kind===zr.Kind.OBJECT_TYPE_DEFINITION){F=!0,p.push(xe);return}if((0,T7.isKindAbstract)(xe.kind))return k=!1,zr.BREAK}},InlineFragment:{enter(){return k=!1,zr.BREAK}},SelectionSet:{enter(){if(!F||(v+=1,F=!1,v<0||v>=p.length))return k=!1,zr.BREAK;y.push(new Set)},leave(){if(F)return k=!1,zr.BREAK;v-=1,p.pop(),y.pop()}}}),k&&(r.push(Q(x({fieldName:"",selectionSet:l},I.length>0?{conditions:I}:{}),{disableEntityResolver:!0})),o&&o.satisfiedFieldSets.add(l))}}function I7(e,t){return{tagNamesToExclude:new Set(e),tagNamesToInclude:new Set(t)}}function g7(e){if(e)return{block:!0,kind:zr.Kind.STRING,value:e}}});var Sl=w(mt=>{"use strict";m();T();N();Object.defineProperty(mt,"__esModule",{value:!0});mt.MergeMethod=void 0;mt.newPersistedDirectivesData=v7;mt.isNodeExternalOrShareable=S7;mt.isTypeRequired=O7;mt.areDefaultValuesCompatible=VC;mt.compareAndValidateInputValueDefaultValues=D7;mt.setMutualExecutableLocations=b7;mt.isTypeNameRootType=A7;mt.getRenamedRootTypeName=R7;mt.childMapToValueArray=F7;mt.setLongestDescription=w7;mt.isParentDataRootType=jC;mt.isInterfaceDefinitionData=L7;mt.setParentDataExtensionType=C7;mt.extractPersistedDirectives=k7;mt.propagateAuthDirectives=M7;mt.propagateFieldAuthDirectives=x7;mt.generateDeprecatedDirective=Cv;mt.getClientPersistedDirectiveNodes=wv;mt.getNodeForRouterSchemaByData=V7;mt.getClientSchemaFieldNodeByFieldData=j7;mt.getNodeWithPersistedDirectivesByInputValueData=GC;mt.addValidPersistedDirectiveDefinitionNodeByData=G7;mt.newInvalidFieldNames=$7;mt.validateExternalAndShareable=Q7;mt.isTypeValidImplementation=jN;mt.isNodeDataInaccessible=$C;mt.isLeafKind=Y7;mt.getSubscriptionFilterValue=J7;mt.getParentTypeName=H7;mt.newConditionalFieldData=z7;mt.getDefinitionDataCoords=W7;mt.isParentDataCompositeOutputType=X7;mt.newExternalFieldData=Z7;mt.getInitialFederatedDescription=eZ;mt.areKindsEqual=tZ;mt.isFieldData=Bv;mt.isInputNodeKind=nZ;mt.isOutputNodeKind=rZ;var st=De(),Fv=Df(),vl=Hr(),Lv=Mi(),Ct=vr(),oc=Sr(),_7=VN();function v7(){return{deprecatedReason:"",directivesByDirectiveName:new Map,isDeprecated:!1,tagDirectiveByName:new Map}}function S7(e,t,n){var i;let r={isExternal:n.has(Ct.EXTERNAL),isShareable:t||n.has(Ct.SHAREABLE)};if(!((i=e.directives)!=null&&i.length))return r;for(let a of e.directives){let o=a.name.value;if(o===Ct.EXTERNAL){r.isExternal=!0;continue}o===Ct.SHAREABLE&&(r.isShareable=!0)}return r}function O7(e){return e.kind===st.Kind.NON_NULL_TYPE}function VC(e,t){switch(e.kind){case st.Kind.LIST_TYPE:return t.kind===st.Kind.LIST||t.kind===st.Kind.NULL;case st.Kind.NAMED_TYPE:if(t.kind===st.Kind.NULL)return!0;switch(e.name.value){case Ct.BOOLEAN_SCALAR:return t.kind===st.Kind.BOOLEAN;case Ct.FLOAT_SCALAR:return t.kind===st.Kind.INT||t.kind===st.Kind.FLOAT;case Ct.INT_SCALAR:return t.kind===st.Kind.INT;case Ct.STRING_SCALAR:return t.kind===st.Kind.STRING;default:return!0}case st.Kind.NON_NULL_TYPE:return t.kind===st.Kind.NULL?!1:VC(e.type,t)}}function D7(e,t,n){if(!e.defaultValue)return;if(!t.defaultValue){e.includeDefaultValue=!1;return}let r=(0,st.print)(e.defaultValue),i=(0,st.print)(t.defaultValue);if(r!==i){n.push((0,Lv.incompatibleInputValueDefaultValuesError)(`${e.isArgument?Ct.ARGUMENT:Ct.INPUT_FIELD} "${e.name}"`,e.originalCoords,[...t.subgraphNames],r,i));return}}function b7(e,t){let n=new Set;for(let r of t)e.executableLocations.has(r)&&n.add(r);e.executableLocations=n}function A7(e,t){return Ct.ROOT_TYPE_NAMES.has(e)||t.has(e)}function R7(e,t){let n=t.get(e);if(!n)return e;switch(n){case st.OperationTypeNode.MUTATION:return Ct.MUTATION;case st.OperationTypeNode.SUBSCRIPTION:return Ct.SUBSCRIPTION;default:return Ct.QUERY}}function P7(e){for(let t of e.argumentDataByName.values()){for(let n of t.directivesByDirectiveName.values())t.node.directives.push(...n);e.node.arguments.push(t.node)}}function F7(e){let t=[];for(let n of e.values()){Bv(n)&&P7(n);for(let r of n.directivesByDirectiveName.values())n.node.directives.push(...r);t.push(n.node)}return t}function w7(e,t){if(t.description){if("configureDescriptionDataBySubgraphName"in t){for(let{propagate:n}of t.configureDescriptionDataBySubgraphName.values())if(!n)return}(!e.description||e.description.value.length0&&e.persistedDirectivesData.directivesByDirectiveName.set(Ct.REQUIRES_SCOPES,[(0,oc.generateRequiresScopesDirective)(t.requiredScopes)]))}function x7(e,t){if(!t)return;let n=t.fieldAuthDataByFieldName.get(e.name);n&&(n.originalData.requiresAuthentication&&e.persistedDirectivesData.directivesByDirectiveName.set(Ct.AUTHENTICATED,[(0,oc.generateSimpleDirective)(Ct.AUTHENTICATED)]),n.originalData.requiredScopes.length>0&&e.persistedDirectivesData.directivesByDirectiveName.set(Ct.REQUIRES_SCOPES,[(0,oc.generateRequiresScopesDirective)(n.originalData.requiredScopes)]))}function Cv(e){return{kind:st.Kind.DIRECTIVE,name:(0,vl.stringToNameNode)(Ct.DEPRECATED),arguments:[{kind:st.Kind.ARGUMENT,name:(0,vl.stringToNameNode)(Ct.REASON),value:{kind:st.Kind.STRING,value:e||Ct.DEPRECATED_DEFAULT_ARGUMENT_VALUE}}]}}function q7(e,t,n,r){let i=[];for(let[a,o]of e){let c=t.get(a);if(c){if(o.length<2){i.push(...o);continue}if(!c.repeatable){r.push((0,Lv.invalidRepeatedFederatedDirectiveErrorMessage)(a,n));continue}i.push(...o)}}return i}function KC(e,t,n){let r=[...e.persistedDirectivesData.tagDirectiveByName.values()];return e.persistedDirectivesData.isDeprecated&&r.push(Cv(e.persistedDirectivesData.deprecatedReason)),r.push(...q7(e.persistedDirectivesData.directivesByDirectiveName,t,e.name,n)),r}function wv(e){var n;let t=[];e.persistedDirectivesData.isDeprecated&&t.push(Cv(e.persistedDirectivesData.deprecatedReason));for(let[r,i]of e.persistedDirectivesData.directivesByDirectiveName){if(r===Ct.SEMANTIC_NON_NULL&&Bv(e)){t.push((0,oc.generateSemanticNonNullDirective)((n=(0,oc.getFirstEntry)(e.nullLevelsBySubgraphName))!=null?n:new Set([0])));continue}Ct.PERSISTED_CLIENT_DIRECTIVES.has(r)&&t.push(i[0])}return t}function V7(e,t,n){return e.node.name=(0,vl.stringToNameNode)(e.name),e.node.description=e.description,e.node.directives=KC(e,t,n),e.node}function j7(e){let t=wv(e),n=[];for(let r of e.argumentDataByName.values())$C(r)||n.push(Q(x({},r.node),{directives:wv(r)}));return Q(x({},e.node),{directives:t,arguments:n})}function GC(e,t,n){return e.node.name=(0,vl.stringToNameNode)(e.name),e.node.type=e.type,e.node.description=e.description,e.node.directives=KC(e,t,n),e.includeDefaultValue&&(e.node.defaultValue=e.defaultValue),e.node}function K7(e,t,n,r,i){let a=[];for(let[o,c]of t.argumentDataByName){let l=(0,oc.getEntriesNotInHashSet)(t.subgraphNames,c.subgraphNames);if(l.length>0){c.requiredSubgraphNames.size>0&&a.push({inputValueName:o,missingSubgraphs:l,requiredSubgraphs:[...c.requiredSubgraphNames]});continue}e.push(GC(c,n,r)),i&&i.add(o)}return a.length>0?(r.push((0,Lv.invalidRequiredInputValueError)(Ct.DIRECTIVE_DEFINITION,`@${t.name}`,a)),!1):!0}function G7(e,t,n,r){let i=[];K7(i,t,n,r)&&e.push({arguments:i,kind:st.Kind.DIRECTIVE_DEFINITION,locations:(0,vl.setToNameNodeArray)(t.executableLocations),name:(0,vl.stringToNameNode)(t.name),repeatable:t.repeatable,description:t.description})}function $7(){return{byShareable:new Set,subgraphNamesByExternalFieldName:new Map}}function Q7(e,t){let n=e.isShareableBySubgraphName.size,r=new Array,i=0;for(let[a,o]of e.isShareableBySubgraphName){let c=e.externalFieldDataBySubgraphName.get(a);if(c&&!c.isUnconditionallyProvided){r.push(a);continue}o||(i+=1)}switch(i){case 0:n===r.length&&t.subgraphNamesByExternalFieldName.set(e.name,r);return;case 1:if(n===1)return;n-r.length!==1&&t.byShareable.add(e.name);return;default:t.byShareable.add(e.name)}}var qC;(function(e){e[e.UNION=0]="UNION",e[e.INTERSECTION=1]="INTERSECTION",e[e.CONSISTENT=2]="CONSISTENT"})(qC||(mt.MergeMethod=qC={}));function jN(e,t,n){if(e.kind===st.Kind.NON_NULL_TYPE)return t.kind!==st.Kind.NON_NULL_TYPE?!1:jN(e.type,t.type,n);if(t.kind===st.Kind.NON_NULL_TYPE)return jN(e,t.type,n);switch(e.kind){case st.Kind.NAMED_TYPE:if(t.kind===st.Kind.NAMED_TYPE){let r=e.name.value,i=t.name.value;if(r===i)return!0;let a=n.get(r);return a?a.has(i):!1}return!1;default:return t.kind===st.Kind.LIST_TYPE?jN(e.type,t.type,n):!1}}function $C(e){return e.persistedDirectivesData.directivesByDirectiveName.has(Ct.INACCESSIBLE)||e.directivesByDirectiveName.has(Ct.INACCESSIBLE)}function Y7(e){return e===st.Kind.SCALAR_TYPE_DEFINITION||e===st.Kind.ENUM_TYPE_DEFINITION}function J7(e){switch(e.kind){case st.Kind.BOOLEAN:return e.value;case st.Kind.ENUM:case st.Kind.STRING:return e.value;case st.Kind.FLOAT:case st.Kind.INT:try{return parseFloat(e.value)}catch(t){return"NaN"}case st.Kind.NULL:return null}}function H7(e){return e.kind===st.Kind.OBJECT_TYPE_DEFINITION&&e.renamedTypeName||e.name}function z7(){return{providedBy:[],requiredBy:[]}}function W7(e,t){switch(e.kind){case st.Kind.ENUM_VALUE_DEFINITION:return`${e.parentTypeName}.${e.name}`;case st.Kind.FIELD_DEFINITION:return`${t?e.renamedParentTypeName:e.originalParentTypeName}.${e.name}`;case st.Kind.ARGUMENT:case st.Kind.INPUT_VALUE_DEFINITION:return t?e.federatedCoords:e.originalCoords;case st.Kind.OBJECT_TYPE_DEFINITION:return t?e.renamedTypeName:e.name;default:return e.name}}function X7(e){return e.kind===st.Kind.OBJECT_TYPE_DEFINITION||e.kind===st.Kind.INTERFACE_TYPE_DEFINITION}function Z7(e){return{isDefinedExternal:e,isUnconditionallyProvided:!e}}function eZ(e){let{value:t,done:n}=e.configureDescriptionDataBySubgraphName.values().next();if(n)return e.description;if(t.propagate)return(0,_7.getDescriptionFromString)(t.description)||e.description}function tZ(e,t){return e.kind===t.kind}function Bv(e){return e.kind===st.Kind.FIELD_DEFINITION}function nZ(e){return Ct.INPUT_NODE_KINDS.has(e)}function rZ(e){return Ct.OUTPUT_NODE_KINDS.has(e)}});var Mv={};fm(Mv,{__addDisposableResource:()=>fB,__assign:()=>KN,__asyncDelegator:()=>iB,__asyncGenerator:()=>rB,__asyncValues:()=>aB,__await:()=>Ol,__awaiter:()=>WC,__classPrivateFieldGet:()=>cB,__classPrivateFieldIn:()=>dB,__classPrivateFieldSet:()=>lB,__createBinding:()=>$N,__decorate:()=>JC,__disposeResources:()=>pB,__esDecorate:()=>iZ,__exportStar:()=>ZC,__extends:()=>QC,__generator:()=>XC,__importDefault:()=>uB,__importStar:()=>oB,__makeTemplateObject:()=>sB,__metadata:()=>zC,__param:()=>HC,__propKey:()=>sZ,__read:()=>kv,__rest:()=>YC,__runInitializers:()=>aZ,__setFunctionName:()=>oZ,__spread:()=>eB,__spreadArray:()=>nB,__spreadArrays:()=>tB,__values:()=>GN,default:()=>lZ});function QC(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Uv(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function YC(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(e);i=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function HC(e,t){return function(n,r){t(n,r,e)}}function iZ(e,t,n,r,i,a){function o(J){if(J!==void 0&&typeof J!="function")throw new TypeError("Function expected");return J}for(var c=r.kind,l=c==="getter"?"get":c==="setter"?"set":"value",d=!t&&e?r.static?e:e.prototype:null,p=t||(d?Object.getOwnPropertyDescriptor(d,r.name):{}),y,I=!1,v=n.length-1;v>=0;v--){var F={};for(var k in r)F[k]=k==="access"?{}:r[k];for(var k in r.access)F.access[k]=r.access[k];F.addInitializer=function(J){if(I)throw new TypeError("Cannot add initializers after decoration has completed");a.push(o(J||null))};var K=(0,n[v])(c==="accessor"?{get:p.get,set:p.set}:p[l],F);if(c==="accessor"){if(K===void 0)continue;if(K===null||typeof K!="object")throw new TypeError("Object expected");(y=o(K.get))&&(p.get=y),(y=o(K.set))&&(p.set=y),(y=o(K.init))&&i.unshift(y)}else(y=o(K))&&(c==="field"?i.unshift(y):p[l]=y)}d&&Object.defineProperty(d,r.name,p),I=!0}function aZ(e,t,n){for(var r=arguments.length>2,i=0;i0&&a[a.length-1])&&(d[0]===6||d[0]===2)){n=0;continue}if(d[0]===3&&(!a||d[1]>a[0]&&d[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function kv(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(c){o={error:c}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function eB(){for(var e=[],t=0;t1||c(I,v)})})}function c(I,v){try{l(r[I](v))}catch(F){y(a[0][3],F)}}function l(I){I.value instanceof Ol?Promise.resolve(I.value.v).then(d,p):y(a[0][2],I)}function d(I){c("next",I)}function p(I){c("throw",I)}function y(I,v){I(v),a.shift(),a.length&&c(a[0][0],a[0][1])}}function iB(e){var t,n;return t={},r("next"),r("throw",function(i){throw i}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(i,a){t[i]=e[i]?function(o){return(n=!n)?{value:Ol(e[i](o)),done:!1}:a?a(o):o}:a}}function aB(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof GN=="function"?GN(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=e[a]&&function(o){return new Promise(function(c,l){o=e[a](o),i(c,l,o.done,o.value)})}}function i(a,o,c,l){Promise.resolve(l).then(function(d){a({value:d,done:c})},o)}}function sB(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function oB(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&$N(t,e,n);return uZ(t,e),t}function uB(e){return e&&e.__esModule?e:{default:e}}function cB(e,t,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)}function lB(e,t,n,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(e,n):i?i.value=n:t.set(e,n),n}function dB(e,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof e=="function"?t===e:e.has(t)}function fB(e,t,n){if(t!=null){if(typeof t!="object"&&typeof t!="function")throw new TypeError("Object expected.");var r;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose]}if(typeof r!="function")throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}function pB(e){function t(r){e.error=e.hasError?new cZ(r,e.error,"An error was suppressed during disposal."):r,e.hasError=!0}function n(){for(;e.stack.length;){var r=e.stack.pop();try{var i=r.dispose&&r.dispose.call(r.value);if(r.async)return Promise.resolve(i).then(n,function(a){return t(a),n()})}catch(a){t(a)}}if(e.hasError)throw e.error}return n()}var Uv,KN,$N,uZ,cZ,lZ,xv=ku(()=>{"use strict";m();T();N();Uv=function(e,t){return Uv=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},Uv(e,t)};KN=function(){return KN=Object.assign||function(t){for(var n,r=1,i=arguments.length;rCB,__assign:()=>QN,__asyncDelegator:()=>DB,__asyncGenerator:()=>OB,__asyncValues:()=>bB,__await:()=>Dl,__awaiter:()=>yB,__classPrivateFieldGet:()=>FB,__classPrivateFieldIn:()=>LB,__classPrivateFieldSet:()=>wB,__createBinding:()=>JN,__decorate:()=>TB,__disposeResources:()=>BB,__esDecorate:()=>dZ,__exportStar:()=>gB,__extends:()=>mB,__generator:()=>IB,__importDefault:()=>PB,__importStar:()=>RB,__makeTemplateObject:()=>AB,__metadata:()=>hB,__param:()=>EB,__propKey:()=>pZ,__read:()=>Vv,__rest:()=>NB,__runInitializers:()=>fZ,__setFunctionName:()=>mZ,__spread:()=>_B,__spreadArray:()=>SB,__spreadArrays:()=>vB,__values:()=>YN,default:()=>EZ});function mB(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");qv(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function NB(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(e);i=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function EB(e,t){return function(n,r){t(n,r,e)}}function dZ(e,t,n,r,i,a){function o(J){if(J!==void 0&&typeof J!="function")throw new TypeError("Function expected");return J}for(var c=r.kind,l=c==="getter"?"get":c==="setter"?"set":"value",d=!t&&e?r.static?e:e.prototype:null,p=t||(d?Object.getOwnPropertyDescriptor(d,r.name):{}),y,I=!1,v=n.length-1;v>=0;v--){var F={};for(var k in r)F[k]=k==="access"?{}:r[k];for(var k in r.access)F.access[k]=r.access[k];F.addInitializer=function(J){if(I)throw new TypeError("Cannot add initializers after decoration has completed");a.push(o(J||null))};var K=(0,n[v])(c==="accessor"?{get:p.get,set:p.set}:p[l],F);if(c==="accessor"){if(K===void 0)continue;if(K===null||typeof K!="object")throw new TypeError("Object expected");(y=o(K.get))&&(p.get=y),(y=o(K.set))&&(p.set=y),(y=o(K.init))&&i.unshift(y)}else(y=o(K))&&(c==="field"?i.unshift(y):p[l]=y)}d&&Object.defineProperty(d,r.name,p),I=!0}function fZ(e,t,n){for(var r=arguments.length>2,i=0;i0&&a[a.length-1])&&(d[0]===6||d[0]===2)){n=0;continue}if(d[0]===3&&(!a||d[1]>a[0]&&d[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Vv(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(c){o={error:c}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function _B(){for(var e=[],t=0;t1||c(I,v)})})}function c(I,v){try{l(r[I](v))}catch(F){y(a[0][3],F)}}function l(I){I.value instanceof Dl?Promise.resolve(I.value.v).then(d,p):y(a[0][2],I)}function d(I){c("next",I)}function p(I){c("throw",I)}function y(I,v){I(v),a.shift(),a.length&&c(a[0][0],a[0][1])}}function DB(e){var t,n;return t={},r("next"),r("throw",function(i){throw i}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(i,a){t[i]=e[i]?function(o){return(n=!n)?{value:Dl(e[i](o)),done:!1}:a?a(o):o}:a}}function bB(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof YN=="function"?YN(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=e[a]&&function(o){return new Promise(function(c,l){o=e[a](o),i(c,l,o.done,o.value)})}}function i(a,o,c,l){Promise.resolve(l).then(function(d){a({value:d,done:c})},o)}}function AB(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function RB(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&JN(t,e,n);return NZ(t,e),t}function PB(e){return e&&e.__esModule?e:{default:e}}function FB(e,t,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)}function wB(e,t,n,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(e,n):i?i.value=n:t.set(e,n),n}function LB(e,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof e=="function"?t===e:e.has(t)}function CB(e,t,n){if(t!=null){if(typeof t!="object"&&typeof t!="function")throw new TypeError("Object expected.");var r;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose]}if(typeof r!="function")throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}function BB(e){function t(r){e.error=e.hasError?new TZ(r,e.error,"An error was suppressed during disposal."):r,e.hasError=!0}function n(){for(;e.stack.length;){var r=e.stack.pop();try{var i=r.dispose&&r.dispose.call(r.value);if(r.async)return Promise.resolve(i).then(n,function(a){return t(a),n()})}catch(a){t(a)}}if(e.hasError)throw e.error}return n()}var qv,QN,JN,NZ,TZ,EZ,kB=ku(()=>{"use strict";m();T();N();qv=function(e,t){return qv=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},qv(e,t)};QN=function(){return QN=Object.assign||function(t){for(var n,r=1,i=arguments.length;r{"use strict";m();T();N()});var bf=w(lr=>{"use strict";m();T();N();Object.defineProperty(lr,"__esModule",{value:!0});lr.assertSome=lr.isSome=lr.compareNodes=lr.nodeToString=lr.compareStrings=lr.isValidPath=lr.isDocumentString=lr.asArray=void 0;var hZ=De(),yZ=e=>Array.isArray(e)?e:e?[e]:[];lr.asArray=yZ;var IZ=/\.[a-z0-9]+$/i;function gZ(e){if(typeof e!="string"||IZ.test(e))return!1;try{return(0,hZ.parse)(e),!0}catch(t){}return!1}lr.isDocumentString=gZ;var _Z=/[‘“!%^<>`]/;function vZ(e){return typeof e=="string"&&!_Z.test(e)}lr.isValidPath=vZ;function xB(e,t){return String(e)String(t)?1:0}lr.compareStrings=xB;function jv(e){var n,r;let t;return"alias"in e&&(t=(n=e.alias)==null?void 0:n.value),t==null&&"name"in e&&(t=(r=e.name)==null?void 0:r.value),t==null&&(t=e.kind),t}lr.nodeToString=jv;function SZ(e,t,n){let r=jv(e),i=jv(t);return typeof n=="function"?n(r,i):xB(r,i)}lr.compareNodes=SZ;function OZ(e){return e!=null}lr.isSome=OZ;function DZ(e,t="Value should be something"){if(e==null)throw new Error(t)}lr.assertSome=DZ});var Af=w(zN=>{"use strict";m();T();N();Object.defineProperty(zN,"__esModule",{value:!0});zN.inspect=void 0;var jB=3;function bZ(e){return HN(e,[])}zN.inspect=bZ;function HN(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return AZ(e,t);default:return String(e)}}function qB(e){return(e.name="GraphQLError")?e.toString():`${e.name}: ${e.message}; - ${e.stack}`}function AZ(e,t){if(e===null)return"null";if(e instanceof Error)return e.name==="AggregateError"?qB(e)+` -`+VB(e.errors,t):qB(e);if(t.includes(e))return"[Circular]";let n=[...t,e];if(RZ(e)){let r=e.toJSON();if(r!==e)return typeof r=="string"?r:HN(r,n)}else if(Array.isArray(e))return VB(e,n);return PZ(e,n)}function RZ(e){return typeof e.toJSON=="function"}function PZ(e,t){let n=Object.entries(e);return n.length===0?"{}":t.length>jB?"["+FZ(e)+"]":"{ "+n.map(([i,a])=>i+": "+HN(a,t)).join(", ")+" }"}function VB(e,t){if(e.length===0)return"[]";if(t.length>jB)return"[Array]";let n=e.length,r=[];for(let i=0;i{"use strict";m();T();N();Object.defineProperty(bl,"__esModule",{value:!0});bl.relocatedError=bl.createGraphQLError=void 0;var Kv=De(),wZ=["message","locations","path","nodes","source","positions","originalError","name","stack","extensions"];function LZ(e){return e!=null&&typeof e=="object"&&Object.keys(e).every(t=>wZ.includes(t))}function Gv(e,t){return t!=null&&t.originalError&&!(t.originalError instanceof Error)&&LZ(t.originalError)&&(t.originalError=Gv(t.originalError.message,t.originalError)),Kv.versionInfo.major>=17?new Kv.GraphQLError(e,t):new Kv.GraphQLError(e,t==null?void 0:t.nodes,t==null?void 0:t.source,t==null?void 0:t.positions,t==null?void 0:t.path,t==null?void 0:t.originalError,t==null?void 0:t.extensions)}bl.createGraphQLError=Gv;function CZ(e,t){return Gv(e.message,{nodes:e.nodes,source:e.source,positions:e.positions,path:t==null?e.path:t,originalError:e,extensions:e.extensions})}bl.relocatedError=CZ});var Rf=w(xi=>{"use strict";m();T();N();Object.defineProperty(xi,"__esModule",{value:!0});xi.hasOwnProperty=xi.promiseReduce=xi.isPromise=xi.isObjectLike=xi.isIterableObject=void 0;function BZ(e){return e!=null&&typeof e=="object"&&Symbol.iterator in e}xi.isIterableObject=BZ;function UZ(e){return typeof e=="object"&&e!==null}xi.isObjectLike=UZ;function KB(e){return(e==null?void 0:e.then)!=null}xi.isPromise=KB;function kZ(e,t,n){let r=n;for(let i of e)r=KB(r)?r.then(a=>t(a,i)):t(r,i);return r}xi.promiseReduce=kZ;function MZ(e,t){return Object.prototype.hasOwnProperty.call(e,t)}xi.hasOwnProperty=MZ});var Qv=w(ZN=>{"use strict";m();T();N();Object.defineProperty(ZN,"__esModule",{value:!0});ZN.getArgumentValues=void 0;var $v=Af(),uc=De(),XN=WN(),xZ=Rf();function qZ(e,t,n={}){var o;let r={},a=((o=t.arguments)!=null?o:[]).reduce((c,l)=>Q(x({},c),{[l.name.value]:l}),{});for(let{name:c,type:l,defaultValue:d}of e.args){let p=a[c];if(!p){if(d!==void 0)r[c]=d;else if((0,uc.isNonNullType)(l))throw(0,XN.createGraphQLError)(`Argument "${c}" of required type "${(0,$v.inspect)(l)}" was not provided.`,{nodes:[t]});continue}let y=p.value,I=y.kind===uc.Kind.NULL;if(y.kind===uc.Kind.VARIABLE){let F=y.name.value;if(n==null||!(0,xZ.hasOwnProperty)(n,F)){if(d!==void 0)r[c]=d;else if((0,uc.isNonNullType)(l))throw(0,XN.createGraphQLError)(`Argument "${c}" of required type "${(0,$v.inspect)(l)}" was provided the variable "$${F}" which was not provided a runtime value.`,{nodes:[y]});continue}I=n[F]==null}if(I&&(0,uc.isNonNullType)(l))throw(0,XN.createGraphQLError)(`Argument "${c}" of non-null type "${(0,$v.inspect)(l)}" must not be null.`,{nodes:[y]});let v=(0,uc.valueFromAST)(y,l,n);if(v===void 0)throw(0,XN.createGraphQLError)(`Argument "${c}" has invalid value ${(0,uc.print)(y)}.`,{nodes:[y]});r[c]=v}return r}ZN.getArgumentValues=qZ});var Yv=w(Ma=>{"use strict";m();T();N();Object.defineProperty(Ma,"__esModule",{value:!0});Ma.getDirective=Ma.getDirectives=Ma.getDirectiveInExtensions=Ma.getDirectivesInExtensions=void 0;var $B=Qv();function QB(e,t=["directives"]){return t.reduce((n,r)=>n==null?n:n[r],e==null?void 0:e.extensions)}Ma.getDirectivesInExtensions=QB;function GB(e,t){let n=e.filter(r=>r.name===t);if(n.length)return n.map(r=>{var i;return(i=r.args)!=null?i:{}})}function YB(e,t,n=["directives"]){let r=n.reduce((a,o)=>a==null?a:a[o],e==null?void 0:e.extensions);if(r===void 0)return;if(Array.isArray(r))return GB(r,t);let i=[];for(let[a,o]of Object.entries(r))if(Array.isArray(o))for(let c of o)i.push({name:a,args:c});else i.push({name:a,args:o});return GB(i,t)}Ma.getDirectiveInExtensions=YB;function VZ(e,t,n=["directives"]){let r=QB(t,n);if(r!=null&&r.length>0)return r;let a=(e&&e.getDirectives?e.getDirectives():[]).reduce((l,d)=>(l[d.name]=d,l),{}),o=[];t.astNode&&o.push(t.astNode),"extensionASTNodes"in t&&t.extensionASTNodes&&(o=[...o,...t.extensionASTNodes]);let c=[];for(let l of o)if(l.directives)for(let d of l.directives){let p=a[d.name.value];p&&c.push({name:d.name.value,args:(0,$B.getArgumentValues)(p,d)})}return c}Ma.getDirectives=VZ;function jZ(e,t,n,r=["directives"]){let i=YB(t,n,r);if(i!=null)return i;let a=e&&e.getDirective?e.getDirective(n):void 0;if(a==null)return;let o=[];t.astNode&&o.push(t.astNode),"extensionASTNodes"in t&&t.extensionASTNodes&&(o=[...o,...t.extensionASTNodes]);let c=[];for(let l of o)if(l.directives)for(let d of l.directives)d.name.value===n&&c.push((0,$B.getArgumentValues)(a,d));if(c.length)return c}Ma.getDirective=jZ});var Jv=w(eT=>{"use strict";m();T();N();Object.defineProperty(eT,"__esModule",{value:!0});eT.getFieldsWithDirectives=void 0;var KZ=De();function GZ(e,t={}){let n={},r=["ObjectTypeDefinition","ObjectTypeExtension"];t.includeInputTypes&&(r=[...r,"InputObjectTypeDefinition","InputObjectTypeExtension"]);let i=e.definitions.filter(a=>r.includes(a.kind));for(let a of i){let o=a.name.value;if(a.fields!=null){for(let c of a.fields)if(c.directives&&c.directives.length>0){let l=c.name.value,d=`${o}.${l}`,p=c.directives.map(y=>({name:y.name.value,args:(y.arguments||[]).reduce((I,v)=>Q(x({},I),{[v.name.value]:(0,KZ.valueFromASTUntyped)(v.value)}),{})}));n[d]=p}}}return n}eT.getFieldsWithDirectives=GZ});var JB=w(tT=>{"use strict";m();T();N();Object.defineProperty(tT,"__esModule",{value:!0});tT.getArgumentsWithDirectives=void 0;var Hv=De();function $Z(e){return e.kind===Hv.Kind.OBJECT_TYPE_DEFINITION||e.kind===Hv.Kind.OBJECT_TYPE_EXTENSION}function QZ(e){var r;let t={},n=e.definitions.filter($Z);for(let i of n)if(i.fields!=null)for(let a of i.fields){let o=(r=a.arguments)==null?void 0:r.filter(l=>{var d;return(d=l.directives)==null?void 0:d.length});if(!(o!=null&&o.length))continue;let c=t[`${i.name.value}.${a.name.value}`]={};for(let l of o){let d=l.directives.map(p=>({name:p.name.value,args:(p.arguments||[]).reduce((y,I)=>Q(x({},y),{[I.name.value]:(0,Hv.valueFromASTUntyped)(I.value)}),{})}));c[l.name.value]=d}}return t}tT.getArgumentsWithDirectives=QZ});var zv=w(nT=>{"use strict";m();T();N();Object.defineProperty(nT,"__esModule",{value:!0});nT.getImplementingTypes=void 0;var YZ=De();function JZ(e,t){let n=t.getTypeMap(),r=[];for(let i in n){let a=n[i];(0,YZ.isObjectType)(a)&&a.getInterfaces().find(c=>c.name===e)&&r.push(a.name)}return r}nT.getImplementingTypes=JZ});var Xv=w(rT=>{"use strict";m();T();N();Object.defineProperty(rT,"__esModule",{value:!0});rT.astFromType=void 0;var HZ=Af(),cc=De();function Wv(e){if((0,cc.isNonNullType)(e)){let t=Wv(e.ofType);if(t.kind===cc.Kind.NON_NULL_TYPE)throw new Error(`Invalid type node ${(0,HZ.inspect)(e)}. Inner type of non-null type cannot be a non-null type.`);return{kind:cc.Kind.NON_NULL_TYPE,type:t}}else if((0,cc.isListType)(e))return{kind:cc.Kind.LIST_TYPE,type:Wv(e.ofType)};return{kind:cc.Kind.NAMED_TYPE,name:{kind:cc.Kind.NAME,value:e.name}}}rT.astFromType=Wv});var aT=w(iT=>{"use strict";m();T();N();Object.defineProperty(iT,"__esModule",{value:!0});iT.astFromValueUntyped=void 0;var xa=De();function Zv(e){if(e===null)return{kind:xa.Kind.NULL};if(e===void 0)return null;if(Array.isArray(e)){let t=[];for(let n of e){let r=Zv(n);r!=null&&t.push(r)}return{kind:xa.Kind.LIST,values:t}}if(typeof e=="object"){let t=[];for(let n in e){let r=e[n],i=Zv(r);i&&t.push({kind:xa.Kind.OBJECT_FIELD,name:{kind:xa.Kind.NAME,value:n},value:i})}return{kind:xa.Kind.OBJECT,fields:t}}if(typeof e=="boolean")return{kind:xa.Kind.BOOLEAN,value:e};if(typeof e=="bigint")return{kind:xa.Kind.INT,value:String(e)};if(typeof e=="number"&&isFinite(e)){let t=String(e);return zZ.test(t)?{kind:xa.Kind.INT,value:t}:{kind:xa.Kind.FLOAT,value:t}}if(typeof e=="string")return{kind:xa.Kind.STRING,value:e};throw new TypeError(`Cannot convert value to AST: ${e}.`)}iT.astFromValueUntyped=Zv;var zZ=/^-?(?:0|[1-9][0-9]*)$/});var zB=w(sT=>{"use strict";m();T();N();Object.defineProperty(sT,"__esModule",{value:!0});sT.astFromValue=void 0;var WZ=Af(),pi=De(),XZ=aT(),HB=Rf();function Pf(e,t){if((0,pi.isNonNullType)(t)){let n=Pf(e,t.ofType);return(n==null?void 0:n.kind)===pi.Kind.NULL?null:n}if(e===null)return{kind:pi.Kind.NULL};if(e===void 0)return null;if((0,pi.isListType)(t)){let n=t.ofType;if((0,HB.isIterableObject)(e)){let r=[];for(let i of e){let a=Pf(i,n);a!=null&&r.push(a)}return{kind:pi.Kind.LIST,values:r}}return Pf(e,n)}if((0,pi.isInputObjectType)(t)){if(!(0,HB.isObjectLike)(e))return null;let n=[];for(let r of Object.values(t.getFields())){let i=Pf(e[r.name],r.type);i&&n.push({kind:pi.Kind.OBJECT_FIELD,name:{kind:pi.Kind.NAME,value:r.name},value:i})}return{kind:pi.Kind.OBJECT,fields:n}}if((0,pi.isLeafType)(t)){let n=t.serialize(e);return n==null?null:(0,pi.isEnumType)(t)?{kind:pi.Kind.ENUM,value:n}:t.name==="ID"&&typeof n=="string"&&ZZ.test(n)?{kind:pi.Kind.INT,value:n}:(0,XZ.astFromValueUntyped)(n)}console.assert(!1,"Unexpected input type: "+(0,WZ.inspect)(t))}sT.astFromValue=Pf;var ZZ=/^-?(?:0|[1-9][0-9]*)$/});var WB=w(oT=>{"use strict";m();T();N();Object.defineProperty(oT,"__esModule",{value:!0});oT.getDescriptionNode=void 0;var eee=De();function tee(e){var t;if((t=e.astNode)!=null&&t.description)return Q(x({},e.astNode.description),{block:!0});if(e.description)return{kind:eee.Kind.STRING,value:e.description,block:!0}}oT.getDescriptionNode=tee});var Al=w(br=>{"use strict";m();T();N();Object.defineProperty(br,"__esModule",{value:!0});br.memoize2of5=br.memoize2of4=br.memoize5=br.memoize4=br.memoize3=br.memoize2=br.memoize1=void 0;function nee(e){let t=new WeakMap;return function(r){let i=t.get(r);if(i===void 0){let a=e(r);return t.set(r,a),a}return i}}br.memoize1=nee;function ree(e){let t=new WeakMap;return function(r,i){let a=t.get(r);if(!a){a=new WeakMap,t.set(r,a);let c=e(r,i);return a.set(i,c),c}let o=a.get(i);if(o===void 0){let c=e(r,i);return a.set(i,c),c}return o}}br.memoize2=ree;function iee(e){let t=new WeakMap;return function(r,i,a){let o=t.get(r);if(!o){o=new WeakMap,t.set(r,o);let d=new WeakMap;o.set(i,d);let p=e(r,i,a);return d.set(a,p),p}let c=o.get(i);if(!c){c=new WeakMap,o.set(i,c);let d=e(r,i,a);return c.set(a,d),d}let l=c.get(a);if(l===void 0){let d=e(r,i,a);return c.set(a,d),d}return l}}br.memoize3=iee;function aee(e){let t=new WeakMap;return function(r,i,a,o){let c=t.get(r);if(!c){c=new WeakMap,t.set(r,c);let y=new WeakMap;c.set(i,y);let I=new WeakMap;y.set(a,I);let v=e(r,i,a,o);return I.set(o,v),v}let l=c.get(i);if(!l){l=new WeakMap,c.set(i,l);let y=new WeakMap;l.set(a,y);let I=e(r,i,a,o);return y.set(o,I),I}let d=l.get(a);if(!d){let y=new WeakMap;l.set(a,y);let I=e(r,i,a,o);return y.set(o,I),I}let p=d.get(o);if(p===void 0){let y=e(r,i,a,o);return d.set(o,y),y}return p}}br.memoize4=aee;function see(e){let t=new WeakMap;return function(r,i,a,o,c){let l=t.get(r);if(!l){l=new WeakMap,t.set(r,l);let v=new WeakMap;l.set(i,v);let F=new WeakMap;v.set(a,F);let k=new WeakMap;F.set(o,k);let K=e(r,i,a,o,c);return k.set(c,K),K}let d=l.get(i);if(!d){d=new WeakMap,l.set(i,d);let v=new WeakMap;d.set(a,v);let F=new WeakMap;v.set(o,F);let k=e(r,i,a,o,c);return F.set(c,k),k}let p=d.get(a);if(!p){p=new WeakMap,d.set(a,p);let v=new WeakMap;p.set(o,v);let F=e(r,i,a,o,c);return v.set(c,F),F}let y=p.get(o);if(!y){y=new WeakMap,p.set(o,y);let v=e(r,i,a,o,c);return y.set(c,v),v}let I=y.get(c);if(I===void 0){let v=e(r,i,a,o,c);return y.set(c,v),v}return I}}br.memoize5=see;function oee(e){let t=new WeakMap;return function(r,i,a,o){let c=t.get(r);if(!c){c=new WeakMap,t.set(r,c);let d=e(r,i,a,o);return c.set(i,d),d}let l=c.get(i);if(l===void 0){let d=e(r,i,a,o);return c.set(i,d),d}return l}}br.memoize2of4=oee;function uee(e){let t=new WeakMap;return function(r,i,a,o,c){let l=t.get(r);if(!l){l=new WeakMap,t.set(r,l);let p=e(r,i,a,o,c);return l.set(i,p),p}let d=l.get(i);if(d===void 0){let p=e(r,i,a,o,c);return l.set(i,p),p}return d}}br.memoize2of5=uee});var Ff=w(mi=>{"use strict";m();T();N();Object.defineProperty(mi,"__esModule",{value:!0});mi.getRootTypeMap=mi.getRootTypes=mi.getRootTypeNames=mi.getDefinedRootType=void 0;var cee=WN(),eS=Al();function lee(e,t,n){let i=(0,mi.getRootTypeMap)(e).get(t);if(i==null)throw(0,cee.createGraphQLError)(`Schema is not configured to execute ${t} operation.`,{nodes:n});return i}mi.getDefinedRootType=lee;mi.getRootTypeNames=(0,eS.memoize1)(function(t){let n=(0,mi.getRootTypes)(t);return new Set([...n].map(r=>r.name))});mi.getRootTypes=(0,eS.memoize1)(function(t){let n=(0,mi.getRootTypeMap)(t);return new Set(n.values())});mi.getRootTypeMap=(0,eS.memoize1)(function(t){let n=new Map,r=t.getQueryType();r&&n.set("query",r);let i=t.getMutationType();i&&n.set("mutation",i);let a=t.getSubscriptionType();return a&&n.set("subscription",a),n})});var aS=w(ht=>{"use strict";m();T();N();Object.defineProperty(ht,"__esModule",{value:!0});ht.makeDirectiveNodes=ht.makeDirectiveNode=ht.makeDeprecatedDirective=ht.astFromEnumValue=ht.astFromInputField=ht.astFromField=ht.astFromScalarType=ht.astFromEnumType=ht.astFromInputObjectType=ht.astFromUnionType=ht.astFromInterfaceType=ht.astFromObjectType=ht.astFromArg=ht.getDeprecatableDirectiveNodes=ht.getDirectiveNodes=ht.astFromDirective=ht.astFromSchema=ht.printSchemaWithDirectives=ht.getDocumentNodeFromSchema=void 0;var ct=De(),lc=Xv(),tS=zB(),dee=aT(),qi=WB(),nS=Yv(),fee=bf(),pee=Ff();function XB(e,t={}){let n=t.pathToDirectivesInExtensions,r=e.getTypeMap(),i=ZB(e,n),a=i!=null?[i]:[],o=e.getDirectives();for(let c of o)(0,ct.isSpecifiedDirective)(c)||a.push(eU(c,e,n));for(let c in r){let l=r[c],d=(0,ct.isSpecifiedScalarType)(l),p=(0,ct.isIntrospectionType)(l);if(!(d||p))if((0,ct.isObjectType)(l))a.push(tU(l,e,n));else if((0,ct.isInterfaceType)(l))a.push(nU(l,e,n));else if((0,ct.isUnionType)(l))a.push(rU(l,e,n));else if((0,ct.isInputObjectType)(l))a.push(iU(l,e,n));else if((0,ct.isEnumType)(l))a.push(aU(l,e,n));else if((0,ct.isScalarType)(l))a.push(sU(l,e,n));else throw new Error(`Unknown type ${l}.`)}return{kind:ct.Kind.DOCUMENT,definitions:a}}ht.getDocumentNodeFromSchema=XB;function mee(e,t={}){let n=XB(e,t);return(0,ct.print)(n)}ht.printSchemaWithDirectives=mee;function ZB(e,t){let n=new Map([["query",void 0],["mutation",void 0],["subscription",void 0]]),r=[];if(e.astNode!=null&&r.push(e.astNode),e.extensionASTNodes!=null)for(let d of e.extensionASTNodes)r.push(d);for(let d of r)if(d.operationTypes)for(let p of d.operationTypes)n.set(p.operation,p);let i=(0,pee.getRootTypeMap)(e);for(let[d,p]of n){let y=i.get(d);if(y!=null){let I=(0,lc.astFromType)(y);p!=null?p.type=I:n.set(d,{kind:ct.Kind.OPERATION_TYPE_DEFINITION,operation:d,type:I})}}let a=[...n.values()].filter(fee.isSome),o=dc(e,e,t);if(!a.length&&!o.length)return null;let c={kind:a!=null?ct.Kind.SCHEMA_DEFINITION:ct.Kind.SCHEMA_EXTENSION,operationTypes:a,directives:o},l=(0,qi.getDescriptionNode)(e);return l&&(c.description=l),c}ht.astFromSchema=ZB;function eU(e,t,n){var r,i;return{kind:ct.Kind.DIRECTIVE_DEFINITION,description:(0,qi.getDescriptionNode)(e),name:{kind:ct.Kind.NAME,value:e.name},arguments:(r=e.args)==null?void 0:r.map(a=>rS(a,t,n)),repeatable:e.isRepeatable,locations:((i=e.locations)==null?void 0:i.map(a=>({kind:ct.Kind.NAME,value:a})))||[]}}ht.astFromDirective=eU;function dc(e,t,n){let r=(0,nS.getDirectivesInExtensions)(e,n),i=[];e.astNode!=null&&i.push(e.astNode),"extensionASTNodes"in e&&e.extensionASTNodes!=null&&(i=i.concat(e.extensionASTNodes));let a;if(r!=null)a=uT(t,r);else{a=[];for(let o of i)o.directives&&a.push(...o.directives)}return a}ht.getDirectiveNodes=dc;function Lf(e,t,n){var c,l;let r=[],i=null,a=(0,nS.getDirectivesInExtensions)(e,n),o;return a!=null?o=uT(t,a):o=(c=e.astNode)==null?void 0:c.directives,o!=null&&(r=o.filter(d=>d.name.value!=="deprecated"),e.deprecationReason!=null&&(i=(l=o.filter(d=>d.name.value==="deprecated"))==null?void 0:l[0])),e.deprecationReason!=null&&i==null&&(i=cU(e.deprecationReason)),i==null?r:[i].concat(r)}ht.getDeprecatableDirectiveNodes=Lf;function rS(e,t,n){var r;return{kind:ct.Kind.INPUT_VALUE_DEFINITION,description:(0,qi.getDescriptionNode)(e),name:{kind:ct.Kind.NAME,value:e.name},type:(0,lc.astFromType)(e.type),defaultValue:e.defaultValue!==void 0&&(r=(0,tS.astFromValue)(e.defaultValue,e.type))!=null?r:void 0,directives:Lf(e,t,n)}}ht.astFromArg=rS;function tU(e,t,n){return{kind:ct.Kind.OBJECT_TYPE_DEFINITION,description:(0,qi.getDescriptionNode)(e),name:{kind:ct.Kind.NAME,value:e.name},fields:Object.values(e.getFields()).map(r=>iS(r,t,n)),interfaces:Object.values(e.getInterfaces()).map(r=>(0,lc.astFromType)(r)),directives:dc(e,t,n)}}ht.astFromObjectType=tU;function nU(e,t,n){let r={kind:ct.Kind.INTERFACE_TYPE_DEFINITION,description:(0,qi.getDescriptionNode)(e),name:{kind:ct.Kind.NAME,value:e.name},fields:Object.values(e.getFields()).map(i=>iS(i,t,n)),directives:dc(e,t,n)};return"getInterfaces"in e&&(r.interfaces=Object.values(e.getInterfaces()).map(i=>(0,lc.astFromType)(i))),r}ht.astFromInterfaceType=nU;function rU(e,t,n){return{kind:ct.Kind.UNION_TYPE_DEFINITION,description:(0,qi.getDescriptionNode)(e),name:{kind:ct.Kind.NAME,value:e.name},directives:dc(e,t,n),types:e.getTypes().map(r=>(0,lc.astFromType)(r))}}ht.astFromUnionType=rU;function iU(e,t,n){return{kind:ct.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:(0,qi.getDescriptionNode)(e),name:{kind:ct.Kind.NAME,value:e.name},fields:Object.values(e.getFields()).map(r=>oU(r,t,n)),directives:dc(e,t,n)}}ht.astFromInputObjectType=iU;function aU(e,t,n){return{kind:ct.Kind.ENUM_TYPE_DEFINITION,description:(0,qi.getDescriptionNode)(e),name:{kind:ct.Kind.NAME,value:e.name},values:Object.values(e.getValues()).map(r=>uU(r,t,n)),directives:dc(e,t,n)}}ht.astFromEnumType=aU;function sU(e,t,n){var o;let r=(0,nS.getDirectivesInExtensions)(e,n),i=r?uT(t,r):((o=e.astNode)==null?void 0:o.directives)||[],a=e.specifiedByUrl||e.specifiedByURL;if(a&&!i.some(c=>c.name.value==="specifiedBy")){let c={url:a};i.push(wf("specifiedBy",c))}return{kind:ct.Kind.SCALAR_TYPE_DEFINITION,description:(0,qi.getDescriptionNode)(e),name:{kind:ct.Kind.NAME,value:e.name},directives:i}}ht.astFromScalarType=sU;function iS(e,t,n){return{kind:ct.Kind.FIELD_DEFINITION,description:(0,qi.getDescriptionNode)(e),name:{kind:ct.Kind.NAME,value:e.name},arguments:e.args.map(r=>rS(r,t,n)),type:(0,lc.astFromType)(e.type),directives:Lf(e,t,n)}}ht.astFromField=iS;function oU(e,t,n){var r;return{kind:ct.Kind.INPUT_VALUE_DEFINITION,description:(0,qi.getDescriptionNode)(e),name:{kind:ct.Kind.NAME,value:e.name},type:(0,lc.astFromType)(e.type),directives:Lf(e,t,n),defaultValue:(r=(0,tS.astFromValue)(e.defaultValue,e.type))!=null?r:void 0}}ht.astFromInputField=oU;function uU(e,t,n){return{kind:ct.Kind.ENUM_VALUE_DEFINITION,description:(0,qi.getDescriptionNode)(e),name:{kind:ct.Kind.NAME,value:e.name},directives:Lf(e,t,n)}}ht.astFromEnumValue=uU;function cU(e){return wf("deprecated",{reason:e},ct.GraphQLDeprecatedDirective)}ht.makeDeprecatedDirective=cU;function wf(e,t,n){let r=[];if(n!=null)for(let i of n.args){let a=i.name,o=t[a];if(o!==void 0){let c=(0,tS.astFromValue)(o,i.type);c&&r.push({kind:ct.Kind.ARGUMENT,name:{kind:ct.Kind.NAME,value:a},value:c})}}else for(let i in t){let a=t[i],o=(0,dee.astFromValueUntyped)(a);o&&r.push({kind:ct.Kind.ARGUMENT,name:{kind:ct.Kind.NAME,value:i},value:o})}return{kind:ct.Kind.DIRECTIVE,name:{kind:ct.Kind.NAME,value:e},arguments:r}}ht.makeDirectiveNode=wf;function uT(e,t){let n=[];for(let r in t){let i=t[r],a=e==null?void 0:e.getDirective(r);if(Array.isArray(i))for(let o of i)n.push(wf(r,o,a));else n.push(wf(r,i,a))}return n}ht.makeDirectiveNodes=uT});var dU=w(Rl=>{"use strict";m();T();N();Object.defineProperty(Rl,"__esModule",{value:!0});Rl.createDefaultRules=Rl.validateGraphQlDocuments=void 0;var Cf=De();function Nee(e,t,n=lU()){var c;let r=new Set,i=new Map;for(let l of t)for(let d of l.definitions)d.kind===Cf.Kind.FRAGMENT_DEFINITION?i.set(d.name.value,d):r.add(d);let a={kind:Cf.Kind.DOCUMENT,definitions:Array.from([...r,...i.values()])},o=(0,Cf.validate)(e,a,n);for(let l of o)if(l.stack=l.message,l.locations)for(let d of l.locations)l.stack+=` - at ${(c=l.source)==null?void 0:c.name}:${d.line}:${d.column}`;return o}Rl.validateGraphQlDocuments=Nee;function lU(){let e=["NoUnusedFragmentsRule","NoUnusedVariablesRule","KnownDirectivesRule"];return Cf.versionInfo.major<15&&(e=e.map(t=>t.replace(/Rule$/,""))),Cf.specifiedRules.filter(t=>!e.includes(t.name))}Rl.createDefaultRules=lU});var fU=w(cT=>{"use strict";m();T();N();Object.defineProperty(cT,"__esModule",{value:!0});cT.parseGraphQLJSON=void 0;var Tee=De();function Eee(e){return e=e.toString(),e.charCodeAt(0)===65279&&(e=e.slice(1)),e}function hee(e){return JSON.parse(Eee(e))}function yee(e,t,n){let r=hee(t);if(r.data&&(r=r.data),r.kind==="Document")return{location:e,document:r};if(r.__schema){let i=(0,Tee.buildClientSchema)(r,n);return{location:e,schema:i}}else if(typeof r=="string")return{location:e,rawSDL:r};throw new Error("Not valid JSON content")}cT.parseGraphQLJSON=yee});var oS=w(Bn=>{"use strict";m();T();N();Object.defineProperty(Bn,"__esModule",{value:!0});Bn.getBlockStringIndentation=Bn.dedentBlockStringValue=Bn.getLeadingCommentBlock=Bn.getComment=Bn.getDescription=Bn.printWithComments=Bn.printComment=Bn.pushComment=Bn.collectComment=Bn.resetComments=void 0;var TU=De(),Iee=80,Pl={};function gee(){Pl={}}Bn.resetComments=gee;function _ee(e){var n;let t=(n=e.name)==null?void 0:n.value;if(t!=null)switch(Bf(e,t),e.kind){case"EnumTypeDefinition":if(e.values)for(let r of e.values)Bf(r,t,r.name.value);break;case"ObjectTypeDefinition":case"InputObjectTypeDefinition":case"InterfaceTypeDefinition":if(e.fields){for(let r of e.fields)if(Bf(r,t,r.name.value),bee(r)&&r.arguments)for(let i of r.arguments)Bf(i,t,r.name.value,i.name.value)}break}}Bn.collectComment=_ee;function Bf(e,t,n,r){let i=sS(e);if(typeof i!="string"||i.length===0)return;let a=[t];n&&(a.push(n),r&&a.push(r));let o=a.join(".");Pl[o]||(Pl[o]=[]),Pl[o].push(i)}Bn.pushComment=Bf;function EU(e){return` +`))}return $(M({},e),{value:t,block:!0})}function HC(e){return e.arguments?e.arguments.sort((n,r)=>n.name.value.localeCompare(r.name.value)):e.arguments}function XN(e){let t=e.selections;return $(M({},e),{selections:t.sort((n,r)=>{var a,o,c,l;return bn.NAME in n?bn.NAME in r?n.name.value.localeCompare(r.name.value):-1:bn.NAME in r?1:((o=(a=n.typeCondition)==null?void 0:a.name.value)!=null?o:"").localeCompare((l=(c=r.typeCondition)==null?void 0:c.name.value)!=null?l:"")}).map(n=>{switch(n.kind){case xt.Kind.FIELD:return $(M({},n),{arguments:HC(n),selectionSet:n.selectionSet?XN(n.selectionSet):n.selectionSet});case xt.Kind.FRAGMENT_SPREAD:return n;case xt.Kind.INLINE_FRAGMENT:return $(M({},n),{selectionSet:XN(n.selectionSet)})}})})}function r7(e){return $(M({},e),{definitions:e.definitions.map(t=>t.kind!==xt.Kind.OPERATION_DEFINITION?t:$(M({},t),{selectionSet:XN(t.selectionSet)}))})}function zC(e,t=!0){return(0,xt.parse)(e,{noLocation:t})}function i7(e,t=!0){try{return{documentNode:zC(e,t)}}catch(n){return{error:n}}}});var ZC=F(Fl=>{"use strict";m();T();N();Object.defineProperty(Fl,"__esModule",{value:!0});Fl.AccumulatorMap=void 0;Fl.mapValue=Pl;Fl.extendSchemaImpl=a7;var Be=Se(),ws=class extends Map{get[Symbol.toStringTag](){return"AccumulatorMap"}add(t,n){let r=this.get(t);r===void 0?this.set(t,[n]):r.push(n)}};Fl.AccumulatorMap=ws;function Pl(e,t){let n=Object.create(null);for(let r of Object.keys(e))n[r]=t(e[r],r);return n}function a7(e,t,n){var De,Ie,Le,St;let r=[],i=new ws,a=new ws,o=new ws,c=new ws,l=new ws,d=new ws,f=[],y,I=[],v=!1;for(let Q of t.definitions){switch(Q.kind){case Be.Kind.SCHEMA_DEFINITION:y=Q;break;case Be.Kind.SCHEMA_EXTENSION:I.push(Q);break;case Be.Kind.DIRECTIVE_DEFINITION:f.push(Q);break;case Be.Kind.SCALAR_TYPE_DEFINITION:case Be.Kind.OBJECT_TYPE_DEFINITION:case Be.Kind.INTERFACE_TYPE_DEFINITION:case Be.Kind.UNION_TYPE_DEFINITION:case Be.Kind.ENUM_TYPE_DEFINITION:case Be.Kind.INPUT_OBJECT_TYPE_DEFINITION:r.push(Q);break;case Be.Kind.SCALAR_TYPE_EXTENSION:i.add(Q.name.value,Q);break;case Be.Kind.OBJECT_TYPE_EXTENSION:a.add(Q.name.value,Q);break;case Be.Kind.INTERFACE_TYPE_EXTENSION:o.add(Q.name.value,Q);break;case Be.Kind.UNION_TYPE_EXTENSION:c.add(Q.name.value,Q);break;case Be.Kind.ENUM_TYPE_EXTENSION:l.add(Q.name.value,Q);break;case Be.Kind.INPUT_OBJECT_TYPE_EXTENSION:d.add(Q.name.value,Q);break;default:continue}v=!0}if(!v)return e;let w=new Map;for(let Q of e.types){let ie=ne(Q);ie&&w.set(Q.name,ie)}for(let Q of r){let ie=Q.name.value;w.set(ie,(De=WC.get(ie))!=null?De:ae(Q))}for(let[Q,ie]of a)w.set(Q,new Be.GraphQLObjectType({name:Q,interfaces:()=>Ht(ie),fields:()=>En(ie),extensionASTNodes:ie}));if(n!=null&&n.addInvalidExtensionOrphans){for(let[Q,ie]of o)w.set(Q,new Be.GraphQLInterfaceType({name:Q,interfaces:()=>Ht(ie),fields:()=>En(ie),extensionASTNodes:ie}));for(let[Q,ie]of l)w.set(Q,new Be.GraphQLEnumType({name:Q,values:jn(ie),extensionASTNodes:ie}));for(let[Q,ie]of c)w.set(Q,new Be.GraphQLUnionType({name:Q,types:()=>wn(ie),extensionASTNodes:ie}));for(let[Q,ie]of i)w.set(Q,new Be.GraphQLScalarType({name:Q,extensionASTNodes:ie}));for(let[Q,ie]of d)w.set(Q,new Be.GraphQLInputObjectType({name:Q,fields:()=>Mr(ie),extensionASTNodes:ie}))}let U=M(M({query:e.query&&Y(e.query),mutation:e.mutation&&Y(e.mutation),subscription:e.subscription&&Y(e.subscription)},y&&nn([y])),nn(I));return $(M({description:(Le=(Ie=y==null?void 0:y.description)==null?void 0:Ie.value)!=null?Le:e.description},U),{types:Array.from(w.values()),directives:[...e.directives.map(re),...f.map($t)],extensions:e.extensions,astNode:y!=null?y:e.astNode,extensionASTNodes:e.extensionASTNodes.concat(I),assumeValid:(St=n==null?void 0:n.assumeValid)!=null?St:!1});function V(Q){return(0,Be.isListType)(Q)?new Be.GraphQLList(V(Q.ofType)):(0,Be.isNonNullType)(Q)?new Be.GraphQLNonNull(V(Q.ofType)):Y(Q)}function Y(Q){return w.get(Q.name)}function re(Q){if((0,Be.isSpecifiedDirective)(Q))return Q;let ie=Q.toConfig();return new Be.GraphQLDirective($(M({},ie),{args:Pl(ie.args,vt)}))}function ne(Q){if((0,Be.isIntrospectionType)(Q)||(0,Be.isSpecifiedScalarType)(Q))return Q;if((0,Be.isScalarType)(Q))return Ae(Q);if((0,Be.isObjectType)(Q))return Me(Q);if((0,Be.isInterfaceType)(Q))return nt(Q);if((0,Be.isUnionType)(Q))return X(Q);if((0,Be.isEnumType)(Q))return ue(Q);if((0,Be.isInputObjectType)(Q))return me(Q)}function me(Q){var Ye;let ie=Q.toConfig(),xe=(Ye=d.get(ie.name))!=null?Ye:[];return new Be.GraphQLInputObjectType($(M({},ie),{fields:()=>M(M({},Pl(ie.fields,Ut=>$(M({},Ut),{type:V(Ut.type)}))),Mr(xe)),extensionASTNodes:ie.extensionASTNodes.concat(xe)}))}function ue(Q){var Ye;let ie=Q.toConfig(),xe=(Ye=l.get(Q.name))!=null?Ye:[];return new Be.GraphQLEnumType($(M({},ie),{values:M(M({},ie.values),jn(xe)),extensionASTNodes:ie.extensionASTNodes.concat(xe)}))}function Ae(Q){var Ut,rt;let ie=Q.toConfig(),xe=(Ut=i.get(ie.name))!=null?Ut:[],Ye=ie.specifiedByURL;for(let Ft of xe)Ye=(rt=XC(Ft))!=null?rt:Ye;return new Be.GraphQLScalarType($(M({},ie),{specifiedByURL:Ye,extensionASTNodes:ie.extensionASTNodes.concat(xe)}))}function Me(Q){var Ye;let ie=Q.toConfig(),xe=(Ye=a.get(ie.name))!=null?Ye:[];return new Be.GraphQLObjectType($(M({},ie),{interfaces:()=>[...Q.getInterfaces().map(Y),...Ht(xe)],fields:()=>M(M({},Pl(ie.fields,_e)),En(xe)),extensionASTNodes:ie.extensionASTNodes.concat(xe)}))}function nt(Q){var Ye;let ie=Q.toConfig(),xe=(Ye=o.get(ie.name))!=null?Ye:[];return new Be.GraphQLInterfaceType($(M({},ie),{interfaces:()=>[...Q.getInterfaces().map(Y),...Ht(xe)],fields:()=>M(M({},Pl(ie.fields,_e)),En(xe)),extensionASTNodes:ie.extensionASTNodes.concat(xe)}))}function X(Q){var Ye;let ie=Q.toConfig(),xe=(Ye=c.get(ie.name))!=null?Ye:[];return new Be.GraphQLUnionType($(M({},ie),{types:()=>[...Q.getTypes().map(Y),...wn(xe)],extensionASTNodes:ie.extensionASTNodes.concat(xe)}))}function _e(Q){return $(M({},Q),{type:V(Q.type),args:Q.args&&Pl(Q.args,vt)})}function vt(Q){return $(M({},Q),{type:V(Q.type)})}function nn(Q){var xe;let ie={};for(let Ye of Q){let Ut=(xe=Ye.operationTypes)!=null?xe:[];for(let rt of Ut)ie[rt.operation]=rn(rt.type)}return ie}function rn(Q){var Ye;let ie=Q.name.value,xe=(Ye=WC.get(ie))!=null?Ye:w.get(ie);if(xe===void 0)throw new Error(`Unknown type: "${ie}".`);return xe}function Fn(Q){return Q.kind===Be.Kind.LIST_TYPE?new Be.GraphQLList(Fn(Q.type)):Q.kind===Be.Kind.NON_NULL_TYPE?new Be.GraphQLNonNull(Fn(Q.type)):rn(Q)}function $t(Q){var ie;return new Be.GraphQLDirective({name:Q.name.value,description:(ie=Q.description)==null?void 0:ie.value,locations:Q.locations.map(({value:xe})=>xe),isRepeatable:Q.repeatable,args:kr(Q.arguments),astNode:Q})}function En(Q){var xe,Ye;let ie=Object.create(null);for(let Ut of Q){let rt=(xe=Ut.fields)!=null?xe:[];for(let Ft of rt)ie[Ft.name.value]={type:Fn(Ft.type),description:(Ye=Ft.description)==null?void 0:Ye.value,args:kr(Ft.arguments),deprecationReason:eT(Ft),astNode:Ft}}return ie}function kr(Q){var Ye;let ie=Q!=null?Q:[],xe=Object.create(null);for(let Ut of ie){let rt=Fn(Ut.type);xe[Ut.name.value]={type:rt,description:(Ye=Ut.description)==null?void 0:Ye.value,defaultValue:(0,Be.valueFromAST)(Ut.defaultValue,rt),deprecationReason:eT(Ut),astNode:Ut}}return xe}function Mr(Q){var xe,Ye;let ie=Object.create(null);for(let Ut of Q){let rt=(xe=Ut.fields)!=null?xe:[];for(let Ft of rt){let ds=Fn(Ft.type);ie[Ft.name.value]={type:ds,description:(Ye=Ft.description)==null?void 0:Ye.value,defaultValue:(0,Be.valueFromAST)(Ft.defaultValue,ds),deprecationReason:eT(Ft),astNode:Ft}}}return ie}function jn(Q){var xe,Ye;let ie=Object.create(null);for(let Ut of Q){let rt=(xe=Ut.values)!=null?xe:[];for(let Ft of rt)ie[Ft.name.value]={description:(Ye=Ft.description)==null?void 0:Ye.value,deprecationReason:eT(Ft),astNode:Ft}}return ie}function Ht(Q){return Q.flatMap(ie=>{var xe,Ye;return(Ye=(xe=ie.interfaces)==null?void 0:xe.map(rn))!=null?Ye:[]})}function wn(Q){return Q.flatMap(ie=>{var xe,Ye;return(Ye=(xe=ie.types)==null?void 0:xe.map(rn))!=null?Ye:[]})}function ae(Q){var xe,Ye,Ut,rt,Ft,ds,Hr,ps,Hc,Ra,Ir,ci;let ie=Q.name.value;switch(Q.kind){case Be.Kind.OBJECT_TYPE_DEFINITION:{let qt=(xe=a.get(ie))!=null?xe:[],gr=[Q,...qt];return a.delete(ie),new Be.GraphQLObjectType({name:ie,description:(Ye=Q.description)==null?void 0:Ye.value,interfaces:()=>Ht(gr),fields:()=>En(gr),astNode:Q,extensionASTNodes:qt})}case Be.Kind.INTERFACE_TYPE_DEFINITION:{let qt=(Ut=o.get(ie))!=null?Ut:[],gr=[Q,...qt];return o.delete(ie),new Be.GraphQLInterfaceType({name:ie,description:(rt=Q.description)==null?void 0:rt.value,interfaces:()=>Ht(gr),fields:()=>En(gr),astNode:Q,extensionASTNodes:qt})}case Be.Kind.ENUM_TYPE_DEFINITION:{let qt=(Ft=l.get(ie))!=null?Ft:[],gr=[Q,...qt];return l.delete(ie),new Be.GraphQLEnumType({name:ie,description:(ds=Q.description)==null?void 0:ds.value,values:jn(gr),astNode:Q,extensionASTNodes:qt})}case Be.Kind.UNION_TYPE_DEFINITION:{let qt=(Hr=c.get(ie))!=null?Hr:[],gr=[Q,...qt];return c.delete(ie),new Be.GraphQLUnionType({name:ie,description:(ps=Q.description)==null?void 0:ps.value,types:()=>wn(gr),astNode:Q,extensionASTNodes:qt})}case Be.Kind.SCALAR_TYPE_DEFINITION:{let qt=(Hc=i.get(ie))!=null?Hc:[];return i.delete(ie),new Be.GraphQLScalarType({name:ie,description:(Ra=Q.description)==null?void 0:Ra.value,specifiedByURL:XC(Q),astNode:Q,extensionASTNodes:qt})}case Be.Kind.INPUT_OBJECT_TYPE_DEFINITION:{let qt=(Ir=d.get(ie))!=null?Ir:[],gr=[Q,...qt];return d.delete(ie),new Be.GraphQLInputObjectType({name:ie,description:(ci=Q.description)==null?void 0:ci.value,fields:()=>Mr(gr),astNode:Q,extensionASTNodes:qt})}}}}var WC=new Map([...Be.specifiedScalarTypes,...Be.introspectionTypes].map(e=>[e.name,e]));function eT(e){let t=(0,Be.getDirectiveValues)(Be.GraphQLDeprecatedDirective,e);return t==null?void 0:t.reason}function XC(e){let t=(0,Be.getDirectiveValues)(Be.GraphQLSpecifiedByDirective,e);return t==null?void 0:t.url}});var Jv=F(Yv=>{"use strict";m();T();N();Object.defineProperty(Yv,"__esModule",{value:!0});Yv.buildASTSchema=u7;var eB=Se(),s7=bl(),o7=ZC();function u7(e,t){(t==null?void 0:t.assumeValid)!==!0&&(t==null?void 0:t.assumeValidSDL)!==!0&&(0,s7.assertValidSDL)(e);let n={description:void 0,types:[],directives:[],extensions:Object.create(null),extensionASTNodes:[],assumeValid:!1},r=(0,o7.extendSchemaImpl)(n,e,t);if(r.astNode==null)for(let a of r.types)switch(a.name){case"Query":r.query=a;break;case"Mutation":r.mutation=a;break;case"Subscription":r.subscription=a;break}let i=[...r.directives,...eB.specifiedDirectives.filter(a=>r.directives.every(o=>o.name!==a.name))];return new eB.GraphQLSchema($(M({},r),{directives:i}))}});var wl=F(hu=>{"use strict";m();T();N();Object.defineProperty(hu,"__esModule",{value:!0});hu.MAX_INT32=hu.MAX_SUBSCRIPTION_FILTER_DEPTH=hu.MAXIMUM_TYPE_NESTING=void 0;hu.MAXIMUM_TYPE_NESTING=30;hu.MAX_SUBSCRIPTION_FILTER_DEPTH=5;hu.MAX_INT32=ln(2,31)-1});var Pr=F(or=>{"use strict";m();T();N();Object.defineProperty(or,"__esModule",{value:!0});or.getOrThrowError=l7;or.getEntriesNotInHashSet=d7;or.numberToOrdinal=p7;or.addIterableToSet=f7;or.addOptionalIterableToSet=m7;or.addSets=N7;or.kindToNodeType=T7;or.getValueOrDefault=E7;or.add=h7;or.generateSimpleDirective=y7;or.generateRequiresScopesDirective=I7;or.generateSemanticNonNullDirective=g7;or.copyObjectValueMap=_7;or.addNewObjectValueMapEntries=v7;or.copyArrayValueMap=S7;or.addMapEntries=O7;or.getFirstEntry=D7;var Vt=Se(),Nr=sr(),c7=Gi(),Bp=Rr();function l7(e,t,n){let r=e.get(t);if(r===void 0)throw(0,c7.invalidKeyFatalError)(t,n);return r}function d7(e,t){let n=[];for(let r of e)t.has(r)||n.push(r);return n}function p7(e){let t=e.toString();switch(t[t.length-1]){case"1":return`${t}st`;case"2":return`${t}nd`;case"3":return`${t}rd`;default:return`${t}th`}}function f7({source:e,target:t}){for(let n of e)t.add(n)}function m7({source:e,target:t}){if(e)for(let n of e)t.add(n)}function N7(e,t){let n=new Set(e);for(let r of t)n.add(r);return n}function T7(e){switch(e){case Vt.Kind.BOOLEAN:return Nr.BOOLEAN_SCALAR;case Vt.Kind.ENUM:case Vt.Kind.ENUM_TYPE_DEFINITION:return Nr.ENUM;case Vt.Kind.ENUM_TYPE_EXTENSION:return"Enum extension";case Vt.Kind.ENUM_VALUE_DEFINITION:return Nr.ENUM_VALUE;case Vt.Kind.FIELD_DEFINITION:return Nr.FIELD;case Vt.Kind.FLOAT:return Nr.FLOAT_SCALAR;case Vt.Kind.INPUT_OBJECT_TYPE_DEFINITION:return Nr.INPUT_OBJECT;case Vt.Kind.INPUT_OBJECT_TYPE_EXTENSION:return"Input Object extension";case Vt.Kind.INPUT_VALUE_DEFINITION:return Nr.INPUT_VALUE;case Vt.Kind.INT:return Nr.INT_SCALAR;case Vt.Kind.INTERFACE_TYPE_DEFINITION:return Nr.INTERFACE;case Vt.Kind.INTERFACE_TYPE_EXTENSION:return"Interface extension";case Vt.Kind.NULL:return Nr.NULL;case Vt.Kind.OBJECT:case Vt.Kind.OBJECT_TYPE_DEFINITION:return Nr.OBJECT;case Vt.Kind.OBJECT_TYPE_EXTENSION:return"Object extension";case Vt.Kind.STRING:return Nr.STRING_SCALAR;case Vt.Kind.SCALAR_TYPE_DEFINITION:return Nr.SCALAR;case Vt.Kind.SCALAR_TYPE_EXTENSION:return"Scalar extension";case Vt.Kind.UNION_TYPE_DEFINITION:return Nr.UNION;case Vt.Kind.UNION_TYPE_EXTENSION:return"Union extension";default:return e}}function E7(e,t,n){let r=e.get(t);if(r)return r;let i=n();return e.set(t,i),i}function h7(e,t){return e.has(t)?!1:(e.add(t),!0)}function y7(e){return{kind:Vt.Kind.DIRECTIVE,name:(0,Bp.stringToNameNode)(e)}}function I7(e){let t=[];for(let n of e){let r=[];for(let i of n)r.push({kind:Vt.Kind.STRING,value:i});t.push({kind:Vt.Kind.LIST,values:r})}return{kind:Vt.Kind.DIRECTIVE,name:(0,Bp.stringToNameNode)(Nr.REQUIRES_SCOPES),arguments:[{kind:Vt.Kind.ARGUMENT,name:(0,Bp.stringToNameNode)(Nr.SCOPES),value:{kind:Vt.Kind.LIST,values:t}}]}}function g7(e){let t=Array.from(e).sort((r,i)=>r-i),n=new Array;for(let r of t)n.push({kind:Vt.Kind.INT,value:r.toString()});return{kind:Vt.Kind.DIRECTIVE,name:(0,Bp.stringToNameNode)(Nr.SEMANTIC_NON_NULL),arguments:[{kind:Vt.Kind.ARGUMENT,name:(0,Bp.stringToNameNode)(Nr.LEVELS),value:{kind:Vt.Kind.LIST,values:n}}]}}function _7(e){let t=new Map;for(let[n,r]of e)t.set(n,M({},r));return t}function v7(e,t){for(let[n,r]of e)t.set(n,M({},r))}function S7(e){let t=new Map;for(let[n,r]of e)t.set(n,[...r]);return t}function O7({source:e,target:t}){for(let[n,r]of e)t.set(n,r)}function D7(e){let{value:t,done:n}=e.values().next();if(!n)return t}});var Up=F(tT=>{"use strict";m();T();N();Object.defineProperty(tT,"__esModule",{value:!0});tT.ExtensionType=void 0;var tB;(function(e){e[e.EXTENDS=0]="EXTENDS",e[e.NONE=1]="NONE",e[e.REAL=2]="REAL"})(tB||(tT.ExtensionType=tB={}))});var yu=F(wr=>{"use strict";m();T();N();Object.defineProperty(wr,"__esModule",{value:!0});wr.getMutableDirectiveDefinitionNode=A7;wr.getMutableEnumNode=R7;wr.getMutableEnumValueNode=P7;wr.getMutableFieldNode=F7;wr.getMutableInputObjectNode=w7;wr.getMutableInputValueNode=L7;wr.getMutableInterfaceNode=C7;wr.getMutableObjectNode=B7;wr.getMutableObjectExtensionNode=U7;wr.getMutableScalarNode=k7;wr.getMutableTypeNode=Hv;wr.getMutableUnionNode=M7;wr.getTypeNodeNamedTypeName=zv;wr.getNamedTypeNode=rB;var Fr=Se(),Ll=Rr(),nB=Gi(),b7=wl();function A7(e){return{arguments:[],kind:e.kind,locations:[],name:M({},e.name),repeatable:e.repeatable,description:(0,Ll.formatDescription)(e.description)}}function R7(e){return{kind:Fr.Kind.ENUM_TYPE_DEFINITION,name:M({},e)}}function P7(e){return{directives:[],kind:e.kind,name:M({},e.name),description:(0,Ll.formatDescription)(e.description)}}function F7(e,t,n){return{arguments:[],directives:[],kind:e.kind,name:M({},e.name),type:Hv(e.type,t,n),description:(0,Ll.formatDescription)(e.description)}}function w7(e){return{kind:Fr.Kind.INPUT_OBJECT_TYPE_DEFINITION,name:M({},e)}}function L7(e,t,n){return{directives:[],kind:e.kind,name:M({},e.name),type:Hv(e.type,t,n),defaultValue:e.defaultValue,description:(0,Ll.formatDescription)(e.description)}}function C7(e){return{kind:Fr.Kind.INTERFACE_TYPE_DEFINITION,name:M({},e)}}function B7(e){return{kind:Fr.Kind.OBJECT_TYPE_DEFINITION,name:M({},e)}}function U7(e){let t=e.kind===Fr.Kind.OBJECT_TYPE_DEFINITION?e.description:void 0;return{kind:Fr.Kind.OBJECT_TYPE_EXTENSION,name:M({},e.name),description:(0,Ll.formatDescription)(t)}}function k7(e){return{kind:Fr.Kind.SCALAR_TYPE_DEFINITION,name:M({},e)}}function Hv(e,t,n){let r={kind:e.kind},i=r;for(let a=0;a{"use strict";m();T();N();Object.defineProperty(Cl,"__esModule",{value:!0});Cl.REQUIRED_FIELDSET_TYPE_NODE=Cl.REQUIRED_STRING_TYPE_NODE=void 0;var iB=Se(),aB=Rr(),sB=sr();Cl.REQUIRED_STRING_TYPE_NODE={kind:iB.Kind.NON_NULL_TYPE,type:(0,aB.stringToNamedTypeNode)(sB.STRING_SCALAR)};Cl.REQUIRED_FIELDSET_TYPE_NODE={kind:iB.Kind.NON_NULL_TYPE,type:(0,aB.stringToNamedTypeNode)(sB.FIELD_SET_SCALAR)}});var kp=F(Ge=>{"use strict";m();T();N();Object.defineProperty(Ge,"__esModule",{value:!0});Ge.TAG_DEFINITION=Ge.SUBSCRIPTION_FILTER_DEFINITION=Ge.SPECIFIED_BY_DEFINITION=Ge.SHAREABLE_DEFINITION=Ge.SEMANTIC_NON_NULL_DEFINITION=Ge.REQUIRES_SCOPES_DEFINITION=Ge.REQUIRES_DEFINITION=Ge.REQUIRE_FETCH_REASONS_DEFINITION=Ge.PROVIDES_DEFINITION=Ge.OVERRIDE_DEFINITION=Ge.ONE_OF_DEFINITION=Ge.LINK_DEFINITION=Ge.KEY_DEFINITION=Ge.INTERFACE_OBJECT_DEFINITION=Ge.INACCESSIBLE_DEFINITION=Ge.EDFS_REDIS_SUBSCRIBE_DEFINITION=Ge.EDFS_REDIS_PUBLISH_DEFINITION=Ge.EDFS_NATS_SUBSCRIBE_DEFINITION=Ge.EDFS_NATS_REQUEST_DEFINITION=Ge.EDFS_NATS_PUBLISH_DEFINITION=Ge.EDFS_KAFKA_SUBSCRIBE_DEFINITION=Ge.EDFS_KAFKA_PUBLISH_DEFINITION=Ge.EXTERNAL_DEFINITION=Ge.EXTENDS_DEFINITION=Ge.DEPRECATED_DEFINITION=Ge.CONFIGURE_DESCRIPTION_DEFINITION=Ge.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION=Ge.COMPOSE_DIRECTIVE_DEFINITION=Ge.AUTHENTICATED_DEFINITION=void 0;var Ee=Se(),fe=Rr(),H=sr(),Lr=nT();Ge.AUTHENTICATED_DEFINITION={kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.ENUM_UPPER,H.FIELD_DEFINITION_UPPER,H.INTERFACE_UPPER,H.OBJECT_UPPER,H.SCALAR_UPPER]),name:(0,fe.stringToNameNode)(H.AUTHENTICATED),repeatable:!1};Ge.COMPOSE_DIRECTIVE_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.NAME),type:Lr.REQUIRED_STRING_TYPE_NODE}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.SCHEMA_UPPER]),name:(0,fe.stringToNameNode)(H.COMPOSE_DIRECTIVE),repeatable:!0};Ge.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.PROPAGATE),type:{kind:Ee.Kind.NON_NULL_TYPE,type:(0,fe.stringToNamedTypeNode)(H.BOOLEAN_SCALAR)},defaultValue:{kind:Ee.Kind.BOOLEAN,value:!0}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.ENUM_UPPER,H.INPUT_OBJECT_UPPER,H.INTERFACE_UPPER,H.OBJECT_UPPER]),name:(0,fe.stringToNameNode)(H.CONFIGURE_CHILD_DESCRIPTIONS),repeatable:!1};Ge.CONFIGURE_DESCRIPTION_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.PROPAGATE),type:{kind:Ee.Kind.NON_NULL_TYPE,type:(0,fe.stringToNamedTypeNode)(H.BOOLEAN_SCALAR)},defaultValue:{kind:Ee.Kind.BOOLEAN,value:!0}},{directives:[],kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.DESCRIPTION_OVERRIDE),type:(0,fe.stringToNamedTypeNode)(H.STRING_SCALAR)}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.ARGUMENT_DEFINITION_UPPER,H.ENUM_UPPER,H.ENUM_VALUE_UPPER,H.FIELD_DEFINITION_UPPER,H.INTERFACE_UPPER,H.INPUT_OBJECT_UPPER,H.INPUT_FIELD_DEFINITION_UPPER,H.OBJECT_UPPER,H.SCALAR_UPPER,H.SCHEMA_UPPER,H.UNION_UPPER]),name:(0,fe.stringToNameNode)(H.CONFIGURE_DESCRIPTION),repeatable:!1};Ge.DEPRECATED_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.REASON),type:(0,fe.stringToNamedTypeNode)(H.STRING_SCALAR),defaultValue:{kind:Ee.Kind.STRING,value:Ee.DEFAULT_DEPRECATION_REASON}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.ARGUMENT_DEFINITION_UPPER,H.ENUM_VALUE_UPPER,H.FIELD_DEFINITION_UPPER,H.INPUT_FIELD_DEFINITION_UPPER]),name:(0,fe.stringToNameNode)(H.DEPRECATED),repeatable:!1};Ge.EXTENDS_DEFINITION={kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.INTERFACE_UPPER,H.OBJECT_UPPER]),name:(0,fe.stringToNameNode)(H.EXTENDS),repeatable:!1};Ge.EXTERNAL_DEFINITION={kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.FIELD_DEFINITION_UPPER,H.OBJECT_UPPER]),name:(0,fe.stringToNameNode)(H.EXTERNAL),repeatable:!1};Ge.EDFS_KAFKA_PUBLISH_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.TOPIC),type:Lr.REQUIRED_STRING_TYPE_NODE},{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.PROVIDER_ID),type:Lr.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:Ee.Kind.STRING,value:H.DEFAULT_EDFS_PROVIDER_ID}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:[(0,fe.stringToNameNode)(H.FIELD_DEFINITION_UPPER)],name:(0,fe.stringToNameNode)(H.EDFS_KAFKA_PUBLISH),repeatable:!1};Ge.EDFS_KAFKA_SUBSCRIBE_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.TOPICS),type:{kind:Ee.Kind.NON_NULL_TYPE,type:{kind:Ee.Kind.LIST_TYPE,type:Lr.REQUIRED_STRING_TYPE_NODE}}},{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.PROVIDER_ID),type:Lr.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:Ee.Kind.STRING,value:H.DEFAULT_EDFS_PROVIDER_ID}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:[(0,fe.stringToNameNode)(H.FIELD_DEFINITION_UPPER)],name:(0,fe.stringToNameNode)(H.EDFS_KAFKA_SUBSCRIBE),repeatable:!1};Ge.EDFS_NATS_PUBLISH_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.SUBJECT),type:Lr.REQUIRED_STRING_TYPE_NODE},{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.PROVIDER_ID),type:{kind:Ee.Kind.NON_NULL_TYPE,type:(0,fe.stringToNamedTypeNode)(H.STRING_SCALAR)},defaultValue:{kind:Ee.Kind.STRING,value:H.DEFAULT_EDFS_PROVIDER_ID}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:[(0,fe.stringToNameNode)(H.FIELD_DEFINITION_UPPER)],name:(0,fe.stringToNameNode)(H.EDFS_NATS_PUBLISH),repeatable:!1};Ge.EDFS_NATS_REQUEST_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.SUBJECT),type:{kind:Ee.Kind.NON_NULL_TYPE,type:(0,fe.stringToNamedTypeNode)(H.STRING_SCALAR)}},{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.PROVIDER_ID),type:{kind:Ee.Kind.NON_NULL_TYPE,type:(0,fe.stringToNamedTypeNode)(H.STRING_SCALAR)},defaultValue:{kind:Ee.Kind.STRING,value:H.DEFAULT_EDFS_PROVIDER_ID}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:[(0,fe.stringToNameNode)(H.FIELD_DEFINITION_UPPER)],name:(0,fe.stringToNameNode)(H.EDFS_NATS_REQUEST),repeatable:!1};Ge.EDFS_NATS_SUBSCRIBE_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.SUBJECTS),type:{kind:Ee.Kind.NON_NULL_TYPE,type:{kind:Ee.Kind.LIST_TYPE,type:Lr.REQUIRED_STRING_TYPE_NODE}}},{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.PROVIDER_ID),type:Lr.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:Ee.Kind.STRING,value:H.DEFAULT_EDFS_PROVIDER_ID}},{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.STREAM_CONFIGURATION),type:(0,fe.stringToNamedTypeNode)(H.EDFS_NATS_STREAM_CONFIGURATION)}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:[(0,fe.stringToNameNode)(H.FIELD_DEFINITION_UPPER)],name:(0,fe.stringToNameNode)(H.EDFS_NATS_SUBSCRIBE),repeatable:!1};Ge.EDFS_REDIS_PUBLISH_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.CHANNEL),type:Lr.REQUIRED_STRING_TYPE_NODE},{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.PROVIDER_ID),type:Lr.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:Ee.Kind.STRING,value:H.DEFAULT_EDFS_PROVIDER_ID}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:[(0,fe.stringToNameNode)(H.FIELD_DEFINITION_UPPER)],name:(0,fe.stringToNameNode)(H.EDFS_REDIS_PUBLISH),repeatable:!1};Ge.EDFS_REDIS_SUBSCRIBE_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.CHANNELS),type:{kind:Ee.Kind.NON_NULL_TYPE,type:{kind:Ee.Kind.LIST_TYPE,type:Lr.REQUIRED_STRING_TYPE_NODE}}},{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.PROVIDER_ID),type:Lr.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:Ee.Kind.STRING,value:H.DEFAULT_EDFS_PROVIDER_ID}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:[(0,fe.stringToNameNode)(H.FIELD_DEFINITION_UPPER)],name:(0,fe.stringToNameNode)(H.EDFS_REDIS_SUBSCRIBE),repeatable:!1};Ge.INACCESSIBLE_DEFINITION={kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.ARGUMENT_DEFINITION_UPPER,H.ENUM_UPPER,H.ENUM_VALUE_UPPER,H.FIELD_DEFINITION_UPPER,H.INPUT_FIELD_DEFINITION_UPPER,H.INPUT_OBJECT_UPPER,H.INTERFACE_UPPER,H.OBJECT_UPPER,H.SCALAR_UPPER,H.UNION_UPPER]),name:(0,fe.stringToNameNode)(H.INACCESSIBLE),repeatable:!1};Ge.INTERFACE_OBJECT_DEFINITION={kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.OBJECT_UPPER]),name:(0,fe.stringToNameNode)(H.INTERFACE_OBJECT),repeatable:!1};Ge.KEY_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.FIELDS),type:Lr.REQUIRED_FIELDSET_TYPE_NODE},{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.RESOLVABLE),type:(0,fe.stringToNamedTypeNode)(H.BOOLEAN_SCALAR),defaultValue:{kind:Ee.Kind.BOOLEAN,value:!0}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.INTERFACE_UPPER,H.OBJECT_UPPER]),name:(0,fe.stringToNameNode)(H.KEY),repeatable:!0};Ge.LINK_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.URL_LOWER),type:{kind:Ee.Kind.NON_NULL_TYPE,type:(0,fe.stringToNamedTypeNode)(H.STRING_SCALAR)}},{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.AS),type:(0,fe.stringToNamedTypeNode)(H.STRING_SCALAR)},{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.FOR),type:(0,fe.stringToNamedTypeNode)(H.LINK_PURPOSE)},{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.IMPORT),type:{kind:Ee.Kind.LIST_TYPE,type:(0,fe.stringToNamedTypeNode)(H.LINK_IMPORT)}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.SCHEMA_UPPER]),name:(0,fe.stringToNameNode)(H.LINK),repeatable:!0};Ge.ONE_OF_DEFINITION={kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.INPUT_OBJECT_UPPER]),name:(0,fe.stringToNameNode)(H.ONE_OF),repeatable:!1};Ge.OVERRIDE_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.FROM),type:{kind:Ee.Kind.NON_NULL_TYPE,type:(0,fe.stringToNamedTypeNode)(H.STRING_SCALAR)}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.FIELD_DEFINITION_UPPER]),name:(0,fe.stringToNameNode)(H.OVERRIDE),repeatable:!1};Ge.PROVIDES_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.FIELDS),type:Lr.REQUIRED_FIELDSET_TYPE_NODE}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:[(0,fe.stringToNameNode)(H.FIELD_DEFINITION_UPPER)],name:(0,fe.stringToNameNode)(H.PROVIDES),repeatable:!1};Ge.REQUIRE_FETCH_REASONS_DEFINITION={kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.FIELD_DEFINITION_UPPER,H.INTERFACE_UPPER,H.OBJECT_UPPER]),name:(0,fe.stringToNameNode)(H.REQUIRE_FETCH_REASONS),repeatable:!0};Ge.REQUIRES_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.FIELDS),type:Lr.REQUIRED_FIELDSET_TYPE_NODE}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:[(0,fe.stringToNameNode)(H.FIELD_DEFINITION_UPPER)],name:(0,fe.stringToNameNode)(H.REQUIRES),repeatable:!1};Ge.REQUIRES_SCOPES_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.SCOPES),type:{kind:Ee.Kind.NON_NULL_TYPE,type:{kind:Ee.Kind.LIST_TYPE,type:{kind:Ee.Kind.NON_NULL_TYPE,type:{kind:Ee.Kind.LIST_TYPE,type:{kind:Ee.Kind.NON_NULL_TYPE,type:(0,fe.stringToNamedTypeNode)(H.SCOPE_SCALAR)}}}}}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.ENUM_UPPER,H.FIELD_DEFINITION_UPPER,H.INTERFACE_UPPER,H.OBJECT_UPPER,H.SCALAR_UPPER]),name:(0,fe.stringToNameNode)(H.REQUIRES_SCOPES),repeatable:!1};Ge.SEMANTIC_NON_NULL_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.LEVELS),type:{kind:Ee.Kind.NON_NULL_TYPE,type:{kind:Ee.Kind.LIST_TYPE,type:{kind:Ee.Kind.NON_NULL_TYPE,type:(0,fe.stringToNamedTypeNode)(H.INT_SCALAR)}}},defaultValue:{kind:Ee.Kind.LIST,values:[{kind:Ee.Kind.INT,value:"0"}]}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:[(0,fe.stringToNameNode)(H.FIELD_DEFINITION_UPPER)],name:(0,fe.stringToNameNode)(H.SEMANTIC_NON_NULL),repeatable:!1};Ge.SHAREABLE_DEFINITION={kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.FIELD_DEFINITION_UPPER,H.OBJECT_UPPER]),name:(0,fe.stringToNameNode)(H.SHAREABLE),repeatable:!0};Ge.SPECIFIED_BY_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.URL_LOWER),type:Lr.REQUIRED_STRING_TYPE_NODE}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.SCALAR_UPPER]),name:(0,fe.stringToNameNode)(H.SPECIFIED_BY),repeatable:!1};Ge.SUBSCRIPTION_FILTER_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.CONDITION),type:{kind:Ee.Kind.NON_NULL_TYPE,type:(0,fe.stringToNamedTypeNode)(H.SUBSCRIPTION_FILTER_CONDITION)}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.FIELD_DEFINITION_UPPER]),name:(0,fe.stringToNameNode)(H.SUBSCRIPTION_FILTER),repeatable:!1};Ge.TAG_DEFINITION={arguments:[{kind:Ee.Kind.INPUT_VALUE_DEFINITION,name:(0,fe.stringToNameNode)(H.NAME),type:{kind:Ee.Kind.NON_NULL_TYPE,type:(0,fe.stringToNamedTypeNode)(H.STRING_SCALAR)}}],kind:Ee.Kind.DIRECTIVE_DEFINITION,locations:(0,fe.stringArrayToNameNodeArray)([H.ARGUMENT_DEFINITION_UPPER,H.ENUM_UPPER,H.ENUM_VALUE_UPPER,H.FIELD_DEFINITION_UPPER,H.INPUT_FIELD_DEFINITION_UPPER,H.INPUT_OBJECT_UPPER,H.INTERFACE_UPPER,H.OBJECT_UPPER,H.SCALAR_UPPER,H.UNION_UPPER]),name:(0,fe.stringToNameNode)(H.TAG),repeatable:!0}});var Iu=F($i=>{"use strict";m();T();N();Object.defineProperty($i,"__esModule",{value:!0});$i.MAX_OR_SCOPES=$i.EDFS_ARGS_REGEXP=$i.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME=$i.BASE_SCALARS=$i.DIRECTIVE_DEFINITION_BY_NAME=void 0;var lt=sr(),Dt=kp();$i.DIRECTIVE_DEFINITION_BY_NAME=new Map([[lt.AUTHENTICATED,Dt.AUTHENTICATED_DEFINITION],[lt.COMPOSE_DIRECTIVE,Dt.COMPOSE_DIRECTIVE_DEFINITION],[lt.CONFIGURE_DESCRIPTION,Dt.CONFIGURE_DESCRIPTION_DEFINITION],[lt.CONFIGURE_CHILD_DESCRIPTIONS,Dt.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION],[lt.DEPRECATED,Dt.DEPRECATED_DEFINITION],[lt.EDFS_KAFKA_PUBLISH,Dt.EDFS_KAFKA_PUBLISH_DEFINITION],[lt.EDFS_KAFKA_SUBSCRIBE,Dt.EDFS_KAFKA_SUBSCRIBE_DEFINITION],[lt.EDFS_NATS_PUBLISH,Dt.EDFS_NATS_PUBLISH_DEFINITION],[lt.EDFS_NATS_REQUEST,Dt.EDFS_NATS_REQUEST_DEFINITION],[lt.EDFS_NATS_SUBSCRIBE,Dt.EDFS_NATS_SUBSCRIBE_DEFINITION],[lt.EDFS_REDIS_PUBLISH,Dt.EDFS_REDIS_PUBLISH_DEFINITION],[lt.EDFS_REDIS_SUBSCRIBE,Dt.EDFS_REDIS_SUBSCRIBE_DEFINITION],[lt.EXTENDS,Dt.EXTENDS_DEFINITION],[lt.EXTERNAL,Dt.EXTERNAL_DEFINITION],[lt.INACCESSIBLE,Dt.INACCESSIBLE_DEFINITION],[lt.INTERFACE_OBJECT,Dt.INTERFACE_OBJECT_DEFINITION],[lt.KEY,Dt.KEY_DEFINITION],[lt.LINK,Dt.LINK_DEFINITION],[lt.ONE_OF,Dt.ONE_OF_DEFINITION],[lt.OVERRIDE,Dt.OVERRIDE_DEFINITION],[lt.PROVIDES,Dt.PROVIDES_DEFINITION],[lt.REQUIRE_FETCH_REASONS,Dt.REQUIRE_FETCH_REASONS_DEFINITION],[lt.REQUIRES,Dt.REQUIRES_DEFINITION],[lt.REQUIRES_SCOPES,Dt.REQUIRES_SCOPES_DEFINITION],[lt.SEMANTIC_NON_NULL,Dt.SEMANTIC_NON_NULL_DEFINITION],[lt.SHAREABLE,Dt.SHAREABLE_DEFINITION],[lt.SPECIFIED_BY,Dt.SPECIFIED_BY_DEFINITION],[lt.SUBSCRIPTION_FILTER,Dt.SUBSCRIPTION_FILTER_DEFINITION],[lt.TAG,Dt.TAG_DEFINITION]]);$i.BASE_SCALARS=new Set(["_Any","_Entities",lt.BOOLEAN_SCALAR,lt.FLOAT_SCALAR,lt.ID_SCALAR,lt.INT_SCALAR,lt.FIELD_SET_SCALAR,lt.SCOPE_SCALAR,lt.STRING_SCALAR]);$i.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME=new Map([[lt.AUTHENTICATED,Dt.AUTHENTICATED_DEFINITION],[lt.COMPOSE_DIRECTIVE,Dt.COMPOSE_DIRECTIVE_DEFINITION],[lt.INACCESSIBLE,Dt.INACCESSIBLE_DEFINITION],[lt.INTERFACE_OBJECT,Dt.INTERFACE_OBJECT_DEFINITION],[lt.LINK,Dt.LINK_DEFINITION],[lt.OVERRIDE,Dt.OVERRIDE_DEFINITION],[lt.REQUIRES_SCOPES,Dt.REQUIRES_SCOPES_DEFINITION],[lt.SHAREABLE,Dt.SHAREABLE_DEFINITION]]);$i.EDFS_ARGS_REGEXP=/{{\s*args\.([a-zA-Z0-9_]+)\s*}}/g;$i.MAX_OR_SCOPES=16});var rT=F(Tc=>{"use strict";m();T();N();Object.defineProperty(Tc,"__esModule",{value:!0});Tc.newParentTagData=V7;Tc.newChildTagData=K7;Tc.validateImplicitFieldSets=G7;Tc.newContractTagOptionsFromArrays=$7;Tc.getDescriptionFromString=Q7;var ri=Se(),x7=yu(),q7=Iu(),j7=Rr(),oB=Pr();function V7(e){return{childTagDataByChildName:new Map,tagNames:new Set,typeName:e}}function K7(e){return{name:e,tagNames:new Set,tagNamesByArgumentName:new Map}}function G7({conditionalFieldDataByCoords:e,currentSubgraphName:t,entityData:n,implicitKeys:r,objectData:i,parentDefinitionDataByTypeName:a,graphNode:o}){let c=(0,oB.getValueOrDefault)(n.keyFieldSetDatasBySubgraphName,t,()=>new Map);for(let[l,d]of n.documentNodeByKeyFieldSet){if(c.has(l))continue;let f=[i],y=[],I=[],v=-1,w=!0,U=!0;(0,ri.visit)(d,{Argument:{enter(){return U=!1,ri.BREAK}},Field:{enter(V){let Y=f[v];if(w)return U=!1,ri.BREAK;let re=V.name.value,ne=Y.fieldDataByName.get(re);if(!ne||ne.argumentDataByName.size||y[v].has(re))return U=!1,ri.BREAK;let{isUnconditionallyProvided:me}=(0,oB.getOrThrowError)(ne.externalFieldDataBySubgraphName,t,`${ne.originalParentTypeName}.${re}.externalFieldDataBySubgraphName`),ue=e.get(`${ne.renamedParentTypeName}.${re}`);if(ue){if(ue.providedBy.length>0)I.push(...ue.providedBy);else if(ue.requiredBy.length>0)return U=!1,ri.BREAK}else if(!me)return U=!1,ri.BREAK;y[v].add(re);let Ae=(0,x7.getTypeNodeNamedTypeName)(ne.node.type);if(q7.BASE_SCALARS.has(Ae))return;let Me=a.get(Ae);if(!Me)return U=!1,ri.BREAK;if(Me.kind===ri.Kind.OBJECT_TYPE_DEFINITION){w=!0,f.push(Me);return}if((0,j7.isKindAbstract)(Me.kind))return U=!1,ri.BREAK}},InlineFragment:{enter(){return U=!1,ri.BREAK}},SelectionSet:{enter(){if(!w||(v+=1,w=!1,v<0||v>=f.length))return U=!1,ri.BREAK;y.push(new Set)},leave(){if(w)return U=!1,ri.BREAK;v-=1,f.pop(),y.pop()}}}),U&&(r.push($(M({fieldName:"",selectionSet:l},I.length>0?{conditions:I}:{}),{disableEntityResolver:!0})),o&&o.satisfiedFieldSets.add(l))}}function $7(e,t){return{tagNamesToExclude:new Set(e),tagNamesToInclude:new Set(t)}}function Q7(e){if(e)return{block:!0,kind:ri.Kind.STRING,value:e}}});var Bl=F(Nt=>{"use strict";m();T();N();Object.defineProperty(Nt,"__esModule",{value:!0});Nt.MergeMethod=void 0;Nt.newPersistedDirectivesData=J7;Nt.isNodeExternalOrShareable=H7;Nt.isTypeRequired=z7;Nt.areDefaultValuesCompatible=cB;Nt.compareAndValidateInputValueDefaultValues=W7;Nt.setMutualExecutableLocations=X7;Nt.isTypeNameRootType=Z7;Nt.getRenamedRootTypeName=eZ;Nt.childMapToValueArray=nZ;Nt.setLongestDescription=rZ;Nt.isParentDataRootType=lB;Nt.isInterfaceDefinitionData=iZ;Nt.setParentDataExtensionType=aZ;Nt.upsertDeprecatedDirective=sZ;Nt.upsertTagDirectives=oZ;Nt.propagateAuthDirectives=uZ;Nt.propagateFieldAuthDirectives=cZ;Nt.generateDeprecatedDirective=eS;Nt.getClientPersistedDirectiveNodes=Xv;Nt.getClientSchemaFieldNodeByFieldData=pZ;Nt.getNodeWithPersistedDirectivesByInputValueData=dB;Nt.addValidPersistedDirectiveDefinitionNodeByData=mZ;Nt.newInvalidFieldNames=NZ;Nt.validateExternalAndShareable=TZ;Nt.isTypeValidImplementation=iT;Nt.isNodeDataInaccessible=pB;Nt.isLeafKind=EZ;Nt.getSubscriptionFilterValue=hZ;Nt.getParentTypeName=yZ;Nt.newConditionalFieldData=IZ;Nt.getDefinitionDataCoords=gZ;Nt.isParentDataCompositeOutputType=_Z;Nt.newExternalFieldData=vZ;Nt.getInitialFederatedDescription=SZ;Nt.areKindsEqual=OZ;Nt.isFieldData=tS;Nt.isInputObjectDefinitionData=DZ;Nt.isInputNodeKind=bZ;Nt.isOutputNodeKind=AZ;var st=Se(),Wv=Up(),Mp=Rr(),Zv=Gi(),Zt=sr(),Ec=Pr(),Y7=rT();function J7(){return{deprecatedReason:"",directivesByDirectiveName:new Map,isDeprecated:!1,tagDirectiveByName:new Map}}function H7(e,t,n){var i;let r={isExternal:n.has(Zt.EXTERNAL),isShareable:t||n.has(Zt.SHAREABLE)};if(!((i=e.directives)!=null&&i.length))return r;for(let a of e.directives){let o=a.name.value;if(o===Zt.EXTERNAL){r.isExternal=!0;continue}o===Zt.SHAREABLE&&(r.isShareable=!0)}return r}function z7(e){return e.kind===st.Kind.NON_NULL_TYPE}function cB(e,t){switch(e.kind){case st.Kind.LIST_TYPE:return t.kind===st.Kind.LIST||t.kind===st.Kind.NULL;case st.Kind.NAMED_TYPE:if(t.kind===st.Kind.NULL)return!0;switch(e.name.value){case Zt.BOOLEAN_SCALAR:return t.kind===st.Kind.BOOLEAN;case Zt.FLOAT_SCALAR:return t.kind===st.Kind.INT||t.kind===st.Kind.FLOAT;case Zt.INT_SCALAR:return t.kind===st.Kind.INT;case Zt.STRING_SCALAR:return t.kind===st.Kind.STRING;default:return!0}case st.Kind.NON_NULL_TYPE:return t.kind===st.Kind.NULL?!1:cB(e.type,t)}}function W7(e,t,n){if(!e.defaultValue)return;if(!t.defaultValue){e.includeDefaultValue=!1;return}let r=(0,st.print)(e.defaultValue),i=(0,st.print)(t.defaultValue);if(r!==i){n.push((0,Zv.incompatibleInputValueDefaultValuesError)(`${e.isArgument?Zt.ARGUMENT:Zt.INPUT_FIELD} "${e.name}"`,e.originalCoords,[...t.subgraphNames],r,i));return}}function X7(e,t){let n=new Set;for(let r of t)e.executableLocations.has(r)&&n.add(r);e.executableLocations=n}function Z7(e,t){return Zt.ROOT_TYPE_NAMES.has(e)||t.has(e)}function eZ(e,t){let n=t.get(e);if(!n)return e;switch(n){case st.OperationTypeNode.MUTATION:return Zt.MUTATION;case st.OperationTypeNode.SUBSCRIPTION:return Zt.SUBSCRIPTION;default:return Zt.QUERY}}function tZ(e){for(let t of e.argumentDataByName.values()){for(let n of t.directivesByDirectiveName.values())t.node.directives.push(...n);e.node.arguments.push(t.node)}}function nZ(e){let t=[];for(let n of e.values()){tS(n)&&tZ(n);for(let r of n.directivesByDirectiveName.values())n.node.directives.push(...r);t.push(n.node)}return t}function rZ(e,t){if(t.description){if("configureDescriptionDataBySubgraphName"in t){for(let{propagate:n}of t.configureDescriptionDataBySubgraphName.values())if(!n)return}(!e.description||e.description.value.length0&&e.persistedDirectivesData.directivesByDirectiveName.set(Zt.REQUIRES_SCOPES,[(0,Ec.generateRequiresScopesDirective)(t.requiredScopes)]))}function cZ(e,t){if(!t)return;let n=t.fieldAuthDataByFieldName.get(e.name);n&&(n.originalData.requiresAuthentication&&e.persistedDirectivesData.directivesByDirectiveName.set(Zt.AUTHENTICATED,[(0,Ec.generateSimpleDirective)(Zt.AUTHENTICATED)]),n.originalData.requiredScopes.length>0&&e.persistedDirectivesData.directivesByDirectiveName.set(Zt.REQUIRES_SCOPES,[(0,Ec.generateRequiresScopesDirective)(n.originalData.requiredScopes)]))}function eS(e){return{kind:st.Kind.DIRECTIVE,name:(0,Mp.stringToNameNode)(Zt.DEPRECATED),arguments:[{kind:st.Kind.ARGUMENT,name:(0,Mp.stringToNameNode)(Zt.REASON),value:{kind:st.Kind.STRING,value:e||Zt.DEPRECATED_DEFAULT_ARGUMENT_VALUE}}]}}function lZ(e,t,n,r){let i=[];for(let[a,o]of e){let c=t.get(a);if(c){if(o.length<2){i.push(...o);continue}if(!c.repeatable){r.push((0,Zv.invalidRepeatedFederatedDirectiveErrorMessage)(a,n));continue}i.push(...o)}}return i}function dZ(e,t,n){let r=[...e.persistedDirectivesData.tagDirectiveByName.values()];return e.persistedDirectivesData.isDeprecated&&r.push(eS(e.persistedDirectivesData.deprecatedReason)),r.push(...lZ(e.persistedDirectivesData.directivesByDirectiveName,t,e.name,n)),r}function Xv(e){var n;let t=[];e.persistedDirectivesData.isDeprecated&&t.push(eS(e.persistedDirectivesData.deprecatedReason));for(let[r,i]of e.persistedDirectivesData.directivesByDirectiveName){if(r===Zt.SEMANTIC_NON_NULL&&tS(e)){t.push((0,Ec.generateSemanticNonNullDirective)((n=(0,Ec.getFirstEntry)(e.nullLevelsBySubgraphName))!=null?n:new Set([0])));continue}Zt.PERSISTED_CLIENT_DIRECTIVES.has(r)&&t.push(i[0])}return t}function pZ(e){let t=Xv(e),n=[];for(let r of e.argumentDataByName.values())pB(r)||n.push($(M({},r.node),{directives:Xv(r)}));return $(M({},e.node),{directives:t,arguments:n})}function dB(e,t,n){return e.node.name=(0,Mp.stringToNameNode)(e.name),e.node.type=e.type,e.node.description=e.description,e.node.directives=dZ(e,t,n),e.includeDefaultValue&&(e.node.defaultValue=e.defaultValue),e.node}function fZ(e,t,n,r,i){let a=[];for(let[o,c]of t.argumentDataByName){let l=(0,Ec.getEntriesNotInHashSet)(t.subgraphNames,c.subgraphNames);if(l.length>0){c.requiredSubgraphNames.size>0&&a.push({inputValueName:o,missingSubgraphs:l,requiredSubgraphs:[...c.requiredSubgraphNames]});continue}e.push(dB(c,n,r)),i&&i.add(o)}return a.length>0?(r.push((0,Zv.invalidRequiredInputValueError)(Zt.DIRECTIVE_DEFINITION,`@${t.name}`,a)),!1):!0}function mZ(e,t,n,r){let i=[];fZ(i,t,n,r)&&e.push({arguments:i,kind:st.Kind.DIRECTIVE_DEFINITION,locations:(0,Mp.setToNameNodeArray)(t.executableLocations),name:(0,Mp.stringToNameNode)(t.name),repeatable:t.repeatable,description:t.description})}function NZ(){return{byShareable:new Set,subgraphNamesByExternalFieldName:new Map}}function TZ(e,t){let n=e.isShareableBySubgraphName.size,r=new Array,i=0;for(let[a,o]of e.isShareableBySubgraphName){let c=e.externalFieldDataBySubgraphName.get(a);if(c&&!c.isUnconditionallyProvided){r.push(a);continue}o||(i+=1)}switch(i){case 0:n===r.length&&t.subgraphNamesByExternalFieldName.set(e.name,r);return;case 1:if(n===1)return;n-r.length!==1&&t.byShareable.add(e.name);return;default:t.byShareable.add(e.name)}}var uB;(function(e){e[e.UNION=0]="UNION",e[e.INTERSECTION=1]="INTERSECTION",e[e.CONSISTENT=2]="CONSISTENT"})(uB||(Nt.MergeMethod=uB={}));function iT(e,t,n){if(e.kind===st.Kind.NON_NULL_TYPE)return t.kind!==st.Kind.NON_NULL_TYPE?!1:iT(e.type,t.type,n);if(t.kind===st.Kind.NON_NULL_TYPE)return iT(e,t.type,n);switch(e.kind){case st.Kind.NAMED_TYPE:if(t.kind===st.Kind.NAMED_TYPE){let r=e.name.value,i=t.name.value;if(r===i)return!0;let a=n.get(r);return a?a.has(i):!1}return!1;default:return t.kind===st.Kind.LIST_TYPE?iT(e.type,t.type,n):!1}}function pB(e){return e.persistedDirectivesData.directivesByDirectiveName.has(Zt.INACCESSIBLE)||e.directivesByDirectiveName.has(Zt.INACCESSIBLE)}function EZ(e){return e===st.Kind.SCALAR_TYPE_DEFINITION||e===st.Kind.ENUM_TYPE_DEFINITION}function hZ(e){switch(e.kind){case st.Kind.BOOLEAN:return e.value;case st.Kind.ENUM:case st.Kind.STRING:return e.value;case st.Kind.FLOAT:case st.Kind.INT:try{return parseFloat(e.value)}catch(t){return"NaN"}case st.Kind.NULL:return null}}function yZ(e){return e.kind===st.Kind.OBJECT_TYPE_DEFINITION&&e.renamedTypeName||e.name}function IZ(){return{providedBy:[],requiredBy:[]}}function gZ(e,t){switch(e.kind){case st.Kind.ENUM_VALUE_DEFINITION:return`${e.parentTypeName}.${e.name}`;case st.Kind.FIELD_DEFINITION:return`${t?e.renamedParentTypeName:e.originalParentTypeName}.${e.name}`;case st.Kind.ARGUMENT:case st.Kind.INPUT_VALUE_DEFINITION:return t?e.federatedCoords:e.originalCoords;case st.Kind.OBJECT_TYPE_DEFINITION:return t?e.renamedTypeName:e.name;default:return e.name}}function _Z(e){return e.kind===st.Kind.OBJECT_TYPE_DEFINITION||e.kind===st.Kind.INTERFACE_TYPE_DEFINITION}function vZ(e){return{isDefinedExternal:e,isUnconditionallyProvided:!e}}function SZ(e){let{value:t,done:n}=e.configureDescriptionDataBySubgraphName.values().next();if(n)return e.description;if(t.propagate)return(0,Y7.getDescriptionFromString)(t.description)||e.description}function OZ(e,t){return e.kind===t.kind}function tS(e){return e.kind===st.Kind.FIELD_DEFINITION}function DZ(e){return e.kind===st.Kind.INPUT_OBJECT_TYPE_DEFINITION}function bZ(e){return Zt.INPUT_NODE_KINDS.has(e)}function AZ(e){return Zt.OUTPUT_NODE_KINDS.has(e)}});var iS={};bm(iS,{__addDisposableResource:()=>LB,__assign:()=>aT,__asyncDelegator:()=>OB,__asyncGenerator:()=>SB,__asyncValues:()=>DB,__await:()=>Ul,__awaiter:()=>hB,__classPrivateFieldGet:()=>PB,__classPrivateFieldIn:()=>wB,__classPrivateFieldSet:()=>FB,__createBinding:()=>oT,__decorate:()=>NB,__disposeResources:()=>CB,__esDecorate:()=>RZ,__exportStar:()=>IB,__extends:()=>fB,__generator:()=>yB,__importDefault:()=>RB,__importStar:()=>AB,__makeTemplateObject:()=>bB,__metadata:()=>EB,__param:()=>TB,__propKey:()=>FZ,__read:()=>rS,__rest:()=>mB,__runInitializers:()=>PZ,__setFunctionName:()=>wZ,__spread:()=>gB,__spreadArray:()=>vB,__spreadArrays:()=>_B,__values:()=>sT,default:()=>BZ});function fB(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");nS(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function mB(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(e);i=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function TB(e,t){return function(n,r){t(n,r,e)}}function RZ(e,t,n,r,i,a){function o(Y){if(Y!==void 0&&typeof Y!="function")throw new TypeError("Function expected");return Y}for(var c=r.kind,l=c==="getter"?"get":c==="setter"?"set":"value",d=!t&&e?r.static?e:e.prototype:null,f=t||(d?Object.getOwnPropertyDescriptor(d,r.name):{}),y,I=!1,v=n.length-1;v>=0;v--){var w={};for(var U in r)w[U]=U==="access"?{}:r[U];for(var U in r.access)w.access[U]=r.access[U];w.addInitializer=function(Y){if(I)throw new TypeError("Cannot add initializers after decoration has completed");a.push(o(Y||null))};var V=(0,n[v])(c==="accessor"?{get:f.get,set:f.set}:f[l],w);if(c==="accessor"){if(V===void 0)continue;if(V===null||typeof V!="object")throw new TypeError("Object expected");(y=o(V.get))&&(f.get=y),(y=o(V.set))&&(f.set=y),(y=o(V.init))&&i.unshift(y)}else(y=o(V))&&(c==="field"?i.unshift(y):f[l]=y)}d&&Object.defineProperty(d,r.name,f),I=!0}function PZ(e,t,n){for(var r=arguments.length>2,i=0;i0&&a[a.length-1])&&(d[0]===6||d[0]===2)){n=0;continue}if(d[0]===3&&(!a||d[1]>a[0]&&d[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function rS(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(c){o={error:c}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function gB(){for(var e=[],t=0;t1||c(I,v)})})}function c(I,v){try{l(r[I](v))}catch(w){y(a[0][3],w)}}function l(I){I.value instanceof Ul?Promise.resolve(I.value.v).then(d,f):y(a[0][2],I)}function d(I){c("next",I)}function f(I){c("throw",I)}function y(I,v){I(v),a.shift(),a.length&&c(a[0][0],a[0][1])}}function OB(e){var t,n;return t={},r("next"),r("throw",function(i){throw i}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(i,a){t[i]=e[i]?function(o){return(n=!n)?{value:Ul(e[i](o)),done:!1}:a?a(o):o}:a}}function DB(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof sT=="function"?sT(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=e[a]&&function(o){return new Promise(function(c,l){o=e[a](o),i(c,l,o.done,o.value)})}}function i(a,o,c,l){Promise.resolve(l).then(function(d){a({value:d,done:c})},o)}}function bB(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function AB(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&oT(t,e,n);return LZ(t,e),t}function RB(e){return e&&e.__esModule?e:{default:e}}function PB(e,t,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)}function FB(e,t,n,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(e,n):i?i.value=n:t.set(e,n),n}function wB(e,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof e=="function"?t===e:e.has(t)}function LB(e,t,n){if(t!=null){if(typeof t!="object"&&typeof t!="function")throw new TypeError("Object expected.");var r;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose]}if(typeof r!="function")throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}function CB(e){function t(r){e.error=e.hasError?new CZ(r,e.error,"An error was suppressed during disposal."):r,e.hasError=!0}function n(){for(;e.stack.length;){var r=e.stack.pop();try{var i=r.dispose&&r.dispose.call(r.value);if(r.async)return Promise.resolve(i).then(n,function(a){return t(a),n()})}catch(a){t(a)}}if(e.hasError)throw e.error}return n()}var nS,aT,oT,LZ,CZ,BZ,aS=Yu(()=>{"use strict";m();T();N();nS=function(e,t){return nS=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},nS(e,t)};aT=function(){return aT=Object.assign||function(t){for(var n,r=1,i=arguments.length;rtU,__assign:()=>uT,__asyncDelegator:()=>YB,__asyncGenerator:()=>QB,__asyncValues:()=>JB,__await:()=>kl,__awaiter:()=>qB,__classPrivateFieldGet:()=>XB,__classPrivateFieldIn:()=>eU,__classPrivateFieldSet:()=>ZB,__createBinding:()=>lT,__decorate:()=>kB,__disposeResources:()=>nU,__esDecorate:()=>UZ,__exportStar:()=>VB,__extends:()=>BB,__generator:()=>jB,__importDefault:()=>WB,__importStar:()=>zB,__makeTemplateObject:()=>HB,__metadata:()=>xB,__param:()=>MB,__propKey:()=>MZ,__read:()=>oS,__rest:()=>UB,__runInitializers:()=>kZ,__setFunctionName:()=>xZ,__spread:()=>KB,__spreadArray:()=>$B,__spreadArrays:()=>GB,__values:()=>cT,default:()=>VZ});function BB(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");sS(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function UB(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(e);i=0;c--)(o=e[c])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function MB(e,t){return function(n,r){t(n,r,e)}}function UZ(e,t,n,r,i,a){function o(Y){if(Y!==void 0&&typeof Y!="function")throw new TypeError("Function expected");return Y}for(var c=r.kind,l=c==="getter"?"get":c==="setter"?"set":"value",d=!t&&e?r.static?e:e.prototype:null,f=t||(d?Object.getOwnPropertyDescriptor(d,r.name):{}),y,I=!1,v=n.length-1;v>=0;v--){var w={};for(var U in r)w[U]=U==="access"?{}:r[U];for(var U in r.access)w.access[U]=r.access[U];w.addInitializer=function(Y){if(I)throw new TypeError("Cannot add initializers after decoration has completed");a.push(o(Y||null))};var V=(0,n[v])(c==="accessor"?{get:f.get,set:f.set}:f[l],w);if(c==="accessor"){if(V===void 0)continue;if(V===null||typeof V!="object")throw new TypeError("Object expected");(y=o(V.get))&&(f.get=y),(y=o(V.set))&&(f.set=y),(y=o(V.init))&&i.unshift(y)}else(y=o(V))&&(c==="field"?i.unshift(y):f[l]=y)}d&&Object.defineProperty(d,r.name,f),I=!0}function kZ(e,t,n){for(var r=arguments.length>2,i=0;i0&&a[a.length-1])&&(d[0]===6||d[0]===2)){n=0;continue}if(d[0]===3&&(!a||d[1]>a[0]&&d[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function oS(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(c){o={error:c}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}function KB(){for(var e=[],t=0;t1||c(I,v)})})}function c(I,v){try{l(r[I](v))}catch(w){y(a[0][3],w)}}function l(I){I.value instanceof kl?Promise.resolve(I.value.v).then(d,f):y(a[0][2],I)}function d(I){c("next",I)}function f(I){c("throw",I)}function y(I,v){I(v),a.shift(),a.length&&c(a[0][0],a[0][1])}}function YB(e){var t,n;return t={},r("next"),r("throw",function(i){throw i}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(i,a){t[i]=e[i]?function(o){return(n=!n)?{value:kl(e[i](o)),done:!1}:a?a(o):o}:a}}function JB(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof cT=="function"?cT(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(a){n[a]=e[a]&&function(o){return new Promise(function(c,l){o=e[a](o),i(c,l,o.done,o.value)})}}function i(a,o,c,l){Promise.resolve(l).then(function(d){a({value:d,done:c})},o)}}function HB(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function zB(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&lT(t,e,n);return qZ(t,e),t}function WB(e){return e&&e.__esModule?e:{default:e}}function XB(e,t,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)}function ZB(e,t,n,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(e,n):i?i.value=n:t.set(e,n),n}function eU(e,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof e=="function"?t===e:e.has(t)}function tU(e,t,n){if(t!=null){if(typeof t!="object"&&typeof t!="function")throw new TypeError("Object expected.");var r;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose]}if(typeof r!="function")throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}function nU(e){function t(r){e.error=e.hasError?new jZ(r,e.error,"An error was suppressed during disposal."):r,e.hasError=!0}function n(){for(;e.stack.length;){var r=e.stack.pop();try{var i=r.dispose&&r.dispose.call(r.value);if(r.async)return Promise.resolve(i).then(n,function(a){return t(a),n()})}catch(a){t(a)}}if(e.hasError)throw e.error}return n()}var sS,uT,lT,qZ,jZ,VZ,iU=Yu(()=>{"use strict";m();T();N();sS=function(e,t){return sS=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(n[i]=r[i])},sS(e,t)};uT=function(){return uT=Object.assign||function(t){for(var n,r=1,i=arguments.length;r{"use strict";m();T();N()});var xp=F(Tr=>{"use strict";m();T();N();Object.defineProperty(Tr,"__esModule",{value:!0});Tr.assertSome=Tr.isSome=Tr.compareNodes=Tr.nodeToString=Tr.compareStrings=Tr.isValidPath=Tr.isDocumentString=Tr.asArray=void 0;var KZ=Se(),GZ=e=>Array.isArray(e)?e:e?[e]:[];Tr.asArray=GZ;var $Z=/\.[a-z0-9]+$/i;function QZ(e){if(typeof e!="string"||$Z.test(e))return!1;try{return(0,KZ.parse)(e),!0}catch(t){}return!1}Tr.isDocumentString=QZ;var YZ=/[‘“!%^<>`]/;function JZ(e){return typeof e=="string"&&!YZ.test(e)}Tr.isValidPath=JZ;function sU(e,t){return String(e)String(t)?1:0}Tr.compareStrings=sU;function uS(e){var n,r;let t;return"alias"in e&&(t=(n=e.alias)==null?void 0:n.value),t==null&&"name"in e&&(t=(r=e.name)==null?void 0:r.value),t==null&&(t=e.kind),t}Tr.nodeToString=uS;function HZ(e,t,n){let r=uS(e),i=uS(t);return typeof n=="function"?n(r,i):sU(r,i)}Tr.compareNodes=HZ;function zZ(e){return e!=null}Tr.isSome=zZ;function WZ(e,t="Value should be something"){if(e==null)throw new Error(t)}Tr.assertSome=WZ});var qp=F(pT=>{"use strict";m();T();N();Object.defineProperty(pT,"__esModule",{value:!0});pT.inspect=void 0;var cU=3;function XZ(e){return dT(e,[])}pT.inspect=XZ;function dT(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return ZZ(e,t);default:return String(e)}}function oU(e){return(e.name="GraphQLError")?e.toString():`${e.name}: ${e.message}; + ${e.stack}`}function ZZ(e,t){if(e===null)return"null";if(e instanceof Error)return e.name==="AggregateError"?oU(e)+` +`+uU(e.errors,t):oU(e);if(t.includes(e))return"[Circular]";let n=[...t,e];if(eee(e)){let r=e.toJSON();if(r!==e)return typeof r=="string"?r:dT(r,n)}else if(Array.isArray(e))return uU(e,n);return tee(e,n)}function eee(e){return typeof e.toJSON=="function"}function tee(e,t){let n=Object.entries(e);return n.length===0?"{}":t.length>cU?"["+nee(e)+"]":"{ "+n.map(([i,a])=>i+": "+dT(a,t)).join(", ")+" }"}function uU(e,t){if(e.length===0)return"[]";if(t.length>cU)return"[Array]";let n=e.length,r=[];for(let i=0;i{"use strict";m();T();N();Object.defineProperty(Ml,"__esModule",{value:!0});Ml.relocatedError=Ml.createGraphQLError=void 0;var cS=Se(),ree=["message","locations","path","nodes","source","positions","originalError","name","stack","extensions"];function iee(e){return e!=null&&typeof e=="object"&&Object.keys(e).every(t=>ree.includes(t))}function lS(e,t){return t!=null&&t.originalError&&!(t.originalError instanceof Error)&&iee(t.originalError)&&(t.originalError=lS(t.originalError.message,t.originalError)),cS.versionInfo.major>=17?new cS.GraphQLError(e,t):new cS.GraphQLError(e,t==null?void 0:t.nodes,t==null?void 0:t.source,t==null?void 0:t.positions,t==null?void 0:t.path,t==null?void 0:t.originalError,t==null?void 0:t.extensions)}Ml.createGraphQLError=lS;function aee(e,t){return lS(e.message,{nodes:e.nodes,source:e.source,positions:e.positions,path:t==null?e.path:t,originalError:e,extensions:e.extensions})}Ml.relocatedError=aee});var jp=F(Qi=>{"use strict";m();T();N();Object.defineProperty(Qi,"__esModule",{value:!0});Qi.hasOwnProperty=Qi.promiseReduce=Qi.isPromise=Qi.isObjectLike=Qi.isIterableObject=void 0;function see(e){return e!=null&&typeof e=="object"&&Symbol.iterator in e}Qi.isIterableObject=see;function oee(e){return typeof e=="object"&&e!==null}Qi.isObjectLike=oee;function lU(e){return(e==null?void 0:e.then)!=null}Qi.isPromise=lU;function uee(e,t,n){let r=n;for(let i of e)r=lU(r)?r.then(a=>t(a,i)):t(r,i);return r}Qi.promiseReduce=uee;function cee(e,t){return Object.prototype.hasOwnProperty.call(e,t)}Qi.hasOwnProperty=cee});var pS=F(NT=>{"use strict";m();T();N();Object.defineProperty(NT,"__esModule",{value:!0});NT.getArgumentValues=void 0;var dS=qp(),hc=Se(),mT=fT(),lee=jp();function dee(e,t,n={}){var o;let r={},a=((o=t.arguments)!=null?o:[]).reduce((c,l)=>$(M({},c),{[l.name.value]:l}),{});for(let{name:c,type:l,defaultValue:d}of e.args){let f=a[c];if(!f){if(d!==void 0)r[c]=d;else if((0,hc.isNonNullType)(l))throw(0,mT.createGraphQLError)(`Argument "${c}" of required type "${(0,dS.inspect)(l)}" was not provided.`,{nodes:[t]});continue}let y=f.value,I=y.kind===hc.Kind.NULL;if(y.kind===hc.Kind.VARIABLE){let w=y.name.value;if(n==null||!(0,lee.hasOwnProperty)(n,w)){if(d!==void 0)r[c]=d;else if((0,hc.isNonNullType)(l))throw(0,mT.createGraphQLError)(`Argument "${c}" of required type "${(0,dS.inspect)(l)}" was provided the variable "$${w}" which was not provided a runtime value.`,{nodes:[y]});continue}I=n[w]==null}if(I&&(0,hc.isNonNullType)(l))throw(0,mT.createGraphQLError)(`Argument "${c}" of non-null type "${(0,dS.inspect)(l)}" must not be null.`,{nodes:[y]});let v=(0,hc.valueFromAST)(y,l,n);if(v===void 0)throw(0,mT.createGraphQLError)(`Argument "${c}" has invalid value ${(0,hc.print)(y)}.`,{nodes:[y]});r[c]=v}return r}NT.getArgumentValues=dee});var fS=F(Qa=>{"use strict";m();T();N();Object.defineProperty(Qa,"__esModule",{value:!0});Qa.getDirective=Qa.getDirectives=Qa.getDirectiveInExtensions=Qa.getDirectivesInExtensions=void 0;var pU=pS();function fU(e,t=["directives"]){return t.reduce((n,r)=>n==null?n:n[r],e==null?void 0:e.extensions)}Qa.getDirectivesInExtensions=fU;function dU(e,t){let n=e.filter(r=>r.name===t);if(n.length)return n.map(r=>{var i;return(i=r.args)!=null?i:{}})}function mU(e,t,n=["directives"]){let r=n.reduce((a,o)=>a==null?a:a[o],e==null?void 0:e.extensions);if(r===void 0)return;if(Array.isArray(r))return dU(r,t);let i=[];for(let[a,o]of Object.entries(r))if(Array.isArray(o))for(let c of o)i.push({name:a,args:c});else i.push({name:a,args:o});return dU(i,t)}Qa.getDirectiveInExtensions=mU;function pee(e,t,n=["directives"]){let r=fU(t,n);if(r!=null&&r.length>0)return r;let a=(e&&e.getDirectives?e.getDirectives():[]).reduce((l,d)=>(l[d.name]=d,l),{}),o=[];t.astNode&&o.push(t.astNode),"extensionASTNodes"in t&&t.extensionASTNodes&&(o=[...o,...t.extensionASTNodes]);let c=[];for(let l of o)if(l.directives)for(let d of l.directives){let f=a[d.name.value];f&&c.push({name:d.name.value,args:(0,pU.getArgumentValues)(f,d)})}return c}Qa.getDirectives=pee;function fee(e,t,n,r=["directives"]){let i=mU(t,n,r);if(i!=null)return i;let a=e&&e.getDirective?e.getDirective(n):void 0;if(a==null)return;let o=[];t.astNode&&o.push(t.astNode),"extensionASTNodes"in t&&t.extensionASTNodes&&(o=[...o,...t.extensionASTNodes]);let c=[];for(let l of o)if(l.directives)for(let d of l.directives)d.name.value===n&&c.push((0,pU.getArgumentValues)(a,d));if(c.length)return c}Qa.getDirective=fee});var mS=F(TT=>{"use strict";m();T();N();Object.defineProperty(TT,"__esModule",{value:!0});TT.getFieldsWithDirectives=void 0;var mee=Se();function Nee(e,t={}){let n={},r=["ObjectTypeDefinition","ObjectTypeExtension"];t.includeInputTypes&&(r=[...r,"InputObjectTypeDefinition","InputObjectTypeExtension"]);let i=e.definitions.filter(a=>r.includes(a.kind));for(let a of i){let o=a.name.value;if(a.fields!=null){for(let c of a.fields)if(c.directives&&c.directives.length>0){let l=c.name.value,d=`${o}.${l}`,f=c.directives.map(y=>({name:y.name.value,args:(y.arguments||[]).reduce((I,v)=>$(M({},I),{[v.name.value]:(0,mee.valueFromASTUntyped)(v.value)}),{})}));n[d]=f}}}return n}TT.getFieldsWithDirectives=Nee});var NU=F(ET=>{"use strict";m();T();N();Object.defineProperty(ET,"__esModule",{value:!0});ET.getArgumentsWithDirectives=void 0;var NS=Se();function Tee(e){return e.kind===NS.Kind.OBJECT_TYPE_DEFINITION||e.kind===NS.Kind.OBJECT_TYPE_EXTENSION}function Eee(e){var r;let t={},n=e.definitions.filter(Tee);for(let i of n)if(i.fields!=null)for(let a of i.fields){let o=(r=a.arguments)==null?void 0:r.filter(l=>{var d;return(d=l.directives)==null?void 0:d.length});if(!(o!=null&&o.length))continue;let c=t[`${i.name.value}.${a.name.value}`]={};for(let l of o){let d=l.directives.map(f=>({name:f.name.value,args:(f.arguments||[]).reduce((y,I)=>$(M({},y),{[I.name.value]:(0,NS.valueFromASTUntyped)(I.value)}),{})}));c[l.name.value]=d}}return t}ET.getArgumentsWithDirectives=Eee});var TS=F(hT=>{"use strict";m();T();N();Object.defineProperty(hT,"__esModule",{value:!0});hT.getImplementingTypes=void 0;var hee=Se();function yee(e,t){let n=t.getTypeMap(),r=[];for(let i in n){let a=n[i];(0,hee.isObjectType)(a)&&a.getInterfaces().find(c=>c.name===e)&&r.push(a.name)}return r}hT.getImplementingTypes=yee});var hS=F(yT=>{"use strict";m();T();N();Object.defineProperty(yT,"__esModule",{value:!0});yT.astFromType=void 0;var Iee=qp(),yc=Se();function ES(e){if((0,yc.isNonNullType)(e)){let t=ES(e.ofType);if(t.kind===yc.Kind.NON_NULL_TYPE)throw new Error(`Invalid type node ${(0,Iee.inspect)(e)}. Inner type of non-null type cannot be a non-null type.`);return{kind:yc.Kind.NON_NULL_TYPE,type:t}}else if((0,yc.isListType)(e))return{kind:yc.Kind.LIST_TYPE,type:ES(e.ofType)};return{kind:yc.Kind.NAMED_TYPE,name:{kind:yc.Kind.NAME,value:e.name}}}yT.astFromType=ES});var gT=F(IT=>{"use strict";m();T();N();Object.defineProperty(IT,"__esModule",{value:!0});IT.astFromValueUntyped=void 0;var Ya=Se();function yS(e){if(e===null)return{kind:Ya.Kind.NULL};if(e===void 0)return null;if(Array.isArray(e)){let t=[];for(let n of e){let r=yS(n);r!=null&&t.push(r)}return{kind:Ya.Kind.LIST,values:t}}if(typeof e=="object"){let t=[];for(let n in e){let r=e[n],i=yS(r);i&&t.push({kind:Ya.Kind.OBJECT_FIELD,name:{kind:Ya.Kind.NAME,value:n},value:i})}return{kind:Ya.Kind.OBJECT,fields:t}}if(typeof e=="boolean")return{kind:Ya.Kind.BOOLEAN,value:e};if(typeof e=="bigint")return{kind:Ya.Kind.INT,value:String(e)};if(typeof e=="number"&&isFinite(e)){let t=String(e);return gee.test(t)?{kind:Ya.Kind.INT,value:t}:{kind:Ya.Kind.FLOAT,value:t}}if(typeof e=="string")return{kind:Ya.Kind.STRING,value:e};throw new TypeError(`Cannot convert value to AST: ${e}.`)}IT.astFromValueUntyped=yS;var gee=/^-?(?:0|[1-9][0-9]*)$/});var EU=F(_T=>{"use strict";m();T();N();Object.defineProperty(_T,"__esModule",{value:!0});_T.astFromValue=void 0;var _ee=qp(),yi=Se(),vee=gT(),TU=jp();function Vp(e,t){if((0,yi.isNonNullType)(t)){let n=Vp(e,t.ofType);return(n==null?void 0:n.kind)===yi.Kind.NULL?null:n}if(e===null)return{kind:yi.Kind.NULL};if(e===void 0)return null;if((0,yi.isListType)(t)){let n=t.ofType;if((0,TU.isIterableObject)(e)){let r=[];for(let i of e){let a=Vp(i,n);a!=null&&r.push(a)}return{kind:yi.Kind.LIST,values:r}}return Vp(e,n)}if((0,yi.isInputObjectType)(t)){if(!(0,TU.isObjectLike)(e))return null;let n=[];for(let r of Object.values(t.getFields())){let i=Vp(e[r.name],r.type);i&&n.push({kind:yi.Kind.OBJECT_FIELD,name:{kind:yi.Kind.NAME,value:r.name},value:i})}return{kind:yi.Kind.OBJECT,fields:n}}if((0,yi.isLeafType)(t)){let n=t.serialize(e);return n==null?null:(0,yi.isEnumType)(t)?{kind:yi.Kind.ENUM,value:n}:t.name==="ID"&&typeof n=="string"&&See.test(n)?{kind:yi.Kind.INT,value:n}:(0,vee.astFromValueUntyped)(n)}console.assert(!1,"Unexpected input type: "+(0,_ee.inspect)(t))}_T.astFromValue=Vp;var See=/^-?(?:0|[1-9][0-9]*)$/});var hU=F(vT=>{"use strict";m();T();N();Object.defineProperty(vT,"__esModule",{value:!0});vT.getDescriptionNode=void 0;var Oee=Se();function Dee(e){var t;if((t=e.astNode)!=null&&t.description)return $(M({},e.astNode.description),{block:!0});if(e.description)return{kind:Oee.Kind.STRING,value:e.description,block:!0}}vT.getDescriptionNode=Dee});var xl=F(Cr=>{"use strict";m();T();N();Object.defineProperty(Cr,"__esModule",{value:!0});Cr.memoize2of5=Cr.memoize2of4=Cr.memoize5=Cr.memoize4=Cr.memoize3=Cr.memoize2=Cr.memoize1=void 0;function bee(e){let t=new WeakMap;return function(r){let i=t.get(r);if(i===void 0){let a=e(r);return t.set(r,a),a}return i}}Cr.memoize1=bee;function Aee(e){let t=new WeakMap;return function(r,i){let a=t.get(r);if(!a){a=new WeakMap,t.set(r,a);let c=e(r,i);return a.set(i,c),c}let o=a.get(i);if(o===void 0){let c=e(r,i);return a.set(i,c),c}return o}}Cr.memoize2=Aee;function Ree(e){let t=new WeakMap;return function(r,i,a){let o=t.get(r);if(!o){o=new WeakMap,t.set(r,o);let d=new WeakMap;o.set(i,d);let f=e(r,i,a);return d.set(a,f),f}let c=o.get(i);if(!c){c=new WeakMap,o.set(i,c);let d=e(r,i,a);return c.set(a,d),d}let l=c.get(a);if(l===void 0){let d=e(r,i,a);return c.set(a,d),d}return l}}Cr.memoize3=Ree;function Pee(e){let t=new WeakMap;return function(r,i,a,o){let c=t.get(r);if(!c){c=new WeakMap,t.set(r,c);let y=new WeakMap;c.set(i,y);let I=new WeakMap;y.set(a,I);let v=e(r,i,a,o);return I.set(o,v),v}let l=c.get(i);if(!l){l=new WeakMap,c.set(i,l);let y=new WeakMap;l.set(a,y);let I=e(r,i,a,o);return y.set(o,I),I}let d=l.get(a);if(!d){let y=new WeakMap;l.set(a,y);let I=e(r,i,a,o);return y.set(o,I),I}let f=d.get(o);if(f===void 0){let y=e(r,i,a,o);return d.set(o,y),y}return f}}Cr.memoize4=Pee;function Fee(e){let t=new WeakMap;return function(r,i,a,o,c){let l=t.get(r);if(!l){l=new WeakMap,t.set(r,l);let v=new WeakMap;l.set(i,v);let w=new WeakMap;v.set(a,w);let U=new WeakMap;w.set(o,U);let V=e(r,i,a,o,c);return U.set(c,V),V}let d=l.get(i);if(!d){d=new WeakMap,l.set(i,d);let v=new WeakMap;d.set(a,v);let w=new WeakMap;v.set(o,w);let U=e(r,i,a,o,c);return w.set(c,U),U}let f=d.get(a);if(!f){f=new WeakMap,d.set(a,f);let v=new WeakMap;f.set(o,v);let w=e(r,i,a,o,c);return v.set(c,w),w}let y=f.get(o);if(!y){y=new WeakMap,f.set(o,y);let v=e(r,i,a,o,c);return y.set(c,v),v}let I=y.get(c);if(I===void 0){let v=e(r,i,a,o,c);return y.set(c,v),v}return I}}Cr.memoize5=Fee;function wee(e){let t=new WeakMap;return function(r,i,a,o){let c=t.get(r);if(!c){c=new WeakMap,t.set(r,c);let d=e(r,i,a,o);return c.set(i,d),d}let l=c.get(i);if(l===void 0){let d=e(r,i,a,o);return c.set(i,d),d}return l}}Cr.memoize2of4=wee;function Lee(e){let t=new WeakMap;return function(r,i,a,o,c){let l=t.get(r);if(!l){l=new WeakMap,t.set(r,l);let f=e(r,i,a,o,c);return l.set(i,f),f}let d=l.get(i);if(d===void 0){let f=e(r,i,a,o,c);return l.set(i,f),f}return d}}Cr.memoize2of5=Lee});var Kp=F(Ii=>{"use strict";m();T();N();Object.defineProperty(Ii,"__esModule",{value:!0});Ii.getRootTypeMap=Ii.getRootTypes=Ii.getRootTypeNames=Ii.getDefinedRootType=void 0;var Cee=fT(),IS=xl();function Bee(e,t,n){let i=(0,Ii.getRootTypeMap)(e).get(t);if(i==null)throw(0,Cee.createGraphQLError)(`Schema is not configured to execute ${t} operation.`,{nodes:n});return i}Ii.getDefinedRootType=Bee;Ii.getRootTypeNames=(0,IS.memoize1)(function(t){let n=(0,Ii.getRootTypes)(t);return new Set([...n].map(r=>r.name))});Ii.getRootTypes=(0,IS.memoize1)(function(t){let n=(0,Ii.getRootTypeMap)(t);return new Set(n.values())});Ii.getRootTypeMap=(0,IS.memoize1)(function(t){let n=new Map,r=t.getQueryType();r&&n.set("query",r);let i=t.getMutationType();i&&n.set("mutation",i);let a=t.getSubscriptionType();return a&&n.set("subscription",a),n})});var OS=F(It=>{"use strict";m();T();N();Object.defineProperty(It,"__esModule",{value:!0});It.makeDirectiveNodes=It.makeDirectiveNode=It.makeDeprecatedDirective=It.astFromEnumValue=It.astFromInputField=It.astFromField=It.astFromScalarType=It.astFromEnumType=It.astFromInputObjectType=It.astFromUnionType=It.astFromInterfaceType=It.astFromObjectType=It.astFromArg=It.getDeprecatableDirectiveNodes=It.getDirectiveNodes=It.astFromDirective=It.astFromSchema=It.printSchemaWithDirectives=It.getDocumentNodeFromSchema=void 0;var dt=Se(),Ic=hS(),gS=EU(),Uee=gT(),Yi=hU(),_S=fS(),kee=xp(),Mee=Kp();function yU(e,t={}){let n=t.pathToDirectivesInExtensions,r=e.getTypeMap(),i=IU(e,n),a=i!=null?[i]:[],o=e.getDirectives();for(let c of o)(0,dt.isSpecifiedDirective)(c)||a.push(gU(c,e,n));for(let c in r){let l=r[c],d=(0,dt.isSpecifiedScalarType)(l),f=(0,dt.isIntrospectionType)(l);if(!(d||f))if((0,dt.isObjectType)(l))a.push(_U(l,e,n));else if((0,dt.isInterfaceType)(l))a.push(vU(l,e,n));else if((0,dt.isUnionType)(l))a.push(SU(l,e,n));else if((0,dt.isInputObjectType)(l))a.push(OU(l,e,n));else if((0,dt.isEnumType)(l))a.push(DU(l,e,n));else if((0,dt.isScalarType)(l))a.push(bU(l,e,n));else throw new Error(`Unknown type ${l}.`)}return{kind:dt.Kind.DOCUMENT,definitions:a}}It.getDocumentNodeFromSchema=yU;function xee(e,t={}){let n=yU(e,t);return(0,dt.print)(n)}It.printSchemaWithDirectives=xee;function IU(e,t){let n=new Map([["query",void 0],["mutation",void 0],["subscription",void 0]]),r=[];if(e.astNode!=null&&r.push(e.astNode),e.extensionASTNodes!=null)for(let d of e.extensionASTNodes)r.push(d);for(let d of r)if(d.operationTypes)for(let f of d.operationTypes)n.set(f.operation,f);let i=(0,Mee.getRootTypeMap)(e);for(let[d,f]of n){let y=i.get(d);if(y!=null){let I=(0,Ic.astFromType)(y);f!=null?f.type=I:n.set(d,{kind:dt.Kind.OPERATION_TYPE_DEFINITION,operation:d,type:I})}}let a=[...n.values()].filter(kee.isSome),o=gc(e,e,t);if(!a.length&&!o.length)return null;let c={kind:a!=null?dt.Kind.SCHEMA_DEFINITION:dt.Kind.SCHEMA_EXTENSION,operationTypes:a,directives:o},l=(0,Yi.getDescriptionNode)(e);return l&&(c.description=l),c}It.astFromSchema=IU;function gU(e,t,n){var r,i;return{kind:dt.Kind.DIRECTIVE_DEFINITION,description:(0,Yi.getDescriptionNode)(e),name:{kind:dt.Kind.NAME,value:e.name},arguments:(r=e.args)==null?void 0:r.map(a=>vS(a,t,n)),repeatable:e.isRepeatable,locations:((i=e.locations)==null?void 0:i.map(a=>({kind:dt.Kind.NAME,value:a})))||[]}}It.astFromDirective=gU;function gc(e,t,n){let r=(0,_S.getDirectivesInExtensions)(e,n),i=[];e.astNode!=null&&i.push(e.astNode),"extensionASTNodes"in e&&e.extensionASTNodes!=null&&(i=i.concat(e.extensionASTNodes));let a;if(r!=null)a=ST(t,r);else{a=[];for(let o of i)o.directives&&a.push(...o.directives)}return a}It.getDirectiveNodes=gc;function $p(e,t,n){var c,l;let r=[],i=null,a=(0,_S.getDirectivesInExtensions)(e,n),o;return a!=null?o=ST(t,a):o=(c=e.astNode)==null?void 0:c.directives,o!=null&&(r=o.filter(d=>d.name.value!=="deprecated"),e.deprecationReason!=null&&(i=(l=o.filter(d=>d.name.value==="deprecated"))==null?void 0:l[0])),e.deprecationReason!=null&&i==null&&(i=PU(e.deprecationReason)),i==null?r:[i].concat(r)}It.getDeprecatableDirectiveNodes=$p;function vS(e,t,n){var r;return{kind:dt.Kind.INPUT_VALUE_DEFINITION,description:(0,Yi.getDescriptionNode)(e),name:{kind:dt.Kind.NAME,value:e.name},type:(0,Ic.astFromType)(e.type),defaultValue:e.defaultValue!==void 0&&(r=(0,gS.astFromValue)(e.defaultValue,e.type))!=null?r:void 0,directives:$p(e,t,n)}}It.astFromArg=vS;function _U(e,t,n){return{kind:dt.Kind.OBJECT_TYPE_DEFINITION,description:(0,Yi.getDescriptionNode)(e),name:{kind:dt.Kind.NAME,value:e.name},fields:Object.values(e.getFields()).map(r=>SS(r,t,n)),interfaces:Object.values(e.getInterfaces()).map(r=>(0,Ic.astFromType)(r)),directives:gc(e,t,n)}}It.astFromObjectType=_U;function vU(e,t,n){let r={kind:dt.Kind.INTERFACE_TYPE_DEFINITION,description:(0,Yi.getDescriptionNode)(e),name:{kind:dt.Kind.NAME,value:e.name},fields:Object.values(e.getFields()).map(i=>SS(i,t,n)),directives:gc(e,t,n)};return"getInterfaces"in e&&(r.interfaces=Object.values(e.getInterfaces()).map(i=>(0,Ic.astFromType)(i))),r}It.astFromInterfaceType=vU;function SU(e,t,n){return{kind:dt.Kind.UNION_TYPE_DEFINITION,description:(0,Yi.getDescriptionNode)(e),name:{kind:dt.Kind.NAME,value:e.name},directives:gc(e,t,n),types:e.getTypes().map(r=>(0,Ic.astFromType)(r))}}It.astFromUnionType=SU;function OU(e,t,n){return{kind:dt.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:(0,Yi.getDescriptionNode)(e),name:{kind:dt.Kind.NAME,value:e.name},fields:Object.values(e.getFields()).map(r=>AU(r,t,n)),directives:gc(e,t,n)}}It.astFromInputObjectType=OU;function DU(e,t,n){return{kind:dt.Kind.ENUM_TYPE_DEFINITION,description:(0,Yi.getDescriptionNode)(e),name:{kind:dt.Kind.NAME,value:e.name},values:Object.values(e.getValues()).map(r=>RU(r,t,n)),directives:gc(e,t,n)}}It.astFromEnumType=DU;function bU(e,t,n){var o;let r=(0,_S.getDirectivesInExtensions)(e,n),i=r?ST(t,r):((o=e.astNode)==null?void 0:o.directives)||[],a=e.specifiedByUrl||e.specifiedByURL;if(a&&!i.some(c=>c.name.value==="specifiedBy")){let c={url:a};i.push(Gp("specifiedBy",c))}return{kind:dt.Kind.SCALAR_TYPE_DEFINITION,description:(0,Yi.getDescriptionNode)(e),name:{kind:dt.Kind.NAME,value:e.name},directives:i}}It.astFromScalarType=bU;function SS(e,t,n){return{kind:dt.Kind.FIELD_DEFINITION,description:(0,Yi.getDescriptionNode)(e),name:{kind:dt.Kind.NAME,value:e.name},arguments:e.args.map(r=>vS(r,t,n)),type:(0,Ic.astFromType)(e.type),directives:$p(e,t,n)}}It.astFromField=SS;function AU(e,t,n){var r;return{kind:dt.Kind.INPUT_VALUE_DEFINITION,description:(0,Yi.getDescriptionNode)(e),name:{kind:dt.Kind.NAME,value:e.name},type:(0,Ic.astFromType)(e.type),directives:$p(e,t,n),defaultValue:(r=(0,gS.astFromValue)(e.defaultValue,e.type))!=null?r:void 0}}It.astFromInputField=AU;function RU(e,t,n){return{kind:dt.Kind.ENUM_VALUE_DEFINITION,description:(0,Yi.getDescriptionNode)(e),name:{kind:dt.Kind.NAME,value:e.name},directives:$p(e,t,n)}}It.astFromEnumValue=RU;function PU(e){return Gp("deprecated",{reason:e},dt.GraphQLDeprecatedDirective)}It.makeDeprecatedDirective=PU;function Gp(e,t,n){let r=[];if(n!=null)for(let i of n.args){let a=i.name,o=t[a];if(o!==void 0){let c=(0,gS.astFromValue)(o,i.type);c&&r.push({kind:dt.Kind.ARGUMENT,name:{kind:dt.Kind.NAME,value:a},value:c})}}else for(let i in t){let a=t[i],o=(0,Uee.astFromValueUntyped)(a);o&&r.push({kind:dt.Kind.ARGUMENT,name:{kind:dt.Kind.NAME,value:i},value:o})}return{kind:dt.Kind.DIRECTIVE,name:{kind:dt.Kind.NAME,value:e},arguments:r}}It.makeDirectiveNode=Gp;function ST(e,t){let n=[];for(let r in t){let i=t[r],a=e==null?void 0:e.getDirective(r);if(Array.isArray(i))for(let o of i)n.push(Gp(r,o,a));else n.push(Gp(r,i,a))}return n}It.makeDirectiveNodes=ST});var wU=F(ql=>{"use strict";m();T();N();Object.defineProperty(ql,"__esModule",{value:!0});ql.createDefaultRules=ql.validateGraphQlDocuments=void 0;var Qp=Se();function qee(e,t,n=FU()){var c;let r=new Set,i=new Map;for(let l of t)for(let d of l.definitions)d.kind===Qp.Kind.FRAGMENT_DEFINITION?i.set(d.name.value,d):r.add(d);let a={kind:Qp.Kind.DOCUMENT,definitions:Array.from([...r,...i.values()])},o=(0,Qp.validate)(e,a,n);for(let l of o)if(l.stack=l.message,l.locations)for(let d of l.locations)l.stack+=` + at ${(c=l.source)==null?void 0:c.name}:${d.line}:${d.column}`;return o}ql.validateGraphQlDocuments=qee;function FU(){let e=["NoUnusedFragmentsRule","NoUnusedVariablesRule","KnownDirectivesRule"];return Qp.versionInfo.major<15&&(e=e.map(t=>t.replace(/Rule$/,""))),Qp.specifiedRules.filter(t=>!e.includes(t.name))}ql.createDefaultRules=FU});var LU=F(OT=>{"use strict";m();T();N();Object.defineProperty(OT,"__esModule",{value:!0});OT.parseGraphQLJSON=void 0;var jee=Se();function Vee(e){return e=e.toString(),e.charCodeAt(0)===65279&&(e=e.slice(1)),e}function Kee(e){return JSON.parse(Vee(e))}function Gee(e,t,n){let r=Kee(t);if(r.data&&(r=r.data),r.kind==="Document")return{location:e,document:r};if(r.__schema){let i=(0,jee.buildClientSchema)(r,n);return{location:e,schema:i}}else if(typeof r=="string")return{location:e,rawSDL:r};throw new Error("Not valid JSON content")}OT.parseGraphQLJSON=Gee});var bS=F(Mn=>{"use strict";m();T();N();Object.defineProperty(Mn,"__esModule",{value:!0});Mn.getBlockStringIndentation=Mn.dedentBlockStringValue=Mn.getLeadingCommentBlock=Mn.getComment=Mn.getDescription=Mn.printWithComments=Mn.printComment=Mn.pushComment=Mn.collectComment=Mn.resetComments=void 0;var kU=Se(),$ee=80,jl={};function Qee(){jl={}}Mn.resetComments=Qee;function Yee(e){var n;let t=(n=e.name)==null?void 0:n.value;if(t!=null)switch(Yp(e,t),e.kind){case"EnumTypeDefinition":if(e.values)for(let r of e.values)Yp(r,t,r.name.value);break;case"ObjectTypeDefinition":case"InputObjectTypeDefinition":case"InterfaceTypeDefinition":if(e.fields){for(let r of e.fields)if(Yp(r,t,r.name.value),Xee(r)&&r.arguments)for(let i of r.arguments)Yp(i,t,r.name.value,i.name.value)}break}}Mn.collectComment=Yee;function Yp(e,t,n,r){let i=DS(e);if(typeof i!="string"||i.length===0)return;let a=[t];n&&(a.push(n),r&&a.push(r));let o=a.join(".");jl[o]||(jl[o]=[]),jl[o].push(i)}Mn.pushComment=Yp;function MU(e){return` # `+e.replace(/\n/g,` -# `)}Bn.printComment=EU;function Me(e,t){return e?e.filter(n=>n).join(t||""):""}function pU(e){var t;return(t=e==null?void 0:e.some(n=>n.includes(` -`)))!=null?t:!1}function vee(e){return(t,n,r,i,a)=>{var p;let o=[],c=i.reduce((y,I)=>(["fields","arguments","values"].includes(I)&&y.name&&o.push(y.name.value),y[I]),a[0]),l=[...o,(p=c==null?void 0:c.name)==null?void 0:p.value].filter(Boolean).join("."),d=[];return t.kind.includes("Definition")&&Pl[l]&&d.push(...Pl[l]),Me([...d.map(EU),t.description,e(t,n,r,i,a)],` -`)}}function Uf(e){return e&&` ${e.replace(/\n/g,` - `)}`}function ca(e){return e&&e.length!==0?`{ -${Uf(Me(e,` +# `)}Mn.printComment=MU;function ke(e,t){return e?e.filter(n=>n).join(t||""):""}function CU(e){var t;return(t=e==null?void 0:e.some(n=>n.includes(` +`)))!=null?t:!1}function Jee(e){return(t,n,r,i,a)=>{var f;let o=[],c=i.reduce((y,I)=>(["fields","arguments","values"].includes(I)&&y.name&&o.push(y.name.value),y[I]),a[0]),l=[...o,(f=c==null?void 0:c.name)==null?void 0:f.value].filter(Boolean).join("."),d=[];return t.kind.includes("Definition")&&jl[l]&&d.push(...jl[l]),ke([...d.map(MU),t.description,e(t,n,r,i,a)],` +`)}}function Jp(e){return e&&` ${e.replace(/\n/g,` + `)}`}function Ea(e){return e&&e.length!==0?`{ +${Jp(ke(e,` `))} -}`:""}function On(e,t,n){return t?e+t+(n||""):""}function See(e,t=!1){let n=e.replace(/"""/g,'\\"""');return(e[0]===" "||e[0]===" ")&&e.indexOf(` +}`:""}function An(e,t,n){return t?e+t+(n||""):""}function Hee(e,t=!1){let n=e.replace(/"""/g,'\\"""');return(e[0]===" "||e[0]===" ")&&e.indexOf(` `)===-1?`"""${n.replace(/"$/,`" `)}"""`:`""" -${t?n:Uf(n)} -"""`}var mU={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>Me(e.definitions,` +${t?n:Jp(n)} +"""`}var BU={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>ke(e.definitions,` -`)},OperationDefinition:{leave:e=>{let t=On("(",Me(e.variableDefinitions,", "),")");return Me([e.operation,Me([e.name,t]),Me(e.directives," ")]," ")+" "+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:n,directives:r})=>e+": "+t+On(" = ",n)+On(" ",Me(r," "))},SelectionSet:{leave:({selections:e})=>ca(e)},Field:{leave({alias:e,name:t,arguments:n,directives:r,selectionSet:i}){let a=On("",e,": ")+t,o=a+On("(",Me(n,", "),")");return o.length>Iee&&(o=a+On(`( -`,Uf(Me(n,` +`)},OperationDefinition:{leave:e=>{let t=An("(",ke(e.variableDefinitions,", "),")");return ke([e.operation,ke([e.name,t]),ke(e.directives," ")]," ")+" "+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:n,directives:r})=>e+": "+t+An(" = ",n)+An(" ",ke(r," "))},SelectionSet:{leave:({selections:e})=>Ea(e)},Field:{leave({alias:e,name:t,arguments:n,directives:r,selectionSet:i}){let a=An("",e,": ")+t,o=a+An("(",ke(n,", "),")");return o.length>$ee&&(o=a+An(`( +`,Jp(ke(n,` `)),` -)`)),Me([o,Me(r," "),i]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+On(" ",Me(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:n})=>Me(["...",On("on ",e),Me(t," "),n]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:n,directives:r,selectionSet:i})=>`fragment ${e}${On("(",Me(n,", "),")")} on ${t} ${On("",Me(r," ")," ")}`+i},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?See(e):JSON.stringify(e)},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+Me(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+Me(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+On("(",Me(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({directives:e,operationTypes:t})=>Me(["schema",Me(e," "),ca(t)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({name:e,directives:t})=>Me(["scalar",e,Me(t," ")]," ")},ObjectTypeDefinition:{leave:({name:e,interfaces:t,directives:n,fields:r})=>Me(["type",e,On("implements ",Me(t," & ")),Me(n," "),ca(r)]," ")},FieldDefinition:{leave:({name:e,arguments:t,type:n,directives:r})=>e+(pU(t)?On(`( -`,Uf(Me(t,` +)`)),ke([o,ke(r," "),i]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+An(" ",ke(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:n})=>ke(["...",An("on ",e),ke(t," "),n]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:n,directives:r,selectionSet:i})=>`fragment ${e}${An("(",ke(n,", "),")")} on ${t} ${An("",ke(r," ")," ")}`+i},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?Hee(e):JSON.stringify(e)},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+ke(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+ke(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+An("(",ke(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({directives:e,operationTypes:t})=>ke(["schema",ke(e," "),Ea(t)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({name:e,directives:t})=>ke(["scalar",e,ke(t," ")]," ")},ObjectTypeDefinition:{leave:({name:e,interfaces:t,directives:n,fields:r})=>ke(["type",e,An("implements ",ke(t," & ")),ke(n," "),Ea(r)]," ")},FieldDefinition:{leave:({name:e,arguments:t,type:n,directives:r})=>e+(CU(t)?An(`( +`,Jp(ke(t,` `)),` -)`):On("(",Me(t,", "),")"))+": "+n+On(" ",Me(r," "))},InputValueDefinition:{leave:({name:e,type:t,defaultValue:n,directives:r})=>Me([e+": "+t,On("= ",n),Me(r," ")]," ")},InterfaceTypeDefinition:{leave:({name:e,interfaces:t,directives:n,fields:r})=>Me(["interface",e,On("implements ",Me(t," & ")),Me(n," "),ca(r)]," ")},UnionTypeDefinition:{leave:({name:e,directives:t,types:n})=>Me(["union",e,Me(t," "),On("= ",Me(n," | "))]," ")},EnumTypeDefinition:{leave:({name:e,directives:t,values:n})=>Me(["enum",e,Me(t," "),ca(n)]," ")},EnumValueDefinition:{leave:({name:e,directives:t})=>Me([e,Me(t," ")]," ")},InputObjectTypeDefinition:{leave:({name:e,directives:t,fields:n})=>Me(["input",e,Me(t," "),ca(n)]," ")},DirectiveDefinition:{leave:({name:e,arguments:t,repeatable:n,locations:r})=>"directive @"+e+(pU(t)?On(`( -`,Uf(Me(t,` +)`):An("(",ke(t,", "),")"))+": "+n+An(" ",ke(r," "))},InputValueDefinition:{leave:({name:e,type:t,defaultValue:n,directives:r})=>ke([e+": "+t,An("= ",n),ke(r," ")]," ")},InterfaceTypeDefinition:{leave:({name:e,interfaces:t,directives:n,fields:r})=>ke(["interface",e,An("implements ",ke(t," & ")),ke(n," "),Ea(r)]," ")},UnionTypeDefinition:{leave:({name:e,directives:t,types:n})=>ke(["union",e,ke(t," "),An("= ",ke(n," | "))]," ")},EnumTypeDefinition:{leave:({name:e,directives:t,values:n})=>ke(["enum",e,ke(t," "),Ea(n)]," ")},EnumValueDefinition:{leave:({name:e,directives:t})=>ke([e,ke(t," ")]," ")},InputObjectTypeDefinition:{leave:({name:e,directives:t,fields:n})=>ke(["input",e,ke(t," "),Ea(n)]," ")},DirectiveDefinition:{leave:({name:e,arguments:t,repeatable:n,locations:r})=>"directive @"+e+(CU(t)?An(`( +`,Jp(ke(t,` `)),` -)`):On("(",Me(t,", "),")"))+(n?" repeatable":"")+" on "+Me(r," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>Me(["extend schema",Me(e," "),ca(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>Me(["extend scalar",e,Me(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>Me(["extend type",e,On("implements ",Me(t," & ")),Me(n," "),ca(r)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>Me(["extend interface",e,On("implements ",Me(t," & ")),Me(n," "),ca(r)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:n})=>Me(["extend union",e,Me(t," "),On("= ",Me(n," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:n})=>Me(["extend enum",e,Me(t," "),ca(n)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:n})=>Me(["extend input",e,Me(t," "),ca(n)]," ")}},Oee=Object.keys(mU).reduce((e,t)=>Q(x({},e),{[t]:{leave:vee(mU[t].leave)}}),{});function Dee(e){return(0,TU.visit)(e,Oee)}Bn.printWithComments=Dee;function bee(e){return e.kind==="FieldDefinition"}function Aee(e,t){if(e.description!=null)return e.description.value;if(t!=null&&t.commentDescriptions)return sS(e)}Bn.getDescription=Aee;function sS(e){let t=hU(e);if(t!==void 0)return yU(` -${t}`)}Bn.getComment=sS;function hU(e){let t=e.loc;if(!t)return;let n=[],r=t.startToken.prev;for(;r!=null&&r.kind===TU.TokenKind.COMMENT&&r.next!=null&&r.prev!=null&&r.line+1===r.next.line&&r.line!==r.prev.line;){let i=String(r.value);n.push(i),r=r.prev}return n.length>0?n.reverse().join(` -`):void 0}Bn.getLeadingCommentBlock=hU;function yU(e){let t=e.split(/\r\n|[\n\r]/g),n=IU(t);if(n!==0)for(let r=1;r0&&NU(t[0]);)t.shift();for(;t.length>0&&NU(t[t.length-1]);)t.pop();return t.join(` -`)}Bn.dedentBlockStringValue=yU;function IU(e){let t=null;for(let n=1;n{"use strict";m();T();N();Object.defineProperty(fu,"__esModule",{value:!0});fu.isDescribable=fu.transformCommentsToDescriptions=fu.parseGraphQLSDL=void 0;var Vi=De(),_U=oS();function Ree(e,t,n={}){let r;try{n.commentDescriptions&&t.includes("#")?(r=vU(t,n),n.noLocation&&(r=(0,Vi.parse)((0,Vi.print)(r),n))):r=(0,Vi.parse)(new Vi.Source(t,e),n)}catch(i){if(i.message.includes("EOF")&&t.replace(/(\#[^*]*)/g,"").trim()==="")r={kind:Vi.Kind.DOCUMENT,definitions:[]};else throw i}return{location:e,document:r}}fu.parseGraphQLSDL=Ree;function vU(e,t={}){let n=(0,Vi.parse)(e,Q(x({},t),{noLocation:!1}));return(0,Vi.visit)(n,{leave:i=>{if(SU(i)){let a=(0,_U.getLeadingCommentBlock)(i);if(a!==void 0){let o=(0,_U.dedentBlockStringValue)(` +)`):An("(",ke(t,", "),")"))+(n?" repeatable":"")+" on "+ke(r," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>ke(["extend schema",ke(e," "),Ea(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>ke(["extend scalar",e,ke(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>ke(["extend type",e,An("implements ",ke(t," & ")),ke(n," "),Ea(r)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>ke(["extend interface",e,An("implements ",ke(t," & ")),ke(n," "),Ea(r)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:n})=>ke(["extend union",e,ke(t," "),An("= ",ke(n," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:n})=>ke(["extend enum",e,ke(t," "),Ea(n)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:n})=>ke(["extend input",e,ke(t," "),Ea(n)]," ")}},zee=Object.keys(BU).reduce((e,t)=>$(M({},e),{[t]:{leave:Jee(BU[t].leave)}}),{});function Wee(e){return(0,kU.visit)(e,zee)}Mn.printWithComments=Wee;function Xee(e){return e.kind==="FieldDefinition"}function Zee(e,t){if(e.description!=null)return e.description.value;if(t!=null&&t.commentDescriptions)return DS(e)}Mn.getDescription=Zee;function DS(e){let t=xU(e);if(t!==void 0)return qU(` +${t}`)}Mn.getComment=DS;function xU(e){let t=e.loc;if(!t)return;let n=[],r=t.startToken.prev;for(;r!=null&&r.kind===kU.TokenKind.COMMENT&&r.next!=null&&r.prev!=null&&r.line+1===r.next.line&&r.line!==r.prev.line;){let i=String(r.value);n.push(i),r=r.prev}return n.length>0?n.reverse().join(` +`):void 0}Mn.getLeadingCommentBlock=xU;function qU(e){let t=e.split(/\r\n|[\n\r]/g),n=jU(t);if(n!==0)for(let r=1;r0&&UU(t[0]);)t.shift();for(;t.length>0&&UU(t[t.length-1]);)t.pop();return t.join(` +`)}Mn.dedentBlockStringValue=qU;function jU(e){let t=null;for(let n=1;n{"use strict";m();T();N();Object.defineProperty(gu,"__esModule",{value:!0});gu.isDescribable=gu.transformCommentsToDescriptions=gu.parseGraphQLSDL=void 0;var Ji=Se(),KU=bS();function ete(e,t,n={}){let r;try{n.commentDescriptions&&t.includes("#")?(r=GU(t,n),n.noLocation&&(r=(0,Ji.parse)((0,Ji.print)(r),n))):r=(0,Ji.parse)(new Ji.Source(t,e),n)}catch(i){if(i.message.includes("EOF")&&t.replace(/(\#[^*]*)/g,"").trim()==="")r={kind:Ji.Kind.DOCUMENT,definitions:[]};else throw i}return{location:e,document:r}}gu.parseGraphQLSDL=ete;function GU(e,t={}){let n=(0,Ji.parse)(e,$(M({},t),{noLocation:!1}));return(0,Ji.visit)(n,{leave:i=>{if($U(i)){let a=(0,KU.getLeadingCommentBlock)(i);if(a!==void 0){let o=(0,KU.dedentBlockStringValue)(` `+a),c=o.includes(` -`);return i.description?Q(x({},i),{description:Q(x({},i.description),{value:i.description.value+` -`+o,block:!0})}):Q(x({},i),{description:{kind:Vi.Kind.STRING,value:o,block:c}})}}}})}fu.transformCommentsToDescriptions=vU;function SU(e){return(0,Vi.isTypeSystemDefinitionNode)(e)||e.kind===Vi.Kind.FIELD_DEFINITION||e.kind===Vi.Kind.INPUT_VALUE_DEFINITION||e.kind===Vi.Kind.ENUM_VALUE_DEFINITION}fu.isDescribable=SU});var LU=w(dT=>{"use strict";m();T();N();Object.defineProperty(dT,"__esModule",{value:!0});dT.buildOperationNodeForField=void 0;var lt=De(),RU=Ff(),lS=[],lT=new Map;function PU(e){lS.push(e)}function DU(){lS=[]}function bU(){lT=new Map}function Pee({schema:e,kind:t,field:n,models:r,ignore:i=[],depthLimit:a,circularReferenceDepth:o,argNames:c,selectedFields:l=!0}){DU(),bU();let d=(0,RU.getRootTypeNames)(e),p=Fee({schema:e,fieldName:n,kind:t,models:r||[],ignore:i,depthLimit:a||1/0,circularReferenceDepth:o||1,argNames:c,selectedFields:l,rootTypeNames:d});return p.variableDefinitions=[...lS],DU(),bU(),p}dT.buildOperationNodeForField=Pee;function Fee({schema:e,fieldName:t,kind:n,models:r,ignore:i,depthLimit:a,circularReferenceDepth:o,argNames:c,selectedFields:l,rootTypeNames:d}){let p=(0,RU.getDefinedRootType)(e,n),y=p.getFields()[t],I=`${t}_${n}`;if(y.args)for(let v of y.args){let F=v.name;(!c||c.includes(F))&&PU(FU(v,F))}return{kind:lt.Kind.OPERATION_DEFINITION,operation:n,name:{kind:lt.Kind.NAME,value:I},variableDefinitions:[],selectionSet:{kind:lt.Kind.SELECTION_SET,selections:[wU({type:p,field:y,models:r,firstCall:!0,path:[],ancestors:[],ignore:i,depthLimit:a,circularReferenceDepth:o,schema:e,depth:0,argNames:c,selectedFields:l,rootTypeNames:d})]}}}function cS({parent:e,type:t,models:n,firstCall:r,path:i,ancestors:a,ignore:o,depthLimit:c,circularReferenceDepth:l,schema:d,depth:p,argNames:y,selectedFields:I,rootTypeNames:v}){if(!(typeof I=="boolean"&&p>c)){if((0,lt.isUnionType)(t)){let F=t.getTypes();return{kind:lt.Kind.SELECTION_SET,selections:F.filter(k=>!uS([...a,k],{depth:l})).map(k=>({kind:lt.Kind.INLINE_FRAGMENT,typeCondition:{kind:lt.Kind.NAMED_TYPE,name:{kind:lt.Kind.NAME,value:k.name}},selectionSet:cS({parent:t,type:k,models:n,path:i,ancestors:a,ignore:o,depthLimit:c,circularReferenceDepth:l,schema:d,depth:p,argNames:y,selectedFields:I,rootTypeNames:v})})).filter(k=>{var K,J;return((J=(K=k==null?void 0:k.selectionSet)==null?void 0:K.selections)==null?void 0:J.length)>0})}}if((0,lt.isInterfaceType)(t)){let F=Object.values(d.getTypeMap()).filter(k=>(0,lt.isObjectType)(k)&&k.getInterfaces().includes(t));return{kind:lt.Kind.SELECTION_SET,selections:F.filter(k=>!uS([...a,k],{depth:l})).map(k=>({kind:lt.Kind.INLINE_FRAGMENT,typeCondition:{kind:lt.Kind.NAMED_TYPE,name:{kind:lt.Kind.NAME,value:k.name}},selectionSet:cS({parent:t,type:k,models:n,path:i,ancestors:a,ignore:o,depthLimit:c,circularReferenceDepth:l,schema:d,depth:p,argNames:y,selectedFields:I,rootTypeNames:v})})).filter(k=>{var K,J;return((J=(K=k==null?void 0:k.selectionSet)==null?void 0:K.selections)==null?void 0:J.length)>0})}}if((0,lt.isObjectType)(t)&&!v.has(t.name)){let F=o.includes(t.name)||o.includes(`${e.name}.${i[i.length-1]}`),k=n.includes(t.name);if(!r&&k&&!F)return{kind:lt.Kind.SELECTION_SET,selections:[{kind:lt.Kind.FIELD,name:{kind:lt.Kind.NAME,value:"id"}}]};let K=t.getFields();return{kind:lt.Kind.SELECTION_SET,selections:Object.keys(K).filter(J=>!uS([...a,(0,lt.getNamedType)(K[J].type)],{depth:l})).map(J=>{let se=typeof I=="object"?I[J]:!0;return se?wU({type:t,field:K[J],models:n,path:[...i,J],ancestors:a,ignore:o,depthLimit:c,circularReferenceDepth:l,schema:d,depth:p,argNames:y,selectedFields:se,rootTypeNames:v}):null}).filter(J=>{var se,ie;return J==null?!1:"selectionSet"in J?!!((ie=(se=J.selectionSet)==null?void 0:se.selections)!=null&&ie.length):!0})}}}}function FU(e,t){function n(r){return(0,lt.isListType)(r)?{kind:lt.Kind.LIST_TYPE,type:n(r.ofType)}:(0,lt.isNonNullType)(r)?{kind:lt.Kind.NON_NULL_TYPE,type:n(r.ofType)}:{kind:lt.Kind.NAMED_TYPE,name:{kind:lt.Kind.NAME,value:r.name}}}return{kind:lt.Kind.VARIABLE_DEFINITION,variable:{kind:lt.Kind.VARIABLE,name:{kind:lt.Kind.NAME,value:t||e.name}},type:n(e.type)}}function AU(e,t){return[...t,e].join("_")}function wU({type:e,field:t,models:n,firstCall:r,path:i,ancestors:a,ignore:o,depthLimit:c,circularReferenceDepth:l,schema:d,depth:p,argNames:y,selectedFields:I,rootTypeNames:v}){let F=(0,lt.getNamedType)(t.type),k=[],K=!1;if(t.args&&t.args.length&&(k=t.args.map(Te=>{let de=AU(Te.name,i);return y&&!y.includes(de)?((0,lt.isNonNullType)(Te.type)&&(K=!0),null):(r||PU(FU(Te,de)),{kind:lt.Kind.ARGUMENT,name:{kind:lt.Kind.NAME,value:Te.name},value:{kind:lt.Kind.VARIABLE,name:{kind:lt.Kind.NAME,value:AU(Te.name,i)}}})}).filter(Boolean)),K)return null;let J=[...i,t.name],se=J.join("."),ie=t.name;return lT.has(se)&&lT.get(se)!==t.type.toString()&&(ie+=t.type.toString().replace("!","NonNull").replace("[","List").replace("]","")),lT.set(se,t.type.toString()),!(0,lt.isScalarType)(F)&&!(0,lt.isEnumType)(F)?Q(x({kind:lt.Kind.FIELD,name:{kind:lt.Kind.NAME,value:t.name}},ie!==t.name&&{alias:{kind:lt.Kind.NAME,value:ie}}),{selectionSet:cS({parent:e,type:F,models:n,firstCall:r,path:J,ancestors:[...a,e],ignore:o,depthLimit:c,circularReferenceDepth:l,schema:d,depth:p+1,argNames:y,selectedFields:I,rootTypeNames:v})||void 0,arguments:k}):Q(x({kind:lt.Kind.FIELD,name:{kind:lt.Kind.NAME,value:t.name}},ie!==t.name&&{alias:{kind:lt.Kind.NAME,value:ie}}),{arguments:k})}function uS(e,t={depth:1}){let n=e[e.length-1];return(0,lt.isScalarType)(n)?!1:e.filter(i=>i.name===n.name).length>t.depth}});var BU=w(fT=>{"use strict";m();T();N();Object.defineProperty(fT,"__esModule",{value:!0});fT.DirectiveLocation=void 0;var CU;(function(e){e.QUERY="QUERY",e.MUTATION="MUTATION",e.SUBSCRIPTION="SUBSCRIPTION",e.FIELD="FIELD",e.FRAGMENT_DEFINITION="FRAGMENT_DEFINITION",e.FRAGMENT_SPREAD="FRAGMENT_SPREAD",e.INLINE_FRAGMENT="INLINE_FRAGMENT",e.VARIABLE_DEFINITION="VARIABLE_DEFINITION",e.SCHEMA="SCHEMA",e.SCALAR="SCALAR",e.OBJECT="OBJECT",e.FIELD_DEFINITION="FIELD_DEFINITION",e.ARGUMENT_DEFINITION="ARGUMENT_DEFINITION",e.INTERFACE="INTERFACE",e.UNION="UNION",e.ENUM="ENUM",e.ENUM_VALUE="ENUM_VALUE",e.INPUT_OBJECT="INPUT_OBJECT",e.INPUT_FIELD_DEFINITION="INPUT_FIELD_DEFINITION"})(CU||(fT.DirectiveLocation=CU={}))});var fc=w(pT=>{"use strict";m();T();N();Object.defineProperty(pT,"__esModule",{value:!0});pT.MapperKind=void 0;var UU;(function(e){e.TYPE="MapperKind.TYPE",e.SCALAR_TYPE="MapperKind.SCALAR_TYPE",e.ENUM_TYPE="MapperKind.ENUM_TYPE",e.COMPOSITE_TYPE="MapperKind.COMPOSITE_TYPE",e.OBJECT_TYPE="MapperKind.OBJECT_TYPE",e.INPUT_OBJECT_TYPE="MapperKind.INPUT_OBJECT_TYPE",e.ABSTRACT_TYPE="MapperKind.ABSTRACT_TYPE",e.UNION_TYPE="MapperKind.UNION_TYPE",e.INTERFACE_TYPE="MapperKind.INTERFACE_TYPE",e.ROOT_OBJECT="MapperKind.ROOT_OBJECT",e.QUERY="MapperKind.QUERY",e.MUTATION="MapperKind.MUTATION",e.SUBSCRIPTION="MapperKind.SUBSCRIPTION",e.DIRECTIVE="MapperKind.DIRECTIVE",e.FIELD="MapperKind.FIELD",e.COMPOSITE_FIELD="MapperKind.COMPOSITE_FIELD",e.OBJECT_FIELD="MapperKind.OBJECT_FIELD",e.ROOT_FIELD="MapperKind.ROOT_FIELD",e.QUERY_ROOT_FIELD="MapperKind.QUERY_ROOT_FIELD",e.MUTATION_ROOT_FIELD="MapperKind.MUTATION_ROOT_FIELD",e.SUBSCRIPTION_ROOT_FIELD="MapperKind.SUBSCRIPTION_ROOT_FIELD",e.INTERFACE_FIELD="MapperKind.INTERFACE_FIELD",e.INPUT_OBJECT_FIELD="MapperKind.INPUT_OBJECT_FIELD",e.ARGUMENT="MapperKind.ARGUMENT",e.ENUM_VALUE="MapperKind.ENUM_VALUE"})(UU||(pT.MapperKind=UU={}))});var dS=w(mT=>{"use strict";m();T();N();Object.defineProperty(mT,"__esModule",{value:!0});mT.getObjectTypeFromTypeMap=void 0;var wee=De();function Lee(e,t){if(t){let n=e[t.name];if((0,wee.isObjectType)(n))return n}}mT.getObjectTypeFromTypeMap=Lee});var mS=w(qa=>{"use strict";m();T();N();Object.defineProperty(qa,"__esModule",{value:!0});qa.getBuiltInForStub=qa.isNamedStub=qa.createStub=qa.createNamedStub=void 0;var dr=De();function fS(e,t){let n;return t==="object"?n=dr.GraphQLObjectType:t==="interface"?n=dr.GraphQLInterfaceType:n=dr.GraphQLInputObjectType,new n({name:e,fields:{_fake:{type:dr.GraphQLString}}})}qa.createNamedStub=fS;function pS(e,t){switch(e.kind){case dr.Kind.LIST_TYPE:return new dr.GraphQLList(pS(e.type,t));case dr.Kind.NON_NULL_TYPE:return new dr.GraphQLNonNull(pS(e.type,t));default:return t==="output"?fS(e.name.value,"object"):fS(e.name.value,"input")}}qa.createStub=pS;function Cee(e){if("getFields"in e){let t=e.getFields();for(let n in t)return t[n].name==="_fake"}return!1}qa.isNamedStub=Cee;function Bee(e){switch(e.name){case dr.GraphQLInt.name:return dr.GraphQLInt;case dr.GraphQLFloat.name:return dr.GraphQLFloat;case dr.GraphQLString.name:return dr.GraphQLString;case dr.GraphQLBoolean.name:return dr.GraphQLBoolean;case dr.GraphQLID.name:return dr.GraphQLID;default:return e}}qa.getBuiltInForStub=Bee});var TT=w(NT=>{"use strict";m();T();N();Object.defineProperty(NT,"__esModule",{value:!0});NT.rewireTypes=void 0;var Jn=De(),kU=mS();function Uee(e,t){let n=Object.create(null);for(let I in e)n[I]=e[I];let r=Object.create(null);for(let I in n){let v=n[I];if(v==null||I.startsWith("__"))continue;let F=v.name;if(!F.startsWith("__")){if(r[F]!=null){console.warn(`Duplicate schema type name ${F} found; keeping the existing one found in the schema`);continue}r[F]=v}}for(let I in r)r[I]=c(r[I]);let i=t.map(I=>a(I));return{typeMap:r,directives:i};function a(I){if((0,Jn.isSpecifiedDirective)(I))return I;let v=I.toConfig();return v.args=o(v.args),new Jn.GraphQLDirective(v)}function o(I){let v={};for(let F in I){let k=I[F],K=y(k.type);K!=null&&(k.type=K,v[F]=k)}return v}function c(I){if((0,Jn.isObjectType)(I)){let v=I.toConfig(),F=Q(x({},v),{fields:()=>l(v.fields),interfaces:()=>p(v.interfaces)});return new Jn.GraphQLObjectType(F)}else if((0,Jn.isInterfaceType)(I)){let v=I.toConfig(),F=Q(x({},v),{fields:()=>l(v.fields)});return"interfaces"in F&&(F.interfaces=()=>p(v.interfaces)),new Jn.GraphQLInterfaceType(F)}else if((0,Jn.isUnionType)(I)){let v=I.toConfig(),F=Q(x({},v),{types:()=>p(v.types)});return new Jn.GraphQLUnionType(F)}else if((0,Jn.isInputObjectType)(I)){let v=I.toConfig(),F=Q(x({},v),{fields:()=>d(v.fields)});return new Jn.GraphQLInputObjectType(F)}else if((0,Jn.isEnumType)(I)){let v=I.toConfig();return new Jn.GraphQLEnumType(v)}else if((0,Jn.isScalarType)(I)){if((0,Jn.isSpecifiedScalarType)(I))return I;let v=I.toConfig();return new Jn.GraphQLScalarType(v)}throw new Error(`Unexpected schema type: ${I}`)}function l(I){let v={};for(let F in I){let k=I[F],K=y(k.type);K!=null&&k.args&&(k.type=K,k.args=o(k.args),v[F]=k)}return v}function d(I){let v={};for(let F in I){let k=I[F],K=y(k.type);K!=null&&(k.type=K,v[F]=k)}return v}function p(I){let v=[];for(let F of I){let k=y(F);k!=null&&v.push(k)}return v}function y(I){if((0,Jn.isListType)(I)){let v=y(I.ofType);return v!=null?new Jn.GraphQLList(v):null}else if((0,Jn.isNonNullType)(I)){let v=y(I.ofType);return v!=null?new Jn.GraphQLNonNull(v):null}else if((0,Jn.isNamedType)(I)){let v=n[I.name];return v===void 0&&(v=(0,kU.isNamedStub)(I)?(0,kU.getBuiltInForStub)(I):c(I),r[v.name]=n[I.name]=v),v!=null?r[v.name]:null}return null}}NT.rewireTypes=Uee});var NS=w(Va=>{"use strict";m();T();N();Object.defineProperty(Va,"__esModule",{value:!0});Va.parseInputValueLiteral=Va.parseInputValue=Va.serializeInputValue=Va.transformInputValue=void 0;var ET=De(),kee=bf();function Fl(e,t,n=null,r=null){if(t==null)return t;let i=(0,ET.getNullableType)(e);if((0,ET.isLeafType)(i))return n!=null?n(i,t):t;if((0,ET.isListType)(i))return(0,kee.asArray)(t).map(a=>Fl(i.ofType,a,n,r));if((0,ET.isInputObjectType)(i)){let a=i.getFields(),o={};for(let c in t){let l=a[c];l!=null&&(o[c]=Fl(l.type,t[c],n,r))}return r!=null?r(i,o):o}}Va.transformInputValue=Fl;function Mee(e,t){return Fl(e,t,(n,r)=>{try{return n.serialize(r)}catch(i){return r}})}Va.serializeInputValue=Mee;function xee(e,t){return Fl(e,t,(n,r)=>{try{return n.parseValue(r)}catch(i){return r}})}Va.parseInputValue=xee;function qee(e,t){return Fl(e,t,(n,r)=>n.parseLiteral(r,{}))}Va.parseInputValueLiteral=qee});var Cl=w(Ll=>{"use strict";m();T();N();Object.defineProperty(Ll,"__esModule",{value:!0});Ll.correctASTNodes=Ll.mapSchema=void 0;var it=De(),wl=dS(),bt=fc(),Vee=TT(),MU=NS();function jee(e,t={}){let n=VU(qU(TS(xU(Kee(TS(xU(e.getTypeMap(),e,MU.serializeInputValue),e,t,c=>(0,it.isLeafType)(c)),e,t),e,MU.parseInputValue),e,t,c=>!(0,it.isLeafType)(c)),e,t),e,t),r=e.getDirectives(),i=Gee(r,e,t),{typeMap:a,directives:o}=(0,Vee.rewireTypes)(n,i);return new it.GraphQLSchema(Q(x({},e.toConfig()),{query:(0,wl.getObjectTypeFromTypeMap)(a,(0,wl.getObjectTypeFromTypeMap)(n,e.getQueryType())),mutation:(0,wl.getObjectTypeFromTypeMap)(a,(0,wl.getObjectTypeFromTypeMap)(n,e.getMutationType())),subscription:(0,wl.getObjectTypeFromTypeMap)(a,(0,wl.getObjectTypeFromTypeMap)(n,e.getSubscriptionType())),types:Object.values(a),directives:o}))}Ll.mapSchema=jee;function TS(e,t,n,r=()=>!0){let i={};for(let a in e)if(!a.startsWith("__")){let o=e[a];if(o==null||!r(o)){i[a]=o;continue}let c=Qee(t,n,a);if(c==null){i[a]=o;continue}let l=c(o,t);if(l===void 0){i[a]=o;continue}i[a]=l}return i}function Kee(e,t,n){let r=Wee(n);return r?TS(e,t,{[bt.MapperKind.ENUM_TYPE]:i=>{let a=i.toConfig(),o=a.values,c={};for(let l in o){let d=o[l],p=r(d,i.name,t,l);if(p===void 0)c[l]=d;else if(Array.isArray(p)){let[y,I]=p;c[y]=I===void 0?d:I}else p!==null&&(c[l]=p)}return kf(new it.GraphQLEnumType(Q(x({},a),{values:c})))}},i=>(0,it.isEnumType)(i)):e}function xU(e,t,n){let r=VU(e,t,{[bt.MapperKind.ARGUMENT]:i=>{if(i.defaultValue===void 0)return i;let a=hT(e,i.type);if(a!=null)return Q(x({},i),{defaultValue:n(a,i.defaultValue)})}});return qU(r,t,{[bt.MapperKind.INPUT_OBJECT_FIELD]:i=>{if(i.defaultValue===void 0)return i;let a=hT(r,i.type);if(a!=null)return Q(x({},i),{defaultValue:n(a,i.defaultValue)})}})}function hT(e,t){if((0,it.isListType)(t)){let n=hT(e,t.ofType);return n!=null?new it.GraphQLList(n):null}else if((0,it.isNonNullType)(t)){let n=hT(e,t.ofType);return n!=null?new it.GraphQLNonNull(n):null}else if((0,it.isNamedType)(t)){let n=e[t.name];return n!=null?n:null}return null}function qU(e,t,n){let r={};for(let i in e)if(!i.startsWith("__")){let a=e[i];if(!(0,it.isObjectType)(a)&&!(0,it.isInterfaceType)(a)&&!(0,it.isInputObjectType)(a)){r[i]=a;continue}let o=Jee(t,n,i);if(o==null){r[i]=a;continue}let c=a.toConfig(),l=c.fields,d={};for(let p in l){let y=l[p],I=o(y,p,i,t);if(I===void 0)d[p]=y;else if(Array.isArray(I)){let[v,F]=I;F.astNode!=null&&(F.astNode=Q(x({},F.astNode),{name:Q(x({},F.astNode.name),{value:v})})),d[v]=F===void 0?y:F}else I!==null&&(d[p]=I)}(0,it.isObjectType)(a)?r[i]=kf(new it.GraphQLObjectType(Q(x({},c),{fields:d}))):(0,it.isInterfaceType)(a)?r[i]=kf(new it.GraphQLInterfaceType(Q(x({},c),{fields:d}))):r[i]=kf(new it.GraphQLInputObjectType(Q(x({},c),{fields:d})))}return r}function VU(e,t,n){let r={};for(let i in e)if(!i.startsWith("__")){let a=e[i];if(!(0,it.isObjectType)(a)&&!(0,it.isInterfaceType)(a)){r[i]=a;continue}let o=Hee(n);if(o==null){r[i]=a;continue}let c=a.toConfig(),l=c.fields,d={};for(let p in l){let y=l[p],I=y.args;if(I==null){d[p]=y;continue}let v=Object.keys(I);if(!v.length){d[p]=y;continue}let F={};for(let k of v){let K=I[k],J=o(K,p,i,t);if(J===void 0)F[k]=K;else if(Array.isArray(J)){let[se,ie]=J;F[se]=ie}else J!==null&&(F[k]=J)}d[p]=Q(x({},y),{args:F})}(0,it.isObjectType)(a)?r[i]=new it.GraphQLObjectType(Q(x({},c),{fields:d})):(0,it.isInterfaceType)(a)?r[i]=new it.GraphQLInterfaceType(Q(x({},c),{fields:d})):r[i]=new it.GraphQLInputObjectType(Q(x({},c),{fields:d}))}return r}function Gee(e,t,n){let r=zee(n);if(r==null)return e.slice();let i=[];for(let a of e){let o=r(a,t);o===void 0?i.push(a):o!==null&&i.push(o)}return i}function $ee(e,t){var i,a,o;let n=e.getType(t),r=[bt.MapperKind.TYPE];return(0,it.isObjectType)(n)?(r.push(bt.MapperKind.COMPOSITE_TYPE,bt.MapperKind.OBJECT_TYPE),t===((i=e.getQueryType())==null?void 0:i.name)?r.push(bt.MapperKind.ROOT_OBJECT,bt.MapperKind.QUERY):t===((a=e.getMutationType())==null?void 0:a.name)?r.push(bt.MapperKind.ROOT_OBJECT,bt.MapperKind.MUTATION):t===((o=e.getSubscriptionType())==null?void 0:o.name)&&r.push(bt.MapperKind.ROOT_OBJECT,bt.MapperKind.SUBSCRIPTION)):(0,it.isInputObjectType)(n)?r.push(bt.MapperKind.INPUT_OBJECT_TYPE):(0,it.isInterfaceType)(n)?r.push(bt.MapperKind.COMPOSITE_TYPE,bt.MapperKind.ABSTRACT_TYPE,bt.MapperKind.INTERFACE_TYPE):(0,it.isUnionType)(n)?r.push(bt.MapperKind.COMPOSITE_TYPE,bt.MapperKind.ABSTRACT_TYPE,bt.MapperKind.UNION_TYPE):(0,it.isEnumType)(n)?r.push(bt.MapperKind.ENUM_TYPE):(0,it.isScalarType)(n)&&r.push(bt.MapperKind.SCALAR_TYPE),r}function Qee(e,t,n){let r=$ee(e,n),i,a=[...r];for(;!i&&a.length>0;){let o=a.pop();i=t[o]}return i!=null?i:null}function Yee(e,t){var i,a,o;let n=e.getType(t),r=[bt.MapperKind.FIELD];return(0,it.isObjectType)(n)?(r.push(bt.MapperKind.COMPOSITE_FIELD,bt.MapperKind.OBJECT_FIELD),t===((i=e.getQueryType())==null?void 0:i.name)?r.push(bt.MapperKind.ROOT_FIELD,bt.MapperKind.QUERY_ROOT_FIELD):t===((a=e.getMutationType())==null?void 0:a.name)?r.push(bt.MapperKind.ROOT_FIELD,bt.MapperKind.MUTATION_ROOT_FIELD):t===((o=e.getSubscriptionType())==null?void 0:o.name)&&r.push(bt.MapperKind.ROOT_FIELD,bt.MapperKind.SUBSCRIPTION_ROOT_FIELD)):(0,it.isInterfaceType)(n)?r.push(bt.MapperKind.COMPOSITE_FIELD,bt.MapperKind.INTERFACE_FIELD):(0,it.isInputObjectType)(n)&&r.push(bt.MapperKind.INPUT_OBJECT_FIELD),r}function Jee(e,t,n){let r=Yee(e,n),i,a=[...r];for(;!i&&a.length>0;){let o=a.pop();i=t[o]}return i!=null?i:null}function Hee(e){let t=e[bt.MapperKind.ARGUMENT];return t!=null?t:null}function zee(e){let t=e[bt.MapperKind.DIRECTIVE];return t!=null?t:null}function Wee(e){let t=e[bt.MapperKind.ENUM_VALUE];return t!=null?t:null}function kf(e){if((0,it.isObjectType)(e)){let t=e.toConfig();if(t.astNode!=null){let n=[];for(let r in t.fields){let i=t.fields[r];i.astNode!=null&&n.push(i.astNode)}t.astNode=Q(x({},t.astNode),{kind:it.Kind.OBJECT_TYPE_DEFINITION,fields:n})}return t.extensionASTNodes!=null&&(t.extensionASTNodes=t.extensionASTNodes.map(n=>Q(x({},n),{kind:it.Kind.OBJECT_TYPE_EXTENSION,fields:void 0}))),new it.GraphQLObjectType(t)}else if((0,it.isInterfaceType)(e)){let t=e.toConfig();if(t.astNode!=null){let n=[];for(let r in t.fields){let i=t.fields[r];i.astNode!=null&&n.push(i.astNode)}t.astNode=Q(x({},t.astNode),{kind:it.Kind.INTERFACE_TYPE_DEFINITION,fields:n})}return t.extensionASTNodes!=null&&(t.extensionASTNodes=t.extensionASTNodes.map(n=>Q(x({},n),{kind:it.Kind.INTERFACE_TYPE_EXTENSION,fields:void 0}))),new it.GraphQLInterfaceType(t)}else if((0,it.isInputObjectType)(e)){let t=e.toConfig();if(t.astNode!=null){let n=[];for(let r in t.fields){let i=t.fields[r];i.astNode!=null&&n.push(i.astNode)}t.astNode=Q(x({},t.astNode),{kind:it.Kind.INPUT_OBJECT_TYPE_DEFINITION,fields:n})}return t.extensionASTNodes!=null&&(t.extensionASTNodes=t.extensionASTNodes.map(n=>Q(x({},n),{kind:it.Kind.INPUT_OBJECT_TYPE_EXTENSION,fields:void 0}))),new it.GraphQLInputObjectType(t)}else if((0,it.isEnumType)(e)){let t=e.toConfig();if(t.astNode!=null){let n=[];for(let r in t.values){let i=t.values[r];i.astNode!=null&&n.push(i.astNode)}t.astNode=Q(x({},t.astNode),{values:n})}return t.extensionASTNodes!=null&&(t.extensionASTNodes=t.extensionASTNodes.map(n=>Q(x({},n),{values:void 0}))),new it.GraphQLEnumType(t)}else return e}Ll.correctASTNodes=kf});var jU=w(IT=>{"use strict";m();T();N();Object.defineProperty(IT,"__esModule",{value:!0});IT.filterSchema=void 0;var yT=De(),Os=fc(),Xee=Cl();function Zee({schema:e,typeFilter:t=()=>!0,fieldFilter:n=void 0,rootFieldFilter:r=void 0,objectFieldFilter:i=void 0,interfaceFieldFilter:a=void 0,inputObjectFieldFilter:o=void 0,argumentFilter:c=void 0}){return(0,Xee.mapSchema)(e,{[Os.MapperKind.QUERY]:d=>ES(d,"Query",r,c),[Os.MapperKind.MUTATION]:d=>ES(d,"Mutation",r,c),[Os.MapperKind.SUBSCRIPTION]:d=>ES(d,"Subscription",r,c),[Os.MapperKind.OBJECT_TYPE]:d=>t(d.name,d)?hS(yT.GraphQLObjectType,d,i||n,c):null,[Os.MapperKind.INTERFACE_TYPE]:d=>t(d.name,d)?hS(yT.GraphQLInterfaceType,d,a||n,c):null,[Os.MapperKind.INPUT_OBJECT_TYPE]:d=>t(d.name,d)?hS(yT.GraphQLInputObjectType,d,o||n):null,[Os.MapperKind.UNION_TYPE]:d=>t(d.name,d)?void 0:null,[Os.MapperKind.ENUM_TYPE]:d=>t(d.name,d)?void 0:null,[Os.MapperKind.SCALAR_TYPE]:d=>t(d.name,d)?void 0:null})}IT.filterSchema=Zee;function ES(e,t,n,r){if(n||r){let i=e.toConfig();for(let a in i.fields){let o=i.fields[a];if(n&&!n(t,a,i.fields[a]))delete i.fields[a];else if(r&&o.args)for(let c in o.args)r(t,a,c,o.args[c])||delete o.args[c]}return new yT.GraphQLObjectType(i)}return e}function hS(e,t,n,r){if(n||r){let i=t.toConfig();for(let a in i.fields){let o=i.fields[a];if(n&&!n(t.name,a,i.fields[a]))delete i.fields[a];else if(r&&"args"in o)for(let c in o.args)r(t.name,a,c,o.args[c])||delete o.args[c]}return new e(i)}}});var GU=w(Bl=>{"use strict";m();T();N();Object.defineProperty(Bl,"__esModule",{value:!0});Bl.healTypes=Bl.healSchema=void 0;var ja=De();function ete(e){return KU(e.getTypeMap(),e.getDirectives()),e}Bl.healSchema=ete;function KU(e,t){let n=Object.create(null);for(let d in e){let p=e[d];if(p==null||d.startsWith("__"))continue;let y=p.name;if(!y.startsWith("__")){if(n[y]!=null){console.warn(`Duplicate schema type name ${y} found; keeping the existing one found in the schema`);continue}n[y]=p}}for(let d in n){let p=n[d];e[d]=p}for(let d of t)d.args=d.args.filter(p=>(p.type=l(p.type),p.type!==null));for(let d in e){let p=e[d];!d.startsWith("__")&&d in n&&p!=null&&r(p)}for(let d in e)!d.startsWith("__")&&!(d in n)&&delete e[d];function r(d){if((0,ja.isObjectType)(d)){i(d),a(d);return}else if((0,ja.isInterfaceType)(d)){i(d),"getInterfaces"in d&&a(d);return}else if((0,ja.isUnionType)(d)){c(d);return}else if((0,ja.isInputObjectType)(d)){o(d);return}else if((0,ja.isLeafType)(d))return;throw new Error(`Unexpected schema type: ${d}`)}function i(d){let p=d.getFields();for(let[y,I]of Object.entries(p))I.args.map(v=>(v.type=l(v.type),v.type===null?null:v)).filter(Boolean),I.type=l(I.type),I.type===null&&delete p[y]}function a(d){if("getInterfaces"in d){let p=d.getInterfaces();p.push(...p.splice(0).map(y=>l(y)).filter(Boolean))}}function o(d){let p=d.getFields();for(let[y,I]of Object.entries(p))I.type=l(I.type),I.type===null&&delete p[y]}function c(d){let p=d.getTypes();p.push(...p.splice(0).map(y=>l(y)).filter(Boolean))}function l(d){if((0,ja.isListType)(d)){let p=l(d.ofType);return p!=null?new ja.GraphQLList(p):null}else if((0,ja.isNonNullType)(d)){let p=l(d.ofType);return p!=null?new ja.GraphQLNonNull(p):null}else if((0,ja.isNamedType)(d)){let p=e[d.name];if(p&&d!==p)return p}return d}}Bl.healTypes=KU});var $U=w(gT=>{"use strict";m();T();N();Object.defineProperty(gT,"__esModule",{value:!0});gT.getResolversFromSchema=void 0;var pc=De();function tte(e,t){var i,a;let n=Object.create(null),r=e.getTypeMap();for(let o in r)if(!o.startsWith("__")){let c=r[o];if((0,pc.isScalarType)(c)){if(!(0,pc.isSpecifiedScalarType)(c)){let l=c.toConfig();delete l.astNode,n[o]=new pc.GraphQLScalarType(l)}}else if((0,pc.isEnumType)(c)){n[o]={};let l=c.getValues();for(let d of l)n[o][d.name]=d.value}else if((0,pc.isInterfaceType)(c))c.resolveType!=null&&(n[o]={__resolveType:c.resolveType});else if((0,pc.isUnionType)(c))c.resolveType!=null&&(n[o]={__resolveType:c.resolveType});else if((0,pc.isObjectType)(c)){n[o]={},c.isTypeOf!=null&&(n[o].__isTypeOf=c.isTypeOf);let l=c.getFields();for(let d in l){let p=l[d];if(p.subscribe!=null&&(n[o][d]=n[o][d]||{},n[o][d].subscribe=p.subscribe),p.resolve!=null&&((i=p.resolve)==null?void 0:i.name)!=="defaultFieldResolver"){switch((a=p.resolve)==null?void 0:a.name){case"defaultMergedResolver":if(!t)continue;break;case"defaultFieldResolver":continue}n[o][d]=n[o][d]||{},n[o][d].resolve=p.resolve}}}}return n}gT.getResolversFromSchema=tte});var YU=w(_T=>{"use strict";m();T();N();Object.defineProperty(_T,"__esModule",{value:!0});_T.forEachField=void 0;var QU=De();function nte(e,t){let n=e.getTypeMap();for(let r in n){let i=n[r];if(!(0,QU.getNamedType)(i).name.startsWith("__")&&(0,QU.isObjectType)(i)){let a=i.getFields();for(let o in a){let c=a[o];t(c,r,o)}}}}_T.forEachField=nte});var JU=w(vT=>{"use strict";m();T();N();Object.defineProperty(vT,"__esModule",{value:!0});vT.forEachDefaultValue=void 0;var yS=De();function rte(e,t){let n=e.getTypeMap();for(let r in n){let i=n[r];if(!(0,yS.getNamedType)(i).name.startsWith("__")){if((0,yS.isObjectType)(i)){let a=i.getFields();for(let o in a){let c=a[o];for(let l of c.args)l.defaultValue=t(l.type,l.defaultValue)}}else if((0,yS.isInputObjectType)(i)){let a=i.getFields();for(let o in a){let c=a[o];c.defaultValue=t(c.type,c.defaultValue)}}}}}vT.forEachDefaultValue=rte});var _S=w(ST=>{"use strict";m();T();N();Object.defineProperty(ST,"__esModule",{value:!0});ST.addTypes=void 0;var IS=De(),gS=dS(),ite=TT();function ate(e,t){let n=e.toConfig(),r={};for(let c of n.types)r[c.name]=c;let i={};for(let c of n.directives)i[c.name]=c;for(let c of t)(0,IS.isNamedType)(c)?r[c.name]=c:(0,IS.isDirective)(c)&&(i[c.name]=c);let{typeMap:a,directives:o}=(0,ite.rewireTypes)(r,Object.values(i));return new IS.GraphQLSchema(Q(x({},n),{query:(0,gS.getObjectTypeFromTypeMap)(a,e.getQueryType()),mutation:(0,gS.getObjectTypeFromTypeMap)(a,e.getMutationType()),subscription:(0,gS.getObjectTypeFromTypeMap)(a,e.getSubscriptionType()),types:Object.values(a),directives:o}))}ST.addTypes=ate});var zU=w(DT=>{"use strict";m();T();N();Object.defineProperty(DT,"__esModule",{value:!0});DT.pruneSchema=void 0;var tr=De(),ste=zv(),ote=fc(),ute=Cl(),cte=Ff();function lte(e,t={}){let{skipEmptyCompositeTypePruning:n,skipEmptyUnionPruning:r,skipPruning:i,skipUnimplementedInterfacesPruning:a,skipUnusedTypesPruning:o}=t,c=[],l=e;do{let d=dte(l);if(i){let p=[];for(let y in l.getTypeMap()){if(y.startsWith("__"))continue;let I=l.getType(y);I&&i(I)&&p.push(y)}d=HU(p,l,d)}c=[],l=(0,ute.mapSchema)(l,{[ote.MapperKind.TYPE]:p=>!d.has(p.name)&&!(0,tr.isSpecifiedScalarType)(p)?((0,tr.isUnionType)(p)||(0,tr.isInputObjectType)(p)||(0,tr.isInterfaceType)(p)||(0,tr.isObjectType)(p)||(0,tr.isScalarType)(p))&&(o||(0,tr.isUnionType)(p)&&r&&!Object.keys(p.getTypes()).length||((0,tr.isInputObjectType)(p)||(0,tr.isInterfaceType)(p)||(0,tr.isObjectType)(p))&&n&&!Object.keys(p.getFields()).length||(0,tr.isInterfaceType)(p)&&a)?p:(c.push(p.name),d.delete(p.name),null):p})}while(c.length);return l}DT.pruneSchema=lte;function dte(e){let t=[];for(let n of(0,cte.getRootTypes)(e))t.push(n.name);return HU(t,e)}function HU(e,t,n=new Set){let r=new Map;for(;e.length;){let i=e.pop();if(n.has(i)&&r[i]!==!0)continue;let a=t.getType(i);if(a){if((0,tr.isUnionType)(a)&&e.push(...a.getTypes().map(o=>o.name)),(0,tr.isInterfaceType)(a)&&r[i]===!0&&(e.push(...(0,ste.getImplementingTypes)(a.name,t)),r[i]=!1),(0,tr.isEnumType)(a)&&e.push(...a.getValues().flatMap(o=>o.astNode?OT(t,o.astNode):[])),"getInterfaces"in a&&e.push(...a.getInterfaces().map(o=>o.name)),"getFields"in a){let o=a.getFields(),c=Object.entries(o);if(!c.length)continue;for(let[,l]of c){(0,tr.isObjectType)(a)&&e.push(...l.args.flatMap(p=>{let y=[(0,tr.getNamedType)(p.type).name];return p.astNode&&y.push(...OT(t,p.astNode)),y}));let d=(0,tr.getNamedType)(l.type);e.push(d.name),l.astNode&&e.push(...OT(t,l.astNode)),(0,tr.isInterfaceType)(d)&&!(d.name in r)&&(r[d.name]=!0)}}a.astNode&&e.push(...OT(t,a.astNode)),n.add(i)}}return n}function OT(e,t){var n;return((n=t.directives)!=null?n:[]).flatMap(r=>{var i,a;return(a=(i=e.getDirective(r.name.value))==null?void 0:i.args.map(o=>(0,tr.getNamedType)(o.type).name))!=null?a:[]})}});var XU=w(bT=>{"use strict";m();T();N();Object.defineProperty(bT,"__esModule",{value:!0});bT.mergeDeep=void 0;var fte=bf();function WU(e,t=!1,n=!1){let r=e[0]||{},i={};t&&Object.setPrototypeOf(i,Object.create(Object.getPrototypeOf(r)));for(let a of e)if(vS(r)&&vS(a)){if(t){let o=Object.getPrototypeOf(i),c=Object.getPrototypeOf(a);if(c)for(let l of Object.getOwnPropertyNames(c)){let d=Object.getOwnPropertyDescriptor(c,l);(0,fte.isSome)(d)&&Object.defineProperty(o,l,d)}}for(let o in a)vS(a[o])?o in i?i[o]=WU([i[o],a[o]],t,n):Object.assign(i,{[o]:a[o]}):n&&Array.isArray(i[o])?Array.isArray(a[o])?i[o].push(...a[o]):i[o].push(a[o]):Object.assign(i,{[o]:a[o]})}else if(n&&Array.isArray(r))Array.isArray(a)?r.push(...a):r.push(a);else if(n&&Array.isArray(a))return[r,...a];return i}bT.mergeDeep=WU;function vS(e){return e&&typeof e=="object"&&!Array.isArray(e)}});var ZU=w(AT=>{"use strict";m();T();N();Object.defineProperty(AT,"__esModule",{value:!0});AT.parseSelectionSet=void 0;var pte=De();function mte(e,t){return(0,pte.parse)(e,t).definitions[0].selectionSet}AT.parseSelectionSet=mte});var ek=w(RT=>{"use strict";m();T();N();Object.defineProperty(RT,"__esModule",{value:!0});RT.getResponseKeyFromInfo=void 0;function Nte(e){return e.fieldNodes[0].alias!=null?e.fieldNodes[0].alias.value:e.fieldName}RT.getResponseKeyFromInfo=Nte});var tk=w(Ka=>{"use strict";m();T();N();Object.defineProperty(Ka,"__esModule",{value:!0});Ka.modifyObjectFields=Ka.selectObjectFields=Ka.removeObjectFields=Ka.appendObjectFields=void 0;var PT=De(),Tte=_S(),FT=fc(),mc=Cl();function Ete(e,t,n){return e.getType(t)==null?(0,Tte.addTypes)(e,[new PT.GraphQLObjectType({name:t,fields:n})]):(0,mc.mapSchema)(e,{[FT.MapperKind.OBJECT_TYPE]:r=>{if(r.name===t){let i=r.toConfig(),a=i.fields,o={};for(let c in a)o[c]=a[c];for(let c in n)o[c]=n[c];return(0,mc.correctASTNodes)(new PT.GraphQLObjectType(Q(x({},i),{fields:o})))}}})}Ka.appendObjectFields=Ete;function hte(e,t,n){let r={};return[(0,mc.mapSchema)(e,{[FT.MapperKind.OBJECT_TYPE]:a=>{if(a.name===t){let o=a.toConfig(),c=o.fields,l={};for(let d in c){let p=c[d];n(d,p)?r[d]=p:l[d]=p}return(0,mc.correctASTNodes)(new PT.GraphQLObjectType(Q(x({},o),{fields:l})))}}}),r]}Ka.removeObjectFields=hte;function yte(e,t,n){let r={};return(0,mc.mapSchema)(e,{[FT.MapperKind.OBJECT_TYPE]:i=>{if(i.name===t){let o=i.toConfig().fields;for(let c in o){let l=o[c];n(c,l)&&(r[c]=l)}}}}),r}Ka.selectObjectFields=yte;function Ite(e,t,n,r){let i={};return[(0,mc.mapSchema)(e,{[FT.MapperKind.OBJECT_TYPE]:o=>{if(o.name===t){let c=o.toConfig(),l=c.fields,d={};for(let p in l){let y=l[p];n(p,y)?i[p]=y:d[p]=y}for(let p in r){let y=r[p];d[p]=y}return(0,mc.correctASTNodes)(new PT.GraphQLObjectType(Q(x({},c),{fields:d})))}}}),i]}Ka.modifyObjectFields=Ite});var nk=w(wT=>{"use strict";m();T();N();Object.defineProperty(wT,"__esModule",{value:!0});wT.renameType=void 0;var ji=De();function gte(e,t){if((0,ji.isObjectType)(e))return new ji.GraphQLObjectType(Q(x({},e.toConfig()),{name:t,astNode:e.astNode==null?e.astNode:Q(x({},e.astNode),{name:Q(x({},e.astNode.name),{value:t})}),extensionASTNodes:e.extensionASTNodes==null?e.extensionASTNodes:e.extensionASTNodes.map(n=>Q(x({},n),{name:Q(x({},n.name),{value:t})}))}));if((0,ji.isInterfaceType)(e))return new ji.GraphQLInterfaceType(Q(x({},e.toConfig()),{name:t,astNode:e.astNode==null?e.astNode:Q(x({},e.astNode),{name:Q(x({},e.astNode.name),{value:t})}),extensionASTNodes:e.extensionASTNodes==null?e.extensionASTNodes:e.extensionASTNodes.map(n=>Q(x({},n),{name:Q(x({},n.name),{value:t})}))}));if((0,ji.isUnionType)(e))return new ji.GraphQLUnionType(Q(x({},e.toConfig()),{name:t,astNode:e.astNode==null?e.astNode:Q(x({},e.astNode),{name:Q(x({},e.astNode.name),{value:t})}),extensionASTNodes:e.extensionASTNodes==null?e.extensionASTNodes:e.extensionASTNodes.map(n=>Q(x({},n),{name:Q(x({},n.name),{value:t})}))}));if((0,ji.isInputObjectType)(e))return new ji.GraphQLInputObjectType(Q(x({},e.toConfig()),{name:t,astNode:e.astNode==null?e.astNode:Q(x({},e.astNode),{name:Q(x({},e.astNode.name),{value:t})}),extensionASTNodes:e.extensionASTNodes==null?e.extensionASTNodes:e.extensionASTNodes.map(n=>Q(x({},n),{name:Q(x({},n.name),{value:t})}))}));if((0,ji.isEnumType)(e))return new ji.GraphQLEnumType(Q(x({},e.toConfig()),{name:t,astNode:e.astNode==null?e.astNode:Q(x({},e.astNode),{name:Q(x({},e.astNode.name),{value:t})}),extensionASTNodes:e.extensionASTNodes==null?e.extensionASTNodes:e.extensionASTNodes.map(n=>Q(x({},n),{name:Q(x({},n.name),{value:t})}))}));if((0,ji.isScalarType)(e))return new ji.GraphQLScalarType(Q(x({},e.toConfig()),{name:t,astNode:e.astNode==null?e.astNode:Q(x({},e.astNode),{name:Q(x({},e.astNode.name),{value:t})}),extensionASTNodes:e.extensionASTNodes==null?e.extensionASTNodes:e.extensionASTNodes.map(n=>Q(x({},n),{name:Q(x({},n.name),{value:t})}))}));throw new Error(`Unknown type ${e}.`)}wT.renameType=gte});var ak=w(LT=>{"use strict";m();T();N();Object.defineProperty(LT,"__esModule",{value:!0});LT.mapAsyncIterator=void 0;var _te=Rf();function vte(e,t,n,r){let i,a,o;r&&(o=d=>{let p=r();return(0,_te.isPromise)(p)?p.then(()=>d):d}),typeof e.return=="function"&&(i=e.return,a=d=>{let p=()=>Promise.reject(d);return i.call(e).then(p,p)});function c(d){return d.done?o?o(d):d:rk(d.value,t).then(ik,a)}let l;if(n){let d=n;l=p=>rk(p,d).then(ik,a)}return{next(){return e.next().then(c,l)},return(){let d=i?i.call(e).then(c,l):Promise.resolve({value:void 0,done:!0});return o?d.then(o):d},throw(d){return typeof e.throw=="function"?e.throw(d).then(c,l):Promise.reject(d).catch(a)},[Symbol.asyncIterator](){return this}}}LT.mapAsyncIterator=vte;function rk(e,t){return new Promise(n=>n(t(e)))}function ik(e){return{value:e,done:!1}}});var sk=w(Ul=>{"use strict";m();T();N();Object.defineProperty(Ul,"__esModule",{value:!0});Ul.createVariableNameGenerator=Ul.updateArgument=void 0;var Nc=De(),Ste=Xv();function Ote(e,t,n,r,i,a,o){if(e[r]={kind:Nc.Kind.ARGUMENT,name:{kind:Nc.Kind.NAME,value:r},value:{kind:Nc.Kind.VARIABLE,name:{kind:Nc.Kind.NAME,value:i}}},t[i]={kind:Nc.Kind.VARIABLE_DEFINITION,variable:{kind:Nc.Kind.VARIABLE,name:{kind:Nc.Kind.NAME,value:i}},type:(0,Ste.astFromType)(a)},o!==void 0){n[i]=o;return}i in n&&delete n[i]}Ul.updateArgument=Ote;function Dte(e){let t=0;return n=>{let r;do r=`_v${(t++).toString()}_${n}`;while(r in e);return r}}Ul.createVariableNameGenerator=Dte});var ok=w(CT=>{"use strict";m();T();N();Object.defineProperty(CT,"__esModule",{value:!0});CT.implementsAbstractType=void 0;var SS=De();function bte(e,t,n){return n==null||t==null?!1:t===n?!0:(0,SS.isCompositeType)(t)&&(0,SS.isCompositeType)(n)?(0,SS.doTypesOverlap)(e,t,n):!1}CT.implementsAbstractType=bte});var uk=w(BT=>{"use strict";m();T();N();Object.defineProperty(BT,"__esModule",{value:!0});BT.observableToAsyncIterable=void 0;function Ate(e){let t=[],n=[],r=!0,i=p=>{t.length!==0?t.shift()({value:p,done:!1}):n.push({value:p,done:!1})},a=p=>{t.length!==0?t.shift()({value:{errors:[p]},done:!1}):n.push({value:{errors:[p]},done:!1})},o=()=>{t.length!==0?t.shift()({done:!0}):n.push({done:!0})},c=()=>new Promise(p=>{if(n.length!==0){let y=n.shift();p(y)}else t.push(p)}),l=e.subscribe({next(p){i(p)},error(p){a(p)},complete(){o()}}),d=()=>{if(r){r=!1,l.unsubscribe();for(let p of t)p({value:void 0,done:!0});t.length=0,n.length=0}};return{next(){return r?c():this.return()},return(){return d(),Promise.resolve({value:void 0,done:!0})},throw(p){return d(),Promise.reject(p)},[Symbol.asyncIterator](){return this}}}BT.observableToAsyncIterable=Ate});var ck=w(UT=>{"use strict";m();T();N();Object.defineProperty(UT,"__esModule",{value:!0});UT.AccumulatorMap=void 0;var OS=class extends Map{get[Symbol.toStringTag](){return"AccumulatorMap"}add(t,n){let r=this.get(t);r===void 0?this.set(t,[n]):r.push(n)}};UT.AccumulatorMap=OS});var DS=w(kl=>{"use strict";m();T();N();Object.defineProperty(kl,"__esModule",{value:!0});kl.GraphQLStreamDirective=kl.GraphQLDeferDirective=void 0;var Ki=De();kl.GraphQLDeferDirective=new Ki.GraphQLDirective({name:"defer",description:"Directs the executor to defer this fragment when the `if` argument is true or undefined.",locations:[Ki.DirectiveLocation.FRAGMENT_SPREAD,Ki.DirectiveLocation.INLINE_FRAGMENT],args:{if:{type:new Ki.GraphQLNonNull(Ki.GraphQLBoolean),description:"Deferred when true or undefined.",defaultValue:!0},label:{type:Ki.GraphQLString,description:"Unique name"}}});kl.GraphQLStreamDirective=new Ki.GraphQLDirective({name:"stream",description:"Directs the executor to stream plural fields when the `if` argument is true or undefined.",locations:[Ki.DirectiveLocation.FIELD],args:{if:{type:new Ki.GraphQLNonNull(Ki.GraphQLBoolean),description:"Stream when true or undefined.",defaultValue:!0},label:{type:Ki.GraphQLString,description:"Unique name"},initialCount:{defaultValue:0,type:Ki.GraphQLInt,description:"Number of items to return immediately"}}})});var RS=w(Wr=>{"use strict";m();T();N();Object.defineProperty(Wr,"__esModule",{value:!0});Wr.collectSubFields=Wr.getDeferValues=Wr.getFieldEntryKey=Wr.doesFragmentConditionMatch=Wr.shouldIncludeNode=Wr.collectFields=void 0;var Ga=De(),MT=ck(),Rte=DS(),Pte=Al();function Ml(e,t,n,r,i,a,o,c){for(let l of i.selections)switch(l.kind){case Ga.Kind.FIELD:{if(!kT(n,l))continue;a.add(lk(l),l);break}case Ga.Kind.INLINE_FRAGMENT:{if(!kT(n,l)||!bS(e,l,r))continue;let d=AS(n,l);if(d){let p=new MT.AccumulatorMap;Ml(e,t,n,r,l.selectionSet,p,o,c),o.push({label:d.label,fields:p})}else Ml(e,t,n,r,l.selectionSet,a,o,c);break}case Ga.Kind.FRAGMENT_SPREAD:{let d=l.name.value;if(!kT(n,l))continue;let p=AS(n,l);if(c.has(d)&&!p)continue;let y=t[d];if(!y||!bS(e,y,r))continue;if(p||c.add(d),p){let I=new MT.AccumulatorMap;Ml(e,t,n,r,y.selectionSet,I,o,c),o.push({label:p.label,fields:I})}else Ml(e,t,n,r,y.selectionSet,a,o,c);break}}}function Fte(e,t,n,r,i){let a=new MT.AccumulatorMap,o=[];return Ml(e,t,n,r,i,a,o,new Set),{fields:a,patches:o}}Wr.collectFields=Fte;function kT(e,t){let n=(0,Ga.getDirectiveValues)(Ga.GraphQLSkipDirective,t,e);if((n==null?void 0:n.if)===!0)return!1;let r=(0,Ga.getDirectiveValues)(Ga.GraphQLIncludeDirective,t,e);return(r==null?void 0:r.if)!==!1}Wr.shouldIncludeNode=kT;function bS(e,t,n){let r=t.typeCondition;if(!r)return!0;let i=(0,Ga.typeFromAST)(e,r);return i===n?!0:(0,Ga.isAbstractType)(i)?e.getPossibleTypes(i).includes(n):!1}Wr.doesFragmentConditionMatch=bS;function lk(e){return e.alias?e.alias.value:e.name.value}Wr.getFieldEntryKey=lk;function AS(e,t){let n=(0,Ga.getDirectiveValues)(Rte.GraphQLDeferDirective,t,e);if(n&&n.if!==!1)return{label:typeof n.label=="string"?n.label:void 0}}Wr.getDeferValues=AS;Wr.collectSubFields=(0,Pte.memoize5)(function(t,n,r,i,a){let o=new MT.AccumulatorMap,c=new Set,l=[],d={fields:o,patches:l};for(let p of a)p.selectionSet&&Ml(t,n,r,i,p.selectionSet,o,l,c);return d})});var PS=w(xl=>{"use strict";m();T();N();Object.defineProperty(xl,"__esModule",{value:!0});xl.getOperationASTFromRequest=xl.getOperationASTFromDocument=void 0;var wte=De(),Lte=Al();function dk(e,t){let n=(0,wte.getOperationAST)(e,t);if(!n)throw new Error(`Cannot infer operation ${t||""}`);return n}xl.getOperationASTFromDocument=dk;xl.getOperationASTFromRequest=(0,Lte.memoize1)(function(t){return dk(t.document,t.operationName)})});var mk=w(mu=>{"use strict";m();T();N();Object.defineProperty(mu,"__esModule",{value:!0});mu.visitResult=mu.visitErrors=mu.visitData=void 0;var pu=De(),FS=RS(),Cte=PS();function wS(e,t,n){if(Array.isArray(e))return e.map(r=>wS(r,t,n));if(typeof e=="object"){let r=t!=null?t(e):e;if(r!=null)for(let i in r){let a=r[i];Object.defineProperty(r,i,{value:wS(a,t,n)})}return n!=null?n(r):r}return e}mu.visitData=wS;function Bte(e,t){return e.map(n=>t(n))}mu.visitErrors=Bte;function Ute(e,t,n,r,i){let a=t.document.definitions.reduce((I,v)=>(v.kind===pu.Kind.FRAGMENT_DEFINITION&&(I[v.name.value]=v),I),{}),o=t.variables||{},c={segmentInfoMap:new Map,unpathedErrors:new Set},l=e.data,d=e.errors,p=d!=null&&i!=null,y=(0,Cte.getOperationASTFromRequest)(t);return l!=null&&y!=null&&(e.data=xte(l,y,n,a,o,r,p?d:void 0,c)),d!=null&&i&&(e.errors=kte(d,i,c)),e}mu.visitResult=Ute;function kte(e,t,n){let r=n.segmentInfoMap,i=n.unpathedErrors,a=t.__unpathed;return e.map(o=>{let c=r.get(o),l=c==null?o:c.reduceRight((d,p)=>{let y=p.type.name,I=t[y];if(I==null)return d;let v=I[p.fieldName];return v==null?d:v(d,p.pathIndex)},o);return a&&i.has(o)?a(l):l})}function Mte(e,t){switch(t.operation){case"query":return e.getQueryType();case"mutation":return e.getMutationType();case"subscription":return e.getSubscriptionType()}}function xte(e,t,n,r,i,a,o,c){let l=Mte(n,t),{fields:d}=(0,FS.collectFields)(n,r,i,l,t.selectionSet);return LS(e,l,d,n,r,i,a,0,o,c)}function LS(e,t,n,r,i,a,o,c,l,d){var se;let p=t.getFields(),y=o==null?void 0:o[t.name],I=y==null?void 0:y.__enter,v=I!=null?I(e):e,F,k=null;if(l!=null){F=Vte(l,c),k=F.errorMap;for(let ie of F.unpathedErrors)d.unpathedErrors.add(ie)}for(let[ie,Te]of n){let de=Te[0].name.value,Re=(se=p[de])==null?void 0:se.type;if(Re==null)switch(de){case"__typename":Re=pu.TypeNameMetaFieldDef.type;break;case"__schema":Re=pu.SchemaMetaFieldDef.type;break;case"__type":Re=pu.TypeMetaFieldDef.type;break}let xe=c+1,tt;k&&(tt=k[ie],tt!=null&&delete k[ie],jte(t,de,xe,tt,d));let ee=pk(e[ie],Re,Te,r,i,a,o,xe,tt,d);fk(v,ie,ee,y,de)}let K=v.__typename;if(K!=null&&fk(v,"__typename",K,y,"__typename"),k)for(let ie in k){let Te=k[ie];for(let de of Te)d.unpathedErrors.add(de)}let J=y==null?void 0:y.__leave;return J!=null?J(v):v}function fk(e,t,n,r,i){if(r==null){e[t]=n;return}let a=r[i];if(a==null){e[t]=n;return}let o=a(n);if(o===void 0){delete e[t];return}e[t]=o}function qte(e,t,n,r,i,a,o,c,l,d){return e.map(p=>pk(p,t,n,r,i,a,o,c+1,l,d))}function pk(e,t,n,r,i,a,o,c,l=[],d){if(e==null)return e;let p=(0,pu.getNullableType)(t);if((0,pu.isListType)(p))return qte(e,p.ofType,n,r,i,a,o,c,l,d);if((0,pu.isAbstractType)(p)){let v=r.getType(e.__typename),{fields:F}=(0,FS.collectSubFields)(r,i,a,v,n);return LS(e,v,F,r,i,a,o,c,l,d)}else if((0,pu.isObjectType)(p)){let{fields:v}=(0,FS.collectSubFields)(r,i,a,p,n);return LS(e,p,v,r,i,a,o,c,l,d)}let y=o==null?void 0:o[p.name];if(y==null)return e;let I=y(e);return I===void 0?e:I}function Vte(e,t){var i;let n=Object.create(null),r=new Set;for(let a of e){let o=(i=a.path)==null?void 0:i[t];if(o==null){r.add(a);continue}o in n?n[o].push(a):n[o]=[a]}return{errorMap:n,unpathedErrors:r}}function jte(e,t,n,r=[],i){for(let a of r){let o={type:e,fieldName:t,pathIndex:n},c=i.segmentInfoMap.get(a);c==null?i.segmentInfoMap.set(a,[o]):c.push(o)}}});var Nk=w(xT=>{"use strict";m();T();N();Object.defineProperty(xT,"__esModule",{value:!0});xT.valueMatchesCriteria=void 0;function CS(e,t){return e==null?e===t:Array.isArray(e)?Array.isArray(t)&&e.every((n,r)=>CS(n,t[r])):typeof e=="object"?typeof t=="object"&&t&&Object.keys(t).every(n=>CS(e[n],t[n])):t instanceof RegExp?t.test(e):e===t}xT.valueMatchesCriteria=CS});var Tk=w(qT=>{"use strict";m();T();N();Object.defineProperty(qT,"__esModule",{value:!0});qT.isAsyncIterable=void 0;function Kte(e){return(e==null?void 0:e[Symbol.asyncIterator])!=null}qT.isAsyncIterable=Kte});var Ek=w(VT=>{"use strict";m();T();N();Object.defineProperty(VT,"__esModule",{value:!0});VT.isDocumentNode=void 0;var Gte=De();function $te(e){return e&&typeof e=="object"&&"kind"in e&&e.kind===Gte.Kind.DOCUMENT}VT.isDocumentNode=$te});var hk=w(()=>{"use strict";m();T();N()});var _k=w(Nu=>{"use strict";m();T();N();Object.defineProperty(Nu,"__esModule",{value:!0});Nu.withCancel=Nu.getAsyncIterableWithCancel=Nu.getAsyncIteratorWithCancel=void 0;var Qte=Al();function Yte(e){return Di(this,null,function*(){return{value:e,done:!0}})}var yk=(0,Qte.memoize2)(function(t,n){return function(...i){return Reflect.apply(n,t,i)}});function Ik(e,t){return new Proxy(e,{has(n,r){return r==="return"?!0:Reflect.has(n,r)},get(n,r,i){let a=Reflect.get(n,r,i);if(r==="return"){let o=a||Yte;return function(l){return Di(this,null,function*(){let d=yield t(l);return Reflect.apply(o,n,[d])})}}else if(typeof a=="function")return yk(n,a);return a}})}Nu.getAsyncIteratorWithCancel=Ik;function gk(e,t){return new Proxy(e,{get(n,r,i){let a=Reflect.get(n,r,i);return Symbol.asyncIterator===r?function(){let c=Reflect.apply(a,n,[]);return Ik(c,t)}:typeof a=="function"?yk(n,a):a}})}Nu.getAsyncIterableWithCancel=gk;Nu.withCancel=gk});var vk=w(jT=>{"use strict";m();T();N();Object.defineProperty(jT,"__esModule",{value:!0});jT.fixSchemaAst=void 0;var Jte=De(),Hte=aS();function zte(e,t){let n=(0,Hte.getDocumentNodeFromSchema)(e);return(0,Jte.buildASTSchema)(n,x({},t||{}))}function Wte(e,t){let n;return(!e.astNode||!e.extensionASTNodes)&&(n=zte(e,t)),!e.astNode&&(n!=null&&n.astNode)&&(e.astNode=n.astNode),!e.extensionASTNodes&&(n!=null&&n.astNode)&&(e.extensionASTNodes=n.extensionASTNodes),e}jT.fixSchemaAst=Wte});var Sk=w(KT=>{"use strict";m();T();N();Object.defineProperty(KT,"__esModule",{value:!0});KT.extractExtensionsFromSchema=void 0;var Ds=fc(),Xte=Cl();function la(e={}){let t=x({},e),n=t.directives;if(n!=null)for(let r in n){let i=n[r];Array.isArray(i)||(n[r]=[i])}return t}function Zte(e){let t={schemaExtensions:la(e.extensions),types:{}};return(0,Xte.mapSchema)(e,{[Ds.MapperKind.OBJECT_TYPE]:n=>(t.types[n.name]={fields:{},type:"object",extensions:la(n.extensions)},n),[Ds.MapperKind.INTERFACE_TYPE]:n=>(t.types[n.name]={fields:{},type:"interface",extensions:la(n.extensions)},n),[Ds.MapperKind.FIELD]:(n,r,i)=>{t.types[i].fields[r]={arguments:{},extensions:la(n.extensions)};let a=n.args;if(a!=null)for(let o in a)t.types[i].fields[r].arguments[o]=la(a[o].extensions);return n},[Ds.MapperKind.ENUM_TYPE]:n=>(t.types[n.name]={values:{},type:"enum",extensions:la(n.extensions)},n),[Ds.MapperKind.ENUM_VALUE]:(n,r,i,a)=>(t.types[r].values[a]=la(n.extensions),n),[Ds.MapperKind.SCALAR_TYPE]:n=>(t.types[n.name]={type:"scalar",extensions:la(n.extensions)},n),[Ds.MapperKind.UNION_TYPE]:n=>(t.types[n.name]={type:"union",extensions:la(n.extensions)},n),[Ds.MapperKind.INPUT_OBJECT_TYPE]:n=>(t.types[n.name]={fields:{},type:"input",extensions:la(n.extensions)},n),[Ds.MapperKind.INPUT_OBJECT_FIELD]:(n,r,i)=>(t.types[i].fields[r]={extensions:la(n.extensions)},n)}),t}KT.extractExtensionsFromSchema=Zte});var Ok=w(Tu=>{"use strict";m();T();N();Object.defineProperty(Tu,"__esModule",{value:!0});Tu.printPathArray=Tu.pathToArray=Tu.addPath=void 0;function ene(e,t,n){return{prev:e,key:t,typename:n}}Tu.addPath=ene;function tne(e){let t=[],n=e;for(;n;)t.push(n.key),n=n.prev;return t.reverse()}Tu.pathToArray=tne;function nne(e){return e.map(t=>typeof t=="number"?"["+t.toString()+"]":"."+t).join("")}Tu.printPathArray=nne});var Dk=w(BS=>{"use strict";m();T();N();function GT(e,t,n){if(typeof e=="object"&&typeof t=="object"){if(Array.isArray(e)&&Array.isArray(t))for(n=0;n{"use strict";m();T();N();Object.defineProperty($T,"__esModule",{value:!0});$T.mergeIncrementalResult=void 0;var US=Dk();function bk({incrementalResult:e,executionResult:t}){var r;let n=["data",...(r=e.path)!=null?r:[]];if(e.items)for(let i of e.items)(0,US.dset)(t,n,i),n[n.length-1]++;e.data&&(0,US.dset)(t,n,e.data),e.errors&&(t.errors=t.errors||[],t.errors.push(...e.errors)),e.extensions&&(0,US.dset)(t,"extensions",e.extensions),e.incremental&&e.incremental.forEach(i=>{bk({incrementalResult:i,executionResult:t})})}$T.mergeIncrementalResult=bk});var Pk=w(ql=>{"use strict";m();T();N();Object.defineProperty(ql,"__esModule",{value:!0});ql.debugTimerEnd=ql.debugTimerStart=void 0;var Rk=new Set;function ine(e){let t=(globalThis==null?void 0:globalThis.process.env.DEBUG)||globalThis.DEBUG;(t==="1"||t!=null&&t.includes(e))&&(Rk.add(e),console.time(e))}ql.debugTimerStart=ine;function ane(e){Rk.has(e)&&console.timeEnd(e)}ql.debugTimerEnd=ane});var da=w(Qe=>{"use strict";m();T();N();Object.defineProperty(Qe,"__esModule",{value:!0});Qe.inspect=void 0;var Je=(kB(),pm(UB));Je.__exportStar(MB(),Qe);Je.__exportStar(bf(),Qe);Je.__exportStar(Yv(),Qe);Je.__exportStar(Jv(),Qe);Je.__exportStar(JB(),Qe);Je.__exportStar(zv(),Qe);Je.__exportStar(aS(),Qe);Je.__exportStar(Jv(),Qe);Je.__exportStar(dU(),Qe);Je.__exportStar(fU(),Qe);Je.__exportStar(OU(),Qe);Je.__exportStar(LU(),Qe);Je.__exportStar(BU(),Qe);Je.__exportStar(jU(),Qe);Je.__exportStar(GU(),Qe);Je.__exportStar($U(),Qe);Je.__exportStar(YU(),Qe);Je.__exportStar(JU(),Qe);Je.__exportStar(Cl(),Qe);Je.__exportStar(_S(),Qe);Je.__exportStar(TT(),Qe);Je.__exportStar(zU(),Qe);Je.__exportStar(XU(),Qe);Je.__exportStar(fc(),Qe);Je.__exportStar(mS(),Qe);Je.__exportStar(ZU(),Qe);Je.__exportStar(ek(),Qe);Je.__exportStar(tk(),Qe);Je.__exportStar(nk(),Qe);Je.__exportStar(NS(),Qe);Je.__exportStar(ak(),Qe);Je.__exportStar(sk(),Qe);Je.__exportStar(ok(),Qe);Je.__exportStar(WN(),Qe);Je.__exportStar(uk(),Qe);Je.__exportStar(mk(),Qe);Je.__exportStar(Qv(),Qe);Je.__exportStar(Nk(),Qe);Je.__exportStar(Tk(),Qe);Je.__exportStar(Ek(),Qe);Je.__exportStar(aT(),Qe);Je.__exportStar(hk(),Qe);Je.__exportStar(_k(),Qe);Je.__exportStar(Ff(),Qe);Je.__exportStar(oS(),Qe);Je.__exportStar(RS(),Qe);var sne=Af();Object.defineProperty(Qe,"inspect",{enumerable:!0,get:function(){return sne.inspect}});Je.__exportStar(Al(),Qe);Je.__exportStar(vk(),Qe);Je.__exportStar(PS(),Qe);Je.__exportStar(Sk(),Qe);Je.__exportStar(Ok(),Qe);Je.__exportStar(Rf(),Qe);Je.__exportStar(DS(),Qe);Je.__exportStar(Ak(),Qe);Je.__exportStar(Pk(),Qe)});var wk=w(QT=>{"use strict";m();T();N();Object.defineProperty(QT,"__esModule",{value:!0});QT.mergeResolvers=void 0;var one=da();function Fk(e,t){if(!e||Array.isArray(e)&&e.length===0)return{};if(!Array.isArray(e))return e;if(e.length===1)return e[0]||{};let n=new Array;for(let i of e)Array.isArray(i)&&(i=Fk(i)),typeof i=="object"&&i&&n.push(i);let r=(0,one.mergeDeep)(n,!0);if(t!=null&&t.exclusions)for(let i of t.exclusions){let[a,o]=i.split(".");!o||o==="*"?delete r[a]:r[a]&&delete r[a][o]}return r}QT.mergeResolvers=Fk});var kS=w(YT=>{"use strict";m();T();N();Object.defineProperty(YT,"__esModule",{value:!0});YT.mergeArguments=void 0;var Lk=da();function une(e,t,n){let r=cne([...t,...e].filter(Lk.isSome),n);return n&&n.sort&&r.sort(Lk.compareNodes),r}YT.mergeArguments=une;function cne(e,t){return e.reduce((n,r)=>{let i=n.findIndex(a=>a.name.value===r.name.value);return i===-1?n.concat([r]):(t!=null&&t.reverseArguments||(n[i]=r),n)},[])}});var Gi=w(Vl=>{"use strict";m();T();N();Object.defineProperty(Vl,"__esModule",{value:!0});Vl.mergeDirective=Vl.mergeDirectives=void 0;var Ck=De(),lne=da();function dne(e,t){return!!e.find(n=>n.name.value===t.name.value)}function Bk(e,t){var n;return!!((n=t==null?void 0:t[e.name.value])!=null&&n.repeatable)}function fne(e,t){return t.some(({value:n})=>n===e.value)}function Uk(e,t){let n=[...t];for(let r of e){let i=n.findIndex(a=>a.name.value===r.name.value);if(i>-1){let a=n[i];if(a.value.kind==="ListValue"){let o=a.value.values,c=r.value.values;a.value.values=Ene(o,c,(l,d)=>{let p=l.value;return!p||!d.some(y=>y.value===p)})}else a.value=r.value}else n.push(r)}return n}function pne(e,t){return e.map((n,r,i)=>{let a=i.findIndex(o=>o.name.value===n.name.value);if(a!==r&&!Bk(n,t)){let o=i[a];return n.arguments=Uk(n.arguments,o.arguments),null}return n}).filter(lne.isSome)}function mne(e=[],t=[],n,r){let i=n&&n.reverseDirectives,a=i?e:t,o=i?t:e,c=pne([...a],r);for(let l of o)if(dne(c,l)&&!Bk(l,r)){let d=c.findIndex(y=>y.name.value===l.name.value),p=c[d];c[d].arguments=Uk(l.arguments||[],p.arguments||[])}else c.push(l);return c}Vl.mergeDirectives=mne;function Nne(e,t){let n=(0,Ck.print)(Q(x({},e),{description:void 0})),r=(0,Ck.print)(Q(x({},t),{description:void 0})),i=new RegExp("(directive @w*d*)|( on .*$)","g");if(!(n.replace(i,"")===r.replace(i,"")))throw new Error(`Unable to merge GraphQL directive "${e.name.value}". +`);return i.description?$(M({},i),{description:$(M({},i.description),{value:i.description.value+` +`+o,block:!0})}):$(M({},i),{description:{kind:Ji.Kind.STRING,value:o,block:c}})}}}})}gu.transformCommentsToDescriptions=GU;function $U(e){return(0,Ji.isTypeSystemDefinitionNode)(e)||e.kind===Ji.Kind.FIELD_DEFINITION||e.kind===Ji.Kind.INPUT_VALUE_DEFINITION||e.kind===Ji.Kind.ENUM_VALUE_DEFINITION}gu.isDescribable=$U});var ek=F(bT=>{"use strict";m();T();N();Object.defineProperty(bT,"__esModule",{value:!0});bT.buildOperationNodeForField=void 0;var pt=Se(),zU=Kp(),PS=[],DT=new Map;function WU(e){PS.push(e)}function YU(){PS=[]}function JU(){DT=new Map}function tte({schema:e,kind:t,field:n,models:r,ignore:i=[],depthLimit:a,circularReferenceDepth:o,argNames:c,selectedFields:l=!0}){YU(),JU();let d=(0,zU.getRootTypeNames)(e),f=nte({schema:e,fieldName:n,kind:t,models:r||[],ignore:i,depthLimit:a||1/0,circularReferenceDepth:o||1,argNames:c,selectedFields:l,rootTypeNames:d});return f.variableDefinitions=[...PS],YU(),JU(),f}bT.buildOperationNodeForField=tte;function nte({schema:e,fieldName:t,kind:n,models:r,ignore:i,depthLimit:a,circularReferenceDepth:o,argNames:c,selectedFields:l,rootTypeNames:d}){let f=(0,zU.getDefinedRootType)(e,n),y=f.getFields()[t],I=`${t}_${n}`;if(y.args)for(let v of y.args){let w=v.name;(!c||c.includes(w))&&WU(XU(v,w))}return{kind:pt.Kind.OPERATION_DEFINITION,operation:n,name:{kind:pt.Kind.NAME,value:I},variableDefinitions:[],selectionSet:{kind:pt.Kind.SELECTION_SET,selections:[ZU({type:f,field:y,models:r,firstCall:!0,path:[],ancestors:[],ignore:i,depthLimit:a,circularReferenceDepth:o,schema:e,depth:0,argNames:c,selectedFields:l,rootTypeNames:d})]}}}function RS({parent:e,type:t,models:n,firstCall:r,path:i,ancestors:a,ignore:o,depthLimit:c,circularReferenceDepth:l,schema:d,depth:f,argNames:y,selectedFields:I,rootTypeNames:v}){if(!(typeof I=="boolean"&&f>c)){if((0,pt.isUnionType)(t)){let w=t.getTypes();return{kind:pt.Kind.SELECTION_SET,selections:w.filter(U=>!AS([...a,U],{depth:l})).map(U=>({kind:pt.Kind.INLINE_FRAGMENT,typeCondition:{kind:pt.Kind.NAMED_TYPE,name:{kind:pt.Kind.NAME,value:U.name}},selectionSet:RS({parent:t,type:U,models:n,path:i,ancestors:a,ignore:o,depthLimit:c,circularReferenceDepth:l,schema:d,depth:f,argNames:y,selectedFields:I,rootTypeNames:v})})).filter(U=>{var V,Y;return((Y=(V=U==null?void 0:U.selectionSet)==null?void 0:V.selections)==null?void 0:Y.length)>0})}}if((0,pt.isInterfaceType)(t)){let w=Object.values(d.getTypeMap()).filter(U=>(0,pt.isObjectType)(U)&&U.getInterfaces().includes(t));return{kind:pt.Kind.SELECTION_SET,selections:w.filter(U=>!AS([...a,U],{depth:l})).map(U=>({kind:pt.Kind.INLINE_FRAGMENT,typeCondition:{kind:pt.Kind.NAMED_TYPE,name:{kind:pt.Kind.NAME,value:U.name}},selectionSet:RS({parent:t,type:U,models:n,path:i,ancestors:a,ignore:o,depthLimit:c,circularReferenceDepth:l,schema:d,depth:f,argNames:y,selectedFields:I,rootTypeNames:v})})).filter(U=>{var V,Y;return((Y=(V=U==null?void 0:U.selectionSet)==null?void 0:V.selections)==null?void 0:Y.length)>0})}}if((0,pt.isObjectType)(t)&&!v.has(t.name)){let w=o.includes(t.name)||o.includes(`${e.name}.${i[i.length-1]}`),U=n.includes(t.name);if(!r&&U&&!w)return{kind:pt.Kind.SELECTION_SET,selections:[{kind:pt.Kind.FIELD,name:{kind:pt.Kind.NAME,value:"id"}}]};let V=t.getFields();return{kind:pt.Kind.SELECTION_SET,selections:Object.keys(V).filter(Y=>!AS([...a,(0,pt.getNamedType)(V[Y].type)],{depth:l})).map(Y=>{let re=typeof I=="object"?I[Y]:!0;return re?ZU({type:t,field:V[Y],models:n,path:[...i,Y],ancestors:a,ignore:o,depthLimit:c,circularReferenceDepth:l,schema:d,depth:f,argNames:y,selectedFields:re,rootTypeNames:v}):null}).filter(Y=>{var re,ne;return Y==null?!1:"selectionSet"in Y?!!((ne=(re=Y.selectionSet)==null?void 0:re.selections)!=null&&ne.length):!0})}}}}function XU(e,t){function n(r){return(0,pt.isListType)(r)?{kind:pt.Kind.LIST_TYPE,type:n(r.ofType)}:(0,pt.isNonNullType)(r)?{kind:pt.Kind.NON_NULL_TYPE,type:n(r.ofType)}:{kind:pt.Kind.NAMED_TYPE,name:{kind:pt.Kind.NAME,value:r.name}}}return{kind:pt.Kind.VARIABLE_DEFINITION,variable:{kind:pt.Kind.VARIABLE,name:{kind:pt.Kind.NAME,value:t||e.name}},type:n(e.type)}}function HU(e,t){return[...t,e].join("_")}function ZU({type:e,field:t,models:n,firstCall:r,path:i,ancestors:a,ignore:o,depthLimit:c,circularReferenceDepth:l,schema:d,depth:f,argNames:y,selectedFields:I,rootTypeNames:v}){let w=(0,pt.getNamedType)(t.type),U=[],V=!1;if(t.args&&t.args.length&&(U=t.args.map(me=>{let ue=HU(me.name,i);return y&&!y.includes(ue)?((0,pt.isNonNullType)(me.type)&&(V=!0),null):(r||WU(XU(me,ue)),{kind:pt.Kind.ARGUMENT,name:{kind:pt.Kind.NAME,value:me.name},value:{kind:pt.Kind.VARIABLE,name:{kind:pt.Kind.NAME,value:HU(me.name,i)}}})}).filter(Boolean)),V)return null;let Y=[...i,t.name],re=Y.join("."),ne=t.name;return DT.has(re)&&DT.get(re)!==t.type.toString()&&(ne+=t.type.toString().replace("!","NonNull").replace("[","List").replace("]","")),DT.set(re,t.type.toString()),!(0,pt.isScalarType)(w)&&!(0,pt.isEnumType)(w)?$(M({kind:pt.Kind.FIELD,name:{kind:pt.Kind.NAME,value:t.name}},ne!==t.name&&{alias:{kind:pt.Kind.NAME,value:ne}}),{selectionSet:RS({parent:e,type:w,models:n,firstCall:r,path:Y,ancestors:[...a,e],ignore:o,depthLimit:c,circularReferenceDepth:l,schema:d,depth:f+1,argNames:y,selectedFields:I,rootTypeNames:v})||void 0,arguments:U}):$(M({kind:pt.Kind.FIELD,name:{kind:pt.Kind.NAME,value:t.name}},ne!==t.name&&{alias:{kind:pt.Kind.NAME,value:ne}}),{arguments:U})}function AS(e,t={depth:1}){let n=e[e.length-1];return(0,pt.isScalarType)(n)?!1:e.filter(i=>i.name===n.name).length>t.depth}});var nk=F(AT=>{"use strict";m();T();N();Object.defineProperty(AT,"__esModule",{value:!0});AT.DirectiveLocation=void 0;var tk;(function(e){e.QUERY="QUERY",e.MUTATION="MUTATION",e.SUBSCRIPTION="SUBSCRIPTION",e.FIELD="FIELD",e.FRAGMENT_DEFINITION="FRAGMENT_DEFINITION",e.FRAGMENT_SPREAD="FRAGMENT_SPREAD",e.INLINE_FRAGMENT="INLINE_FRAGMENT",e.VARIABLE_DEFINITION="VARIABLE_DEFINITION",e.SCHEMA="SCHEMA",e.SCALAR="SCALAR",e.OBJECT="OBJECT",e.FIELD_DEFINITION="FIELD_DEFINITION",e.ARGUMENT_DEFINITION="ARGUMENT_DEFINITION",e.INTERFACE="INTERFACE",e.UNION="UNION",e.ENUM="ENUM",e.ENUM_VALUE="ENUM_VALUE",e.INPUT_OBJECT="INPUT_OBJECT",e.INPUT_FIELD_DEFINITION="INPUT_FIELD_DEFINITION"})(tk||(AT.DirectiveLocation=tk={}))});var _c=F(RT=>{"use strict";m();T();N();Object.defineProperty(RT,"__esModule",{value:!0});RT.MapperKind=void 0;var rk;(function(e){e.TYPE="MapperKind.TYPE",e.SCALAR_TYPE="MapperKind.SCALAR_TYPE",e.ENUM_TYPE="MapperKind.ENUM_TYPE",e.COMPOSITE_TYPE="MapperKind.COMPOSITE_TYPE",e.OBJECT_TYPE="MapperKind.OBJECT_TYPE",e.INPUT_OBJECT_TYPE="MapperKind.INPUT_OBJECT_TYPE",e.ABSTRACT_TYPE="MapperKind.ABSTRACT_TYPE",e.UNION_TYPE="MapperKind.UNION_TYPE",e.INTERFACE_TYPE="MapperKind.INTERFACE_TYPE",e.ROOT_OBJECT="MapperKind.ROOT_OBJECT",e.QUERY="MapperKind.QUERY",e.MUTATION="MapperKind.MUTATION",e.SUBSCRIPTION="MapperKind.SUBSCRIPTION",e.DIRECTIVE="MapperKind.DIRECTIVE",e.FIELD="MapperKind.FIELD",e.COMPOSITE_FIELD="MapperKind.COMPOSITE_FIELD",e.OBJECT_FIELD="MapperKind.OBJECT_FIELD",e.ROOT_FIELD="MapperKind.ROOT_FIELD",e.QUERY_ROOT_FIELD="MapperKind.QUERY_ROOT_FIELD",e.MUTATION_ROOT_FIELD="MapperKind.MUTATION_ROOT_FIELD",e.SUBSCRIPTION_ROOT_FIELD="MapperKind.SUBSCRIPTION_ROOT_FIELD",e.INTERFACE_FIELD="MapperKind.INTERFACE_FIELD",e.INPUT_OBJECT_FIELD="MapperKind.INPUT_OBJECT_FIELD",e.ARGUMENT="MapperKind.ARGUMENT",e.ENUM_VALUE="MapperKind.ENUM_VALUE"})(rk||(RT.MapperKind=rk={}))});var FS=F(PT=>{"use strict";m();T();N();Object.defineProperty(PT,"__esModule",{value:!0});PT.getObjectTypeFromTypeMap=void 0;var rte=Se();function ite(e,t){if(t){let n=e[t.name];if((0,rte.isObjectType)(n))return n}}PT.getObjectTypeFromTypeMap=ite});var CS=F(Ja=>{"use strict";m();T();N();Object.defineProperty(Ja,"__esModule",{value:!0});Ja.getBuiltInForStub=Ja.isNamedStub=Ja.createStub=Ja.createNamedStub=void 0;var Er=Se();function wS(e,t){let n;return t==="object"?n=Er.GraphQLObjectType:t==="interface"?n=Er.GraphQLInterfaceType:n=Er.GraphQLInputObjectType,new n({name:e,fields:{_fake:{type:Er.GraphQLString}}})}Ja.createNamedStub=wS;function LS(e,t){switch(e.kind){case Er.Kind.LIST_TYPE:return new Er.GraphQLList(LS(e.type,t));case Er.Kind.NON_NULL_TYPE:return new Er.GraphQLNonNull(LS(e.type,t));default:return t==="output"?wS(e.name.value,"object"):wS(e.name.value,"input")}}Ja.createStub=LS;function ate(e){if("getFields"in e){let t=e.getFields();for(let n in t)return t[n].name==="_fake"}return!1}Ja.isNamedStub=ate;function ste(e){switch(e.name){case Er.GraphQLInt.name:return Er.GraphQLInt;case Er.GraphQLFloat.name:return Er.GraphQLFloat;case Er.GraphQLString.name:return Er.GraphQLString;case Er.GraphQLBoolean.name:return Er.GraphQLBoolean;case Er.GraphQLID.name:return Er.GraphQLID;default:return e}}Ja.getBuiltInForStub=ste});var wT=F(FT=>{"use strict";m();T();N();Object.defineProperty(FT,"__esModule",{value:!0});FT.rewireTypes=void 0;var Xn=Se(),ik=CS();function ote(e,t){let n=Object.create(null);for(let I in e)n[I]=e[I];let r=Object.create(null);for(let I in n){let v=n[I];if(v==null||I.startsWith("__"))continue;let w=v.name;if(!w.startsWith("__")){if(r[w]!=null){console.warn(`Duplicate schema type name ${w} found; keeping the existing one found in the schema`);continue}r[w]=v}}for(let I in r)r[I]=c(r[I]);let i=t.map(I=>a(I));return{typeMap:r,directives:i};function a(I){if((0,Xn.isSpecifiedDirective)(I))return I;let v=I.toConfig();return v.args=o(v.args),new Xn.GraphQLDirective(v)}function o(I){let v={};for(let w in I){let U=I[w],V=y(U.type);V!=null&&(U.type=V,v[w]=U)}return v}function c(I){if((0,Xn.isObjectType)(I)){let v=I.toConfig(),w=$(M({},v),{fields:()=>l(v.fields),interfaces:()=>f(v.interfaces)});return new Xn.GraphQLObjectType(w)}else if((0,Xn.isInterfaceType)(I)){let v=I.toConfig(),w=$(M({},v),{fields:()=>l(v.fields)});return"interfaces"in w&&(w.interfaces=()=>f(v.interfaces)),new Xn.GraphQLInterfaceType(w)}else if((0,Xn.isUnionType)(I)){let v=I.toConfig(),w=$(M({},v),{types:()=>f(v.types)});return new Xn.GraphQLUnionType(w)}else if((0,Xn.isInputObjectType)(I)){let v=I.toConfig(),w=$(M({},v),{fields:()=>d(v.fields)});return new Xn.GraphQLInputObjectType(w)}else if((0,Xn.isEnumType)(I)){let v=I.toConfig();return new Xn.GraphQLEnumType(v)}else if((0,Xn.isScalarType)(I)){if((0,Xn.isSpecifiedScalarType)(I))return I;let v=I.toConfig();return new Xn.GraphQLScalarType(v)}throw new Error(`Unexpected schema type: ${I}`)}function l(I){let v={};for(let w in I){let U=I[w],V=y(U.type);V!=null&&U.args&&(U.type=V,U.args=o(U.args),v[w]=U)}return v}function d(I){let v={};for(let w in I){let U=I[w],V=y(U.type);V!=null&&(U.type=V,v[w]=U)}return v}function f(I){let v=[];for(let w of I){let U=y(w);U!=null&&v.push(U)}return v}function y(I){if((0,Xn.isListType)(I)){let v=y(I.ofType);return v!=null?new Xn.GraphQLList(v):null}else if((0,Xn.isNonNullType)(I)){let v=y(I.ofType);return v!=null?new Xn.GraphQLNonNull(v):null}else if((0,Xn.isNamedType)(I)){let v=n[I.name];return v===void 0&&(v=(0,ik.isNamedStub)(I)?(0,ik.getBuiltInForStub)(I):c(I),r[v.name]=n[I.name]=v),v!=null?r[v.name]:null}return null}}FT.rewireTypes=ote});var BS=F(Ha=>{"use strict";m();T();N();Object.defineProperty(Ha,"__esModule",{value:!0});Ha.parseInputValueLiteral=Ha.parseInputValue=Ha.serializeInputValue=Ha.transformInputValue=void 0;var LT=Se(),ute=xp();function Vl(e,t,n=null,r=null){if(t==null)return t;let i=(0,LT.getNullableType)(e);if((0,LT.isLeafType)(i))return n!=null?n(i,t):t;if((0,LT.isListType)(i))return(0,ute.asArray)(t).map(a=>Vl(i.ofType,a,n,r));if((0,LT.isInputObjectType)(i)){let a=i.getFields(),o={};for(let c in t){let l=a[c];l!=null&&(o[c]=Vl(l.type,t[c],n,r))}return r!=null?r(i,o):o}}Ha.transformInputValue=Vl;function cte(e,t){return Vl(e,t,(n,r)=>{try{return n.serialize(r)}catch(i){return r}})}Ha.serializeInputValue=cte;function lte(e,t){return Vl(e,t,(n,r)=>{try{return n.parseValue(r)}catch(i){return r}})}Ha.parseInputValue=lte;function dte(e,t){return Vl(e,t,(n,r)=>n.parseLiteral(r,{}))}Ha.parseInputValueLiteral=dte});var $l=F(Gl=>{"use strict";m();T();N();Object.defineProperty(Gl,"__esModule",{value:!0});Gl.correctASTNodes=Gl.mapSchema=void 0;var at=Se(),Kl=FS(),Rt=_c(),pte=wT(),ak=BS();function fte(e,t={}){let n=uk(ok(US(sk(mte(US(sk(e.getTypeMap(),e,ak.serializeInputValue),e,t,c=>(0,at.isLeafType)(c)),e,t),e,ak.parseInputValue),e,t,c=>!(0,at.isLeafType)(c)),e,t),e,t),r=e.getDirectives(),i=Nte(r,e,t),{typeMap:a,directives:o}=(0,pte.rewireTypes)(n,i);return new at.GraphQLSchema($(M({},e.toConfig()),{query:(0,Kl.getObjectTypeFromTypeMap)(a,(0,Kl.getObjectTypeFromTypeMap)(n,e.getQueryType())),mutation:(0,Kl.getObjectTypeFromTypeMap)(a,(0,Kl.getObjectTypeFromTypeMap)(n,e.getMutationType())),subscription:(0,Kl.getObjectTypeFromTypeMap)(a,(0,Kl.getObjectTypeFromTypeMap)(n,e.getSubscriptionType())),types:Object.values(a),directives:o}))}Gl.mapSchema=fte;function US(e,t,n,r=()=>!0){let i={};for(let a in e)if(!a.startsWith("__")){let o=e[a];if(o==null||!r(o)){i[a]=o;continue}let c=Ete(t,n,a);if(c==null){i[a]=o;continue}let l=c(o,t);if(l===void 0){i[a]=o;continue}i[a]=l}return i}function mte(e,t,n){let r=_te(n);return r?US(e,t,{[Rt.MapperKind.ENUM_TYPE]:i=>{let a=i.toConfig(),o=a.values,c={};for(let l in o){let d=o[l],f=r(d,i.name,t,l);if(f===void 0)c[l]=d;else if(Array.isArray(f)){let[y,I]=f;c[y]=I===void 0?d:I}else f!==null&&(c[l]=f)}return Hp(new at.GraphQLEnumType($(M({},a),{values:c})))}},i=>(0,at.isEnumType)(i)):e}function sk(e,t,n){let r=uk(e,t,{[Rt.MapperKind.ARGUMENT]:i=>{if(i.defaultValue===void 0)return i;let a=CT(e,i.type);if(a!=null)return $(M({},i),{defaultValue:n(a,i.defaultValue)})}});return ok(r,t,{[Rt.MapperKind.INPUT_OBJECT_FIELD]:i=>{if(i.defaultValue===void 0)return i;let a=CT(r,i.type);if(a!=null)return $(M({},i),{defaultValue:n(a,i.defaultValue)})}})}function CT(e,t){if((0,at.isListType)(t)){let n=CT(e,t.ofType);return n!=null?new at.GraphQLList(n):null}else if((0,at.isNonNullType)(t)){let n=CT(e,t.ofType);return n!=null?new at.GraphQLNonNull(n):null}else if((0,at.isNamedType)(t)){let n=e[t.name];return n!=null?n:null}return null}function ok(e,t,n){let r={};for(let i in e)if(!i.startsWith("__")){let a=e[i];if(!(0,at.isObjectType)(a)&&!(0,at.isInterfaceType)(a)&&!(0,at.isInputObjectType)(a)){r[i]=a;continue}let o=yte(t,n,i);if(o==null){r[i]=a;continue}let c=a.toConfig(),l=c.fields,d={};for(let f in l){let y=l[f],I=o(y,f,i,t);if(I===void 0)d[f]=y;else if(Array.isArray(I)){let[v,w]=I;w.astNode!=null&&(w.astNode=$(M({},w.astNode),{name:$(M({},w.astNode.name),{value:v})})),d[v]=w===void 0?y:w}else I!==null&&(d[f]=I)}(0,at.isObjectType)(a)?r[i]=Hp(new at.GraphQLObjectType($(M({},c),{fields:d}))):(0,at.isInterfaceType)(a)?r[i]=Hp(new at.GraphQLInterfaceType($(M({},c),{fields:d}))):r[i]=Hp(new at.GraphQLInputObjectType($(M({},c),{fields:d})))}return r}function uk(e,t,n){let r={};for(let i in e)if(!i.startsWith("__")){let a=e[i];if(!(0,at.isObjectType)(a)&&!(0,at.isInterfaceType)(a)){r[i]=a;continue}let o=Ite(n);if(o==null){r[i]=a;continue}let c=a.toConfig(),l=c.fields,d={};for(let f in l){let y=l[f],I=y.args;if(I==null){d[f]=y;continue}let v=Object.keys(I);if(!v.length){d[f]=y;continue}let w={};for(let U of v){let V=I[U],Y=o(V,f,i,t);if(Y===void 0)w[U]=V;else if(Array.isArray(Y)){let[re,ne]=Y;w[re]=ne}else Y!==null&&(w[U]=Y)}d[f]=$(M({},y),{args:w})}(0,at.isObjectType)(a)?r[i]=new at.GraphQLObjectType($(M({},c),{fields:d})):(0,at.isInterfaceType)(a)?r[i]=new at.GraphQLInterfaceType($(M({},c),{fields:d})):r[i]=new at.GraphQLInputObjectType($(M({},c),{fields:d}))}return r}function Nte(e,t,n){let r=gte(n);if(r==null)return e.slice();let i=[];for(let a of e){let o=r(a,t);o===void 0?i.push(a):o!==null&&i.push(o)}return i}function Tte(e,t){var i,a,o;let n=e.getType(t),r=[Rt.MapperKind.TYPE];return(0,at.isObjectType)(n)?(r.push(Rt.MapperKind.COMPOSITE_TYPE,Rt.MapperKind.OBJECT_TYPE),t===((i=e.getQueryType())==null?void 0:i.name)?r.push(Rt.MapperKind.ROOT_OBJECT,Rt.MapperKind.QUERY):t===((a=e.getMutationType())==null?void 0:a.name)?r.push(Rt.MapperKind.ROOT_OBJECT,Rt.MapperKind.MUTATION):t===((o=e.getSubscriptionType())==null?void 0:o.name)&&r.push(Rt.MapperKind.ROOT_OBJECT,Rt.MapperKind.SUBSCRIPTION)):(0,at.isInputObjectType)(n)?r.push(Rt.MapperKind.INPUT_OBJECT_TYPE):(0,at.isInterfaceType)(n)?r.push(Rt.MapperKind.COMPOSITE_TYPE,Rt.MapperKind.ABSTRACT_TYPE,Rt.MapperKind.INTERFACE_TYPE):(0,at.isUnionType)(n)?r.push(Rt.MapperKind.COMPOSITE_TYPE,Rt.MapperKind.ABSTRACT_TYPE,Rt.MapperKind.UNION_TYPE):(0,at.isEnumType)(n)?r.push(Rt.MapperKind.ENUM_TYPE):(0,at.isScalarType)(n)&&r.push(Rt.MapperKind.SCALAR_TYPE),r}function Ete(e,t,n){let r=Tte(e,n),i,a=[...r];for(;!i&&a.length>0;){let o=a.pop();i=t[o]}return i!=null?i:null}function hte(e,t){var i,a,o;let n=e.getType(t),r=[Rt.MapperKind.FIELD];return(0,at.isObjectType)(n)?(r.push(Rt.MapperKind.COMPOSITE_FIELD,Rt.MapperKind.OBJECT_FIELD),t===((i=e.getQueryType())==null?void 0:i.name)?r.push(Rt.MapperKind.ROOT_FIELD,Rt.MapperKind.QUERY_ROOT_FIELD):t===((a=e.getMutationType())==null?void 0:a.name)?r.push(Rt.MapperKind.ROOT_FIELD,Rt.MapperKind.MUTATION_ROOT_FIELD):t===((o=e.getSubscriptionType())==null?void 0:o.name)&&r.push(Rt.MapperKind.ROOT_FIELD,Rt.MapperKind.SUBSCRIPTION_ROOT_FIELD)):(0,at.isInterfaceType)(n)?r.push(Rt.MapperKind.COMPOSITE_FIELD,Rt.MapperKind.INTERFACE_FIELD):(0,at.isInputObjectType)(n)&&r.push(Rt.MapperKind.INPUT_OBJECT_FIELD),r}function yte(e,t,n){let r=hte(e,n),i,a=[...r];for(;!i&&a.length>0;){let o=a.pop();i=t[o]}return i!=null?i:null}function Ite(e){let t=e[Rt.MapperKind.ARGUMENT];return t!=null?t:null}function gte(e){let t=e[Rt.MapperKind.DIRECTIVE];return t!=null?t:null}function _te(e){let t=e[Rt.MapperKind.ENUM_VALUE];return t!=null?t:null}function Hp(e){if((0,at.isObjectType)(e)){let t=e.toConfig();if(t.astNode!=null){let n=[];for(let r in t.fields){let i=t.fields[r];i.astNode!=null&&n.push(i.astNode)}t.astNode=$(M({},t.astNode),{kind:at.Kind.OBJECT_TYPE_DEFINITION,fields:n})}return t.extensionASTNodes!=null&&(t.extensionASTNodes=t.extensionASTNodes.map(n=>$(M({},n),{kind:at.Kind.OBJECT_TYPE_EXTENSION,fields:void 0}))),new at.GraphQLObjectType(t)}else if((0,at.isInterfaceType)(e)){let t=e.toConfig();if(t.astNode!=null){let n=[];for(let r in t.fields){let i=t.fields[r];i.astNode!=null&&n.push(i.astNode)}t.astNode=$(M({},t.astNode),{kind:at.Kind.INTERFACE_TYPE_DEFINITION,fields:n})}return t.extensionASTNodes!=null&&(t.extensionASTNodes=t.extensionASTNodes.map(n=>$(M({},n),{kind:at.Kind.INTERFACE_TYPE_EXTENSION,fields:void 0}))),new at.GraphQLInterfaceType(t)}else if((0,at.isInputObjectType)(e)){let t=e.toConfig();if(t.astNode!=null){let n=[];for(let r in t.fields){let i=t.fields[r];i.astNode!=null&&n.push(i.astNode)}t.astNode=$(M({},t.astNode),{kind:at.Kind.INPUT_OBJECT_TYPE_DEFINITION,fields:n})}return t.extensionASTNodes!=null&&(t.extensionASTNodes=t.extensionASTNodes.map(n=>$(M({},n),{kind:at.Kind.INPUT_OBJECT_TYPE_EXTENSION,fields:void 0}))),new at.GraphQLInputObjectType(t)}else if((0,at.isEnumType)(e)){let t=e.toConfig();if(t.astNode!=null){let n=[];for(let r in t.values){let i=t.values[r];i.astNode!=null&&n.push(i.astNode)}t.astNode=$(M({},t.astNode),{values:n})}return t.extensionASTNodes!=null&&(t.extensionASTNodes=t.extensionASTNodes.map(n=>$(M({},n),{values:void 0}))),new at.GraphQLEnumType(t)}else return e}Gl.correctASTNodes=Hp});var ck=F(UT=>{"use strict";m();T();N();Object.defineProperty(UT,"__esModule",{value:!0});UT.filterSchema=void 0;var BT=Se(),Ls=_c(),vte=$l();function Ste({schema:e,typeFilter:t=()=>!0,fieldFilter:n=void 0,rootFieldFilter:r=void 0,objectFieldFilter:i=void 0,interfaceFieldFilter:a=void 0,inputObjectFieldFilter:o=void 0,argumentFilter:c=void 0}){return(0,vte.mapSchema)(e,{[Ls.MapperKind.QUERY]:d=>kS(d,"Query",r,c),[Ls.MapperKind.MUTATION]:d=>kS(d,"Mutation",r,c),[Ls.MapperKind.SUBSCRIPTION]:d=>kS(d,"Subscription",r,c),[Ls.MapperKind.OBJECT_TYPE]:d=>t(d.name,d)?MS(BT.GraphQLObjectType,d,i||n,c):null,[Ls.MapperKind.INTERFACE_TYPE]:d=>t(d.name,d)?MS(BT.GraphQLInterfaceType,d,a||n,c):null,[Ls.MapperKind.INPUT_OBJECT_TYPE]:d=>t(d.name,d)?MS(BT.GraphQLInputObjectType,d,o||n):null,[Ls.MapperKind.UNION_TYPE]:d=>t(d.name,d)?void 0:null,[Ls.MapperKind.ENUM_TYPE]:d=>t(d.name,d)?void 0:null,[Ls.MapperKind.SCALAR_TYPE]:d=>t(d.name,d)?void 0:null})}UT.filterSchema=Ste;function kS(e,t,n,r){if(n||r){let i=e.toConfig();for(let a in i.fields){let o=i.fields[a];if(n&&!n(t,a,i.fields[a]))delete i.fields[a];else if(r&&o.args)for(let c in o.args)r(t,a,c,o.args[c])||delete o.args[c]}return new BT.GraphQLObjectType(i)}return e}function MS(e,t,n,r){if(n||r){let i=t.toConfig();for(let a in i.fields){let o=i.fields[a];if(n&&!n(t.name,a,i.fields[a]))delete i.fields[a];else if(r&&"args"in o)for(let c in o.args)r(t.name,a,c,o.args[c])||delete o.args[c]}return new e(i)}}});var dk=F(Ql=>{"use strict";m();T();N();Object.defineProperty(Ql,"__esModule",{value:!0});Ql.healTypes=Ql.healSchema=void 0;var za=Se();function Ote(e){return lk(e.getTypeMap(),e.getDirectives()),e}Ql.healSchema=Ote;function lk(e,t){let n=Object.create(null);for(let d in e){let f=e[d];if(f==null||d.startsWith("__"))continue;let y=f.name;if(!y.startsWith("__")){if(n[y]!=null){console.warn(`Duplicate schema type name ${y} found; keeping the existing one found in the schema`);continue}n[y]=f}}for(let d in n){let f=n[d];e[d]=f}for(let d of t)d.args=d.args.filter(f=>(f.type=l(f.type),f.type!==null));for(let d in e){let f=e[d];!d.startsWith("__")&&d in n&&f!=null&&r(f)}for(let d in e)!d.startsWith("__")&&!(d in n)&&delete e[d];function r(d){if((0,za.isObjectType)(d)){i(d),a(d);return}else if((0,za.isInterfaceType)(d)){i(d),"getInterfaces"in d&&a(d);return}else if((0,za.isUnionType)(d)){c(d);return}else if((0,za.isInputObjectType)(d)){o(d);return}else if((0,za.isLeafType)(d))return;throw new Error(`Unexpected schema type: ${d}`)}function i(d){let f=d.getFields();for(let[y,I]of Object.entries(f))I.args.map(v=>(v.type=l(v.type),v.type===null?null:v)).filter(Boolean),I.type=l(I.type),I.type===null&&delete f[y]}function a(d){if("getInterfaces"in d){let f=d.getInterfaces();f.push(...f.splice(0).map(y=>l(y)).filter(Boolean))}}function o(d){let f=d.getFields();for(let[y,I]of Object.entries(f))I.type=l(I.type),I.type===null&&delete f[y]}function c(d){let f=d.getTypes();f.push(...f.splice(0).map(y=>l(y)).filter(Boolean))}function l(d){if((0,za.isListType)(d)){let f=l(d.ofType);return f!=null?new za.GraphQLList(f):null}else if((0,za.isNonNullType)(d)){let f=l(d.ofType);return f!=null?new za.GraphQLNonNull(f):null}else if((0,za.isNamedType)(d)){let f=e[d.name];if(f&&d!==f)return f}return d}}Ql.healTypes=lk});var pk=F(kT=>{"use strict";m();T();N();Object.defineProperty(kT,"__esModule",{value:!0});kT.getResolversFromSchema=void 0;var vc=Se();function Dte(e,t){var i,a;let n=Object.create(null),r=e.getTypeMap();for(let o in r)if(!o.startsWith("__")){let c=r[o];if((0,vc.isScalarType)(c)){if(!(0,vc.isSpecifiedScalarType)(c)){let l=c.toConfig();delete l.astNode,n[o]=new vc.GraphQLScalarType(l)}}else if((0,vc.isEnumType)(c)){n[o]={};let l=c.getValues();for(let d of l)n[o][d.name]=d.value}else if((0,vc.isInterfaceType)(c))c.resolveType!=null&&(n[o]={__resolveType:c.resolveType});else if((0,vc.isUnionType)(c))c.resolveType!=null&&(n[o]={__resolveType:c.resolveType});else if((0,vc.isObjectType)(c)){n[o]={},c.isTypeOf!=null&&(n[o].__isTypeOf=c.isTypeOf);let l=c.getFields();for(let d in l){let f=l[d];if(f.subscribe!=null&&(n[o][d]=n[o][d]||{},n[o][d].subscribe=f.subscribe),f.resolve!=null&&((i=f.resolve)==null?void 0:i.name)!=="defaultFieldResolver"){switch((a=f.resolve)==null?void 0:a.name){case"defaultMergedResolver":if(!t)continue;break;case"defaultFieldResolver":continue}n[o][d]=n[o][d]||{},n[o][d].resolve=f.resolve}}}}return n}kT.getResolversFromSchema=Dte});var mk=F(MT=>{"use strict";m();T();N();Object.defineProperty(MT,"__esModule",{value:!0});MT.forEachField=void 0;var fk=Se();function bte(e,t){let n=e.getTypeMap();for(let r in n){let i=n[r];if(!(0,fk.getNamedType)(i).name.startsWith("__")&&(0,fk.isObjectType)(i)){let a=i.getFields();for(let o in a){let c=a[o];t(c,r,o)}}}}MT.forEachField=bte});var Nk=F(xT=>{"use strict";m();T();N();Object.defineProperty(xT,"__esModule",{value:!0});xT.forEachDefaultValue=void 0;var xS=Se();function Ate(e,t){let n=e.getTypeMap();for(let r in n){let i=n[r];if(!(0,xS.getNamedType)(i).name.startsWith("__")){if((0,xS.isObjectType)(i)){let a=i.getFields();for(let o in a){let c=a[o];for(let l of c.args)l.defaultValue=t(l.type,l.defaultValue)}}else if((0,xS.isInputObjectType)(i)){let a=i.getFields();for(let o in a){let c=a[o];c.defaultValue=t(c.type,c.defaultValue)}}}}}xT.forEachDefaultValue=Ate});var VS=F(qT=>{"use strict";m();T();N();Object.defineProperty(qT,"__esModule",{value:!0});qT.addTypes=void 0;var qS=Se(),jS=FS(),Rte=wT();function Pte(e,t){let n=e.toConfig(),r={};for(let c of n.types)r[c.name]=c;let i={};for(let c of n.directives)i[c.name]=c;for(let c of t)(0,qS.isNamedType)(c)?r[c.name]=c:(0,qS.isDirective)(c)&&(i[c.name]=c);let{typeMap:a,directives:o}=(0,Rte.rewireTypes)(r,Object.values(i));return new qS.GraphQLSchema($(M({},n),{query:(0,jS.getObjectTypeFromTypeMap)(a,e.getQueryType()),mutation:(0,jS.getObjectTypeFromTypeMap)(a,e.getMutationType()),subscription:(0,jS.getObjectTypeFromTypeMap)(a,e.getSubscriptionType()),types:Object.values(a),directives:o}))}qT.addTypes=Pte});var Ek=F(VT=>{"use strict";m();T();N();Object.defineProperty(VT,"__esModule",{value:!0});VT.pruneSchema=void 0;var ur=Se(),Fte=TS(),wte=_c(),Lte=$l(),Cte=Kp();function Bte(e,t={}){let{skipEmptyCompositeTypePruning:n,skipEmptyUnionPruning:r,skipPruning:i,skipUnimplementedInterfacesPruning:a,skipUnusedTypesPruning:o}=t,c=[],l=e;do{let d=Ute(l);if(i){let f=[];for(let y in l.getTypeMap()){if(y.startsWith("__"))continue;let I=l.getType(y);I&&i(I)&&f.push(y)}d=Tk(f,l,d)}c=[],l=(0,Lte.mapSchema)(l,{[wte.MapperKind.TYPE]:f=>!d.has(f.name)&&!(0,ur.isSpecifiedScalarType)(f)?((0,ur.isUnionType)(f)||(0,ur.isInputObjectType)(f)||(0,ur.isInterfaceType)(f)||(0,ur.isObjectType)(f)||(0,ur.isScalarType)(f))&&(o||(0,ur.isUnionType)(f)&&r&&!Object.keys(f.getTypes()).length||((0,ur.isInputObjectType)(f)||(0,ur.isInterfaceType)(f)||(0,ur.isObjectType)(f))&&n&&!Object.keys(f.getFields()).length||(0,ur.isInterfaceType)(f)&&a)?f:(c.push(f.name),d.delete(f.name),null):f})}while(c.length);return l}VT.pruneSchema=Bte;function Ute(e){let t=[];for(let n of(0,Cte.getRootTypes)(e))t.push(n.name);return Tk(t,e)}function Tk(e,t,n=new Set){let r=new Map;for(;e.length;){let i=e.pop();if(n.has(i)&&r[i]!==!0)continue;let a=t.getType(i);if(a){if((0,ur.isUnionType)(a)&&e.push(...a.getTypes().map(o=>o.name)),(0,ur.isInterfaceType)(a)&&r[i]===!0&&(e.push(...(0,Fte.getImplementingTypes)(a.name,t)),r[i]=!1),(0,ur.isEnumType)(a)&&e.push(...a.getValues().flatMap(o=>o.astNode?jT(t,o.astNode):[])),"getInterfaces"in a&&e.push(...a.getInterfaces().map(o=>o.name)),"getFields"in a){let o=a.getFields(),c=Object.entries(o);if(!c.length)continue;for(let[,l]of c){(0,ur.isObjectType)(a)&&e.push(...l.args.flatMap(f=>{let y=[(0,ur.getNamedType)(f.type).name];return f.astNode&&y.push(...jT(t,f.astNode)),y}));let d=(0,ur.getNamedType)(l.type);e.push(d.name),l.astNode&&e.push(...jT(t,l.astNode)),(0,ur.isInterfaceType)(d)&&!(d.name in r)&&(r[d.name]=!0)}}a.astNode&&e.push(...jT(t,a.astNode)),n.add(i)}}return n}function jT(e,t){var n;return((n=t.directives)!=null?n:[]).flatMap(r=>{var i,a;return(a=(i=e.getDirective(r.name.value))==null?void 0:i.args.map(o=>(0,ur.getNamedType)(o.type).name))!=null?a:[]})}});var yk=F(KT=>{"use strict";m();T();N();Object.defineProperty(KT,"__esModule",{value:!0});KT.mergeDeep=void 0;var kte=xp();function hk(e,t=!1,n=!1){let r=e[0]||{},i={};t&&Object.setPrototypeOf(i,Object.create(Object.getPrototypeOf(r)));for(let a of e)if(KS(r)&&KS(a)){if(t){let o=Object.getPrototypeOf(i),c=Object.getPrototypeOf(a);if(c)for(let l of Object.getOwnPropertyNames(c)){let d=Object.getOwnPropertyDescriptor(c,l);(0,kte.isSome)(d)&&Object.defineProperty(o,l,d)}}for(let o in a)KS(a[o])?o in i?i[o]=hk([i[o],a[o]],t,n):Object.assign(i,{[o]:a[o]}):n&&Array.isArray(i[o])?Array.isArray(a[o])?i[o].push(...a[o]):i[o].push(a[o]):Object.assign(i,{[o]:a[o]})}else if(n&&Array.isArray(r))Array.isArray(a)?r.push(...a):r.push(a);else if(n&&Array.isArray(a))return[r,...a];return i}KT.mergeDeep=hk;function KS(e){return e&&typeof e=="object"&&!Array.isArray(e)}});var Ik=F(GT=>{"use strict";m();T();N();Object.defineProperty(GT,"__esModule",{value:!0});GT.parseSelectionSet=void 0;var Mte=Se();function xte(e,t){return(0,Mte.parse)(e,t).definitions[0].selectionSet}GT.parseSelectionSet=xte});var gk=F($T=>{"use strict";m();T();N();Object.defineProperty($T,"__esModule",{value:!0});$T.getResponseKeyFromInfo=void 0;function qte(e){return e.fieldNodes[0].alias!=null?e.fieldNodes[0].alias.value:e.fieldName}$T.getResponseKeyFromInfo=qte});var _k=F(Wa=>{"use strict";m();T();N();Object.defineProperty(Wa,"__esModule",{value:!0});Wa.modifyObjectFields=Wa.selectObjectFields=Wa.removeObjectFields=Wa.appendObjectFields=void 0;var QT=Se(),jte=VS(),YT=_c(),Sc=$l();function Vte(e,t,n){return e.getType(t)==null?(0,jte.addTypes)(e,[new QT.GraphQLObjectType({name:t,fields:n})]):(0,Sc.mapSchema)(e,{[YT.MapperKind.OBJECT_TYPE]:r=>{if(r.name===t){let i=r.toConfig(),a=i.fields,o={};for(let c in a)o[c]=a[c];for(let c in n)o[c]=n[c];return(0,Sc.correctASTNodes)(new QT.GraphQLObjectType($(M({},i),{fields:o})))}}})}Wa.appendObjectFields=Vte;function Kte(e,t,n){let r={};return[(0,Sc.mapSchema)(e,{[YT.MapperKind.OBJECT_TYPE]:a=>{if(a.name===t){let o=a.toConfig(),c=o.fields,l={};for(let d in c){let f=c[d];n(d,f)?r[d]=f:l[d]=f}return(0,Sc.correctASTNodes)(new QT.GraphQLObjectType($(M({},o),{fields:l})))}}}),r]}Wa.removeObjectFields=Kte;function Gte(e,t,n){let r={};return(0,Sc.mapSchema)(e,{[YT.MapperKind.OBJECT_TYPE]:i=>{if(i.name===t){let o=i.toConfig().fields;for(let c in o){let l=o[c];n(c,l)&&(r[c]=l)}}}}),r}Wa.selectObjectFields=Gte;function $te(e,t,n,r){let i={};return[(0,Sc.mapSchema)(e,{[YT.MapperKind.OBJECT_TYPE]:o=>{if(o.name===t){let c=o.toConfig(),l=c.fields,d={};for(let f in l){let y=l[f];n(f,y)?i[f]=y:d[f]=y}for(let f in r){let y=r[f];d[f]=y}return(0,Sc.correctASTNodes)(new QT.GraphQLObjectType($(M({},c),{fields:d})))}}}),i]}Wa.modifyObjectFields=$te});var vk=F(JT=>{"use strict";m();T();N();Object.defineProperty(JT,"__esModule",{value:!0});JT.renameType=void 0;var Hi=Se();function Qte(e,t){if((0,Hi.isObjectType)(e))return new Hi.GraphQLObjectType($(M({},e.toConfig()),{name:t,astNode:e.astNode==null?e.astNode:$(M({},e.astNode),{name:$(M({},e.astNode.name),{value:t})}),extensionASTNodes:e.extensionASTNodes==null?e.extensionASTNodes:e.extensionASTNodes.map(n=>$(M({},n),{name:$(M({},n.name),{value:t})}))}));if((0,Hi.isInterfaceType)(e))return new Hi.GraphQLInterfaceType($(M({},e.toConfig()),{name:t,astNode:e.astNode==null?e.astNode:$(M({},e.astNode),{name:$(M({},e.astNode.name),{value:t})}),extensionASTNodes:e.extensionASTNodes==null?e.extensionASTNodes:e.extensionASTNodes.map(n=>$(M({},n),{name:$(M({},n.name),{value:t})}))}));if((0,Hi.isUnionType)(e))return new Hi.GraphQLUnionType($(M({},e.toConfig()),{name:t,astNode:e.astNode==null?e.astNode:$(M({},e.astNode),{name:$(M({},e.astNode.name),{value:t})}),extensionASTNodes:e.extensionASTNodes==null?e.extensionASTNodes:e.extensionASTNodes.map(n=>$(M({},n),{name:$(M({},n.name),{value:t})}))}));if((0,Hi.isInputObjectType)(e))return new Hi.GraphQLInputObjectType($(M({},e.toConfig()),{name:t,astNode:e.astNode==null?e.astNode:$(M({},e.astNode),{name:$(M({},e.astNode.name),{value:t})}),extensionASTNodes:e.extensionASTNodes==null?e.extensionASTNodes:e.extensionASTNodes.map(n=>$(M({},n),{name:$(M({},n.name),{value:t})}))}));if((0,Hi.isEnumType)(e))return new Hi.GraphQLEnumType($(M({},e.toConfig()),{name:t,astNode:e.astNode==null?e.astNode:$(M({},e.astNode),{name:$(M({},e.astNode.name),{value:t})}),extensionASTNodes:e.extensionASTNodes==null?e.extensionASTNodes:e.extensionASTNodes.map(n=>$(M({},n),{name:$(M({},n.name),{value:t})}))}));if((0,Hi.isScalarType)(e))return new Hi.GraphQLScalarType($(M({},e.toConfig()),{name:t,astNode:e.astNode==null?e.astNode:$(M({},e.astNode),{name:$(M({},e.astNode.name),{value:t})}),extensionASTNodes:e.extensionASTNodes==null?e.extensionASTNodes:e.extensionASTNodes.map(n=>$(M({},n),{name:$(M({},n.name),{value:t})}))}));throw new Error(`Unknown type ${e}.`)}JT.renameType=Qte});var Dk=F(HT=>{"use strict";m();T();N();Object.defineProperty(HT,"__esModule",{value:!0});HT.mapAsyncIterator=void 0;var Yte=jp();function Jte(e,t,n,r){let i,a,o;r&&(o=d=>{let f=r();return(0,Yte.isPromise)(f)?f.then(()=>d):d}),typeof e.return=="function"&&(i=e.return,a=d=>{let f=()=>Promise.reject(d);return i.call(e).then(f,f)});function c(d){return d.done?o?o(d):d:Sk(d.value,t).then(Ok,a)}let l;if(n){let d=n;l=f=>Sk(f,d).then(Ok,a)}return{next(){return e.next().then(c,l)},return(){let d=i?i.call(e).then(c,l):Promise.resolve({value:void 0,done:!0});return o?d.then(o):d},throw(d){return typeof e.throw=="function"?e.throw(d).then(c,l):Promise.reject(d).catch(a)},[Symbol.asyncIterator](){return this}}}HT.mapAsyncIterator=Jte;function Sk(e,t){return new Promise(n=>n(t(e)))}function Ok(e){return{value:e,done:!1}}});var bk=F(Yl=>{"use strict";m();T();N();Object.defineProperty(Yl,"__esModule",{value:!0});Yl.createVariableNameGenerator=Yl.updateArgument=void 0;var Oc=Se(),Hte=hS();function zte(e,t,n,r,i,a,o){if(e[r]={kind:Oc.Kind.ARGUMENT,name:{kind:Oc.Kind.NAME,value:r},value:{kind:Oc.Kind.VARIABLE,name:{kind:Oc.Kind.NAME,value:i}}},t[i]={kind:Oc.Kind.VARIABLE_DEFINITION,variable:{kind:Oc.Kind.VARIABLE,name:{kind:Oc.Kind.NAME,value:i}},type:(0,Hte.astFromType)(a)},o!==void 0){n[i]=o;return}i in n&&delete n[i]}Yl.updateArgument=zte;function Wte(e){let t=0;return n=>{let r;do r=`_v${(t++).toString()}_${n}`;while(r in e);return r}}Yl.createVariableNameGenerator=Wte});var Ak=F(zT=>{"use strict";m();T();N();Object.defineProperty(zT,"__esModule",{value:!0});zT.implementsAbstractType=void 0;var GS=Se();function Xte(e,t,n){return n==null||t==null?!1:t===n?!0:(0,GS.isCompositeType)(t)&&(0,GS.isCompositeType)(n)?(0,GS.doTypesOverlap)(e,t,n):!1}zT.implementsAbstractType=Xte});var Rk=F(WT=>{"use strict";m();T();N();Object.defineProperty(WT,"__esModule",{value:!0});WT.observableToAsyncIterable=void 0;function Zte(e){let t=[],n=[],r=!0,i=f=>{t.length!==0?t.shift()({value:f,done:!1}):n.push({value:f,done:!1})},a=f=>{t.length!==0?t.shift()({value:{errors:[f]},done:!1}):n.push({value:{errors:[f]},done:!1})},o=()=>{t.length!==0?t.shift()({done:!0}):n.push({done:!0})},c=()=>new Promise(f=>{if(n.length!==0){let y=n.shift();f(y)}else t.push(f)}),l=e.subscribe({next(f){i(f)},error(f){a(f)},complete(){o()}}),d=()=>{if(r){r=!1,l.unsubscribe();for(let f of t)f({value:void 0,done:!0});t.length=0,n.length=0}};return{next(){return r?c():this.return()},return(){return d(),Promise.resolve({value:void 0,done:!0})},throw(f){return d(),Promise.reject(f)},[Symbol.asyncIterator](){return this}}}WT.observableToAsyncIterable=Zte});var Pk=F(XT=>{"use strict";m();T();N();Object.defineProperty(XT,"__esModule",{value:!0});XT.AccumulatorMap=void 0;var $S=class extends Map{get[Symbol.toStringTag](){return"AccumulatorMap"}add(t,n){let r=this.get(t);r===void 0?this.set(t,[n]):r.push(n)}};XT.AccumulatorMap=$S});var QS=F(Jl=>{"use strict";m();T();N();Object.defineProperty(Jl,"__esModule",{value:!0});Jl.GraphQLStreamDirective=Jl.GraphQLDeferDirective=void 0;var zi=Se();Jl.GraphQLDeferDirective=new zi.GraphQLDirective({name:"defer",description:"Directs the executor to defer this fragment when the `if` argument is true or undefined.",locations:[zi.DirectiveLocation.FRAGMENT_SPREAD,zi.DirectiveLocation.INLINE_FRAGMENT],args:{if:{type:new zi.GraphQLNonNull(zi.GraphQLBoolean),description:"Deferred when true or undefined.",defaultValue:!0},label:{type:zi.GraphQLString,description:"Unique name"}}});Jl.GraphQLStreamDirective=new zi.GraphQLDirective({name:"stream",description:"Directs the executor to stream plural fields when the `if` argument is true or undefined.",locations:[zi.DirectiveLocation.FIELD],args:{if:{type:new zi.GraphQLNonNull(zi.GraphQLBoolean),description:"Stream when true or undefined.",defaultValue:!0},label:{type:zi.GraphQLString,description:"Unique name"},initialCount:{defaultValue:0,type:zi.GraphQLInt,description:"Number of items to return immediately"}}})});var HS=F(ii=>{"use strict";m();T();N();Object.defineProperty(ii,"__esModule",{value:!0});ii.collectSubFields=ii.getDeferValues=ii.getFieldEntryKey=ii.doesFragmentConditionMatch=ii.shouldIncludeNode=ii.collectFields=void 0;var Xa=Se(),eE=Pk(),ene=QS(),tne=xl();function Hl(e,t,n,r,i,a,o,c){for(let l of i.selections)switch(l.kind){case Xa.Kind.FIELD:{if(!ZT(n,l))continue;a.add(Fk(l),l);break}case Xa.Kind.INLINE_FRAGMENT:{if(!ZT(n,l)||!YS(e,l,r))continue;let d=JS(n,l);if(d){let f=new eE.AccumulatorMap;Hl(e,t,n,r,l.selectionSet,f,o,c),o.push({label:d.label,fields:f})}else Hl(e,t,n,r,l.selectionSet,a,o,c);break}case Xa.Kind.FRAGMENT_SPREAD:{let d=l.name.value;if(!ZT(n,l))continue;let f=JS(n,l);if(c.has(d)&&!f)continue;let y=t[d];if(!y||!YS(e,y,r))continue;if(f||c.add(d),f){let I=new eE.AccumulatorMap;Hl(e,t,n,r,y.selectionSet,I,o,c),o.push({label:f.label,fields:I})}else Hl(e,t,n,r,y.selectionSet,a,o,c);break}}}function nne(e,t,n,r,i){let a=new eE.AccumulatorMap,o=[];return Hl(e,t,n,r,i,a,o,new Set),{fields:a,patches:o}}ii.collectFields=nne;function ZT(e,t){let n=(0,Xa.getDirectiveValues)(Xa.GraphQLSkipDirective,t,e);if((n==null?void 0:n.if)===!0)return!1;let r=(0,Xa.getDirectiveValues)(Xa.GraphQLIncludeDirective,t,e);return(r==null?void 0:r.if)!==!1}ii.shouldIncludeNode=ZT;function YS(e,t,n){let r=t.typeCondition;if(!r)return!0;let i=(0,Xa.typeFromAST)(e,r);return i===n?!0:(0,Xa.isAbstractType)(i)?e.getPossibleTypes(i).includes(n):!1}ii.doesFragmentConditionMatch=YS;function Fk(e){return e.alias?e.alias.value:e.name.value}ii.getFieldEntryKey=Fk;function JS(e,t){let n=(0,Xa.getDirectiveValues)(ene.GraphQLDeferDirective,t,e);if(n&&n.if!==!1)return{label:typeof n.label=="string"?n.label:void 0}}ii.getDeferValues=JS;ii.collectSubFields=(0,tne.memoize5)(function(t,n,r,i,a){let o=new eE.AccumulatorMap,c=new Set,l=[],d={fields:o,patches:l};for(let f of a)f.selectionSet&&Hl(t,n,r,i,f.selectionSet,o,l,c);return d})});var zS=F(zl=>{"use strict";m();T();N();Object.defineProperty(zl,"__esModule",{value:!0});zl.getOperationASTFromRequest=zl.getOperationASTFromDocument=void 0;var rne=Se(),ine=xl();function wk(e,t){let n=(0,rne.getOperationAST)(e,t);if(!n)throw new Error(`Cannot infer operation ${t||""}`);return n}zl.getOperationASTFromDocument=wk;zl.getOperationASTFromRequest=(0,ine.memoize1)(function(t){return wk(t.document,t.operationName)})});var Bk=F(vu=>{"use strict";m();T();N();Object.defineProperty(vu,"__esModule",{value:!0});vu.visitResult=vu.visitErrors=vu.visitData=void 0;var _u=Se(),WS=HS(),ane=zS();function XS(e,t,n){if(Array.isArray(e))return e.map(r=>XS(r,t,n));if(typeof e=="object"){let r=t!=null?t(e):e;if(r!=null)for(let i in r){let a=r[i];Object.defineProperty(r,i,{value:XS(a,t,n)})}return n!=null?n(r):r}return e}vu.visitData=XS;function sne(e,t){return e.map(n=>t(n))}vu.visitErrors=sne;function one(e,t,n,r,i){let a=t.document.definitions.reduce((I,v)=>(v.kind===_u.Kind.FRAGMENT_DEFINITION&&(I[v.name.value]=v),I),{}),o=t.variables||{},c={segmentInfoMap:new Map,unpathedErrors:new Set},l=e.data,d=e.errors,f=d!=null&&i!=null,y=(0,ane.getOperationASTFromRequest)(t);return l!=null&&y!=null&&(e.data=lne(l,y,n,a,o,r,f?d:void 0,c)),d!=null&&i&&(e.errors=une(d,i,c)),e}vu.visitResult=one;function une(e,t,n){let r=n.segmentInfoMap,i=n.unpathedErrors,a=t.__unpathed;return e.map(o=>{let c=r.get(o),l=c==null?o:c.reduceRight((d,f)=>{let y=f.type.name,I=t[y];if(I==null)return d;let v=I[f.fieldName];return v==null?d:v(d,f.pathIndex)},o);return a&&i.has(o)?a(l):l})}function cne(e,t){switch(t.operation){case"query":return e.getQueryType();case"mutation":return e.getMutationType();case"subscription":return e.getSubscriptionType()}}function lne(e,t,n,r,i,a,o,c){let l=cne(n,t),{fields:d}=(0,WS.collectFields)(n,r,i,l,t.selectionSet);return ZS(e,l,d,n,r,i,a,0,o,c)}function ZS(e,t,n,r,i,a,o,c,l,d){var re;let f=t.getFields(),y=o==null?void 0:o[t.name],I=y==null?void 0:y.__enter,v=I!=null?I(e):e,w,U=null;if(l!=null){w=pne(l,c),U=w.errorMap;for(let ne of w.unpathedErrors)d.unpathedErrors.add(ne)}for(let[ne,me]of n){let ue=me[0].name.value,Ae=(re=f[ue])==null?void 0:re.type;if(Ae==null)switch(ue){case"__typename":Ae=_u.TypeNameMetaFieldDef.type;break;case"__schema":Ae=_u.SchemaMetaFieldDef.type;break;case"__type":Ae=_u.TypeMetaFieldDef.type;break}let Me=c+1,nt;U&&(nt=U[ne],nt!=null&&delete U[ne],fne(t,ue,Me,nt,d));let X=Ck(e[ne],Ae,me,r,i,a,o,Me,nt,d);Lk(v,ne,X,y,ue)}let V=v.__typename;if(V!=null&&Lk(v,"__typename",V,y,"__typename"),U)for(let ne in U){let me=U[ne];for(let ue of me)d.unpathedErrors.add(ue)}let Y=y==null?void 0:y.__leave;return Y!=null?Y(v):v}function Lk(e,t,n,r,i){if(r==null){e[t]=n;return}let a=r[i];if(a==null){e[t]=n;return}let o=a(n);if(o===void 0){delete e[t];return}e[t]=o}function dne(e,t,n,r,i,a,o,c,l,d){return e.map(f=>Ck(f,t,n,r,i,a,o,c+1,l,d))}function Ck(e,t,n,r,i,a,o,c,l=[],d){if(e==null)return e;let f=(0,_u.getNullableType)(t);if((0,_u.isListType)(f))return dne(e,f.ofType,n,r,i,a,o,c,l,d);if((0,_u.isAbstractType)(f)){let v=r.getType(e.__typename),{fields:w}=(0,WS.collectSubFields)(r,i,a,v,n);return ZS(e,v,w,r,i,a,o,c,l,d)}else if((0,_u.isObjectType)(f)){let{fields:v}=(0,WS.collectSubFields)(r,i,a,f,n);return ZS(e,f,v,r,i,a,o,c,l,d)}let y=o==null?void 0:o[f.name];if(y==null)return e;let I=y(e);return I===void 0?e:I}function pne(e,t){var i;let n=Object.create(null),r=new Set;for(let a of e){let o=(i=a.path)==null?void 0:i[t];if(o==null){r.add(a);continue}o in n?n[o].push(a):n[o]=[a]}return{errorMap:n,unpathedErrors:r}}function fne(e,t,n,r=[],i){for(let a of r){let o={type:e,fieldName:t,pathIndex:n},c=i.segmentInfoMap.get(a);c==null?i.segmentInfoMap.set(a,[o]):c.push(o)}}});var Uk=F(tE=>{"use strict";m();T();N();Object.defineProperty(tE,"__esModule",{value:!0});tE.valueMatchesCriteria=void 0;function eO(e,t){return e==null?e===t:Array.isArray(e)?Array.isArray(t)&&e.every((n,r)=>eO(n,t[r])):typeof e=="object"?typeof t=="object"&&t&&Object.keys(t).every(n=>eO(e[n],t[n])):t instanceof RegExp?t.test(e):e===t}tE.valueMatchesCriteria=eO});var kk=F(nE=>{"use strict";m();T();N();Object.defineProperty(nE,"__esModule",{value:!0});nE.isAsyncIterable=void 0;function mne(e){return(e==null?void 0:e[Symbol.asyncIterator])!=null}nE.isAsyncIterable=mne});var Mk=F(rE=>{"use strict";m();T();N();Object.defineProperty(rE,"__esModule",{value:!0});rE.isDocumentNode=void 0;var Nne=Se();function Tne(e){return e&&typeof e=="object"&&"kind"in e&&e.kind===Nne.Kind.DOCUMENT}rE.isDocumentNode=Tne});var xk=F(()=>{"use strict";m();T();N()});var Kk=F(Su=>{"use strict";m();T();N();Object.defineProperty(Su,"__esModule",{value:!0});Su.withCancel=Su.getAsyncIterableWithCancel=Su.getAsyncIteratorWithCancel=void 0;var Ene=xl();function hne(e){return wi(this,null,function*(){return{value:e,done:!0}})}var qk=(0,Ene.memoize2)(function(t,n){return function(...i){return Reflect.apply(n,t,i)}});function jk(e,t){return new Proxy(e,{has(n,r){return r==="return"?!0:Reflect.has(n,r)},get(n,r,i){let a=Reflect.get(n,r,i);if(r==="return"){let o=a||hne;return function(l){return wi(this,null,function*(){let d=yield t(l);return Reflect.apply(o,n,[d])})}}else if(typeof a=="function")return qk(n,a);return a}})}Su.getAsyncIteratorWithCancel=jk;function Vk(e,t){return new Proxy(e,{get(n,r,i){let a=Reflect.get(n,r,i);return Symbol.asyncIterator===r?function(){let c=Reflect.apply(a,n,[]);return jk(c,t)}:typeof a=="function"?qk(n,a):a}})}Su.getAsyncIterableWithCancel=Vk;Su.withCancel=Vk});var Gk=F(iE=>{"use strict";m();T();N();Object.defineProperty(iE,"__esModule",{value:!0});iE.fixSchemaAst=void 0;var yne=Se(),Ine=OS();function gne(e,t){let n=(0,Ine.getDocumentNodeFromSchema)(e);return(0,yne.buildASTSchema)(n,M({},t||{}))}function _ne(e,t){let n;return(!e.astNode||!e.extensionASTNodes)&&(n=gne(e,t)),!e.astNode&&(n!=null&&n.astNode)&&(e.astNode=n.astNode),!e.extensionASTNodes&&(n!=null&&n.astNode)&&(e.extensionASTNodes=n.extensionASTNodes),e}iE.fixSchemaAst=_ne});var $k=F(aE=>{"use strict";m();T();N();Object.defineProperty(aE,"__esModule",{value:!0});aE.extractExtensionsFromSchema=void 0;var Cs=_c(),vne=$l();function ha(e={}){let t=M({},e),n=t.directives;if(n!=null)for(let r in n){let i=n[r];Array.isArray(i)||(n[r]=[i])}return t}function Sne(e){let t={schemaExtensions:ha(e.extensions),types:{}};return(0,vne.mapSchema)(e,{[Cs.MapperKind.OBJECT_TYPE]:n=>(t.types[n.name]={fields:{},type:"object",extensions:ha(n.extensions)},n),[Cs.MapperKind.INTERFACE_TYPE]:n=>(t.types[n.name]={fields:{},type:"interface",extensions:ha(n.extensions)},n),[Cs.MapperKind.FIELD]:(n,r,i)=>{t.types[i].fields[r]={arguments:{},extensions:ha(n.extensions)};let a=n.args;if(a!=null)for(let o in a)t.types[i].fields[r].arguments[o]=ha(a[o].extensions);return n},[Cs.MapperKind.ENUM_TYPE]:n=>(t.types[n.name]={values:{},type:"enum",extensions:ha(n.extensions)},n),[Cs.MapperKind.ENUM_VALUE]:(n,r,i,a)=>(t.types[r].values[a]=ha(n.extensions),n),[Cs.MapperKind.SCALAR_TYPE]:n=>(t.types[n.name]={type:"scalar",extensions:ha(n.extensions)},n),[Cs.MapperKind.UNION_TYPE]:n=>(t.types[n.name]={type:"union",extensions:ha(n.extensions)},n),[Cs.MapperKind.INPUT_OBJECT_TYPE]:n=>(t.types[n.name]={fields:{},type:"input",extensions:ha(n.extensions)},n),[Cs.MapperKind.INPUT_OBJECT_FIELD]:(n,r,i)=>(t.types[i].fields[r]={extensions:ha(n.extensions)},n)}),t}aE.extractExtensionsFromSchema=Sne});var Qk=F(Ou=>{"use strict";m();T();N();Object.defineProperty(Ou,"__esModule",{value:!0});Ou.printPathArray=Ou.pathToArray=Ou.addPath=void 0;function One(e,t,n){return{prev:e,key:t,typename:n}}Ou.addPath=One;function Dne(e){let t=[],n=e;for(;n;)t.push(n.key),n=n.prev;return t.reverse()}Ou.pathToArray=Dne;function bne(e){return e.map(t=>typeof t=="number"?"["+t.toString()+"]":"."+t).join("")}Ou.printPathArray=bne});var Yk=F(tO=>{"use strict";m();T();N();function sE(e,t,n){if(typeof e=="object"&&typeof t=="object"){if(Array.isArray(e)&&Array.isArray(t))for(n=0;n{"use strict";m();T();N();Object.defineProperty(oE,"__esModule",{value:!0});oE.mergeIncrementalResult=void 0;var nO=Yk();function Jk({incrementalResult:e,executionResult:t}){var r;let n=["data",...(r=e.path)!=null?r:[]];if(e.items)for(let i of e.items)(0,nO.dset)(t,n,i),n[n.length-1]++;e.data&&(0,nO.dset)(t,n,e.data),e.errors&&(t.errors=t.errors||[],t.errors.push(...e.errors)),e.extensions&&(0,nO.dset)(t,"extensions",e.extensions),e.incremental&&e.incremental.forEach(i=>{Jk({incrementalResult:i,executionResult:t})})}oE.mergeIncrementalResult=Jk});var Wk=F(Wl=>{"use strict";m();T();N();Object.defineProperty(Wl,"__esModule",{value:!0});Wl.debugTimerEnd=Wl.debugTimerStart=void 0;var zk=new Set;function Rne(e){let t=(globalThis==null?void 0:globalThis.process.env.DEBUG)||globalThis.DEBUG;(t==="1"||t!=null&&t.includes(e))&&(zk.add(e),console.time(e))}Wl.debugTimerStart=Rne;function Pne(e){zk.has(e)&&console.timeEnd(e)}Wl.debugTimerEnd=Pne});var ya=F(Qe=>{"use strict";m();T();N();Object.defineProperty(Qe,"__esModule",{value:!0});Qe.inspect=void 0;var Je=(iU(),Am(rU));Je.__exportStar(aU(),Qe);Je.__exportStar(xp(),Qe);Je.__exportStar(fS(),Qe);Je.__exportStar(mS(),Qe);Je.__exportStar(NU(),Qe);Je.__exportStar(TS(),Qe);Je.__exportStar(OS(),Qe);Je.__exportStar(mS(),Qe);Je.__exportStar(wU(),Qe);Je.__exportStar(LU(),Qe);Je.__exportStar(QU(),Qe);Je.__exportStar(ek(),Qe);Je.__exportStar(nk(),Qe);Je.__exportStar(ck(),Qe);Je.__exportStar(dk(),Qe);Je.__exportStar(pk(),Qe);Je.__exportStar(mk(),Qe);Je.__exportStar(Nk(),Qe);Je.__exportStar($l(),Qe);Je.__exportStar(VS(),Qe);Je.__exportStar(wT(),Qe);Je.__exportStar(Ek(),Qe);Je.__exportStar(yk(),Qe);Je.__exportStar(_c(),Qe);Je.__exportStar(CS(),Qe);Je.__exportStar(Ik(),Qe);Je.__exportStar(gk(),Qe);Je.__exportStar(_k(),Qe);Je.__exportStar(vk(),Qe);Je.__exportStar(BS(),Qe);Je.__exportStar(Dk(),Qe);Je.__exportStar(bk(),Qe);Je.__exportStar(Ak(),Qe);Je.__exportStar(fT(),Qe);Je.__exportStar(Rk(),Qe);Je.__exportStar(Bk(),Qe);Je.__exportStar(pS(),Qe);Je.__exportStar(Uk(),Qe);Je.__exportStar(kk(),Qe);Je.__exportStar(Mk(),Qe);Je.__exportStar(gT(),Qe);Je.__exportStar(xk(),Qe);Je.__exportStar(Kk(),Qe);Je.__exportStar(Kp(),Qe);Je.__exportStar(bS(),Qe);Je.__exportStar(HS(),Qe);var Fne=qp();Object.defineProperty(Qe,"inspect",{enumerable:!0,get:function(){return Fne.inspect}});Je.__exportStar(xl(),Qe);Je.__exportStar(Gk(),Qe);Je.__exportStar(zS(),Qe);Je.__exportStar($k(),Qe);Je.__exportStar(Qk(),Qe);Je.__exportStar(jp(),Qe);Je.__exportStar(QS(),Qe);Je.__exportStar(Hk(),Qe);Je.__exportStar(Wk(),Qe)});var Zk=F(uE=>{"use strict";m();T();N();Object.defineProperty(uE,"__esModule",{value:!0});uE.mergeResolvers=void 0;var wne=ya();function Xk(e,t){if(!e||Array.isArray(e)&&e.length===0)return{};if(!Array.isArray(e))return e;if(e.length===1)return e[0]||{};let n=new Array;for(let i of e)Array.isArray(i)&&(i=Xk(i)),typeof i=="object"&&i&&n.push(i);let r=(0,wne.mergeDeep)(n,!0);if(t!=null&&t.exclusions)for(let i of t.exclusions){let[a,o]=i.split(".");!o||o==="*"?delete r[a]:r[a]&&delete r[a][o]}return r}uE.mergeResolvers=Xk});var rO=F(cE=>{"use strict";m();T();N();Object.defineProperty(cE,"__esModule",{value:!0});cE.mergeArguments=void 0;var eM=ya();function Lne(e,t,n){let r=Cne([...t,...e].filter(eM.isSome),n);return n&&n.sort&&r.sort(eM.compareNodes),r}cE.mergeArguments=Lne;function Cne(e,t){return e.reduce((n,r)=>{let i=n.findIndex(a=>a.name.value===r.name.value);return i===-1?n.concat([r]):(t!=null&&t.reverseArguments||(n[i]=r),n)},[])}});var Wi=F(Xl=>{"use strict";m();T();N();Object.defineProperty(Xl,"__esModule",{value:!0});Xl.mergeDirective=Xl.mergeDirectives=void 0;var tM=Se(),Bne=ya();function Une(e,t){return!!e.find(n=>n.name.value===t.name.value)}function nM(e,t){var n;return!!((n=t==null?void 0:t[e.name.value])!=null&&n.repeatable)}function kne(e,t){return t.some(({value:n})=>n===e.value)}function rM(e,t){let n=[...t];for(let r of e){let i=n.findIndex(a=>a.name.value===r.name.value);if(i>-1){let a=n[i];if(a.value.kind==="ListValue"){let o=a.value.values,c=r.value.values;a.value.values=Vne(o,c,(l,d)=>{let f=l.value;return!f||!d.some(y=>y.value===f)})}else a.value=r.value}else n.push(r)}return n}function Mne(e,t){return e.map((n,r,i)=>{let a=i.findIndex(o=>o.name.value===n.name.value);if(a!==r&&!nM(n,t)){let o=i[a];return n.arguments=rM(n.arguments,o.arguments),null}return n}).filter(Bne.isSome)}function xne(e=[],t=[],n,r){let i=n&&n.reverseDirectives,a=i?e:t,o=i?t:e,c=Mne([...a],r);for(let l of o)if(Une(c,l)&&!nM(l,r)){let d=c.findIndex(y=>y.name.value===l.name.value),f=c[d];c[d].arguments=rM(l.arguments||[],f.arguments||[])}else c.push(l);return c}Xl.mergeDirectives=xne;function qne(e,t){let n=(0,tM.print)($(M({},e),{description:void 0})),r=(0,tM.print)($(M({},t),{description:void 0})),i=new RegExp("(directive @w*d*)|( on .*$)","g");if(!(n.replace(i,"")===r.replace(i,"")))throw new Error(`Unable to merge GraphQL directive "${e.name.value}". Existing directive: ${r} Received directive: - ${n}`)}function Tne(e,t){return t?(Nne(e,t),Q(x({},e),{locations:[...t.locations,...e.locations.filter(n=>!fne(n,t.locations))]})):e}Vl.mergeDirective=Tne;function Ene(e,t,n){return e.concat(t.filter(r=>n(r,e)))}});var MS=w(JT=>{"use strict";m();T();N();Object.defineProperty(JT,"__esModule",{value:!0});JT.mergeEnumValues=void 0;var hne=Gi(),yne=da();function Ine(e,t,n,r){if(n!=null&&n.consistentEnumMerge){let o=[];e&&o.push(...e),e=t,t=o}let i=new Map;if(e)for(let o of e)i.set(o.name.value,o);if(t)for(let o of t){let c=o.name.value;if(i.has(c)){let l=i.get(c);l.description=o.description||l.description,l.directives=(0,hne.mergeDirectives)(o.directives,l.directives,r)}else i.set(c,o)}let a=[...i.values()];return n&&n.sort&&a.sort(yne.compareNodes),a}JT.mergeEnumValues=Ine});var xS=w(HT=>{"use strict";m();T();N();Object.defineProperty(HT,"__esModule",{value:!0});HT.mergeEnum=void 0;var gne=De(),_ne=Gi(),vne=MS();function Sne(e,t,n,r){return t?{name:e.name,description:e.description||t.description,kind:n!=null&&n.convertExtensions||e.kind==="EnumTypeDefinition"||t.kind==="EnumTypeDefinition"?"EnumTypeDefinition":"EnumTypeExtension",loc:e.loc,directives:(0,_ne.mergeDirectives)(e.directives,t.directives,n,r),values:(0,vne.mergeEnumValues)(e.values,t.values,n)}:n!=null&&n.convertExtensions?Q(x({},e),{kind:gne.Kind.ENUM_TYPE_DEFINITION}):e}HT.mergeEnum=Sne});var zT=w(Vn=>{"use strict";m();T();N();Object.defineProperty(Vn,"__esModule",{value:!0});Vn.defaultStringComparator=Vn.CompareVal=Vn.printTypeNode=Vn.isNonNullTypeNode=Vn.isListTypeNode=Vn.isWrappingTypeNode=Vn.extractType=Vn.isSourceTypes=Vn.isStringTypes=void 0;var Mf=De();function One(e){return typeof e=="string"}Vn.isStringTypes=One;function Dne(e){return e instanceof Mf.Source}Vn.isSourceTypes=Dne;function bne(e){let t=e;for(;t.kind===Mf.Kind.LIST_TYPE||t.kind==="NonNullType";)t=t.type;return t}Vn.extractType=bne;function Ane(e){return e.kind!==Mf.Kind.NAMED_TYPE}Vn.isWrappingTypeNode=Ane;function kk(e){return e.kind===Mf.Kind.LIST_TYPE}Vn.isListTypeNode=kk;function Mk(e){return e.kind===Mf.Kind.NON_NULL_TYPE}Vn.isNonNullTypeNode=Mk;function qS(e){return kk(e)?`[${qS(e.type)}]`:Mk(e)?`${qS(e.type)}!`:e.name.value}Vn.printTypeNode=qS;var Tc;(function(e){e[e.A_SMALLER_THAN_B=-1]="A_SMALLER_THAN_B",e[e.A_EQUALS_B=0]="A_EQUALS_B",e[e.A_GREATER_THAN_B=1]="A_GREATER_THAN_B"})(Tc=Vn.CompareVal||(Vn.CompareVal={}));function Rne(e,t){return e==null&&t==null?Tc.A_EQUALS_B:e==null?Tc.A_SMALLER_THAN_B:t==null?Tc.A_GREATER_THAN_B:et?Tc.A_GREATER_THAN_B:Tc.A_EQUALS_B}Vn.defaultStringComparator=Rne});var qf=w(WT=>{"use strict";m();T();N();Object.defineProperty(WT,"__esModule",{value:!0});WT.mergeFields=void 0;var Xr=zT(),Pne=Gi(),Fne=da(),wne=kS();function Lne(e,t){let n=e.findIndex(r=>r.name.value===t.name.value);return[n>-1?e[n]:null,n]}function Cne(e,t,n,r,i){let a=[];if(n!=null&&a.push(...n),t!=null)for(let o of t){let[c,l]=Lne(a,o);if(c&&!(r!=null&&r.ignoreFieldConflicts)){let d=(r==null?void 0:r.onFieldTypeConflict)&&r.onFieldTypeConflict(c,o,e,r==null?void 0:r.throwOnConflict)||Bne(e,c,o,r==null?void 0:r.throwOnConflict);d.arguments=(0,wne.mergeArguments)(o.arguments||[],c.arguments||[],r),d.directives=(0,Pne.mergeDirectives)(o.directives,c.directives,r,i),d.description=o.description||c.description,a[l]=d}else a.push(o)}if(r&&r.sort&&a.sort(Fne.compareNodes),r&&r.exclusions){let o=r.exclusions;return a.filter(c=>!o.includes(`${e.name.value}.${c.name.value}`))}return a}WT.mergeFields=Cne;function Bne(e,t,n,r=!1){let i=(0,Xr.printTypeNode)(t.type),a=(0,Xr.printTypeNode)(n.type);if(i!==a){let o=(0,Xr.extractType)(t.type),c=(0,Xr.extractType)(n.type);if(o.name.value!==c.name.value)throw new Error(`Field "${n.name.value}" already defined with a different type. Declared as "${o.name.value}", but you tried to override with "${c.name.value}"`);if(!xf(t.type,n.type,!r))throw new Error(`Field '${e.name.value}.${t.name.value}' changed type from '${i}' to '${a}'`)}return(0,Xr.isNonNullTypeNode)(n.type)&&!(0,Xr.isNonNullTypeNode)(t.type)&&(t.type=n.type),t}function xf(e,t,n=!1){if(!(0,Xr.isWrappingTypeNode)(e)&&!(0,Xr.isWrappingTypeNode)(t))return e.toString()===t.toString();if((0,Xr.isNonNullTypeNode)(t)){let r=(0,Xr.isNonNullTypeNode)(e)?e.type:e;return xf(r,t.type)}return(0,Xr.isNonNullTypeNode)(e)?xf(t,e,n):(0,Xr.isListTypeNode)(e)?(0,Xr.isListTypeNode)(t)&&xf(e.type,t.type)||(0,Xr.isNonNullTypeNode)(t)&&xf(e,t.type):!1}});var VS=w(XT=>{"use strict";m();T();N();Object.defineProperty(XT,"__esModule",{value:!0});XT.mergeInputType=void 0;var Une=De(),kne=qf(),Mne=Gi();function xne(e,t,n,r){if(t)try{return{name:e.name,description:e.description||t.description,kind:n!=null&&n.convertExtensions||e.kind==="InputObjectTypeDefinition"||t.kind==="InputObjectTypeDefinition"?"InputObjectTypeDefinition":"InputObjectTypeExtension",loc:e.loc,fields:(0,kne.mergeFields)(e,e.fields,t.fields,n),directives:(0,Mne.mergeDirectives)(e.directives,t.directives,n,r)}}catch(i){throw new Error(`Unable to merge GraphQL input type "${e.name.value}": ${i.message}`)}return n!=null&&n.convertExtensions?Q(x({},e),{kind:Une.Kind.INPUT_OBJECT_TYPE_DEFINITION}):e}XT.mergeInputType=xne});var Vf=w(ZT=>{"use strict";m();T();N();Object.defineProperty(ZT,"__esModule",{value:!0});ZT.mergeNamedTypeArray=void 0;var qne=da();function Vne(e,t){return!!e.find(n=>n.name.value===t.name.value)}function jne(e=[],t=[],n={}){let r=[...t,...e.filter(i=>!Vne(t,i))];return n&&n.sort&&r.sort(qne.compareNodes),r}ZT.mergeNamedTypeArray=jne});var jS=w(eE=>{"use strict";m();T();N();Object.defineProperty(eE,"__esModule",{value:!0});eE.mergeInterface=void 0;var Kne=De(),Gne=qf(),$ne=Gi(),Qne=Vf();function Yne(e,t,n,r){if(t)try{return{name:e.name,description:e.description||t.description,kind:n!=null&&n.convertExtensions||e.kind==="InterfaceTypeDefinition"||t.kind==="InterfaceTypeDefinition"?"InterfaceTypeDefinition":"InterfaceTypeExtension",loc:e.loc,fields:(0,Gne.mergeFields)(e,e.fields,t.fields,n),directives:(0,$ne.mergeDirectives)(e.directives,t.directives,n,r),interfaces:e.interfaces?(0,Qne.mergeNamedTypeArray)(e.interfaces,t.interfaces,n):void 0}}catch(i){throw new Error(`Unable to merge GraphQL interface "${e.name.value}": ${i.message}`)}return n!=null&&n.convertExtensions?Q(x({},e),{kind:Kne.Kind.INTERFACE_TYPE_DEFINITION}):e}eE.mergeInterface=Yne});var KS=w(tE=>{"use strict";m();T();N();Object.defineProperty(tE,"__esModule",{value:!0});tE.mergeType=void 0;var Jne=De(),Hne=qf(),zne=Gi(),Wne=Vf();function Xne(e,t,n,r){if(t)try{return{name:e.name,description:e.description||t.description,kind:n!=null&&n.convertExtensions||e.kind==="ObjectTypeDefinition"||t.kind==="ObjectTypeDefinition"?"ObjectTypeDefinition":"ObjectTypeExtension",loc:e.loc,fields:(0,Hne.mergeFields)(e,e.fields,t.fields,n),directives:(0,zne.mergeDirectives)(e.directives,t.directives,n,r),interfaces:(0,Wne.mergeNamedTypeArray)(e.interfaces,t.interfaces,n)}}catch(i){throw new Error(`Unable to merge GraphQL type "${e.name.value}": ${i.message}`)}return n!=null&&n.convertExtensions?Q(x({},e),{kind:Jne.Kind.OBJECT_TYPE_DEFINITION}):e}tE.mergeType=Xne});var GS=w(nE=>{"use strict";m();T();N();Object.defineProperty(nE,"__esModule",{value:!0});nE.mergeScalar=void 0;var Zne=De(),ere=Gi();function tre(e,t,n,r){return t?{name:e.name,description:e.description||t.description,kind:n!=null&&n.convertExtensions||e.kind==="ScalarTypeDefinition"||t.kind==="ScalarTypeDefinition"?"ScalarTypeDefinition":"ScalarTypeExtension",loc:e.loc,directives:(0,ere.mergeDirectives)(e.directives,t.directives,n,r)}:n!=null&&n.convertExtensions?Q(x({},e),{kind:Zne.Kind.SCALAR_TYPE_DEFINITION}):e}nE.mergeScalar=tre});var QS=w(rE=>{"use strict";m();T();N();Object.defineProperty(rE,"__esModule",{value:!0});rE.mergeUnion=void 0;var $S=De(),nre=Gi(),rre=Vf();function ire(e,t,n,r){return t?{name:e.name,description:e.description||t.description,directives:(0,nre.mergeDirectives)(e.directives,t.directives,n,r),kind:n!=null&&n.convertExtensions||e.kind==="UnionTypeDefinition"||t.kind==="UnionTypeDefinition"?$S.Kind.UNION_TYPE_DEFINITION:$S.Kind.UNION_TYPE_EXTENSION,loc:e.loc,types:(0,rre.mergeNamedTypeArray)(e.types,t.types,n)}:n!=null&&n.convertExtensions?Q(x({},e),{kind:$S.Kind.UNION_TYPE_DEFINITION}):e}rE.mergeUnion=ire});var YS=w(Ec=>{"use strict";m();T();N();Object.defineProperty(Ec,"__esModule",{value:!0});Ec.mergeSchemaDefs=Ec.DEFAULT_OPERATION_TYPE_NAME_MAP=void 0;var jf=De(),are=Gi();Ec.DEFAULT_OPERATION_TYPE_NAME_MAP={query:"Query",mutation:"Mutation",subscription:"Subscription"};function sre(e=[],t=[]){let n=[];for(let r in Ec.DEFAULT_OPERATION_TYPE_NAME_MAP){let i=e.find(a=>a.operation===r)||t.find(a=>a.operation===r);i&&n.push(i)}return n}function ore(e,t,n,r){return t?{kind:e.kind===jf.Kind.SCHEMA_DEFINITION||t.kind===jf.Kind.SCHEMA_DEFINITION?jf.Kind.SCHEMA_DEFINITION:jf.Kind.SCHEMA_EXTENSION,description:e.description||t.description,directives:(0,are.mergeDirectives)(e.directives,t.directives,n,r),operationTypes:sre(e.operationTypes,t.operationTypes)}:n!=null&&n.convertExtensions?Q(x({},e),{kind:jf.Kind.SCHEMA_DEFINITION}):e}Ec.mergeSchemaDefs=ore});var JS=w($a=>{"use strict";m();T();N();Object.defineProperty($a,"__esModule",{value:!0});$a.mergeGraphQLNodes=$a.isNamedDefinitionNode=$a.schemaDefSymbol=void 0;var kr=De(),ure=KS(),cre=xS(),lre=GS(),dre=QS(),fre=VS(),pre=jS(),mre=Gi(),Nre=YS(),Tre=da();$a.schemaDefSymbol="SCHEMA_DEF_SYMBOL";function xk(e){return"name"in e}$a.isNamedDefinitionNode=xk;function Ere(e,t,n={}){var i,a,o;let r=n;for(let c of e)if(xk(c)){let l=(i=c.name)==null?void 0:i.value;if(t!=null&&t.commentDescriptions&&(0,Tre.collectComment)(c),l==null)continue;if((a=t==null?void 0:t.exclusions)!=null&&a.includes(l+".*")||(o=t==null?void 0:t.exclusions)!=null&&o.includes(l))delete r[l];else switch(c.kind){case kr.Kind.OBJECT_TYPE_DEFINITION:case kr.Kind.OBJECT_TYPE_EXTENSION:r[l]=(0,ure.mergeType)(c,r[l],t,n);break;case kr.Kind.ENUM_TYPE_DEFINITION:case kr.Kind.ENUM_TYPE_EXTENSION:r[l]=(0,cre.mergeEnum)(c,r[l],t,n);break;case kr.Kind.UNION_TYPE_DEFINITION:case kr.Kind.UNION_TYPE_EXTENSION:r[l]=(0,dre.mergeUnion)(c,r[l],t,n);break;case kr.Kind.SCALAR_TYPE_DEFINITION:case kr.Kind.SCALAR_TYPE_EXTENSION:r[l]=(0,lre.mergeScalar)(c,r[l],t,n);break;case kr.Kind.INPUT_OBJECT_TYPE_DEFINITION:case kr.Kind.INPUT_OBJECT_TYPE_EXTENSION:r[l]=(0,fre.mergeInputType)(c,r[l],t,n);break;case kr.Kind.INTERFACE_TYPE_DEFINITION:case kr.Kind.INTERFACE_TYPE_EXTENSION:r[l]=(0,pre.mergeInterface)(c,r[l],t,n);break;case kr.Kind.DIRECTIVE_DEFINITION:r[l]=(0,mre.mergeDirective)(c,r[l]);break}}else(c.kind===kr.Kind.SCHEMA_DEFINITION||c.kind===kr.Kind.SCHEMA_EXTENSION)&&(r[$a.schemaDefSymbol]=(0,Nre.mergeSchemaDefs)(c,r[$a.schemaDefSymbol],t));return r}$a.mergeGraphQLNodes=Ere});var jk=w($l=>{"use strict";m();T();N();Object.defineProperty($l,"__esModule",{value:!0});$l.mergeGraphQLTypes=$l.mergeTypeDefs=void 0;var $i=De(),HS=zT(),jl=JS(),Gl=da(),qk=YS();function hre(e,t){(0,Gl.resetComments)();let n={kind:$i.Kind.DOCUMENT,definitions:Vk(e,x({useSchemaDefinition:!0,forceSchemaDefinition:!1,throwOnConflict:!1,commentDescriptions:!1},t))},r;return t!=null&&t.commentDescriptions?r=(0,Gl.printWithComments)(n):r=n,(0,Gl.resetComments)(),r}$l.mergeTypeDefs=hre;function Kl(e,t,n=[],r=[],i=new Set){if(e&&!i.has(e))if(i.add(e),typeof e=="function")Kl(e(),t,n,r,i);else if(Array.isArray(e))for(let a of e)Kl(a,t,n,r,i);else if((0,$i.isSchema)(e)){let a=(0,Gl.getDocumentNodeFromSchema)(e,t);Kl(a.definitions,t,n,r,i)}else if((0,HS.isStringTypes)(e)||(0,HS.isSourceTypes)(e)){let a=(0,$i.parse)(e,t);Kl(a.definitions,t,n,r,i)}else if(typeof e=="object"&&(0,$i.isDefinitionNode)(e))e.kind===$i.Kind.DIRECTIVE_DEFINITION?n.push(e):r.push(e);else if((0,Gl.isDocumentNode)(e))Kl(e.definitions,t,n,r,i);else throw new Error(`typeDefs must contain only strings, documents, schemas, or functions, got ${typeof e}`);return{allDirectives:n,allNodes:r}}function Vk(e,t){var c,l,d;(0,Gl.resetComments)();let{allDirectives:n,allNodes:r}=Kl(e,t),i=(0,jl.mergeGraphQLNodes)(n,t),a=(0,jl.mergeGraphQLNodes)(r,t,i);if(t!=null&&t.useSchemaDefinition){let p=a[jl.schemaDefSymbol]||{kind:$i.Kind.SCHEMA_DEFINITION,operationTypes:[]},y=p.operationTypes;for(let I in qk.DEFAULT_OPERATION_TYPE_NAME_MAP)if(!y.find(F=>F.operation===I)){let F=qk.DEFAULT_OPERATION_TYPE_NAME_MAP[I],k=a[F];k!=null&&k.name!=null&&y.push({kind:$i.Kind.OPERATION_TYPE_DEFINITION,type:{kind:$i.Kind.NAMED_TYPE,name:k.name},operation:I})}((c=p==null?void 0:p.operationTypes)==null?void 0:c.length)!=null&&p.operationTypes.length>0&&(a[jl.schemaDefSymbol]=p)}t!=null&&t.forceSchemaDefinition&&!((d=(l=a[jl.schemaDefSymbol])==null?void 0:l.operationTypes)!=null&&d.length)&&(a[jl.schemaDefSymbol]={kind:$i.Kind.SCHEMA_DEFINITION,operationTypes:[{kind:$i.Kind.OPERATION_TYPE_DEFINITION,operation:"query",type:{kind:$i.Kind.NAMED_TYPE,name:{kind:$i.Kind.NAME,value:"Query"}}}]});let o=Object.values(a);if(t!=null&&t.sort){let p=typeof t.sort=="function"?t.sort:HS.defaultStringComparator;o.sort((y,I)=>{var v,F;return p((v=y.name)==null?void 0:v.value,(F=I.name)==null?void 0:F.value)})}return o}$l.mergeGraphQLTypes=Vk});var Kk=w(Ar=>{"use strict";m();T();N();Object.defineProperty(Ar,"__esModule",{value:!0});var Zr=(xv(),pm(Mv));Zr.__exportStar(kS(),Ar);Zr.__exportStar(Gi(),Ar);Zr.__exportStar(MS(),Ar);Zr.__exportStar(xS(),Ar);Zr.__exportStar(qf(),Ar);Zr.__exportStar(VS(),Ar);Zr.__exportStar(jS(),Ar);Zr.__exportStar(Vf(),Ar);Zr.__exportStar(JS(),Ar);Zr.__exportStar(jk(),Ar);Zr.__exportStar(GS(),Ar);Zr.__exportStar(KS(),Ar);Zr.__exportStar(QS(),Ar);Zr.__exportStar(zT(),Ar)});var $k=w(Eu=>{"use strict";m();T();N();Object.defineProperty(Eu,"__esModule",{value:!0});Eu.applyExtensions=Eu.mergeExtensions=Eu.extractExtensionsFromSchema=void 0;var Gk=da(),yre=da();Object.defineProperty(Eu,"extractExtensionsFromSchema",{enumerable:!0,get:function(){return yre.extractExtensionsFromSchema}});function Ire(e){return(0,Gk.mergeDeep)(e)}Eu.mergeExtensions=Ire;function Ql(e,t){e&&(e.extensions=(0,Gk.mergeDeep)([e.extensions||{},t||{}]))}function gre(e,t){Ql(e,t.schemaExtensions);for(let[n,r]of Object.entries(t.types||{})){let i=e.getType(n);if(i){if(Ql(i,r.extensions),r.type==="object"||r.type==="interface")for(let[a,o]of Object.entries(r.fields)){let c=i.getFields()[a];if(c){Ql(c,o.extensions);for(let[l,d]of Object.entries(o.arguments))Ql(c.args.find(p=>p.name===l),d)}}else if(r.type==="input")for(let[a,o]of Object.entries(r.fields)){let c=i.getFields()[a];Ql(c,o.extensions)}else if(r.type==="enum")for(let[a,o]of Object.entries(r.values)){let c=i.getValue(a);Ql(c,o)}}}return e}Eu.applyExtensions=gre});var iE=w(Kf=>{"use strict";m();T();N();Object.defineProperty(Kf,"__esModule",{value:!0});var zS=(xv(),pm(Mv));zS.__exportStar(wk(),Kf);zS.__exportStar(Kk(),Kf);zS.__exportStar($k(),Kf)});var Mi=w(W=>{"use strict";m();T();N();Object.defineProperty(W,"__esModule",{value:!0});W.semanticNonNullArgumentErrorMessage=W.invalidEventProviderIdErrorMessage=W.invalidNatsStreamConfigurationDefinitionErrorMessage=W.invalidEdfsPublishResultObjectErrorMessage=W.invalidNatsStreamInputErrorMessage=W.inlineFragmentInFieldSetErrorMessage=W.inaccessibleQueryRootTypeError=W.subgraphValidationFailureError=W.minimumSubgraphRequirementError=void 0;W.multipleNamedTypeDefinitionError=Sre;W.incompatibleInputValueDefaultValueTypeError=Ore;W.incompatibleMergedTypesError=Dre;W.incompatibleInputValueDefaultValuesError=bre;W.incompatibleSharedEnumError=Are;W.invalidSubgraphNamesError=Rre;W.duplicateDirectiveDefinitionError=Pre;W.duplicateEnumValueDefinitionError=Fre;W.duplicateFieldDefinitionError=wre;W.duplicateInputFieldDefinitionError=Lre;W.duplicateImplementedInterfaceError=Cre;W.duplicateUnionMemberDefinitionError=Bre;W.duplicateTypeDefinitionError=Ure;W.duplicateOperationTypeDefinitionError=kre;W.noBaseDefinitionForExtensionError=Mre;W.noBaseScalarDefinitionError=xre;W.noDefinedUnionMembersError=qre;W.noDefinedEnumValuesError=Vre;W.operationDefinitionError=jre;W.invalidFieldShareabilityError=Kre;W.undefinedDirectiveError=Gre;W.undefinedTypeError=$re;W.invalidRepeatedDirectiveErrorMessage=Qre;W.invalidDirectiveError=Yre;W.invalidRepeatedFederatedDirectiveErrorMessage=Jre;W.invalidDirectiveLocationErrorMessage=Hre;W.undefinedRequiredArgumentsErrorMessage=zre;W.unexpectedDirectiveArgumentErrorMessage=Wre;W.duplicateDirectiveArgumentDefinitionsErrorMessage=Xre;W.invalidArgumentValueErrorMessage=Zre;W.maximumTypeNestingExceededError=eie;W.unexpectedKindFatalError=tie;W.incompatibleParentKindFatalError=nie;W.unexpectedEdgeFatalError=rie;W.incompatibleParentTypeMergeError=aie;W.unexpectedTypeNodeKindFatalError=sie;W.invalidKeyFatalError=oie;W.unexpectedParentKindForChildError=uie;W.subgraphValidationError=cie;W.invalidSubgraphNameErrorMessage=lie;W.invalidOperationTypeDefinitionError=die;W.invalidRootTypeDefinitionError=fie;W.subgraphInvalidSyntaxError=pie;W.invalidInterfaceImplementationError=mie;W.invalidRequiredInputValueError=Nie;W.duplicateArgumentsError=Tie;W.noQueryRootTypeError=Eie;W.expectedEntityError=hie;W.abstractTypeInKeyFieldSetErrorMessage=yie;W.unknownTypeInFieldSetErrorMessage=Iie;W.invalidSelectionSetErrorMessage=gie;W.invalidSelectionSetDefinitionErrorMessage=_ie;W.undefinedFieldInFieldSetErrorMessage=vie;W.unparsableFieldSetErrorMessage=Sie;W.unparsableFieldSetSelectionErrorMessage=Oie;W.undefinedCompositeOutputTypeError=Die;W.unexpectedArgumentErrorMessage=bie;W.argumentsInKeyFieldSetErrorMessage=Aie;W.invalidProvidesOrRequiresDirectivesError=Rie;W.duplicateFieldInFieldSetErrorMessage=Pie;W.invalidConfigurationDataErrorMessage=Fie;W.incompatibleTypeWithProvidesErrorMessage=wie;W.invalidInlineFragmentTypeErrorMessage=Lie;W.inlineFragmentWithoutTypeConditionErrorMessage=Cie;W.unknownInlineFragmentTypeConditionErrorMessage=Bie;W.invalidInlineFragmentTypeConditionTypeErrorMessage=Uie;W.invalidInlineFragmentTypeConditionErrorMessage=kie;W.invalidSelectionOnUnionErrorMessage=Mie;W.duplicateOverriddenFieldErrorMessage=xie;W.duplicateOverriddenFieldsError=qie;W.noFieldDefinitionsError=Vie;W.noInputValueDefinitionsError=jie;W.allChildDefinitionsAreInaccessibleError=Kie;W.equivalentSourceAndTargetOverrideErrorMessage=Gie;W.undefinedEntityInterfaceImplementationsError=$ie;W.orScopesLimitError=Qie;W.invalidEventDrivenGraphError=Yie;W.invalidRootTypeFieldEventsDirectivesErrorMessage=Jie;W.invalidEventDrivenMutationResponseTypeErrorMessage=Hie;W.invalidRootTypeFieldResponseTypesEventDrivenErrorMessage=zie;W.invalidNatsStreamInputFieldsErrorMessage=Wie;W.invalidKeyFieldSetsEventDrivenErrorMessage=Xie;W.nonExternalKeyFieldNamesEventDrivenErrorMessage=Zie;W.nonKeyFieldNamesEventDrivenErrorMessage=eae;W.nonEntityObjectExtensionsEventDrivenErrorMessage=tae;W.nonKeyComposingObjectTypeNamesEventDrivenErrorMessage=nae;W.invalidEdfsDirectiveName=rae;W.invalidImplementedTypeError=iae;W.selfImplementationError=aae;W.invalidEventSubjectErrorMessage=sae;W.invalidEventSubjectsErrorMessage=oae;W.invalidEventSubjectsItemErrorMessage=uae;W.invalidEventSubjectsArgumentErrorMessage=cae;W.undefinedEventSubjectsArgumentErrorMessage=lae;W.invalidEventDirectiveError=dae;W.invalidReferencesOfInaccessibleTypeError=fae;W.inaccessibleRequiredInputValueError=pae;W.invalidUnionMemberTypeError=mae;W.invalidRootTypeError=Nae;W.invalidSubscriptionFilterLocationError=Tae;W.invalidSubscriptionFilterDirectiveError=Eae;W.subscriptionFilterNamedTypeErrorMessage=hae;W.subscriptionFilterConditionDepthExceededErrorMessage=yae;W.subscriptionFilterConditionInvalidInputFieldNumberErrorMessage=Iae;W.subscriptionFilterConditionInvalidInputFieldErrorMessage=gae;W.subscriptionFilterConditionInvalidInputFieldTypeErrorMessage=_ae;W.subscriptionFilterArrayConditionInvalidItemTypeErrorMessage=vae;W.subscriptionFilterArrayConditionInvalidLengthErrorMessage=Sae;W.invalidInputFieldTypeErrorMessage=Oae;W.subscriptionFieldConditionInvalidInputFieldErrorMessage=Dae;W.subscriptionFieldConditionInvalidValuesArrayErrorMessage=bae;W.subscriptionFieldConditionEmptyValuesArrayErrorMessage=Aae;W.unknownFieldSubgraphNameError=Rae;W.invalidSubscriptionFieldConditionFieldPathErrorMessage=Pae;W.invalidSubscriptionFieldConditionFieldPathParentErrorMessage=Fae;W.undefinedSubscriptionFieldConditionFieldPathFieldErrorMessage=wae;W.invalidSubscriptionFieldConditionFieldPathFieldErrorMessage=Lae;W.inaccessibleSubscriptionFieldConditionFieldPathFieldErrorMessage=Cae;W.nonLeafSubscriptionFieldConditionFieldPathFinalFieldErrorMessage=Bae;W.unresolvablePathError=Uae;W.allExternalFieldInstancesError=kae;W.externalInterfaceFieldsError=Mae;W.nonExternalConditionalFieldError=xae;W.incompatibleFederatedFieldNamedTypeError=qae;W.unknownNamedTypeErrorMessage=Wk;W.unknownNamedTypeError=Vae;W.unknownFieldDataError=jae;W.unexpectedNonCompositeOutputTypeError=Kae;W.invalidExternalDirectiveError=Gae;W.configureDescriptionNoDescriptionError=$ae;W.configureDescriptionPropagationError=Qae;W.duplicateDirectiveDefinitionArgumentErrorMessage=Yae;W.duplicateDirectiveDefinitionLocationErrorMessage=Jae;W.invalidDirectiveDefinitionLocationErrorMessage=Hae;W.invalidDirectiveDefinitionError=zae;W.fieldAlreadyProvidedErrorMessage=Wae;W.invalidInterfaceObjectImplementationDefinitionsError=Xae;W.invalidNamedTypeError=Zae;W.semanticNonNullLevelsNaNIndexErrorMessage=ese;W.semanticNonNullLevelsIndexOutOfBoundsErrorMessage=tse;W.semanticNonNullLevelsNonNullErrorMessage=nse;W.semanticNonNullInconsistentLevelsError=rse;W.oneOfRequiredFieldsError=ise;var Qk=De(),He=vr(),Yk=gl(),hc=Sr(),_re=Sl(),vre=iE();W.minimumSubgraphRequirementError=new Error("At least one subgraph is required for federation.");function Sre(e,t,n){return new Error(`The named type "${e}" is defined as both types "${t}" and "${n}". -However, there must be only one type named "${e}".`)}function Ore(e,t,n,r){return new Error(`The ${e} of type "${n}" defined on path "${t}" is incompatible with the default value of "${r}".`)}function Dre({actualType:e,coords:t,expectedType:n,isArgument:r}){return new Error(`Incompatible types when merging two instances of ${r?"field argument":He.FIELD} "${t}": - Expected type "${n}" but received "${e}".`)}function bre(e,t,n,r,i){return new Error(`Expected the ${e} defined on path "${t}" to define the default value "${r}". + ${n}`)}function jne(e,t){return t?(qne(e,t),$(M({},e),{locations:[...t.locations,...e.locations.filter(n=>!kne(n,t.locations))]})):e}Xl.mergeDirective=jne;function Vne(e,t,n){return e.concat(t.filter(r=>n(r,e)))}});var iO=F(lE=>{"use strict";m();T();N();Object.defineProperty(lE,"__esModule",{value:!0});lE.mergeEnumValues=void 0;var Kne=Wi(),Gne=ya();function $ne(e,t,n,r){if(n!=null&&n.consistentEnumMerge){let o=[];e&&o.push(...e),e=t,t=o}let i=new Map;if(e)for(let o of e)i.set(o.name.value,o);if(t)for(let o of t){let c=o.name.value;if(i.has(c)){let l=i.get(c);l.description=o.description||l.description,l.directives=(0,Kne.mergeDirectives)(o.directives,l.directives,r)}else i.set(c,o)}let a=[...i.values()];return n&&n.sort&&a.sort(Gne.compareNodes),a}lE.mergeEnumValues=$ne});var aO=F(dE=>{"use strict";m();T();N();Object.defineProperty(dE,"__esModule",{value:!0});dE.mergeEnum=void 0;var Qne=Se(),Yne=Wi(),Jne=iO();function Hne(e,t,n,r){return t?{name:e.name,description:e.description||t.description,kind:n!=null&&n.convertExtensions||e.kind==="EnumTypeDefinition"||t.kind==="EnumTypeDefinition"?"EnumTypeDefinition":"EnumTypeExtension",loc:e.loc,directives:(0,Yne.mergeDirectives)(e.directives,t.directives,n,r),values:(0,Jne.mergeEnumValues)(e.values,t.values,n)}:n!=null&&n.convertExtensions?$(M({},e),{kind:Qne.Kind.ENUM_TYPE_DEFINITION}):e}dE.mergeEnum=Hne});var pE=F($n=>{"use strict";m();T();N();Object.defineProperty($n,"__esModule",{value:!0});$n.defaultStringComparator=$n.CompareVal=$n.printTypeNode=$n.isNonNullTypeNode=$n.isListTypeNode=$n.isWrappingTypeNode=$n.extractType=$n.isSourceTypes=$n.isStringTypes=void 0;var zp=Se();function zne(e){return typeof e=="string"}$n.isStringTypes=zne;function Wne(e){return e instanceof zp.Source}$n.isSourceTypes=Wne;function Xne(e){let t=e;for(;t.kind===zp.Kind.LIST_TYPE||t.kind==="NonNullType";)t=t.type;return t}$n.extractType=Xne;function Zne(e){return e.kind!==zp.Kind.NAMED_TYPE}$n.isWrappingTypeNode=Zne;function iM(e){return e.kind===zp.Kind.LIST_TYPE}$n.isListTypeNode=iM;function aM(e){return e.kind===zp.Kind.NON_NULL_TYPE}$n.isNonNullTypeNode=aM;function sO(e){return iM(e)?`[${sO(e.type)}]`:aM(e)?`${sO(e.type)}!`:e.name.value}$n.printTypeNode=sO;var Dc;(function(e){e[e.A_SMALLER_THAN_B=-1]="A_SMALLER_THAN_B",e[e.A_EQUALS_B=0]="A_EQUALS_B",e[e.A_GREATER_THAN_B=1]="A_GREATER_THAN_B"})(Dc=$n.CompareVal||($n.CompareVal={}));function ere(e,t){return e==null&&t==null?Dc.A_EQUALS_B:e==null?Dc.A_SMALLER_THAN_B:t==null?Dc.A_GREATER_THAN_B:et?Dc.A_GREATER_THAN_B:Dc.A_EQUALS_B}$n.defaultStringComparator=ere});var Xp=F(fE=>{"use strict";m();T();N();Object.defineProperty(fE,"__esModule",{value:!0});fE.mergeFields=void 0;var ai=pE(),tre=Wi(),nre=ya(),rre=rO();function ire(e,t){let n=e.findIndex(r=>r.name.value===t.name.value);return[n>-1?e[n]:null,n]}function are(e,t,n,r,i){let a=[];if(n!=null&&a.push(...n),t!=null)for(let o of t){let[c,l]=ire(a,o);if(c&&!(r!=null&&r.ignoreFieldConflicts)){let d=(r==null?void 0:r.onFieldTypeConflict)&&r.onFieldTypeConflict(c,o,e,r==null?void 0:r.throwOnConflict)||sre(e,c,o,r==null?void 0:r.throwOnConflict);d.arguments=(0,rre.mergeArguments)(o.arguments||[],c.arguments||[],r),d.directives=(0,tre.mergeDirectives)(o.directives,c.directives,r,i),d.description=o.description||c.description,a[l]=d}else a.push(o)}if(r&&r.sort&&a.sort(nre.compareNodes),r&&r.exclusions){let o=r.exclusions;return a.filter(c=>!o.includes(`${e.name.value}.${c.name.value}`))}return a}fE.mergeFields=are;function sre(e,t,n,r=!1){let i=(0,ai.printTypeNode)(t.type),a=(0,ai.printTypeNode)(n.type);if(i!==a){let o=(0,ai.extractType)(t.type),c=(0,ai.extractType)(n.type);if(o.name.value!==c.name.value)throw new Error(`Field "${n.name.value}" already defined with a different type. Declared as "${o.name.value}", but you tried to override with "${c.name.value}"`);if(!Wp(t.type,n.type,!r))throw new Error(`Field '${e.name.value}.${t.name.value}' changed type from '${i}' to '${a}'`)}return(0,ai.isNonNullTypeNode)(n.type)&&!(0,ai.isNonNullTypeNode)(t.type)&&(t.type=n.type),t}function Wp(e,t,n=!1){if(!(0,ai.isWrappingTypeNode)(e)&&!(0,ai.isWrappingTypeNode)(t))return e.toString()===t.toString();if((0,ai.isNonNullTypeNode)(t)){let r=(0,ai.isNonNullTypeNode)(e)?e.type:e;return Wp(r,t.type)}return(0,ai.isNonNullTypeNode)(e)?Wp(t,e,n):(0,ai.isListTypeNode)(e)?(0,ai.isListTypeNode)(t)&&Wp(e.type,t.type)||(0,ai.isNonNullTypeNode)(t)&&Wp(e,t.type):!1}});var oO=F(mE=>{"use strict";m();T();N();Object.defineProperty(mE,"__esModule",{value:!0});mE.mergeInputType=void 0;var ore=Se(),ure=Xp(),cre=Wi();function lre(e,t,n,r){if(t)try{return{name:e.name,description:e.description||t.description,kind:n!=null&&n.convertExtensions||e.kind==="InputObjectTypeDefinition"||t.kind==="InputObjectTypeDefinition"?"InputObjectTypeDefinition":"InputObjectTypeExtension",loc:e.loc,fields:(0,ure.mergeFields)(e,e.fields,t.fields,n),directives:(0,cre.mergeDirectives)(e.directives,t.directives,n,r)}}catch(i){throw new Error(`Unable to merge GraphQL input type "${e.name.value}": ${i.message}`)}return n!=null&&n.convertExtensions?$(M({},e),{kind:ore.Kind.INPUT_OBJECT_TYPE_DEFINITION}):e}mE.mergeInputType=lre});var Zp=F(NE=>{"use strict";m();T();N();Object.defineProperty(NE,"__esModule",{value:!0});NE.mergeNamedTypeArray=void 0;var dre=ya();function pre(e,t){return!!e.find(n=>n.name.value===t.name.value)}function fre(e=[],t=[],n={}){let r=[...t,...e.filter(i=>!pre(t,i))];return n&&n.sort&&r.sort(dre.compareNodes),r}NE.mergeNamedTypeArray=fre});var uO=F(TE=>{"use strict";m();T();N();Object.defineProperty(TE,"__esModule",{value:!0});TE.mergeInterface=void 0;var mre=Se(),Nre=Xp(),Tre=Wi(),Ere=Zp();function hre(e,t,n,r){if(t)try{return{name:e.name,description:e.description||t.description,kind:n!=null&&n.convertExtensions||e.kind==="InterfaceTypeDefinition"||t.kind==="InterfaceTypeDefinition"?"InterfaceTypeDefinition":"InterfaceTypeExtension",loc:e.loc,fields:(0,Nre.mergeFields)(e,e.fields,t.fields,n),directives:(0,Tre.mergeDirectives)(e.directives,t.directives,n,r),interfaces:e.interfaces?(0,Ere.mergeNamedTypeArray)(e.interfaces,t.interfaces,n):void 0}}catch(i){throw new Error(`Unable to merge GraphQL interface "${e.name.value}": ${i.message}`)}return n!=null&&n.convertExtensions?$(M({},e),{kind:mre.Kind.INTERFACE_TYPE_DEFINITION}):e}TE.mergeInterface=hre});var cO=F(EE=>{"use strict";m();T();N();Object.defineProperty(EE,"__esModule",{value:!0});EE.mergeType=void 0;var yre=Se(),Ire=Xp(),gre=Wi(),_re=Zp();function vre(e,t,n,r){if(t)try{return{name:e.name,description:e.description||t.description,kind:n!=null&&n.convertExtensions||e.kind==="ObjectTypeDefinition"||t.kind==="ObjectTypeDefinition"?"ObjectTypeDefinition":"ObjectTypeExtension",loc:e.loc,fields:(0,Ire.mergeFields)(e,e.fields,t.fields,n),directives:(0,gre.mergeDirectives)(e.directives,t.directives,n,r),interfaces:(0,_re.mergeNamedTypeArray)(e.interfaces,t.interfaces,n)}}catch(i){throw new Error(`Unable to merge GraphQL type "${e.name.value}": ${i.message}`)}return n!=null&&n.convertExtensions?$(M({},e),{kind:yre.Kind.OBJECT_TYPE_DEFINITION}):e}EE.mergeType=vre});var lO=F(hE=>{"use strict";m();T();N();Object.defineProperty(hE,"__esModule",{value:!0});hE.mergeScalar=void 0;var Sre=Se(),Ore=Wi();function Dre(e,t,n,r){return t?{name:e.name,description:e.description||t.description,kind:n!=null&&n.convertExtensions||e.kind==="ScalarTypeDefinition"||t.kind==="ScalarTypeDefinition"?"ScalarTypeDefinition":"ScalarTypeExtension",loc:e.loc,directives:(0,Ore.mergeDirectives)(e.directives,t.directives,n,r)}:n!=null&&n.convertExtensions?$(M({},e),{kind:Sre.Kind.SCALAR_TYPE_DEFINITION}):e}hE.mergeScalar=Dre});var pO=F(yE=>{"use strict";m();T();N();Object.defineProperty(yE,"__esModule",{value:!0});yE.mergeUnion=void 0;var dO=Se(),bre=Wi(),Are=Zp();function Rre(e,t,n,r){return t?{name:e.name,description:e.description||t.description,directives:(0,bre.mergeDirectives)(e.directives,t.directives,n,r),kind:n!=null&&n.convertExtensions||e.kind==="UnionTypeDefinition"||t.kind==="UnionTypeDefinition"?dO.Kind.UNION_TYPE_DEFINITION:dO.Kind.UNION_TYPE_EXTENSION,loc:e.loc,types:(0,Are.mergeNamedTypeArray)(e.types,t.types,n)}:n!=null&&n.convertExtensions?$(M({},e),{kind:dO.Kind.UNION_TYPE_DEFINITION}):e}yE.mergeUnion=Rre});var fO=F(bc=>{"use strict";m();T();N();Object.defineProperty(bc,"__esModule",{value:!0});bc.mergeSchemaDefs=bc.DEFAULT_OPERATION_TYPE_NAME_MAP=void 0;var ef=Se(),Pre=Wi();bc.DEFAULT_OPERATION_TYPE_NAME_MAP={query:"Query",mutation:"Mutation",subscription:"Subscription"};function Fre(e=[],t=[]){let n=[];for(let r in bc.DEFAULT_OPERATION_TYPE_NAME_MAP){let i=e.find(a=>a.operation===r)||t.find(a=>a.operation===r);i&&n.push(i)}return n}function wre(e,t,n,r){return t?{kind:e.kind===ef.Kind.SCHEMA_DEFINITION||t.kind===ef.Kind.SCHEMA_DEFINITION?ef.Kind.SCHEMA_DEFINITION:ef.Kind.SCHEMA_EXTENSION,description:e.description||t.description,directives:(0,Pre.mergeDirectives)(e.directives,t.directives,n,r),operationTypes:Fre(e.operationTypes,t.operationTypes)}:n!=null&&n.convertExtensions?$(M({},e),{kind:ef.Kind.SCHEMA_DEFINITION}):e}bc.mergeSchemaDefs=wre});var mO=F(Za=>{"use strict";m();T();N();Object.defineProperty(Za,"__esModule",{value:!0});Za.mergeGraphQLNodes=Za.isNamedDefinitionNode=Za.schemaDefSymbol=void 0;var Gr=Se(),Lre=cO(),Cre=aO(),Bre=lO(),Ure=pO(),kre=oO(),Mre=uO(),xre=Wi(),qre=fO(),jre=ya();Za.schemaDefSymbol="SCHEMA_DEF_SYMBOL";function sM(e){return"name"in e}Za.isNamedDefinitionNode=sM;function Vre(e,t,n={}){var i,a,o;let r=n;for(let c of e)if(sM(c)){let l=(i=c.name)==null?void 0:i.value;if(t!=null&&t.commentDescriptions&&(0,jre.collectComment)(c),l==null)continue;if((a=t==null?void 0:t.exclusions)!=null&&a.includes(l+".*")||(o=t==null?void 0:t.exclusions)!=null&&o.includes(l))delete r[l];else switch(c.kind){case Gr.Kind.OBJECT_TYPE_DEFINITION:case Gr.Kind.OBJECT_TYPE_EXTENSION:r[l]=(0,Lre.mergeType)(c,r[l],t,n);break;case Gr.Kind.ENUM_TYPE_DEFINITION:case Gr.Kind.ENUM_TYPE_EXTENSION:r[l]=(0,Cre.mergeEnum)(c,r[l],t,n);break;case Gr.Kind.UNION_TYPE_DEFINITION:case Gr.Kind.UNION_TYPE_EXTENSION:r[l]=(0,Ure.mergeUnion)(c,r[l],t,n);break;case Gr.Kind.SCALAR_TYPE_DEFINITION:case Gr.Kind.SCALAR_TYPE_EXTENSION:r[l]=(0,Bre.mergeScalar)(c,r[l],t,n);break;case Gr.Kind.INPUT_OBJECT_TYPE_DEFINITION:case Gr.Kind.INPUT_OBJECT_TYPE_EXTENSION:r[l]=(0,kre.mergeInputType)(c,r[l],t,n);break;case Gr.Kind.INTERFACE_TYPE_DEFINITION:case Gr.Kind.INTERFACE_TYPE_EXTENSION:r[l]=(0,Mre.mergeInterface)(c,r[l],t,n);break;case Gr.Kind.DIRECTIVE_DEFINITION:r[l]=(0,xre.mergeDirective)(c,r[l]);break}}else(c.kind===Gr.Kind.SCHEMA_DEFINITION||c.kind===Gr.Kind.SCHEMA_EXTENSION)&&(r[Za.schemaDefSymbol]=(0,qre.mergeSchemaDefs)(c,r[Za.schemaDefSymbol],t));return r}Za.mergeGraphQLNodes=Vre});var cM=F(nd=>{"use strict";m();T();N();Object.defineProperty(nd,"__esModule",{value:!0});nd.mergeGraphQLTypes=nd.mergeTypeDefs=void 0;var Xi=Se(),NO=pE(),Zl=mO(),td=ya(),oM=fO();function Kre(e,t){(0,td.resetComments)();let n={kind:Xi.Kind.DOCUMENT,definitions:uM(e,M({useSchemaDefinition:!0,forceSchemaDefinition:!1,throwOnConflict:!1,commentDescriptions:!1},t))},r;return t!=null&&t.commentDescriptions?r=(0,td.printWithComments)(n):r=n,(0,td.resetComments)(),r}nd.mergeTypeDefs=Kre;function ed(e,t,n=[],r=[],i=new Set){if(e&&!i.has(e))if(i.add(e),typeof e=="function")ed(e(),t,n,r,i);else if(Array.isArray(e))for(let a of e)ed(a,t,n,r,i);else if((0,Xi.isSchema)(e)){let a=(0,td.getDocumentNodeFromSchema)(e,t);ed(a.definitions,t,n,r,i)}else if((0,NO.isStringTypes)(e)||(0,NO.isSourceTypes)(e)){let a=(0,Xi.parse)(e,t);ed(a.definitions,t,n,r,i)}else if(typeof e=="object"&&(0,Xi.isDefinitionNode)(e))e.kind===Xi.Kind.DIRECTIVE_DEFINITION?n.push(e):r.push(e);else if((0,td.isDocumentNode)(e))ed(e.definitions,t,n,r,i);else throw new Error(`typeDefs must contain only strings, documents, schemas, or functions, got ${typeof e}`);return{allDirectives:n,allNodes:r}}function uM(e,t){var c,l,d;(0,td.resetComments)();let{allDirectives:n,allNodes:r}=ed(e,t),i=(0,Zl.mergeGraphQLNodes)(n,t),a=(0,Zl.mergeGraphQLNodes)(r,t,i);if(t!=null&&t.useSchemaDefinition){let f=a[Zl.schemaDefSymbol]||{kind:Xi.Kind.SCHEMA_DEFINITION,operationTypes:[]},y=f.operationTypes;for(let I in oM.DEFAULT_OPERATION_TYPE_NAME_MAP)if(!y.find(w=>w.operation===I)){let w=oM.DEFAULT_OPERATION_TYPE_NAME_MAP[I],U=a[w];U!=null&&U.name!=null&&y.push({kind:Xi.Kind.OPERATION_TYPE_DEFINITION,type:{kind:Xi.Kind.NAMED_TYPE,name:U.name},operation:I})}((c=f==null?void 0:f.operationTypes)==null?void 0:c.length)!=null&&f.operationTypes.length>0&&(a[Zl.schemaDefSymbol]=f)}t!=null&&t.forceSchemaDefinition&&!((d=(l=a[Zl.schemaDefSymbol])==null?void 0:l.operationTypes)!=null&&d.length)&&(a[Zl.schemaDefSymbol]={kind:Xi.Kind.SCHEMA_DEFINITION,operationTypes:[{kind:Xi.Kind.OPERATION_TYPE_DEFINITION,operation:"query",type:{kind:Xi.Kind.NAMED_TYPE,name:{kind:Xi.Kind.NAME,value:"Query"}}}]});let o=Object.values(a);if(t!=null&&t.sort){let f=typeof t.sort=="function"?t.sort:NO.defaultStringComparator;o.sort((y,I)=>{var v,w;return f((v=y.name)==null?void 0:v.value,(w=I.name)==null?void 0:w.value)})}return o}nd.mergeGraphQLTypes=uM});var lM=F(Br=>{"use strict";m();T();N();Object.defineProperty(Br,"__esModule",{value:!0});var si=(aS(),Am(iS));si.__exportStar(rO(),Br);si.__exportStar(Wi(),Br);si.__exportStar(iO(),Br);si.__exportStar(aO(),Br);si.__exportStar(Xp(),Br);si.__exportStar(oO(),Br);si.__exportStar(uO(),Br);si.__exportStar(Zp(),Br);si.__exportStar(mO(),Br);si.__exportStar(cM(),Br);si.__exportStar(lO(),Br);si.__exportStar(cO(),Br);si.__exportStar(pO(),Br);si.__exportStar(pE(),Br)});var pM=F(Du=>{"use strict";m();T();N();Object.defineProperty(Du,"__esModule",{value:!0});Du.applyExtensions=Du.mergeExtensions=Du.extractExtensionsFromSchema=void 0;var dM=ya(),Gre=ya();Object.defineProperty(Du,"extractExtensionsFromSchema",{enumerable:!0,get:function(){return Gre.extractExtensionsFromSchema}});function $re(e){return(0,dM.mergeDeep)(e)}Du.mergeExtensions=$re;function rd(e,t){e&&(e.extensions=(0,dM.mergeDeep)([e.extensions||{},t||{}]))}function Qre(e,t){rd(e,t.schemaExtensions);for(let[n,r]of Object.entries(t.types||{})){let i=e.getType(n);if(i){if(rd(i,r.extensions),r.type==="object"||r.type==="interface")for(let[a,o]of Object.entries(r.fields)){let c=i.getFields()[a];if(c){rd(c,o.extensions);for(let[l,d]of Object.entries(o.arguments))rd(c.args.find(f=>f.name===l),d)}}else if(r.type==="input")for(let[a,o]of Object.entries(r.fields)){let c=i.getFields()[a];rd(c,o.extensions)}else if(r.type==="enum")for(let[a,o]of Object.entries(r.values)){let c=i.getValue(a);rd(c,o)}}}return e}Du.applyExtensions=Qre});var IE=F(tf=>{"use strict";m();T();N();Object.defineProperty(tf,"__esModule",{value:!0});var TO=(aS(),Am(iS));TO.__exportStar(Zk(),tf);TO.__exportStar(lM(),tf);TO.__exportStar(pM(),tf)});var Gi=F(z=>{"use strict";m();T();N();Object.defineProperty(z,"__esModule",{value:!0});z.semanticNonNullArgumentErrorMessage=z.invalidEventProviderIdErrorMessage=z.invalidNatsStreamConfigurationDefinitionErrorMessage=z.invalidEdfsPublishResultObjectErrorMessage=z.invalidNatsStreamInputErrorMessage=z.inlineFragmentInFieldSetErrorMessage=z.inaccessibleQueryRootTypeError=z.subgraphValidationFailureError=z.minimumSubgraphRequirementError=void 0;z.multipleNamedTypeDefinitionError=Hre;z.incompatibleInputValueDefaultValueTypeError=zre;z.incompatibleMergedTypesError=Wre;z.incompatibleInputValueDefaultValuesError=Xre;z.incompatibleSharedEnumError=Zre;z.invalidSubgraphNamesError=eie;z.duplicateDirectiveDefinitionError=tie;z.duplicateEnumValueDefinitionError=nie;z.duplicateFieldDefinitionError=rie;z.duplicateInputFieldDefinitionError=iie;z.duplicateImplementedInterfaceError=aie;z.duplicateUnionMemberDefinitionError=sie;z.duplicateTypeDefinitionError=oie;z.duplicateOperationTypeDefinitionError=uie;z.noBaseDefinitionForExtensionError=cie;z.noBaseScalarDefinitionError=lie;z.noDefinedUnionMembersError=die;z.noDefinedEnumValuesError=pie;z.operationDefinitionError=fie;z.invalidFieldShareabilityError=mie;z.undefinedDirectiveError=Nie;z.undefinedTypeError=Tie;z.invalidRepeatedDirectiveErrorMessage=Eie;z.invalidDirectiveError=hie;z.invalidRepeatedFederatedDirectiveErrorMessage=yie;z.invalidDirectiveLocationErrorMessage=Iie;z.undefinedRequiredArgumentsErrorMessage=gie;z.unexpectedDirectiveArgumentErrorMessage=_ie;z.duplicateDirectiveArgumentDefinitionsErrorMessage=vie;z.invalidArgumentValueErrorMessage=Sie;z.maximumTypeNestingExceededError=Oie;z.unexpectedKindFatalError=Die;z.incompatibleParentKindFatalError=bie;z.unexpectedEdgeFatalError=Aie;z.incompatibleParentTypeMergeError=Pie;z.unexpectedTypeNodeKindFatalError=Fie;z.invalidKeyFatalError=wie;z.unexpectedParentKindForChildError=Lie;z.subgraphValidationError=Cie;z.invalidSubgraphNameErrorMessage=Bie;z.invalidOperationTypeDefinitionError=Uie;z.invalidRootTypeDefinitionError=kie;z.subgraphInvalidSyntaxError=Mie;z.invalidInterfaceImplementationError=xie;z.invalidRequiredInputValueError=qie;z.duplicateArgumentsError=jie;z.noQueryRootTypeError=Vie;z.expectedEntityError=Kie;z.abstractTypeInKeyFieldSetErrorMessage=Gie;z.unknownTypeInFieldSetErrorMessage=$ie;z.invalidSelectionSetErrorMessage=Qie;z.invalidSelectionSetDefinitionErrorMessage=Yie;z.undefinedFieldInFieldSetErrorMessage=Jie;z.unparsableFieldSetErrorMessage=Hie;z.unparsableFieldSetSelectionErrorMessage=zie;z.undefinedCompositeOutputTypeError=Wie;z.unexpectedArgumentErrorMessage=Xie;z.argumentsInKeyFieldSetErrorMessage=Zie;z.invalidProvidesOrRequiresDirectivesError=eae;z.duplicateFieldInFieldSetErrorMessage=tae;z.invalidConfigurationDataErrorMessage=nae;z.incompatibleTypeWithProvidesErrorMessage=rae;z.invalidInlineFragmentTypeErrorMessage=iae;z.inlineFragmentWithoutTypeConditionErrorMessage=aae;z.unknownInlineFragmentTypeConditionErrorMessage=sae;z.invalidInlineFragmentTypeConditionTypeErrorMessage=oae;z.invalidInlineFragmentTypeConditionErrorMessage=uae;z.invalidSelectionOnUnionErrorMessage=cae;z.duplicateOverriddenFieldErrorMessage=lae;z.duplicateOverriddenFieldsError=dae;z.noFieldDefinitionsError=pae;z.noInputValueDefinitionsError=fae;z.allChildDefinitionsAreInaccessibleError=mae;z.equivalentSourceAndTargetOverrideErrorMessage=Nae;z.undefinedEntityInterfaceImplementationsError=Tae;z.orScopesLimitError=Eae;z.invalidEventDrivenGraphError=hae;z.invalidRootTypeFieldEventsDirectivesErrorMessage=yae;z.invalidEventDrivenMutationResponseTypeErrorMessage=Iae;z.invalidRootTypeFieldResponseTypesEventDrivenErrorMessage=gae;z.invalidNatsStreamInputFieldsErrorMessage=_ae;z.invalidKeyFieldSetsEventDrivenErrorMessage=vae;z.nonExternalKeyFieldNamesEventDrivenErrorMessage=Sae;z.nonKeyFieldNamesEventDrivenErrorMessage=Oae;z.nonEntityObjectExtensionsEventDrivenErrorMessage=Dae;z.nonKeyComposingObjectTypeNamesEventDrivenErrorMessage=bae;z.invalidEdfsDirectiveName=Aae;z.invalidImplementedTypeError=Rae;z.selfImplementationError=Pae;z.invalidEventSubjectErrorMessage=Fae;z.invalidEventSubjectsErrorMessage=wae;z.invalidEventSubjectsItemErrorMessage=Lae;z.invalidEventSubjectsArgumentErrorMessage=Cae;z.undefinedEventSubjectsArgumentErrorMessage=Bae;z.invalidEventDirectiveError=Uae;z.invalidReferencesOfInaccessibleTypeError=kae;z.inaccessibleRequiredInputValueError=Mae;z.invalidUnionMemberTypeError=xae;z.invalidRootTypeError=qae;z.invalidSubscriptionFilterLocationError=jae;z.invalidSubscriptionFilterDirectiveError=Vae;z.subscriptionFilterNamedTypeErrorMessage=Kae;z.subscriptionFilterConditionDepthExceededErrorMessage=Gae;z.subscriptionFilterConditionInvalidInputFieldNumberErrorMessage=$ae;z.subscriptionFilterConditionInvalidInputFieldErrorMessage=Qae;z.subscriptionFilterConditionInvalidInputFieldTypeErrorMessage=Yae;z.subscriptionFilterArrayConditionInvalidItemTypeErrorMessage=Jae;z.subscriptionFilterArrayConditionInvalidLengthErrorMessage=Hae;z.invalidInputFieldTypeErrorMessage=zae;z.subscriptionFieldConditionInvalidInputFieldErrorMessage=Wae;z.subscriptionFieldConditionInvalidValuesArrayErrorMessage=Xae;z.subscriptionFieldConditionEmptyValuesArrayErrorMessage=Zae;z.unknownFieldSubgraphNameError=ese;z.invalidSubscriptionFieldConditionFieldPathErrorMessage=tse;z.invalidSubscriptionFieldConditionFieldPathParentErrorMessage=nse;z.undefinedSubscriptionFieldConditionFieldPathFieldErrorMessage=rse;z.invalidSubscriptionFieldConditionFieldPathFieldErrorMessage=ise;z.inaccessibleSubscriptionFieldConditionFieldPathFieldErrorMessage=ase;z.nonLeafSubscriptionFieldConditionFieldPathFinalFieldErrorMessage=sse;z.unresolvablePathError=ose;z.allExternalFieldInstancesError=use;z.externalInterfaceFieldsError=cse;z.nonExternalConditionalFieldError=lse;z.incompatibleFederatedFieldNamedTypeError=dse;z.unknownNamedTypeErrorMessage=hM;z.unknownNamedTypeError=pse;z.unknownFieldDataError=fse;z.unexpectedNonCompositeOutputTypeError=mse;z.invalidExternalDirectiveError=Nse;z.configureDescriptionNoDescriptionError=Tse;z.configureDescriptionPropagationError=Ese;z.duplicateDirectiveDefinitionArgumentErrorMessage=hse;z.duplicateDirectiveDefinitionLocationErrorMessage=yse;z.invalidDirectiveDefinitionLocationErrorMessage=Ise;z.invalidDirectiveDefinitionError=gse;z.fieldAlreadyProvidedErrorMessage=_se;z.invalidInterfaceObjectImplementationDefinitionsError=vse;z.invalidNamedTypeError=Sse;z.semanticNonNullLevelsNaNIndexErrorMessage=Ose;z.semanticNonNullLevelsIndexOutOfBoundsErrorMessage=Dse;z.semanticNonNullLevelsNonNullErrorMessage=bse;z.semanticNonNullInconsistentLevelsError=Ase;z.oneOfRequiredFieldsError=Rse;var fM=Se(),He=sr(),mM=wl(),Ac=Pr(),Yre=Bl(),Jre=IE();z.minimumSubgraphRequirementError=new Error("At least one subgraph is required for federation.");function Hre(e,t,n){return new Error(`The named type "${e}" is defined as both types "${t}" and "${n}". +However, there must be only one type named "${e}".`)}function zre(e,t,n,r){return new Error(`The ${e} of type "${n}" defined on path "${t}" is incompatible with the default value of "${r}".`)}function Wre({actualType:e,coords:t,expectedType:n,isArgument:r}){return new Error(`Incompatible types when merging two instances of ${r?"field argument":He.FIELD} "${t}": + Expected type "${n}" but received "${e}".`)}function Xre(e,t,n,r,i){return new Error(`Expected the ${e} defined on path "${t}" to define the default value "${r}". "However, the default value "${i}" is defined in the following subgraph`+(n.length>1?"s":"")+`: "`+n.join(He.QUOTATION_JOIN)+`" -If an instance defines a default value, that default value must be consistently defined across all subgraphs.`)}function Are(e){return new Error(`Enum "${e}" was used as both an input and output but was inconsistently defined across inclusive subgraphs.`)}function Rre(e,t){let n="Subgraphs to be federated must each have a unique, non-empty name.";e.length>0&&(n+=` +If an instance defines a default value, that default value must be consistently defined across all subgraphs.`)}function Zre(e){return new Error(`Enum "${e}" was used as both an input and output but was inconsistently defined across inclusive subgraphs.`)}function eie(e,t){let n="Subgraphs to be federated must each have a unique, non-empty name.";e.length>0&&(n+=` The following subgraph names are not unique: "`+e.join('", "')+'"');for(let r of t)n+=` - ${r}`;return new Error(n)}function Pre(e){return new Error(`The directive "${e}" must only be defined once.`)}function Fre(e,t){return new Error(`The Enum "${e}" must only define the Enum value definition "${t}" once.`)}function wre(e,t,n){return new Error(`The ${e} "${t}" must only define the field definition "${n}" once.`)}function Lre(e,t){return new Error(`The Input Object "${e}" must only define the Input field definition "${t}" once.`)}function Cre(e,t,n){return new Error(`The ${e} "${t}" must only implement the Interface "${n}" once.`)}function Bre(e,t){return new Error(`The Union "${e}" must only define the Union member "${t}" once.`)}function Ure(e,t){return new Error(`The ${e} "${t}" must only be defined once.`)}function kre(e,t,n){return new Error(`The operation type "${e}" cannot be defined as "${t}" because it has already been defined as "${n}".`)}function Mre(e,t){return new Error(`The ${e} "${t}" is an extension, but no base ${e} definition of "${t}" is defined in any subgraph.`)}function xre(e){return new Error(`The Scalar extension "${e}" is invalid because no base Scalar definition of "${e} is defined in the subgraph.`)}function qre(e){return new Error(`The Union "${e}" must define at least one Union member.`)}function Vre(e){return new Error(`The Enum "${e}" must define at least one Enum value.`)}function jre(e,t,n){return new Error(`Expected the response type "${e}" for operation "${t}" to be type Object but received "${n}.`)}function Kre(e,t){let n=e.name,r=[];for(let[i,a]of e.fieldDataByName){if(!t.has(i))continue;let o=[],c=[];for(let[l,d]of a.isShareableBySubgraphName)d?o.push(l):c.push(l);o.length<1?r.push(` + ${r}`;return new Error(n)}function tie(e){return new Error(`The directive "${e}" must only be defined once.`)}function nie(e,t){return new Error(`The Enum "${e}" must only define the Enum value definition "${t}" once.`)}function rie(e,t,n){return new Error(`The ${e} "${t}" must only define the field definition "${n}" once.`)}function iie(e,t){return new Error(`The Input Object "${e}" must only define the Input field definition "${t}" once.`)}function aie(e,t,n){return new Error(`The ${e} "${t}" must only implement the Interface "${n}" once.`)}function sie(e,t){return new Error(`The Union "${e}" must only define the Union member "${t}" once.`)}function oie(e,t){return new Error(`The ${e} "${t}" must only be defined once.`)}function uie(e,t,n){return new Error(`The operation type "${e}" cannot be defined as "${t}" because it has already been defined as "${n}".`)}function cie(e,t){return new Error(`The ${e} "${t}" is an extension, but no base ${e} definition of "${t}" is defined in any subgraph.`)}function lie(e){return new Error(`The Scalar extension "${e}" is invalid because no base Scalar definition of "${e} is defined in the subgraph.`)}function die(e){return new Error(`The Union "${e}" must define at least one Union member.`)}function pie(e){return new Error(`The Enum "${e}" must define at least one Enum value.`)}function fie(e,t,n){return new Error(`Expected the response type "${e}" for operation "${t}" to be type Object but received "${n}.`)}function mie(e,t){let n=e.name,r=[];for(let[i,a]of e.fieldDataByName){if(!t.has(i))continue;let o=[],c=[];for(let[l,d]of a.isShareableBySubgraphName)d?o.push(l):c.push(l);o.length<1?r.push(` The field "${i}" is defined in the following subgraphs: "${[...a.subgraphNames].join('", "')}". However, it is not declared "@shareable" in any of them.`):r.push(` The field "${i}" is defined and declared "@shareable" in the following subgraph`+(o.length>1?"s":"")+': "'+o.join(He.QUOTATION_JOIN)+`". However, it is not declared "@shareable" in the following subgraph`+(c.length>1?"s":"")+`: "${c.join(He.QUOTATION_JOIN)}".`)}return new Error(`The Object "${n}" defines the same fields in multiple subgraphs without the "@shareable" directive:${r.join(` -`)}`)}function Gre(e,t){return new Error(`The directive "@${e}" declared on coordinates "${t}" is not defined in the schema.`)}function $re(e){return new Error(` The type "${e}" was referenced in the schema, but it was never defined.`)}function Qre(e){return`The definition for the directive "@${e}" does not define it as repeatable, but it is declared more than once on these coordinates.`}function Yre(e,t,n,r){return new Error(`The ${n} instance of the directive "@${e}" declared on coordinates "${t}" is invalid for the following reason`+(r.length>1?`s: +`)}`)}function Nie(e,t){return new Error(`The directive "@${e}" declared on coordinates "${t}" is not defined in the schema.`)}function Tie(e){return new Error(` The type "${e}" was referenced in the schema, but it was never defined.`)}function Eie(e){return`The definition for the directive "@${e}" does not define it as repeatable, but it is declared more than once on these coordinates.`}function hie(e,t,n,r){return new Error(`The ${n} instance of the directive "@${e}" declared on coordinates "${t}" is invalid for the following reason`+(r.length>1?`s: `:`: `)+r.join(` -`))}function Jre(e,t){return new Error(`The definition for the directive "@${e}" does not define it as repeatable, but the directive has been declared on more than one instance of the type "${t}".`)}function Hre(e,t){return` The definition for "@${e}" does not define "${t}" as a valid location.`}function zre(e,t,n){let r=` The definition for "@${e}" defines the following `+t.length+" required argument"+(t.length>1?"s: ":": ")+'"'+t.join('", "')+`". - However,`;return n.length<1?r+" no arguments are defined on this instance.":r+" the following required argument"+(n.length>1?"s are":" is")+' not defined on this instance: "'+n.join(He.QUOTATION_JOIN)+'".'}function Wre(e,t){return` The definition for "@${e}" does not define the following argument`+(t.length>1?"s that are":" that is")+' provided: "'+t.join(He.QUOTATION_JOIN)+'".'}function Xre(e){return" The following argument"+(e.length>1?"s are":" is")+' defined more than once: "'+e.join(He.QUOTATION_JOIN)+'"'}function Zre(e,t,n,r){return` The value "${e}" provided to argument "${t}(${n}: ...)" is not a valid "${r}" type.`}function eie(e){return new Error(` The type defined at path "${e}" has more than ${Yk.MAXIMUM_TYPE_NESTING} layers of nesting, or there is a cyclical error.`)}function tie(e){return new Error(`Fatal: Unexpected type for "${e}"`)}function nie(e,t,n){return new Error(`Fatal: Expected "${e}" to be type ${(0,hc.kindToNodeType)(t)} but received "${(0,hc.kindToNodeType)(n)}".`)}function rie(e,t){return new Error(`Fatal: The type "${e}" visited the following unexpected edge`+(t.length>1?"s":"")+`: - " ${t.join(He.QUOTATION_JOIN)}".`)}var iie='"Interface Object" (an "Object" type that also defines the "@interfaceObject" directive)';function aie({existingData:e,incomingNodeType:t,incomingSubgraphName:n}){let r=[...e.subgraphNames],i=t?`"${t}"`:iie;return new Error(` "${e.name}" is defined using incompatible types across subgraphs. It is defined as type "${(0,hc.kindToNodeType)(e.kind)}" in subgraph`+(r.length>1?"s":"")+` "${r.join(He.QUOTATION_JOIN)}" but type ${i} in subgraph "${n}".`)}function sie(e){return new Error(`Fatal: Expected all constituent types at path "${e}" to be one of the following: "LIST_TYPE", "NAMED_TYPE", or "NON_NULL_TYPE".`)}function oie(e,t){return new Error(`Fatal: Expected key "${e}" to exist in the map "${t}".`)}W.subgraphValidationFailureError=new Error(" Fatal: Subgraph validation did not return a valid AST.");function uie(e,t,n,r,i){return new Error(` Expected "${e}" to be type "${t}" but received "${n}" when handling child "${r}" of type "${i}".`)}function cie(e,t){return new Error(`The subgraph "${e}" could not be federated for the following reason`+(t.length>1?"s":"")+`: +`))}function yie(e,t){return new Error(`The definition for the directive "@${e}" does not define it as repeatable, but the directive has been declared on more than one instance of the type "${t}".`)}function Iie(e,t){return` The definition for "@${e}" does not define "${t}" as a valid location.`}function gie(e,t,n){let r=` The definition for "@${e}" defines the following `+t.length+" required argument"+(t.length>1?"s: ":": ")+'"'+t.join('", "')+`". + However,`;return n.length<1?r+" no arguments are defined on this instance.":r+" the following required argument"+(n.length>1?"s are":" is")+' not defined on this instance: "'+n.join(He.QUOTATION_JOIN)+'".'}function _ie(e,t){return` The definition for "@${e}" does not define the following argument`+(t.length>1?"s that are":" that is")+' provided: "'+t.join(He.QUOTATION_JOIN)+'".'}function vie(e){return" The following argument"+(e.length>1?"s are":" is")+' defined more than once: "'+e.join(He.QUOTATION_JOIN)+'"'}function Sie(e,t,n,r){return` The value "${e}" provided to argument "${t}(${n}: ...)" is not a valid "${r}" type.`}function Oie(e){return new Error(` The type defined at path "${e}" has more than ${mM.MAXIMUM_TYPE_NESTING} layers of nesting, or there is a cyclical error.`)}function Die(e){return new Error(`Fatal: Unexpected type for "${e}"`)}function bie(e,t,n){return new Error(`Fatal: Expected "${e}" to be type ${(0,Ac.kindToNodeType)(t)} but received "${(0,Ac.kindToNodeType)(n)}".`)}function Aie(e,t){return new Error(`Fatal: The type "${e}" visited the following unexpected edge`+(t.length>1?"s":"")+`: + " ${t.join(He.QUOTATION_JOIN)}".`)}var Rie='"Interface Object" (an "Object" type that also defines the "@interfaceObject" directive)';function Pie({existingData:e,incomingNodeType:t,incomingSubgraphName:n}){let r=[...e.subgraphNames],i=t?`"${t}"`:Rie;return new Error(` "${e.name}" is defined using incompatible types across subgraphs. It is defined as type "${(0,Ac.kindToNodeType)(e.kind)}" in subgraph`+(r.length>1?"s":"")+` "${r.join(He.QUOTATION_JOIN)}" but type ${i} in subgraph "${n}".`)}function Fie(e){return new Error(`Fatal: Expected all constituent types at path "${e}" to be one of the following: "LIST_TYPE", "NAMED_TYPE", or "NON_NULL_TYPE".`)}function wie(e,t){return new Error(`Fatal: Expected key "${e}" to exist in the map "${t}".`)}z.subgraphValidationFailureError=new Error(" Fatal: Subgraph validation did not return a valid AST.");function Lie(e,t,n,r,i){return new Error(` Expected "${e}" to be type "${t}" but received "${n}" when handling child "${r}" of type "${i}".`)}function Cie(e,t){return new Error(`The subgraph "${e}" could not be federated for the following reason`+(t.length>1?"s":"")+`: `+t.map(n=>n.message).join(` -`))}function lie(e,t){return`The ${(0,hc.numberToOrdinal)(e+1)} subgraph in the array did not define a name. Consequently, any further errors will temporarily identify this subgraph as "${t}".`}function die(e,t,n){return new Error(`The schema definition defines the "${e}" operation as type "${t}". However, "${t}" was also used for the "${n}" operation. - If explicitly defined, each operation type must be a unique and valid Object type.`)}function fie(e,t,n){return new Error(`The schema definition defines the "${e}" operation as type "${t}". However, the schema also defines another type named "${n}", which is the default (root) type name for the "${e}" operation. -For federation, it is only possible to use the default root types names ("Mutation", "Query", "Subscription") as operation definitions. No other definitions with these default root type names are valid.`)}function pie(e){let t="The subgraph has syntax errors and could not be parsed.";return e&&(t+=` - The reason provided was: `+e.message),new Error(t)}function mie(e,t,n){let r=[];for(let[i,a]of n){let o=` The implementation of Interface "${i}" by "${e}" is invalid because: +`))}function Bie(e,t){return`The ${(0,Ac.numberToOrdinal)(e+1)} subgraph in the array did not define a name. Consequently, any further errors will temporarily identify this subgraph as "${t}".`}function Uie(e,t,n){return new Error(`The schema definition defines the "${e}" operation as type "${t}". However, "${t}" was also used for the "${n}" operation. + If explicitly defined, each operation type must be a unique and valid Object type.`)}function kie(e,t,n){return new Error(`The schema definition defines the "${e}" operation as type "${t}". However, the schema also defines another type named "${n}", which is the default (root) type name for the "${e}" operation. +For federation, it is only possible to use the default root types names ("Mutation", "Query", "Subscription") as operation definitions. No other definitions with these default root type names are valid.`)}function Mie(e){let t="The subgraph has syntax errors and could not be parsed.";return e&&(t+=` + The reason provided was: `+e.message),new Error(t)}function xie(e,t,n){let r=[];for(let[i,a]of n){let o=` The implementation of Interface "${i}" by "${e}" is invalid because: `,c=a.unimplementedFields.length;c&&(o+=` The following field${c>1?"s are":" is"} not implemented: "`+a.unimplementedFields.join('", "')+`" -`);for(let[l,d]of a.invalidFieldImplementations){let p=d.unimplementedArguments.size,y=d.invalidImplementedArguments.length,I=d.invalidAdditionalArguments.size;if(o+=` The field "${l}" is invalid because: -`,p&&(o+=` The following argument${p>1?"s are":" is"} not implemented: "`+[...d.unimplementedArguments].join('", "')+`" +`);for(let[l,d]of a.invalidFieldImplementations){let f=d.unimplementedArguments.size,y=d.invalidImplementedArguments.length,I=d.invalidAdditionalArguments.size;if(o+=` The field "${l}" is invalid because: +`,f&&(o+=` The following argument${f>1?"s are":" is"} not implemented: "`+[...d.unimplementedArguments].join('", "')+`" `),y){o+=` The following implemented argument${y>1?"s are":" is"} invalid: `;for(let v of d.invalidImplementedArguments)o+=` The argument "${v.argumentName}" must define type "`+v.expectedType+`" and not "${v.actualType}" `}I&&(o+=` If a field from an Interface is implemented, any additional Arguments that were not defined on the original Interface field must be optional (nullable). @@ -267,130 +267,130 @@ For federation, it is only possible to use the default root types names ("Mutati Consequently, the Interface implementation cannot be satisfied. `)}r.push(o)}return new Error(`The ${t} "${e}" has the following Interface implementation errors: `+r.join(` -`))}function Nie(e,t,n,r=!0){let i=r?He.ARGUMENT:He.INPUT_FIELD,a=`The ${e} "${t}" could not be federated because: +`))}function qie(e,t,n,r=!0){let i=r?He.ARGUMENT:He.INPUT_FIELD,a=`The ${e} "${t}" could not be federated because: `;for(let o of n)a+=` The ${i} "${o.inputValueName}" is required in the following subgraph`+(o.requiredSubgraphs.length>1?"s":"")+': "'+o.requiredSubgraphs.join('", "')+`" However, the ${i} "${o.inputValueName}" is not defined in the following subgraph`+(o.missingSubgraphs.length>1?"s":"")+': "'+o.missingSubgraphs.join('", "')+`" If an ${i} is required on a ${e} in any one subgraph, it must be at least defined as optional on all other definitions of that ${e} in all other subgraphs. -`;return new Error(a)}function Tie(e,t){return new Error(`The field "${e}" is invalid because: +`;return new Error(a)}function jie(e,t){return new Error(`The field "${e}" is invalid because: The following argument`+(t.length>1?"s are":" is")+' defined more than once: "'+t.join(He.QUOTATION_JOIN)+`" -`)}function Eie(e=!0){return new Error(`The ${e?"router":"client"} schema does not define at least one accessible query root type field after federation was completed, which is necessary for a federated graph to be valid. +`)}function Vie(e=!0){return new Error(`The ${e?"router":"client"} schema does not define at least one accessible query root type field after federation was completed, which is necessary for a federated graph to be valid. For example: type Query { dummy: String - }`)}W.inaccessibleQueryRootTypeError=new Error('The root query type "Query" must be present in the client schema; consequently, it must not be declared "@inaccessible".');function hie(e){return new Error(`Expected object "${e}" to define a "key" directive, but it defines no directives.`)}W.inlineFragmentInFieldSetErrorMessage=" Inline fragments are not currently supported within a field set argument.";function yie(e,t,n,r){return` The following field set is invalid: + }`)}z.inaccessibleQueryRootTypeError=new Error('The root query type "Query" must be present in the client schema; consequently, it must not be declared "@inaccessible".');function Kie(e){return new Error(`Expected object "${e}" to define a "key" directive, but it defines no directives.`)}z.inlineFragmentInFieldSetErrorMessage=" Inline fragments are not currently supported within a field set argument.";function Gie(e,t,n,r){return` The following field set is invalid: "${e}" This is because "${t}" returns "${n}", which is type "${r}". - Fields that return abstract types (Interfaces and Unions) cannot be included in the field set of "@key" directives.`}function Iie(e,t,n){return` The following field set is invalid: + Fields that return abstract types (Interfaces and Unions) cannot be included in the field set of "@key" directives.`}function $ie(e,t,n){return` The following field set is invalid: "${e}" - This is because "${t}" returns the unknown type "${n}".`}function gie(e,t,n,r){return` The following field set is invalid: + This is because "${t}" returns the unknown type "${n}".`}function Qie(e,t,n,r){return` The following field set is invalid: "${e}" - This is because of the selection set corresponding to the `+aE(t,n,r)+` Composite types such as "${r}" types must define a selection set with at least one field selection.`}function _ie(e,t,n,r){return` The following field set is invalid: + This is because of the selection set corresponding to the `+gE(t,n,r)+` Composite types such as "${r}" types must define a selection set with at least one field selection.`}function Yie(e,t,n,r){return` The following field set is invalid: "${e}" - This is because of the selection set corresponding to the `+aE(t,n,r)+` Non-composite types such as "${r}" cannot define a selection set.`}function vie(e,t,n){return` The following field set is invalid: + This is because of the selection set corresponding to the `+gE(t,n,r)+` Non-composite types such as "${r}" cannot define a selection set.`}function Jie(e,t,n){return` The following field set is invalid: "${e}" This is because of the selection set corresponding to the field coordinates "${t}.${n}". - The type "${t}" does not define a field named "${n}".`}function Sie(e,t){let n=` The following field set is invalid: + The type "${t}" does not define a field named "${n}".`}function Hie(e,t){let n=` The following field set is invalid: "${e}" The field set could not be parsed.`;return t&&(n+=` - The reason provided was: `+t.message),n}function Oie(e,t){return` The following field set is invalid: + The reason provided was: `+t.message),n}function zie(e,t){return` The following field set is invalid: "${e}" - This is because the selection set defined on "${t}" could not be parsed.`}function Die(e){return new Error(` Expected an object/interface or object/interface extension named "${e}" to exist.`)}function bie(e,t,n){return` The following field set is invalid: + This is because the selection set defined on "${t}" could not be parsed.`}function Wie(e){return new Error(` Expected an object/interface or object/interface extension named "${e}" to exist.`)}function Xie(e,t,n){return` The following field set is invalid: "${e}" - This is because "${t}" does not define an argument named "${n}".`}function Aie(e,t){return` The following field set is invalid: + This is because "${t}" does not define an argument named "${n}".`}function Zie(e,t){return` The following field set is invalid: "${e}" This is because "${t}" defines arguments. - Fields that define arguments cannot be included in the field set of @key directives.`}function Rie(e,t){return new Error(`The following "${e}" directive`+(t.length>1?"s are":" is")+` invalid: + Fields that define arguments cannot be included in the field set of @key directives.`}function eae(e,t){return new Error(`The following "${e}" directive`+(t.length>1?"s are":" is")+` invalid: `+t.join(` -`))}function Pie(e,t){return` The following field set is invalid: +`))}function tae(e,t){return` The following field set is invalid: "${e}" - This is because "${t}" was included in the field set more than once.`}function Fie(e,t,n){return` Expected ConfigurationData to exist for type "${e}" when adding field "${t}" while validating field set "${n}".`}function wie(e,t){return` A "@provides" directive is declared on field "${e}". - However, the response type "${t}" is not an Object nor Interface.`}function WS(e,t,n=!1){return e.length<1?`enclosing type name "${t}". + This is because "${t}" was included in the field set more than once.`}function nae(e,t,n){return` Expected ConfigurationData to exist for type "${e}" when adding field "${t}" while validating field set "${n}".`}function rae(e,t){return` A "@provides" directive is declared on field "${e}". + However, the response type "${t}" is not an Object nor Interface.`}function EO(e,t,n=!1){return e.length<1?`enclosing type name "${t}". `:`field coordinates "${e[e.length-1]}"`+(n?` that returns "${t}"`:"")+`. -`}function aE(e,t,n){return e.length<1?`enclosing type name "${t}", which is type "${n}". +`}function gE(e,t,n){return e.length<1?`enclosing type name "${t}", which is type "${n}". `:`field coordinates "${e[e.length-1]}" that returns "${t}", which is type "${n}". -`}function Lie(e,t,n,r){return` The following field set is invalid: +`}function iae(e,t,n,r){return` The following field set is invalid: "${e}" - This is because an inline fragment with the type condition "${n}" is defined on the selection set corresponding to the `+WS(t,r,!0)+` However, "${r}" is not an abstract (Interface or Union) type. - Consequently, the only valid type condition at this selection set would be "${r}".`}function Cie(e,t){return` The following field set is invalid: + This is because an inline fragment with the type condition "${n}" is defined on the selection set corresponding to the `+EO(t,r,!0)+` However, "${r}" is not an abstract (Interface or Union) type. + Consequently, the only valid type condition at this selection set would be "${r}".`}function aae(e,t){return` The following field set is invalid: "${e}" - This is because "${t}" defines an inline fragment without a type condition.`}function Bie(e,t,n,r){return` The following field set is invalid: + This is because "${t}" defines an inline fragment without a type condition.`}function sae(e,t,n,r){return` The following field set is invalid: "${e}" - This is because an inline fragment with the unknown type condition "${r}" is defined on the selection set corresponding to the `+WS(t,n)}function Uie(e,t,n,r,i){return` The following field set is invalid: + This is because an inline fragment with the unknown type condition "${r}" is defined on the selection set corresponding to the `+EO(t,n)}function oae(e,t,n,r,i){return` The following field set is invalid: "${e}" - This is because an inline fragment with the type condition "${r}" is defined on the selection set corresponding to the `+WS(t,n)+` However, "${r}" is type "${i}" when types "Interface" or "Object" would be expected.`}function kie(e,t,n,r,i){let a=` The following field set is invalid: + This is because an inline fragment with the type condition "${r}" is defined on the selection set corresponding to the `+EO(t,n)+` However, "${r}" is type "${i}" when types "Interface" or "Object" would be expected.`}function uae(e,t,n,r,i){let a=` The following field set is invalid: "${e}" - This is because an inline fragment with the type condition "${n}" is defined on the selection set corresponding to the `+aE(t,i,r);return r===He.INTERFACE?a+` However, "${n}" does not implement "${i}"`:a+` However, "${n}" is not a member of "${i}".`}function Mie(e,t,n){return` The following field set is invalid: + This is because an inline fragment with the type condition "${n}" is defined on the selection set corresponding to the `+gE(t,i,r);return r===He.INTERFACE?a+` However, "${n}" does not implement "${i}"`:a+` However, "${n}" is not a member of "${i}".`}function cae(e,t,n){return` The following field set is invalid: "${e}" - This is because of the selection set corresponding to the `+aE(t,n,He.UNION)+` Union types such as "${n}" must define field selections (besides "__typename") on an inline fragment whose type condition corresponds to a constituent union member.`}function xie(e,t){return` The field "${e}" declares an @override directive in the following subgraphs: "`+t.join(He.QUOTATION_JOIN)+'".'}function qie(e){return new Error('The "@override" directive must only be declared on one single instance of a field. However, an "@override" directive was declared on more than one instance of the following field'+(e.length>1?"s":"")+': "'+e.join(He.QUOTATION_JOIN)+`". -`)}function Vie(e,t){return new Error(`The ${e} "${t}" is invalid because it does not define any fields.`)}function jie(e){return new Error(`The Input Object "${e}" is invalid because it does not define any input values.`)}function Kie(e,t,n){return new Error(`The ${e} "${t}" is invalid because all its ${n} definitions are declared "@inaccessible".`)}function Gie(e,t){return`Cannot override field "${t}" because the source and target subgraph names are both "${e}"`}function $ie(e,t){let n=`Federation was unsuccessful because any one subgraph that defines a specific entity Interface must also define each and every entity Object that implements that entity Interface. + This is because of the selection set corresponding to the `+gE(t,n,He.UNION)+` Union types such as "${n}" must define field selections (besides "__typename") on an inline fragment whose type condition corresponds to a constituent union member.`}function lae(e,t){return` The field "${e}" declares an @override directive in the following subgraphs: "`+t.join(He.QUOTATION_JOIN)+'".'}function dae(e){return new Error('The "@override" directive must only be declared on one single instance of a field. However, an "@override" directive was declared on more than one instance of the following field'+(e.length>1?"s":"")+': "'+e.join(He.QUOTATION_JOIN)+`". +`)}function pae(e,t){return new Error(`The ${e} "${t}" is invalid because it does not define any fields.`)}function fae(e){return new Error(`The Input Object "${e}" is invalid because it does not define any input values.`)}function mae(e,t,n){return new Error(`The ${e} "${t}" is invalid because all its ${n} definitions are declared "@inaccessible".`)}function Nae(e,t){return`Cannot override field "${t}" because the source and target subgraph names are both "${e}"`}function Tae(e,t){let n=`Federation was unsuccessful because any one subgraph that defines a specific entity Interface must also define each and every entity Object that implements that entity Interface. Each entity Object must also explicitly define its implementation of the entity Interface. -`;for(let[r,i]of e){let o=(0,hc.getOrThrowError)(t,r,"entityInterfaceFederationDataByTypeName").concreteTypeNames;n+=` Across all subgraphs, the entity interface "${r}" is implemented by the following entit`+(o.size>1?"ies":"y")+`: +`;for(let[r,i]of e){let o=(0,Ac.getOrThrowError)(t,r,"entityInterfaceFederationDataByTypeName").concreteTypeNames;n+=` Across all subgraphs, the entity interface "${r}" is implemented by the following entit`+(o.size>1?"ies":"y")+`: "`+Array.from(o).join(He.QUOTATION_JOIN)+`" However, the definition of at least one of these implementations is missing in a subgraph that defines the entity interface "${r}": -`;for(let{subgraphName:c,definedConcreteTypeNames:l}of i){let d=(0,hc.getEntriesNotInHashSet)(o,l);n+=` Subgraph "${c}" does not define the following implementations: "`+d.join(He.QUOTATION_JOIN)+`" -`}}return new Error(n)}function Qie(e,t){return new Error(`The maximum number of OR scopes that can be defined by @requiresScopes on a single field is ${e}. However, the following coordinates attempt to define more: +`;for(let{subgraphName:c,definedConcreteTypeNames:l}of i){let d=(0,Ac.getEntriesNotInHashSet)(o,l);n+=` Subgraph "${c}" does not define the following implementations: "`+d.join(He.QUOTATION_JOIN)+`" +`}}return new Error(n)}function Eae(e,t){return new Error(`The maximum number of OR scopes that can be defined by @requiresScopes on a single field is ${e}. However, the following coordinates attempt to define more: "`+t.join(He.QUOTATION_JOIN)+`" -If you require more, please contact support.`)}function Yie(e){return new Error(`An "Event Driven" graph\u2014a subgraph that defines event driven directives\u2014must not define any resolvers. +If you require more, please contact support.`)}function hae(e){return new Error(`An "Event Driven" graph\u2014a subgraph that defines event driven directives\u2014must not define any resolvers. Consequently, any "@key" definitions must also include the "resolvable: false" argument. Moreover, only fields that compose part of an entity's (composite) key and are declared "@external" are permitted. `+e.join(` -`))}function Jie(e){let t=` Root type fields defined in an Event Driven graph must define a valid events directive: +`))}function yae(e){let t=` Root type fields defined in an Event Driven graph must define a valid events directive: Mutation type fields must define either a edfs publish or request directive." Query type fields must define "@edfs__natsRequest" Subscription type fields must define an edfs subscribe directive The following root field path`+(e.size>1?"s are":" is")+` invalid: `;for(let[n,r]of e)r.definesDirectives?t+=` The root field path "${n}" defines the following invalid events directive`+(r.invalidDirectiveNames.length>1?"s":"")+': "@'+r.invalidDirectiveNames.join('", "@')+`" `:t+=` The root field path "${n}" does not define any valid events directives. -`;return t}function Hie(e){let t=` Mutation type fields defined in an Event Driven graph must return the non-nullable type "edfs__PublishResult!", which has the following definition: +`;return t}function Iae(e){let t=` Mutation type fields defined in an Event Driven graph must return the non-nullable type "edfs__PublishResult!", which has the following definition: type edfs__PublishResult { success: Boolean! } However, the following mutation field path`+(e.size>1?"s are":" is")+` invalid: `;for(let[n,r]of e)t+=` The mutation field path "${n}" returns "${r}". -`;return t}function zie(e){let t=` The named response type of root type fields defined in an Event Driven graph must be a non-nullable, non-list named type that is either an entity, an interface implemented by an entity, or a union of which an entity is a member. +`;return t}function gae(e){let t=` The named response type of root type fields defined in an Event Driven graph must be a non-nullable, non-list named type that is either an entity, an interface implemented by an entity, or a union of which an entity is a member. Consequently, the following root field path`+(e.size>1?"s are":" is")+` invalid: `;for(let[n,r]of e)t+=` The root field path "${n}", which returns the invalid type "${r}" -`;return t}W.invalidNatsStreamInputErrorMessage=`The "streamConfiguration" argument must be a valid input object with the following form: +`;return t}z.invalidNatsStreamInputErrorMessage=`The "streamConfiguration" argument must be a valid input object with the following form: input edfs__NatsStreamConfiguration { consumerInactiveThreshold: Int! = 30 consumerName: String! streamName: String! - }`;function Wie(e,t,n,r){let i=W.invalidNatsStreamInputErrorMessage,a=[];return e.length>0&&a.push("The following required field"+(e.length>1?"s were":" was")+' not defined: "'+e.join(He.QUOTATION_JOIN)+'".'),t.length>0&&a.push("The following required field"+(t.length>1?"s were":" was")+' defined more than once: "'+t.join(He.QUOTATION_JOIN)+'".'),n.length>0&&a.push("The following required field"+(n.length>1?"s were":" was")+' not type "String!" with a minimum length of 1: "'+n.join(He.QUOTATION_JOIN)+'".'),r.length>0&&a.push("The following field"+(r.length>1?"s are":" is")+' not part of a valid "edfs__NatsStreamConfiguration" input definition: "'+r.join(He.QUOTATION_JOIN)+'".'),i+=` + }`;function _ae(e,t,n,r){let i=z.invalidNatsStreamInputErrorMessage,a=[];return e.length>0&&a.push("The following required field"+(e.length>1?"s were":" was")+' not defined: "'+e.join(He.QUOTATION_JOIN)+'".'),t.length>0&&a.push("The following required field"+(t.length>1?"s were":" was")+' defined more than once: "'+t.join(He.QUOTATION_JOIN)+'".'),n.length>0&&a.push("The following required field"+(n.length>1?"s were":" was")+' not type "String!" with a minimum length of 1: "'+n.join(He.QUOTATION_JOIN)+'".'),r.length>0&&a.push("The following field"+(r.length>1?"s are":" is")+' not part of a valid "edfs__NatsStreamConfiguration" input definition: "'+r.join(He.QUOTATION_JOIN)+'".'),i+=` However, the provided input was invalid for the following reason`+(a.length>1?"s":"")+`: `+a.join(` - `),i}function Xie(e=new Map){let t="";for(let[n,r]of e)t+=' The following "@key" field set'+(r.length>1?"s are":" is")+` defined on the entity "${n}" without a "resolvable: false" argument: + `),i}function vae(e=new Map){let t="";for(let[n,r]of e)t+=' The following "@key" field set'+(r.length>1?"s are":" is")+` defined on the entity "${n}" without a "resolvable: false" argument: "`+r.join(He.QUOTATION_JOIN)+`" -`;return t}function Zie(e){let t=" The following field"+(e.size>1?"s are referenced":" is referenced")+` within an entity "@key" field without an "@external" declaration: +`;return t}function Sae(e){let t=" The following field"+(e.size>1?"s are referenced":" is referenced")+` within an entity "@key" field without an "@external" declaration: `;for(let[n,r]of e)t+=` field "${r}" defined on path "${n}" -`;return t}function eae(e){let t=" The following field"+(e.size>1?"s are":" is")+` defined despite not composing part of a "@key" directive field set: +`;return t}function Oae(e){let t=" The following field"+(e.size>1?"s are":" is")+` defined despite not composing part of a "@key" directive field set: `;for(let[n,r]of e)t+=` Field "${r}" defined on path "${n}" -`;return t}function tae(e){return`Only root types and entities (objects that define one or more primary keys with the "@key" directive) may be defined as object extensions in an Event Driven graph. +`;return t}function Dae(e){return`Only root types and entities (objects that define one or more primary keys with the "@key" directive) may be defined as object extensions in an Event Driven graph. Consequently, the following object extension definition`+(e.length>1?"s are":" is")+` invalid: "`+e.join(He.QUOTATION_JOIN)+`" -`}function nae(e){return` Only object definitions whose fields compose part of a "@key" directive's field set may be defined in an Event Driven graph. Consequently, the following object type definition`+(e.length>1?"s are":" is")+` invalid: +`}function bae(e){return` Only object definitions whose fields compose part of a "@key" directive's field set may be defined in an Event Driven graph. Consequently, the following object type definition`+(e.length>1?"s are":" is")+` invalid: "`+e.join(He.QUOTATION_JOIN)+`" -`}W.invalidEdfsPublishResultObjectErrorMessage=` The object "edfs__PublishResult" that was defined in the Event Driven graph is invalid and must instead have the following definition: +`}z.invalidEdfsPublishResultObjectErrorMessage=` The object "edfs__PublishResult" that was defined in the Event Driven graph is invalid and must instead have the following definition: type edfs__PublishResult { success: Boolean! - }`;W.invalidNatsStreamConfigurationDefinitionErrorMessage=` The input object "edfs__NatsStreamConfiguration" that was defined in the Event Driven graph is invalid and must instead have the following definition: + }`;z.invalidNatsStreamConfigurationDefinitionErrorMessage=` The input object "edfs__NatsStreamConfiguration" that was defined in the Event Driven graph is invalid and must instead have the following definition: input edfs__NatsStreamConfiguration { consumerInactiveThreshold: Int! = 30 consumerName: String! streamName: String! - }`;function rae(e){return new Error(`Could not retrieve definition for Event-Driven Federated Subscription directive "${e}".`)}function iae(e,t){let n=` Only interfaces can be implemented. However, the type "${e}" attempts to implement the following invalid type`+(t.size>1?"s":"")+`: + }`;function Aae(e){return new Error(`Could not retrieve definition for Event-Driven Federated Subscription directive "${e}".`)}function Rae(e,t){let n=` Only interfaces can be implemented. However, the type "${e}" attempts to implement the following invalid type`+(t.size>1?"s":"")+`: `;for(let[r,i]of t)n+=` "${r}", which is type "${i}" -`;return new Error(n)}function aae(e){return new Error(` The interface "${e}" must not implement itself.`)}function sae(e){return`The "${e}" argument must be string with a minimum length of one.`}function oae(e){return`The "${e}" argument must be a list of strings.`}function uae(e){return`Each item in the "${e}" argument list must be a string with a minimum length of one. However, at least one value provided in the list was invalid.`}function cae(e){return`An argument template references the invalid argument "${e}".`}function lae(e){return`An argument template references the undefined argument "${e}".`}W.invalidEventProviderIdErrorMessage='If explicitly defined, the "providerId" argument must be a string with a minimum length of one.';function dae(e,t,n){return new Error(`The event directive "${e}" declared on "${t}" is invalid for the following reason`+(n.length>1?"s":"")+`: +`;return new Error(n)}function Pae(e){return new Error(` The interface "${e}" must not implement itself.`)}function Fae(e){return`The "${e}" argument must be string with a minimum length of one.`}function wae(e){return`The "${e}" argument must be a list of strings.`}function Lae(e){return`Each item in the "${e}" argument list must be a string with a minimum length of one. However, at least one value provided in the list was invalid.`}function Cae(e){return`An argument template references the invalid argument "${e}".`}function Bae(e){return`An argument template references the undefined argument "${e}".`}z.invalidEventProviderIdErrorMessage='If explicitly defined, the "providerId" argument must be a string with a minimum length of one.';function Uae(e,t,n){return new Error(`The event directive "${e}" declared on "${t}" is invalid for the following reason`+(n.length>1?"s":"")+`: `+n.join(` - `))}function fae(e,t,n){return new Error(`The ${e} "${t}" is declared "@inaccessible"; however, the ${e} is still referenced at the following paths: + `))}function kae(e,t,n){return new Error(`The ${e} "${t}" is declared "@inaccessible"; however, the ${e} is still referenced at the following paths: "`+n.join(He.QUOTATION_JOIN)+`" -`)}function pae(e,t){return new Error(`The ${e.kind===Qk.Kind.ARGUMENT?"argument":"Input field"} "${e.name}" defined at coordinates "${e.federatedCoords}" is declared "@inaccessible"; however, it is a required ${e.kind===Qk.Kind.ARGUMENT?"argument of field":"field of Input Object"} "${t}".`)}function mae(e,t){return new Error(` The union "${e}" defines the following member`+(t.length>1?"s that are not object types":" that is not an object type")+`: +`)}function Mae(e,t){return new Error(`The ${e.kind===fM.Kind.ARGUMENT?"argument":"Input field"} "${e.name}" defined at coordinates "${e.federatedCoords}" is declared "@inaccessible"; however, it is a required ${e.kind===fM.Kind.ARGUMENT?"argument of field":"field of Input Object"} "${t}".`)}function xae(e,t){return new Error(` The union "${e}" defines the following member`+(t.length>1?"s that are not object types":" that is not an object type")+`: `+t.join(` - `))}function Nae(e){return new Error(`Expected type "${e}" to be a root type but could not find its respective OperationTypeNode.`)}function Tae(e){return new Error(`The "@${He.SUBSCRIPTION_FILTER}" directive must only be defined on a subscription root field, but it was defined on the path "${e}".`)}function Eae(e,t){return new Error(`The "@${He.SUBSCRIPTION_FILTER}" directive defined on path "${e}" is invalid for the following reason`+(t.length>1?"s":"")+`: + `))}function qae(e){return new Error(`Expected type "${e}" to be a root type but could not find its respective OperationTypeNode.`)}function jae(e){return new Error(`The "@${He.SUBSCRIPTION_FILTER}" directive must only be defined on a subscription root field, but it was defined on the path "${e}".`)}function Vae(e,t){return new Error(`The "@${He.SUBSCRIPTION_FILTER}" directive defined on path "${e}" is invalid for the following reason`+(t.length>1?"s":"")+`: `+t.join(` -`))}function hae(e){return` Unknown type "${e}".`}function yae(e){return` The input path "${e}" exceeds the maximum depth of ${Yk.MAX_SUBSCRIPTION_FILTER_DEPTH} for any one filter condition. - If you require a larger maximum depth, please contact support.`}var Jk=` Each "${He.SUBSCRIPTION_FILTER_CONDITION}" input object must define exactly one of the following input value fields: "${He.AND_UPPER}", "${He.IN_UPPER}", "${He.NOT_UPPER}", or "${He.OR_UPPER}". -`;function Iae(e,t){return Jk+` However, input path "${e}" defines ${t} fields.`}function gae(e,t){return Jk+` However, input path "${e}" defines the invalid input value field "${t}".`}function _ae(e,t,n){return` Expected the value of input path "${e}" to be type "${t}" but received type "${n}"`}var Hk=` An AND or OR input field defined on a "${He.SUBSCRIPTION_FILTER_CONDITION}" should define a list of 1\u20135 nested conditions. -`;function vae(e,t){let n=t.length>1;return Hk+" However, the following "+(n?"indices":"index")+` defined on input path "${e}" `+(n?"are":"is")+' not type "object": '+t.join(", ")}function Sae(e,t){return Hk+` However, the list defined on input path "${e}" has a length of ${t}.`}function Oae(e,t,n){return` Expected the input path "${e}" to be type "${t}" but received "${n}".`}function Dae(e,t,n,r,i){let a=` Each "${He.SUBSCRIPTION_FIELD_CONDITION}" input object must only define the following two input value fields: "${He.FIELD_PATH}" and "${He.VALUES}". +`))}function Kae(e){return` Unknown type "${e}".`}function Gae(e){return` The input path "${e}" exceeds the maximum depth of ${mM.MAX_SUBSCRIPTION_FILTER_DEPTH} for any one filter condition. + If you require a larger maximum depth, please contact support.`}var NM=` Each "${He.SUBSCRIPTION_FILTER_CONDITION}" input object must define exactly one of the following input value fields: "${He.AND_UPPER}", "${He.IN_UPPER}", "${He.NOT_UPPER}", or "${He.OR_UPPER}". +`;function $ae(e,t){return NM+` However, input path "${e}" defines ${t} fields.`}function Qae(e,t){return NM+` However, input path "${e}" defines the invalid input value field "${t}".`}function Yae(e,t,n){return` Expected the value of input path "${e}" to be type "${t}" but received type "${n}"`}var TM=` An AND or OR input field defined on a "${He.SUBSCRIPTION_FILTER_CONDITION}" should define a list of 1\u20135 nested conditions. +`;function Jae(e,t){let n=t.length>1;return TM+" However, the following "+(n?"indices":"index")+` defined on input path "${e}" `+(n?"are":"is")+' not type "object": '+t.join(", ")}function Hae(e,t){return TM+` However, the list defined on input path "${e}" has a length of ${t}.`}function zae(e,t,n){return` Expected the input path "${e}" to be type "${t}" but received "${n}".`}function Wae(e,t,n,r,i){let a=` Each "${He.SUBSCRIPTION_FIELD_CONDITION}" input object must only define the following two input value fields: "${He.FIELD_PATH}" and "${He.VALUES}". However, input path "${e}" is invalid because:`;return t.length>0&&(a+=` The following required field`+(t.length>1?"s are":" is")+` not defined: "`+t.join(He.QUOTATION_JOIN)+'"'),n.length>0&&(a+=` @@ -399,82 +399,82 @@ Consequently, the following object extension definition`+(e.length>1?"s are":" i The following invalid field`+(r.length>1?"s are":" is")+` defined: "`+r.join(He.QUOTATION_JOIN)+'"'),i.length>0&&(a+=` `+i.join(` - `)),a}var zk=` A "${He.SUBSCRIPTION_FIELD_CONDITION}" input object must define a "values" input value field with a list of at least one valid "${He.SUBSCRIPTION_FILTER_VALUE}" kind (boolean, enum, float, int, null, or string). -`;function bae(e,t){let n=t.length>1;return zk+" However, the following "+(n?"indices":"index")+` defined on input path "${e}" `+(n?"are":"is")+` not a valid "${He.SUBSCRIPTION_FILTER_VALUE}": `+t.join(", ")}function Aae(e){return zk+` However, the list defined on input path "${e}" is empty.`}function Rae(e){return new Error(` Field "${e}" defined no subgraph names.`)}function Pae(e,t){return` Input path "${e}" defines the value "${t}", which is not a period (.) delimited field path.`}function Fae(e,t,n){return` Input path "${e}" defines the value "${t}". - However, "${n}" is not type "object"`}function wae(e,t,n,r,i){return` Input path "${e}" defines the value "${t}". - However, the path "${n}" is invalid because no field named "${r}" exists on type "${i}".`}function Lae(e,t,n,r,i){return`Input path "${e}" defines the value "${t}". + `)),a}var EM=` A "${He.SUBSCRIPTION_FIELD_CONDITION}" input object must define a "values" input value field with a list of at least one valid "${He.SUBSCRIPTION_FILTER_VALUE}" kind (boolean, enum, float, int, null, or string). +`;function Xae(e,t){let n=t.length>1;return EM+" However, the following "+(n?"indices":"index")+` defined on input path "${e}" `+(n?"are":"is")+` not a valid "${He.SUBSCRIPTION_FILTER_VALUE}": `+t.join(", ")}function Zae(e){return EM+` However, the list defined on input path "${e}" is empty.`}function ese(e){return new Error(` Field "${e}" defined no subgraph names.`)}function tse(e,t){return` Input path "${e}" defines the value "${t}", which is not a period (.) delimited field path.`}function nse(e,t,n){return` Input path "${e}" defines the value "${t}". + However, "${n}" is not type "object"`}function rse(e,t,n,r,i){return` Input path "${e}" defines the value "${t}". + However, the path "${n}" is invalid because no field named "${r}" exists on type "${i}".`}function ise(e,t,n,r,i){return`Input path "${e}" defines the value "${t}". However, only fields that are defined in the same graph as the "@${He.SUBSCRIPTION_FILTER}" directive can compose part of an "IN" condition's "fieldPath" input value field. - Consequently, the path "${n}" is invalid because field "${r}" is not defined in subgraph "${i}".`}function Cae(e,t,n,r){return` Input path "${e}" defines the value "${t}". - The path segment "${n}" is invalid because it refers to "${r}", which is declared "@inaccessible".`}function Bae(e,t,n,r,i){return` Input path "${e}" defines the value "${t}". - However, the final field "${n}" is ${r} "${i}", which is not a leaf type; therefore, it requires further selections.`}function Uae({fieldName:e,selectionSet:t},n){let r=`The field "${e}" is unresolvable at the following path: + Consequently, the path "${n}" is invalid because field "${r}" is not defined in subgraph "${i}".`}function ase(e,t,n,r){return` Input path "${e}" defines the value "${t}". + The path segment "${n}" is invalid because it refers to "${r}", which is declared "@inaccessible".`}function sse(e,t,n,r,i){return` Input path "${e}" defines the value "${t}". + However, the final field "${n}" is ${r} "${i}", which is not a leaf type; therefore, it requires further selections.`}function ose({fieldName:e,selectionSet:t},n){let r=`The field "${e}" is unresolvable at the following path: ${t} This is because: - `+n.join(` - - `);return new Error(r)}function kae(e,t){let n=`The Object "${e}" is invalid because the following field definition`+(t.size>1?"s are":" is")+` declared "@external" on all instances of that field: + - `);return new Error(r)}function use(e,t){let n=`The Object "${e}" is invalid because the following field definition`+(t.size>1?"s are":" is")+` declared "@external" on all instances of that field: `;for(let[r,i]of t)n+=` "${r}" in subgraph`+(i.length>1?"s":"")+' "'+i.join(He.QUOTATION_JOIN)+`" -`;return n+='At least one instance of a field definition must always be resolvable (and therefore not declared "@external").',new Error(n)}function Mae(e,t){return new Error(`The interface "${e}" is invalid because the following field definition`+(t.length>1?"s are":" is")+` declared "@external": +`;return n+='At least one instance of a field definition must always be resolvable (and therefore not declared "@external").',new Error(n)}function cse(e,t){return new Error(`The interface "${e}" is invalid because the following field definition`+(t.length>1?"s are":" is")+` declared "@external": "`+t.join(He.QUOTATION_JOIN)+`" -Interface fields should not be declared "@external". This is because interface fields do not resolve directly, but the "@external" directive relates to whether a field instance can be resolved by the subgraph in which it is defined.`)}function xae(e,t,n,r,i){return new Error(`The field "${e}" in subgraph "${t}" defines a "@${i}" directive with the following field set: +Interface fields should not be declared "@external". This is because interface fields do not resolve directly, but the "@external" directive relates to whether a field instance can be resolved by the subgraph in which it is defined.`)}function lse(e,t,n,r,i){return new Error(`The field "${e}" in subgraph "${t}" defines a "@${i}" directive with the following field set: "${r}". However, neither the field "${n}" nor any of its field set ancestors are declared "@external". -Consequently, "${n}" is already provided by subgraph "${t}" and should not form part of a "@${i}" directive field set.`)}function qae(e,t){let n=[];for(let[r,i]of t){let a=[...i];n.push(` The named type "${r}" is returned by the following subgraph`+(a.length>1?"s":"")+': "'+a.join(He.QUOTATION_JOIN)+'".')}return new Error(`Each instance of a shared field must resolve identically across subgraphs. +Consequently, "${n}" is already provided by subgraph "${t}" and should not form part of a "@${i}" directive field set.`)}function dse(e,t){let n=[];for(let[r,i]of t){let a=[...i];n.push(` The named type "${r}" is returned by the following subgraph`+(a.length>1?"s":"")+': "'+a.join(He.QUOTATION_JOIN)+'".')}return new Error(`Each instance of a shared field must resolve identically across subgraphs. The field "${e}" could not be federated due to incompatible types across subgraphs. The discrepancies are as follows: `+n.join(` -`))}function Wk(e,t){return`The field "${e}" returns the unknown named type "${t}".`}function Vae(e,t){return new Error(Wk(e,t))}function jae(e){return new Error(`Could not find FieldData for field "${e}" -.This should never happen. Please report this issue on GitHub.`)}function Kae(e,t){return new Error(`Expected named type "${e}" to be a composite output type (Object or Interface) but received "${t}". -This should never happen. Please report this issue on GitHub.`)}function Gae(e){return new Error(`The Object field "${e}" is invalidly declared "@external". An Object field should only be declared "@external" if it is part of a "@key", "@provides", or "@requires" field set, or the field is necessary to satisfy an Interface implementation. In the case that none of these conditions is true, the "@external" directive should be removed.`)}function $ae(e,t){return new Error(`The "@openfed__configureDescription" directive defined on ${e} "${t}" is invalid because neither a description nor the "descriptionOverride" argument is defined.`)}function Qae(e,t){return new Error(`The coordinates "${e}" declare "@openfed__configureDescription(propagate: true)" in the following subgraphs: +`))}function hM(e,t){return`The field "${e}" returns the unknown named type "${t}".`}function pse(e,t){return new Error(hM(e,t))}function fse(e){return new Error(`Could not find FieldData for field "${e}" +.This should never happen. Please report this issue on GitHub.`)}function mse(e,t){return new Error(`Expected named type "${e}" to be a composite output type (Object or Interface) but received "${t}". +This should never happen. Please report this issue on GitHub.`)}function Nse(e){return new Error(`The Object field "${e}" is invalidly declared "@external". An Object field should only be declared "@external" if it is part of a "@key", "@provides", or "@requires" field set, or the field is necessary to satisfy an Interface implementation. In the case that none of these conditions is true, the "@external" directive should be removed.`)}function Tse(e,t){return new Error(`The "@openfed__configureDescription" directive defined on ${e} "${t}" is invalid because neither a description nor the "descriptionOverride" argument is defined.`)}function Ese(e,t){return new Error(`The coordinates "${e}" declare "@openfed__configureDescription(propagate: true)" in the following subgraphs: "`+t.join(He.QUOTATION_JOIN)+`" -A federated graph only supports a single description; consequently, only one subgraph may define argument "propagate" as true (this is the default value).`)}function Yae(e){return"- The following argument"+(e.length>1?"s are":" is")+` defined more than once: - "`+e.join(He.QUOTATION_JOIN)+'"'}function Jae(e){return`- The location "${e}" is defined multiple times.`}function Hae(e){return`- "${e}" is not a valid directive location.`}function zae(e,t){return new Error(`The directive definition for "@${e}" is invalid for the following reason`+(t.length>1?"s":"")+`: -`+t.join(He.LITERAL_NEW_LINE)+'"')}function Wae(e,t,n){return` The field "${e}" is unconditionally provided by subgraph "${t}" and should not form part of any "@${n}" field set. Although "${e}" is declared "@external", it is part of a "@key" directive on an extension type. Such fields are only declared "@external" for legacy syntactical reasons and are not internally considered "@external".`}function Xae(e,t,n){return new Error(`The subgraph that defines an entity Interface Object (using "@interfaceObject") must not define any implementation types of that interface. However, the subgraph "${t}" defines the entity Interface "${e}" as an Interface Object alongside the following implementation type`+(n.length>1?"s":"")+` of "${e}": - "`+n.join(He.QUOTATION_JOIN)+'"')}function Zae({data:e,namedTypeData:t,nodeType:n}){let r=(0,_re.isFieldData)(e),i=r?`${e.originalParentTypeName}.${e.name}`:e.originalCoords;return new Error(`The ${n} "${i}" is invalid because it defines type `+(0,vre.printTypeNode)(e.type)+`; however, ${(0,hc.kindToNodeType)(t.kind)} "${t.name}" is not a valid `+(r?"output":"input")+" type.")}function ese(e){return`Index "${e}" is not a valid integer.`}function tse({maxIndex:e,typeString:t,value:n}){return`Index "${n}" is out of bounds for type ${t}; `+(e>0?`valid indices are 0-${e} inclusive.`:"the only valid index is 0.")}function nse({typeString:e,value:t}){return`Index "${t}" of type ${e} is non-null but must be nullable.`}W.semanticNonNullArgumentErrorMessage=`Argument "${He.LEVELS}" validation error.`;function rse(e){let t=`${e.renamedParentTypeName}.${e.name}`,n=`The "@semanticNonNull" directive defined on field "${t}" is invalid due to inconsistent values provided to the "levels" argument across the following subgraphs: +A federated graph only supports a single description; consequently, only one subgraph may define argument "propagate" as true (this is the default value).`)}function hse(e){return"- The following argument"+(e.length>1?"s are":" is")+` defined more than once: + "`+e.join(He.QUOTATION_JOIN)+'"'}function yse(e){return`- The location "${e}" is defined multiple times.`}function Ise(e){return`- "${e}" is not a valid directive location.`}function gse(e,t){return new Error(`The directive definition for "@${e}" is invalid for the following reason`+(t.length>1?"s":"")+`: +`+t.join(He.LITERAL_NEW_LINE)+'"')}function _se(e,t,n){return` The field "${e}" is unconditionally provided by subgraph "${t}" and should not form part of any "@${n}" field set. Although "${e}" is declared "@external", it is part of a "@key" directive on an extension type. Such fields are only declared "@external" for legacy syntactical reasons and are not internally considered "@external".`}function vse(e,t,n){return new Error(`The subgraph that defines an entity Interface Object (using "@interfaceObject") must not define any implementation types of that interface. However, the subgraph "${t}" defines the entity Interface "${e}" as an Interface Object alongside the following implementation type`+(n.length>1?"s":"")+` of "${e}": + "`+n.join(He.QUOTATION_JOIN)+'"')}function Sse({data:e,namedTypeData:t,nodeType:n}){let r=(0,Yre.isFieldData)(e),i=r?`${e.originalParentTypeName}.${e.name}`:e.originalCoords;return new Error(`The ${n} "${i}" is invalid because it defines type `+(0,Jre.printTypeNode)(e.type)+`; however, ${(0,Ac.kindToNodeType)(t.kind)} "${t.name}" is not a valid `+(r?"output":"input")+" type.")}function Ose(e){return`Index "${e}" is not a valid integer.`}function Dse({maxIndex:e,typeString:t,value:n}){return`Index "${n}" is out of bounds for type ${t}; `+(e>0?`valid indices are 0-${e} inclusive.`:"the only valid index is 0.")}function bse({typeString:e,value:t}){return`Index "${t}" of type ${e} is non-null but must be nullable.`}z.semanticNonNullArgumentErrorMessage=`Argument "${He.LEVELS}" validation error.`;function Ase(e){let t=`${e.renamedParentTypeName}.${e.name}`,n=`The "@semanticNonNull" directive defined on field "${t}" is invalid due to inconsistent values provided to the "levels" argument across the following subgraphs: `;for(let[r,i]of e.nullLevelsBySubgraphName)n+=` Subgraph "${r}" defines levels ${Array.from(i).sort((a,o)=>a-o)}. -`;return n+=`The list value provided to the "levels" argument must be consistently defined across all subgraphs that define "@semanticNonNull" on field "${t}".`,new Error(n)}function ise({requiredFieldNames:e,typeName:t}){return new Error(`The "@oneOf" directive defined on Input Object "${t}" is invalid because all Input fields must be optional (nullable); however, the following Input field`+(e.length>1?"s are":" is")+' required (non-nullable): "'+e.join(He.QUOTATION_JOIN)+'".')}});var Zk=w(Xk=>{"use strict";m();T();N();Object.defineProperty(Xk,"__esModule",{value:!0})});var Yl=w(ei=>{"use strict";m();T();N();Object.defineProperty(ei,"__esModule",{value:!0});ei.COMPOSITE_OUTPUT_NODE_KINDS=ei.SUBSCRIPTION_FILTER_LIST_INPUT_NAMES=ei.SUBSCRIPTION_FILTER_INPUT_NAMES=ei.STREAM_CONFIGURATION_FIELD_NAMES=ei.EVENT_DIRECTIVE_NAMES=ei.TYPE_SYSTEM_DIRECTIVE_LOCATIONS=void 0;var pn=vr(),sE=De();ei.TYPE_SYSTEM_DIRECTIVE_LOCATIONS=new Set([pn.ARGUMENT_DEFINITION_UPPER,pn.ENUM_UPPER,pn.ENUM_VALUE_UPPER,pn.FIELD_DEFINITION_UPPER,pn.INPUT_FIELD_DEFINITION_UPPER,pn.INPUT_OBJECT_UPPER,pn.INTERFACE_UPPER,pn.OBJECT_UPPER,pn.SCALAR_UPPER,pn.SCHEMA_UPPER,pn.UNION_UPPER]);ei.EVENT_DIRECTIVE_NAMES=new Set([pn.EDFS_KAFKA_PUBLISH,pn.EDFS_KAFKA_SUBSCRIBE,pn.EDFS_NATS_PUBLISH,pn.EDFS_NATS_REQUEST,pn.EDFS_NATS_SUBSCRIBE,pn.EDFS_REDIS_PUBLISH,pn.EDFS_REDIS_SUBSCRIBE]);ei.STREAM_CONFIGURATION_FIELD_NAMES=new Set([pn.CONSUMER_INACTIVE_THRESHOLD,pn.CONSUMER_NAME,pn.STREAM_NAME]);ei.SUBSCRIPTION_FILTER_INPUT_NAMES=new Set([pn.AND_UPPER,pn.IN_UPPER,pn.NOT_UPPER,pn.OR_UPPER]);ei.SUBSCRIPTION_FILTER_LIST_INPUT_NAMES=new Set([pn.AND_UPPER,pn.OR_UPPER]);ei.COMPOSITE_OUTPUT_NODE_KINDS=new Set([sE.Kind.INTERFACE_TYPE_DEFINITION,sE.Kind.INTERFACE_TYPE_EXTENSION,sE.Kind.OBJECT_TYPE_DEFINITION,sE.Kind.OBJECT_TYPE_EXTENSION])});var Qi=w((XS,eM)=>{"use strict";m();T();N();var Gf=function(e){return e&&e.Math===Math&&e};eM.exports=Gf(typeof globalThis=="object"&&globalThis)||Gf(typeof window=="object"&&window)||Gf(typeof self=="object"&&self)||Gf(typeof global=="object"&&global)||Gf(typeof XS=="object"&&XS)||function(){return this}()||Function("return this")()});var bs=w((GAe,tM)=>{"use strict";m();T();N();tM.exports=function(e){try{return!!e()}catch(t){return!0}}});var hu=w((JAe,nM)=>{"use strict";m();T();N();var ase=bs();nM.exports=!ase(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var ZS=w((XAe,rM)=>{"use strict";m();T();N();var sse=bs();rM.exports=!sse(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")})});var yc=w((nRe,iM)=>{"use strict";m();T();N();var ose=ZS(),oE=Function.prototype.call;iM.exports=ose?oE.bind(oE):function(){return oE.apply(oE,arguments)}});var uM=w(oM=>{"use strict";m();T();N();var aM={}.propertyIsEnumerable,sM=Object.getOwnPropertyDescriptor,use=sM&&!aM.call({1:2},1);oM.f=use?function(t){var n=sM(this,t);return!!n&&n.enumerable}:aM});var eO=w((lRe,cM)=>{"use strict";m();T();N();cM.exports=function(e,t){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:t}}});var Ni=w((mRe,fM)=>{"use strict";m();T();N();var lM=ZS(),dM=Function.prototype,tO=dM.call,cse=lM&&dM.bind.bind(tO,tO);fM.exports=lM?cse:function(e){return function(){return tO.apply(e,arguments)}}});var NM=w((hRe,mM)=>{"use strict";m();T();N();var pM=Ni(),lse=pM({}.toString),dse=pM("".slice);mM.exports=function(e){return dse(lse(e),8,-1)}});var EM=w((_Re,TM)=>{"use strict";m();T();N();var fse=Ni(),pse=bs(),mse=NM(),nO=Object,Nse=fse("".split);TM.exports=pse(function(){return!nO("z").propertyIsEnumerable(0)})?function(e){return mse(e)==="String"?Nse(e,""):nO(e)}:nO});var rO=w((DRe,hM)=>{"use strict";m();T();N();hM.exports=function(e){return e==null}});var iO=w((PRe,yM)=>{"use strict";m();T();N();var Tse=rO(),Ese=TypeError;yM.exports=function(e){if(Tse(e))throw new Ese("Can't call method on "+e);return e}});var uE=w((CRe,IM)=>{"use strict";m();T();N();var hse=EM(),yse=iO();IM.exports=function(e){return hse(yse(e))}});var fa=w((MRe,gM)=>{"use strict";m();T();N();var aO=typeof document=="object"&&document.all;gM.exports=typeof aO=="undefined"&&aO!==void 0?function(e){return typeof e=="function"||e===aO}:function(e){return typeof e=="function"}});var Jl=w((jRe,_M)=>{"use strict";m();T();N();var Ise=fa();_M.exports=function(e){return typeof e=="object"?e!==null:Ise(e)}});var cE=w((QRe,vM)=>{"use strict";m();T();N();var sO=Qi(),gse=fa(),_se=function(e){return gse(e)?e:void 0};vM.exports=function(e,t){return arguments.length<2?_se(sO[e]):sO[e]&&sO[e][t]}});var OM=w((zRe,SM)=>{"use strict";m();T();N();var vse=Ni();SM.exports=vse({}.isPrototypeOf)});var RM=w((ePe,AM)=>{"use strict";m();T();N();var Sse=Qi(),DM=Sse.navigator,bM=DM&&DM.userAgent;AM.exports=bM?String(bM):""});var UM=w((iPe,BM)=>{"use strict";m();T();N();var CM=Qi(),oO=RM(),PM=CM.process,FM=CM.Deno,wM=PM&&PM.versions||FM&&FM.version,LM=wM&&wM.v8,pa,lE;LM&&(pa=LM.split("."),lE=pa[0]>0&&pa[0]<4?1:+(pa[0]+pa[1]));!lE&&oO&&(pa=oO.match(/Edge\/(\d+)/),(!pa||pa[1]>=74)&&(pa=oO.match(/Chrome\/(\d+)/),pa&&(lE=+pa[1])));BM.exports=lE});var uO=w((uPe,MM)=>{"use strict";m();T();N();var kM=UM(),Ose=bs(),Dse=Qi(),bse=Dse.String;MM.exports=!!Object.getOwnPropertySymbols&&!Ose(function(){var e=Symbol("symbol detection");return!bse(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&kM&&kM<41})});var cO=w((fPe,xM)=>{"use strict";m();T();N();var Ase=uO();xM.exports=Ase&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var lO=w((TPe,qM)=>{"use strict";m();T();N();var Rse=cE(),Pse=fa(),Fse=OM(),wse=cO(),Lse=Object;qM.exports=wse?function(e){return typeof e=="symbol"}:function(e){var t=Rse("Symbol");return Pse(t)&&Fse(t.prototype,Lse(e))}});var jM=w((IPe,VM)=>{"use strict";m();T();N();var Cse=String;VM.exports=function(e){try{return Cse(e)}catch(t){return"Object"}}});var dE=w((SPe,KM)=>{"use strict";m();T();N();var Bse=fa(),Use=jM(),kse=TypeError;KM.exports=function(e){if(Bse(e))return e;throw new kse(Use(e)+" is not a function")}});var dO=w((APe,GM)=>{"use strict";m();T();N();var Mse=dE(),xse=rO();GM.exports=function(e,t){var n=e[t];return xse(n)?void 0:Mse(n)}});var QM=w((wPe,$M)=>{"use strict";m();T();N();var fO=yc(),pO=fa(),mO=Jl(),qse=TypeError;$M.exports=function(e,t){var n,r;if(t==="string"&&pO(n=e.toString)&&!mO(r=fO(n,e))||pO(n=e.valueOf)&&!mO(r=fO(n,e))||t!=="string"&&pO(n=e.toString)&&!mO(r=fO(n,e)))return r;throw new qse("Can't convert object to primitive value")}});var JM=w((UPe,YM)=>{"use strict";m();T();N();YM.exports=!1});var fE=w((qPe,zM)=>{"use strict";m();T();N();var HM=Qi(),Vse=Object.defineProperty;zM.exports=function(e,t){try{Vse(HM,e,{value:t,configurable:!0,writable:!0})}catch(n){HM[e]=t}return t}});var pE=w((GPe,ZM)=>{"use strict";m();T();N();var jse=JM(),Kse=Qi(),Gse=fE(),WM="__core-js_shared__",XM=ZM.exports=Kse[WM]||Gse(WM,{});(XM.versions||(XM.versions=[])).push({version:"3.41.0",mode:jse?"pure":"global",copyright:"\xA9 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.41.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var NO=w((JPe,tx)=>{"use strict";m();T();N();var ex=pE();tx.exports=function(e,t){return ex[e]||(ex[e]=t||{})}});var rx=w((XPe,nx)=>{"use strict";m();T();N();var $se=iO(),Qse=Object;nx.exports=function(e){return Qse($se(e))}});var yu=w((nFe,ix)=>{"use strict";m();T();N();var Yse=Ni(),Jse=rx(),Hse=Yse({}.hasOwnProperty);ix.exports=Object.hasOwn||function(t,n){return Hse(Jse(t),n)}});var TO=w((sFe,ax)=>{"use strict";m();T();N();var zse=Ni(),Wse=0,Xse=Math.random(),Zse=zse(1 .toString);ax.exports=function(e){return"Symbol("+(e===void 0?"":e)+")_"+Zse(++Wse+Xse,36)}});var ux=w((lFe,ox)=>{"use strict";m();T();N();var eoe=Qi(),toe=NO(),sx=yu(),noe=TO(),roe=uO(),ioe=cO(),Hl=eoe.Symbol,EO=toe("wks"),aoe=ioe?Hl.for||Hl:Hl&&Hl.withoutSetter||noe;ox.exports=function(e){return sx(EO,e)||(EO[e]=roe&&sx(Hl,e)?Hl[e]:aoe("Symbol."+e)),EO[e]}});var fx=w((mFe,dx)=>{"use strict";m();T();N();var soe=yc(),cx=Jl(),lx=lO(),ooe=dO(),uoe=QM(),coe=ux(),loe=TypeError,doe=coe("toPrimitive");dx.exports=function(e,t){if(!cx(e)||lx(e))return e;var n=ooe(e,doe),r;if(n){if(t===void 0&&(t="default"),r=soe(n,e,t),!cx(r)||lx(r))return r;throw new loe("Can't convert object to primitive value")}return t===void 0&&(t="number"),uoe(e,t)}});var hO=w((hFe,px)=>{"use strict";m();T();N();var foe=fx(),poe=lO();px.exports=function(e){var t=foe(e,"string");return poe(t)?t:t+""}});var Tx=w((_Fe,Nx)=>{"use strict";m();T();N();var moe=Qi(),mx=Jl(),yO=moe.document,Noe=mx(yO)&&mx(yO.createElement);Nx.exports=function(e){return Noe?yO.createElement(e):{}}});var IO=w((DFe,Ex)=>{"use strict";m();T();N();var Toe=hu(),Eoe=bs(),hoe=Tx();Ex.exports=!Toe&&!Eoe(function(){return Object.defineProperty(hoe("div"),"a",{get:function(){return 7}}).a!==7})});var gO=w(yx=>{"use strict";m();T();N();var yoe=hu(),Ioe=yc(),goe=uM(),_oe=eO(),voe=uE(),Soe=hO(),Ooe=yu(),Doe=IO(),hx=Object.getOwnPropertyDescriptor;yx.f=yoe?hx:function(t,n){if(t=voe(t),n=Soe(n),Doe)try{return hx(t,n)}catch(r){}if(Ooe(t,n))return _oe(!Ioe(goe.f,t,n),t[n])}});var gx=w((CFe,Ix)=>{"use strict";m();T();N();var boe=hu(),Aoe=bs();Ix.exports=boe&&Aoe(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var $f=w((MFe,_x)=>{"use strict";m();T();N();var Roe=Jl(),Poe=String,Foe=TypeError;_x.exports=function(e){if(Roe(e))return e;throw new Foe(Poe(e)+" is not an object")}});var NE=w(Sx=>{"use strict";m();T();N();var woe=hu(),Loe=IO(),Coe=gx(),mE=$f(),vx=hO(),Boe=TypeError,_O=Object.defineProperty,Uoe=Object.getOwnPropertyDescriptor,vO="enumerable",SO="configurable",OO="writable";Sx.f=woe?Coe?function(t,n,r){if(mE(t),n=vx(n),mE(r),typeof t=="function"&&n==="prototype"&&"value"in r&&OO in r&&!r[OO]){var i=Uoe(t,n);i&&i[OO]&&(t[n]=r.value,r={configurable:SO in r?r[SO]:i[SO],enumerable:vO in r?r[vO]:i[vO],writable:!1})}return _O(t,n,r)}:_O:function(t,n,r){if(mE(t),n=vx(n),mE(r),Loe)try{return _O(t,n,r)}catch(i){}if("get"in r||"set"in r)throw new Boe("Accessors not supported");return"value"in r&&(t[n]=r.value),t}});var DO=w((QFe,Ox)=>{"use strict";m();T();N();var koe=hu(),Moe=NE(),xoe=eO();Ox.exports=koe?function(e,t,n){return Moe.f(e,t,xoe(1,n))}:function(e,t,n){return e[t]=n,e}});var Ax=w((zFe,bx)=>{"use strict";m();T();N();var bO=hu(),qoe=yu(),Dx=Function.prototype,Voe=bO&&Object.getOwnPropertyDescriptor,AO=qoe(Dx,"name"),joe=AO&&function(){}.name==="something",Koe=AO&&(!bO||bO&&Voe(Dx,"name").configurable);bx.exports={EXISTS:AO,PROPER:joe,CONFIGURABLE:Koe}});var Px=w((ewe,Rx)=>{"use strict";m();T();N();var Goe=Ni(),$oe=fa(),RO=pE(),Qoe=Goe(Function.toString);$oe(RO.inspectSource)||(RO.inspectSource=function(e){return Qoe(e)});Rx.exports=RO.inspectSource});var Lx=w((iwe,wx)=>{"use strict";m();T();N();var Yoe=Qi(),Joe=fa(),Fx=Yoe.WeakMap;wx.exports=Joe(Fx)&&/native code/.test(String(Fx))});var Ux=w((uwe,Bx)=>{"use strict";m();T();N();var Hoe=NO(),zoe=TO(),Cx=Hoe("keys");Bx.exports=function(e){return Cx[e]||(Cx[e]=zoe(e))}});var PO=w((fwe,kx)=>{"use strict";m();T();N();kx.exports={}});var Vx=w((Twe,qx)=>{"use strict";m();T();N();var Woe=Lx(),xx=Qi(),Xoe=Jl(),Zoe=DO(),FO=yu(),wO=pE(),eue=Ux(),tue=PO(),Mx="Object already initialized",LO=xx.TypeError,nue=xx.WeakMap,TE,Qf,EE,rue=function(e){return EE(e)?Qf(e):TE(e,{})},iue=function(e){return function(t){var n;if(!Xoe(t)||(n=Qf(t)).type!==e)throw new LO("Incompatible receiver, "+e+" required");return n}};Woe||wO.state?(ma=wO.state||(wO.state=new nue),ma.get=ma.get,ma.has=ma.has,ma.set=ma.set,TE=function(e,t){if(ma.has(e))throw new LO(Mx);return t.facade=e,ma.set(e,t),t},Qf=function(e){return ma.get(e)||{}},EE=function(e){return ma.has(e)}):(Ic=eue("state"),tue[Ic]=!0,TE=function(e,t){if(FO(e,Ic))throw new LO(Mx);return t.facade=e,Zoe(e,Ic,t),t},Qf=function(e){return FO(e,Ic)?e[Ic]:{}},EE=function(e){return FO(e,Ic)});var ma,Ic;qx.exports={set:TE,get:Qf,has:EE,enforce:rue,getterFor:iue}});var $x=w((Iwe,Gx)=>{"use strict";m();T();N();var BO=Ni(),aue=bs(),sue=fa(),hE=yu(),CO=hu(),oue=Ax().CONFIGURABLE,uue=Px(),Kx=Vx(),cue=Kx.enforce,lue=Kx.get,jx=String,yE=Object.defineProperty,due=BO("".slice),fue=BO("".replace),pue=BO([].join),mue=CO&&!aue(function(){return yE(function(){},"length",{value:8}).length!==8}),Nue=String(String).split("String"),Tue=Gx.exports=function(e,t,n){due(jx(t),0,7)==="Symbol("&&(t="["+fue(jx(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!hE(e,"name")||oue&&e.name!==t)&&(CO?yE(e,"name",{value:t,configurable:!0}):e.name=t),mue&&n&&hE(n,"arity")&&e.length!==n.arity&&yE(e,"length",{value:n.arity});try{n&&hE(n,"constructor")&&n.constructor?CO&&yE(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(i){}var r=cue(e);return hE(r,"source")||(r.source=pue(Nue,typeof t=="string"?t:"")),e};Function.prototype.toString=Tue(function(){return sue(this)&&lue(this).source||uue(this)},"toString")});var Yx=w((Swe,Qx)=>{"use strict";m();T();N();var Eue=fa(),hue=NE(),yue=$x(),Iue=fE();Qx.exports=function(e,t,n,r){r||(r={});var i=r.enumerable,a=r.name!==void 0?r.name:t;if(Eue(n)&&yue(n,a,r),r.global)i?e[t]=n:Iue(t,n);else{try{r.unsafe?e[t]&&(i=!0):delete e[t]}catch(o){}i?e[t]=n:hue.f(e,t,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return e}});var Hx=w((Awe,Jx)=>{"use strict";m();T();N();var gue=Math.ceil,_ue=Math.floor;Jx.exports=Math.trunc||function(t){var n=+t;return(n>0?_ue:gue)(n)}});var IE=w((wwe,zx)=>{"use strict";m();T();N();var vue=Hx();zx.exports=function(e){var t=+e;return t!==t||t===0?0:vue(t)}});var Xx=w((Uwe,Wx)=>{"use strict";m();T();N();var Sue=IE(),Oue=Math.max,Due=Math.min;Wx.exports=function(e,t){var n=Sue(e);return n<0?Oue(n+t,0):Due(n,t)}});var eq=w((qwe,Zx)=>{"use strict";m();T();N();var bue=IE(),Aue=Math.min;Zx.exports=function(e){var t=bue(e);return t>0?Aue(t,9007199254740991):0}});var nq=w((Gwe,tq)=>{"use strict";m();T();N();var Rue=eq();tq.exports=function(e){return Rue(e.length)}});var aq=w((Jwe,iq)=>{"use strict";m();T();N();var Pue=uE(),Fue=Xx(),wue=nq(),rq=function(e){return function(t,n,r){var i=Pue(t),a=wue(i);if(a===0)return!e&&-1;var o=Fue(r,a),c;if(e&&n!==n){for(;a>o;)if(c=i[o++],c!==c)return!0}else for(;a>o;o++)if((e||o in i)&&i[o]===n)return e||o||0;return!e&&-1}};iq.exports={includes:rq(!0),indexOf:rq(!1)}});var uq=w((Xwe,oq)=>{"use strict";m();T();N();var Lue=Ni(),UO=yu(),Cue=uE(),Bue=aq().indexOf,Uue=PO(),sq=Lue([].push);oq.exports=function(e,t){var n=Cue(e),r=0,i=[],a;for(a in n)!UO(Uue,a)&&UO(n,a)&&sq(i,a);for(;t.length>r;)UO(n,a=t[r++])&&(~Bue(i,a)||sq(i,a));return i}});var lq=w((nLe,cq)=>{"use strict";m();T();N();cq.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var fq=w(dq=>{"use strict";m();T();N();var kue=uq(),Mue=lq(),xue=Mue.concat("length","prototype");dq.f=Object.getOwnPropertyNames||function(t){return kue(t,xue)}});var mq=w(pq=>{"use strict";m();T();N();pq.f=Object.getOwnPropertySymbols});var Tq=w((mLe,Nq)=>{"use strict";m();T();N();var que=cE(),Vue=Ni(),jue=fq(),Kue=mq(),Gue=$f(),$ue=Vue([].concat);Nq.exports=que("Reflect","ownKeys")||function(t){var n=jue.f(Gue(t)),r=Kue.f;return r?$ue(n,r(t)):n}});var yq=w((hLe,hq)=>{"use strict";m();T();N();var Eq=yu(),Que=Tq(),Yue=gO(),Jue=NE();hq.exports=function(e,t,n){for(var r=Que(t),i=Jue.f,a=Yue.f,o=0;o{"use strict";m();T();N();var Hue=bs(),zue=fa(),Wue=/#|\.prototype\./,Yf=function(e,t){var n=Zue[Xue(e)];return n===tce?!0:n===ece?!1:zue(t)?Hue(t):!!t},Xue=Yf.normalize=function(e){return String(e).replace(Wue,".").toLowerCase()},Zue=Yf.data={},ece=Yf.NATIVE="N",tce=Yf.POLYFILL="P";Iq.exports=Yf});var kO=w((DLe,_q)=>{"use strict";m();T();N();var gE=Qi(),nce=gO().f,rce=DO(),ice=Yx(),ace=fE(),sce=yq(),oce=gq();_q.exports=function(e,t){var n=e.target,r=e.global,i=e.stat,a,o,c,l,d,p;if(r?o=gE:i?o=gE[n]||ace(n,{}):o=gE[n]&&gE[n].prototype,o)for(c in t){if(d=t[c],e.dontCallGetSet?(p=nce(o,c),l=p&&p.value):l=o[c],a=oce(r?c:n+(i?".":"#")+c,e.forced),!a&&l!==void 0){if(typeof d==typeof l)continue;sce(d,l)}(e.sham||l&&l.sham)&&rce(d,"sham",!0),ice(o,c,d,e)}}});var Jf=w((PLe,vq)=>{"use strict";m();T();N();var MO=Ni(),_E=Set.prototype;vq.exports={Set,add:MO(_E.add),has:MO(_E.has),remove:MO(_E.delete),proto:_E}});var xO=w((CLe,Sq)=>{"use strict";m();T();N();var uce=Jf().has;Sq.exports=function(e){return uce(e),e}});var Dq=w((MLe,Oq)=>{"use strict";m();T();N();var cce=Ni(),lce=dE();Oq.exports=function(e,t,n){try{return cce(lce(Object.getOwnPropertyDescriptor(e,t)[n]))}catch(r){}}});var qO=w((jLe,bq)=>{"use strict";m();T();N();var dce=Dq(),fce=Jf();bq.exports=dce(fce.proto,"size","get")||function(e){return e.size}});var VO=w((QLe,Aq)=>{"use strict";m();T();N();var pce=yc();Aq.exports=function(e,t,n){for(var r=n?e:e.iterator,i=e.next,a,o;!(a=pce(i,r)).done;)if(o=t(a.value),o!==void 0)return o}});var Cq=w((zLe,Lq)=>{"use strict";m();T();N();var Rq=Ni(),mce=VO(),Pq=Jf(),Nce=Pq.Set,Fq=Pq.proto,Tce=Rq(Fq.forEach),wq=Rq(Fq.keys),Ece=wq(new Nce).next;Lq.exports=function(e,t,n){return n?mce({iterator:wq(e),next:Ece},t):Tce(e,t)}});var Uq=w((eCe,Bq)=>{"use strict";m();T();N();Bq.exports=function(e){return{iterator:e,next:e.next,done:!1}}});var jO=w((iCe,jq)=>{"use strict";m();T();N();var kq=dE(),qq=$f(),Mq=yc(),hce=IE(),yce=Uq(),xq="Invalid size",Ice=RangeError,gce=TypeError,_ce=Math.max,Vq=function(e,t){this.set=e,this.size=_ce(t,0),this.has=kq(e.has),this.keys=kq(e.keys)};Vq.prototype={getIterator:function(){return yce(qq(Mq(this.keys,this.set)))},includes:function(e){return Mq(this.has,this.set,e)}};jq.exports=function(e){qq(e);var t=+e.size;if(t!==t)throw new gce(xq);var n=hce(t);if(n<0)throw new Ice(xq);return new Vq(e,n)}});var Gq=w((uCe,Kq)=>{"use strict";m();T();N();var vce=xO(),Sce=qO(),Oce=Cq(),Dce=jO();Kq.exports=function(t){var n=vce(this),r=Dce(t);return Sce(n)>r.size?!1:Oce(n,function(i){if(!r.includes(i))return!1},!0)!==!1}});var KO=w((fCe,Yq)=>{"use strict";m();T();N();var bce=cE(),$q=function(e){return{size:e,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}},Qq=function(e){return{size:e,has:function(){return!0},keys:function(){throw new Error("e")}}};Yq.exports=function(e,t){var n=bce("Set");try{new n()[e]($q(0));try{return new n()[e]($q(-1)),!1}catch(i){if(!t)return!0;try{return new n()[e](Qq(-1/0)),!1}catch(a){var r=new n;return r.add(1),r.add(2),t(r[e](Qq(1/0)))}}}catch(i){return!1}}});var Jq=w(()=>{"use strict";m();T();N();var Ace=kO(),Rce=Gq(),Pce=KO(),Fce=!Pce("isSubsetOf",function(e){return e});Ace({target:"Set",proto:!0,real:!0,forced:Fce},{isSubsetOf:Rce})});var Hq=w(()=>{"use strict";m();T();N();Jq()});var Xq=w((DCe,Wq)=>{"use strict";m();T();N();var wce=yc(),zq=$f(),Lce=dO();Wq.exports=function(e,t,n){var r,i;zq(e);try{if(r=Lce(e,"return"),!r){if(t==="throw")throw n;return n}r=wce(r,e)}catch(a){i=!0,r=a}if(t==="throw")throw n;if(i)throw r;return zq(r),n}});var eV=w((PCe,Zq)=>{"use strict";m();T();N();var Cce=xO(),Bce=Jf().has,Uce=qO(),kce=jO(),Mce=VO(),xce=Xq();Zq.exports=function(t){var n=Cce(this),r=kce(t);if(Uce(n){"use strict";m();T();N();var qce=kO(),Vce=eV(),jce=KO(),Kce=!jce("isSupersetOf",function(e){return!e});qce({target:"Set",proto:!0,real:!0,forced:Kce},{isSupersetOf:Vce})});var nV=w(()=>{"use strict";m();T();N();tV()});var Hf=w(Dn=>{"use strict";m();T();N();Object.defineProperty(Dn,"__esModule",{value:!0});Dn.subtractSet=$ce;Dn.mapToArrayOfValues=Qce;Dn.kindToConvertedTypeString=Yce;Dn.fieldDatasToSimpleFieldDatas=Jce;Dn.isNodeLeaf=Hce;Dn.newEntityInterfaceFederationData=zce;Dn.upsertEntityInterfaceFederationData=Wce;Dn.upsertEntityData=Zce;Dn.updateEntityData=rV;Dn.newFieldAuthorizationData=ele;Dn.newAuthorizationData=tle;Dn.addScopes=GO;Dn.mergeRequiredScopesByAND=OE;Dn.mergeRequiredScopesByOR=$O;Dn.upsertFieldAuthorizationData=iV;Dn.upsertAuthorizationData=ile;Dn.upsertAuthorizationConfiguration=ale;Dn.isObjectNodeKind=sle;Dn.isCompositeOutputNodeKind=ole;Dn.isObjectDefinitionData=ule;Dn.getNodeCoords=cle;var Gt=De(),ti=vr(),vE=Sr(),SE=Ss();Hq();nV();var Gce=Yl();function $ce(e,t){for(let n of e)t.delete(n)}function Qce(e){let t=[];for(let n of e.values())t.push(n);return t}function Yce(e){switch(e){case Gt.Kind.BOOLEAN:return ti.BOOLEAN_SCALAR;case Gt.Kind.ENUM:case Gt.Kind.ENUM_TYPE_DEFINITION:case Gt.Kind.ENUM_TYPE_EXTENSION:return ti.ENUM;case Gt.Kind.ENUM_VALUE_DEFINITION:return ti.ENUM_VALUE;case Gt.Kind.FIELD_DEFINITION:return ti.FIELD;case Gt.Kind.FLOAT:return ti.FLOAT_SCALAR;case Gt.Kind.INPUT_OBJECT_TYPE_DEFINITION:case Gt.Kind.INPUT_OBJECT_TYPE_EXTENSION:return ti.INPUT_OBJECT;case Gt.Kind.INPUT_VALUE_DEFINITION:return ti.INPUT_VALUE;case Gt.Kind.INT:return ti.INT_SCALAR;case Gt.Kind.INTERFACE_TYPE_DEFINITION:case Gt.Kind.INTERFACE_TYPE_EXTENSION:return ti.INTERFACE;case Gt.Kind.NULL:return ti.NULL;case Gt.Kind.OBJECT:case Gt.Kind.OBJECT_TYPE_DEFINITION:case Gt.Kind.OBJECT_TYPE_EXTENSION:return ti.OBJECT;case Gt.Kind.STRING:return ti.STRING_SCALAR;case Gt.Kind.SCALAR_TYPE_DEFINITION:case Gt.Kind.SCALAR_TYPE_EXTENSION:return ti.SCALAR;case Gt.Kind.UNION_TYPE_DEFINITION:case Gt.Kind.UNION_TYPE_EXTENSION:return ti.UNION;default:return e}}function Jce(e){let t=[];for(let{name:n,namedTypeName:r}of e)t.push({name:n,namedTypeName:r});return t}function Hce(e){if(!e)return!0;switch(e){case Gt.Kind.OBJECT_TYPE_DEFINITION:case Gt.Kind.INTERFACE_TYPE_DEFINITION:case Gt.Kind.UNION_TYPE_DEFINITION:return!1;default:return!0}}function zce(e,t){return{concreteTypeNames:new Set(e.concreteTypeNames),fieldDatasBySubgraphName:new Map([[t,e.fieldDatas]]),interfaceFieldNames:new Set(e.interfaceFieldNames),interfaceObjectFieldNames:new Set(e.interfaceObjectFieldNames),interfaceObjectSubgraphNames:new Set(e.isInterfaceObject?[t]:[]),subgraphDataByTypeName:new Map([[t,e]]),typeName:e.typeName}}function Wce(e,t,n){(0,vE.addIterableValuesToSet)(t.concreteTypeNames,e.concreteTypeNames),e.subgraphDataByTypeName.set(n,t),e.fieldDatasBySubgraphName.set(n,t.fieldDatas),(0,vE.addIterableValuesToSet)(t.interfaceFieldNames,e.interfaceFieldNames),(0,vE.addIterableValuesToSet)(t.interfaceObjectFieldNames,e.interfaceObjectFieldNames),t.isInterfaceObject&&e.interfaceObjectSubgraphNames.add(n)}function Xce({keyFieldSetDataByFieldSet:e,subgraphName:t,typeName:n}){let r=new Map([[t,e]]),i=new Map;for(let[a,{documentNode:o,isUnresolvable:c}]of e)c||i.set(a,o);return{keyFieldSetDatasBySubgraphName:r,documentNodeByKeyFieldSet:i,keyFieldSets:new Set,subgraphNames:new Set([t]),typeName:n}}function Zce({entityDataByTypeName:e,keyFieldSetDataByFieldSet:t,subgraphName:n,typeName:r}){let i=e.get(r);i?rV({entityData:i,keyFieldSetDataByFieldSet:t,subgraphName:n}):e.set(r,Xce({keyFieldSetDataByFieldSet:t,subgraphName:n,typeName:r}))}function rV({entityData:e,keyFieldSetDataByFieldSet:t,subgraphName:n}){e.subgraphNames.add(n);let r=e.keyFieldSetDatasBySubgraphName.get(n);if(!r){e.keyFieldSetDatasBySubgraphName.set(n,t);for(let[i,{documentNode:a,isUnresolvable:o}]of t)o||e.documentNodeByKeyFieldSet.set(i,a);return}for(let[i,a]of t){a.isUnresolvable||e.documentNodeByKeyFieldSet.set(i,a.documentNode);let o=r.get(i);if(o){o.isUnresolvable||(o.isUnresolvable=a.isUnresolvable);continue}r.set(i,a)}}function ele(e){return{fieldName:e,inheritedData:{requiredScopes:[],requiredScopesByOR:[],requiresAuthentication:!1},originalData:{requiredScopes:[],requiresAuthentication:!1}}}function tle(e){return{fieldAuthDataByFieldName:new Map,requiredScopes:[],requiredScopesByOR:[],requiresAuthentication:!1,typeName:e}}function GO(e,t){for(let n=e.length-1;n>-1;n--){if(e[n].isSubsetOf(t))return;e[n].isSupersetOf(t)&&e.splice(n,1)}e.push(t)}function OE(e,t){if(e.length<1||t.length<1){for(let r of t)e.push(new Set(r));return e}let n=[];for(let r of t)for(let i of e){let a=(0,vE.addSets)(r,i);GO(n,a)}return n}function $O(e,t){for(let n of t)GO(e,n);return e.length<=SE.MAX_OR_SCOPES}function iV(e,t){var i,a;let n=t.fieldName,r=e.get(n);return r?((i=r.inheritedData).requiresAuthentication||(i.requiresAuthentication=t.inheritedData.requiresAuthentication),(a=r.originalData).requiresAuthentication||(a.requiresAuthentication=t.originalData.requiresAuthentication),!$O(r.inheritedData.requiredScopesByOR,t.inheritedData.requiredScopes)||r.inheritedData.requiredScopes.length*t.inheritedData.requiredScopes.length>SE.MAX_OR_SCOPES||r.originalData.requiredScopes.length*t.originalData.requiredScopes.length>SE.MAX_OR_SCOPES?!1:(r.inheritedData.requiredScopes=OE(r.inheritedData.requiredScopes,t.inheritedData.requiredScopes),r.originalData.requiredScopes=OE(r.originalData.requiredScopes,t.originalData.requiredScopes),!0)):(e.set(n,aV(t)),!0)}function nle(e){let t=new Map;for(let[n,r]of e)t.set(n,aV(r));return t}function aV(e){return{fieldName:e.fieldName,inheritedData:{requiredScopes:[...e.inheritedData.requiredScopes],requiredScopesByOR:[...e.inheritedData.requiredScopes],requiresAuthentication:e.inheritedData.requiresAuthentication},originalData:{requiredScopes:[...e.originalData.requiredScopes],requiresAuthentication:e.originalData.requiresAuthentication}}}function rle(e){return{fieldAuthDataByFieldName:nle(e.fieldAuthDataByFieldName),requiredScopes:[...e.requiredScopes],requiredScopesByOR:[...e.requiredScopes],requiresAuthentication:e.requiresAuthentication,typeName:e.typeName}}function ile(e,t,n){let r=e.get(t.typeName);if(!r){e.set(t.typeName,rle(t));return}r.requiresAuthentication||(r.requiresAuthentication=t.requiresAuthentication),!$O(r.requiredScopesByOR,t.requiredScopes)||r.requiredScopes.length*t.requiredScopes.length>SE.MAX_OR_SCOPES?n.add(t.typeName):r.requiredScopes=OE(r.requiredScopes,t.requiredScopes);for(let[i,a]of t.fieldAuthDataByFieldName)iV(r.fieldAuthDataByFieldName,a)||n.add(`${t.typeName}.${i}`)}function ale(e,t){let n=t.typeName;for(let[r,i]of t.fieldAuthDataByFieldName){let a=`${n}.${r}`,o=e.get(a);o?(o.requiresAuthentication=i.inheritedData.requiresAuthentication,o.requiredScopes=i.inheritedData.requiredScopes.map(c=>[...c]),o.requiredScopesByOR=i.inheritedData.requiredScopesByOR.map(c=>[...c])):e.set(a,{argumentNames:[],typeName:n,fieldName:r,requiresAuthentication:i.inheritedData.requiresAuthentication,requiredScopes:i.inheritedData.requiredScopes.map(c=>[...c]),requiredScopesByOR:i.inheritedData.requiredScopesByOR.map(c=>[...c])})}}function sle(e){return e===Gt.Kind.OBJECT_TYPE_DEFINITION||e===Gt.Kind.OBJECT_TYPE_EXTENSION}function ole(e){return Gce.COMPOSITE_OUTPUT_NODE_KINDS.has(e)}function ule(e){return e?e.kind===Gt.Kind.OBJECT_TYPE_DEFINITION:!1}function cle(e){switch(e.kind){case Gt.Kind.ARGUMENT:case Gt.Kind.FIELD_DEFINITION:case Gt.Kind.INPUT_VALUE_DEFINITION:case Gt.Kind.ENUM_VALUE_DEFINITION:return e.federatedCoords;default:return e.name}}});var QO=w($e=>{"use strict";m();T();N();Object.defineProperty($e,"__esModule",{value:!0});$e.TAG_DEFINITION_DATA=$e.SUBSCRIPTION_FILTER_DEFINITION_DATA=$e.SHAREABLE_DEFINITION_DATA=$e.SPECIFIED_BY_DEFINITION_DATA=$e.SEMANTIC_NON_NULL_DATA=$e.REQUIRES_SCOPES_DEFINITION_DATA=$e.REQUIRE_FETCH_REASONS_DEFINITION_DATA=$e.REDIS_SUBSCRIBE_DEFINITION_DATA=$e.REDIS_PUBLISH_DEFINITION_DATA=$e.REQUIRES_DEFINITION_DATA=$e.PROVIDES_DEFINITION_DATA=$e.LINK_DEFINITION_DATA=$e.KEY_DEFINITION_DATA=$e.OVERRIDE_DEFINITION_DATA=$e.ONE_OF_DEFINITION_DATA=$e.NATS_SUBSCRIBE_DEFINITION_DATA=$e.NATS_REQUEST_DEFINITION_DATA=$e.NATS_PUBLISH_DEFINITION_DATA=$e.KAFKA_SUBSCRIBE_DEFINITION_DATA=$e.KAFKA_PUBLISH_DEFINITION_DATA=$e.INTERFACE_OBJECT_DEFINITION_DATA=$e.INACCESSIBLE_DEFINITION_DATA=$e.EXTERNAL_DEFINITION_DATA=$e.EXTENDS_DEFINITION_DATA=$e.DEPRECATED_DEFINITION_DATA=$e.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION_DATA=$e.CONFIGURE_DESCRIPTION_DEFINITION_DATA=$e.COMPOSE_DIRECTIVE_DEFINITION_DATA=$e.AUTHENTICATED_DEFINITION_DATA=void 0;var Xe=Ss(),Yi=Hr(),$t=De(),q=vr();$e.AUTHENTICATED_DEFINITION_DATA={argumentTypeNodeByName:new Map([]),isRepeatable:!1,locations:new Set([q.ENUM_UPPER,q.FIELD_DEFINITION_UPPER,q.INTERFACE_UPPER,q.OBJECT_UPPER,q.SCALAR_UPPER]),name:q.AUTHENTICATED,node:Xe.AUTHENTICATED_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.COMPOSE_DIRECTIVE_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.NAME,{name:q.NAME,typeNode:Xe.REQUIRED_STRING_TYPE_NODE}]]),isRepeatable:!0,locations:new Set([q.SCHEMA_UPPER]),name:q.COMPOSE_DIRECTIVE,node:Xe.COMPOSE_DIRECTIVE_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([q.NAME])};$e.CONFIGURE_DESCRIPTION_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.PROPAGATE,{name:q.PROPAGATE,typeNode:{kind:$t.Kind.NON_NULL_TYPE,type:(0,Yi.stringToNamedTypeNode)(q.BOOLEAN_SCALAR)},defaultValue:{kind:$t.Kind.BOOLEAN,value:!0}}],[q.DESCRIPTION_OVERRIDE,{name:q.DESCRIPTION_OVERRIDE,typeNode:(0,Yi.stringToNamedTypeNode)(q.STRING_SCALAR)}]]),isRepeatable:!1,locations:new Set([q.ARGUMENT_DEFINITION_UPPER,q.ENUM_UPPER,q.ENUM_VALUE_UPPER,q.FIELD_DEFINITION_UPPER,q.INTERFACE_UPPER,q.INPUT_OBJECT_UPPER,q.INPUT_FIELD_DEFINITION_UPPER,q.OBJECT_UPPER,q.SCALAR_UPPER,q.SCHEMA_UPPER,q.UNION_UPPER]),name:q.CONFIGURE_DESCRIPTION,node:Xe.CONFIGURE_DESCRIPTION_DEFINITION,optionalArgumentNames:new Set([q.PROPAGATE,q.DESCRIPTION_OVERRIDE]),requiredArgumentNames:new Set};$e.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.PROPAGATE,{name:q.PROPAGATE,typeNode:{kind:$t.Kind.NON_NULL_TYPE,type:(0,Yi.stringToNamedTypeNode)(q.BOOLEAN_SCALAR)},defaultValue:{kind:$t.Kind.BOOLEAN,value:!0}}]]),isRepeatable:!1,locations:new Set([q.ENUM_UPPER,q.INPUT_OBJECT_UPPER,q.INTERFACE_UPPER,q.OBJECT_UPPER]),name:q.CONFIGURE_CHILD_DESCRIPTIONS,node:Xe.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION,optionalArgumentNames:new Set([q.PROPAGATE]),requiredArgumentNames:new Set};$e.DEPRECATED_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.REASON,{name:q.REASON,typeNode:(0,Yi.stringToNamedTypeNode)(q.STRING_SCALAR),defaultValue:{kind:$t.Kind.STRING,value:$t.DEFAULT_DEPRECATION_REASON}}]]),isRepeatable:!1,locations:new Set([q.ARGUMENT_DEFINITION_UPPER,q.ENUM_VALUE_UPPER,q.FIELD_DEFINITION_UPPER,q.INPUT_FIELD_DEFINITION_UPPER]),name:q.DEPRECATED,node:Xe.DEPRECATED_DEFINITION,optionalArgumentNames:new Set([q.REASON]),requiredArgumentNames:new Set};$e.EXTENDS_DEFINITION_DATA={argumentTypeNodeByName:new Map,isRepeatable:!1,locations:new Set([q.INTERFACE_UPPER,q.OBJECT_UPPER]),name:q.EXTENDS,node:Xe.EXTENDS_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.EXTERNAL_DEFINITION_DATA={argumentTypeNodeByName:new Map,isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER,q.OBJECT_UPPER]),name:q.EXTERNAL,node:Xe.EXTERNAL_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.INACCESSIBLE_DEFINITION_DATA={argumentTypeNodeByName:new Map,isRepeatable:!1,locations:new Set([q.ARGUMENT_DEFINITION_UPPER,q.ENUM_UPPER,q.ENUM_VALUE_UPPER,q.FIELD_DEFINITION_UPPER,q.INPUT_FIELD_DEFINITION_UPPER,q.INPUT_OBJECT_UPPER,q.INTERFACE_UPPER,q.OBJECT_UPPER,q.SCALAR_UPPER,q.UNION_UPPER]),name:q.INACCESSIBLE,node:Xe.INACCESSIBLE_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.INTERFACE_OBJECT_DEFINITION_DATA={argumentTypeNodeByName:new Map,isRepeatable:!1,locations:new Set([q.OBJECT_UPPER]),name:q.INTERFACE_OBJECT,node:Xe.INTERFACE_OBJECT_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.KAFKA_PUBLISH_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.TOPIC,{name:q.TOPIC,typeNode:Xe.REQUIRED_STRING_TYPE_NODE}],[q.PROVIDER_ID,{name:q.PROVIDER_ID,typeNode:Xe.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:$t.Kind.STRING,value:q.DEFAULT_EDFS_PROVIDER_ID}}]]),isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER]),name:q.EDFS_KAFKA_PUBLISH,node:Xe.EDFS_KAFKA_PUBLISH_DEFINITION,optionalArgumentNames:new Set([q.PROVIDER_ID]),requiredArgumentNames:new Set([q.TOPIC])};$e.KAFKA_SUBSCRIBE_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.TOPICS,{name:q.TOPICS,typeNode:{kind:$t.Kind.NON_NULL_TYPE,type:{kind:$t.Kind.LIST_TYPE,type:Xe.REQUIRED_STRING_TYPE_NODE}}}],[q.PROVIDER_ID,{name:q.PROVIDER_ID,typeNode:Xe.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:$t.Kind.STRING,value:q.DEFAULT_EDFS_PROVIDER_ID}}]]),isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER]),name:q.EDFS_KAFKA_SUBSCRIBE,node:Xe.EDFS_KAFKA_SUBSCRIBE_DEFINITION,optionalArgumentNames:new Set([q.PROVIDER_ID]),requiredArgumentNames:new Set([q.TOPICS])};$e.NATS_PUBLISH_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.SUBJECT,{name:q.SUBJECT,typeNode:Xe.REQUIRED_STRING_TYPE_NODE}],[q.PROVIDER_ID,{name:q.PROVIDER_ID,typeNode:Xe.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:$t.Kind.STRING,value:q.DEFAULT_EDFS_PROVIDER_ID}}]]),isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER]),name:q.EDFS_NATS_PUBLISH,node:Xe.EDFS_NATS_PUBLISH_DEFINITION,optionalArgumentNames:new Set([q.PROVIDER_ID]),requiredArgumentNames:new Set([q.SUBJECT])};$e.NATS_REQUEST_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.SUBJECT,{name:q.SUBJECT,typeNode:Xe.REQUIRED_STRING_TYPE_NODE}],[q.PROVIDER_ID,{name:q.PROVIDER_ID,typeNode:Xe.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:$t.Kind.STRING,value:q.DEFAULT_EDFS_PROVIDER_ID}}]]),isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER]),name:q.EDFS_NATS_REQUEST,node:Xe.EDFS_NATS_REQUEST_DEFINITION,optionalArgumentNames:new Set([q.PROVIDER_ID]),requiredArgumentNames:new Set([q.SUBJECT])};$e.NATS_SUBSCRIBE_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.SUBJECTS,{name:q.SUBJECTS,typeNode:{kind:$t.Kind.NON_NULL_TYPE,type:{kind:$t.Kind.LIST_TYPE,type:Xe.REQUIRED_STRING_TYPE_NODE}}}],[q.PROVIDER_ID,{name:q.PROVIDER_ID,typeNode:Xe.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:$t.Kind.STRING,value:q.DEFAULT_EDFS_PROVIDER_ID}}],[q.STREAM_CONFIGURATION,{name:q.STREAM_CONFIGURATION,typeNode:(0,Yi.stringToNamedTypeNode)(q.EDFS_NATS_STREAM_CONFIGURATION)}]]),isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER]),name:q.EDFS_NATS_SUBSCRIBE,node:Xe.EDFS_NATS_SUBSCRIBE_DEFINITION,optionalArgumentNames:new Set([q.PROVIDER_ID]),requiredArgumentNames:new Set([q.SUBJECTS])};$e.ONE_OF_DEFINITION_DATA={argumentTypeNodeByName:new Map([]),isRepeatable:!1,locations:new Set([q.INPUT_OBJECT_UPPER]),name:q.ONE_OF,node:Xe.ONE_OF_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.OVERRIDE_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.FROM,{name:q.FROM,typeNode:Xe.REQUIRED_STRING_TYPE_NODE}]]),isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER]),name:q.OVERRIDE,node:Xe.OVERRIDE_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([q.FROM])};$e.KEY_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.FIELDS,{name:q.FIELDS,typeNode:Xe.REQUIRED_FIELDSET_TYPE_NODE}],[q.RESOLVABLE,{name:q.RESOLVABLE,typeNode:(0,Yi.stringToNamedTypeNode)(q.BOOLEAN_SCALAR),defaultValue:{kind:$t.Kind.BOOLEAN,value:!0}}]]),isRepeatable:!0,locations:new Set([q.INTERFACE_UPPER,q.OBJECT_UPPER]),name:q.KEY,node:Xe.KEY_DEFINITION,optionalArgumentNames:new Set([q.RESOLVABLE]),requiredArgumentNames:new Set([q.FIELDS])};$e.LINK_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.URL_LOWER,{name:q.URL_LOWER,typeNode:Xe.REQUIRED_STRING_TYPE_NODE}],[q.AS,{name:q.AS,typeNode:(0,Yi.stringToNamedTypeNode)(q.STRING_SCALAR)}],[q.FOR,{name:q.FOR,typeNode:(0,Yi.stringToNamedTypeNode)(q.LINK_PURPOSE)}],[q.IMPORT,{name:q.IMPORT,typeNode:{kind:$t.Kind.LIST_TYPE,type:(0,Yi.stringToNamedTypeNode)(q.LINK_IMPORT)}}]]),isRepeatable:!0,locations:new Set([q.SCHEMA_UPPER]),name:q.LINK,node:Xe.LINK_DEFINITION,optionalArgumentNames:new Set([q.AS,q.FOR,q.IMPORT]),requiredArgumentNames:new Set([q.URL_LOWER])};$e.PROVIDES_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.FIELDS,{name:q.FIELDS,typeNode:Xe.REQUIRED_FIELDSET_TYPE_NODE}]]),isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER]),name:q.PROVIDES,node:Xe.PROVIDES_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([q.FIELDS])};$e.REQUIRES_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.FIELDS,{name:q.FIELDS,typeNode:Xe.REQUIRED_FIELDSET_TYPE_NODE}]]),isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER]),name:q.REQUIRES,node:Xe.REQUIRES_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([q.FIELDS])};$e.REDIS_PUBLISH_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.CHANNEL,{name:q.CHANNEL,typeNode:Xe.REQUIRED_STRING_TYPE_NODE}],[q.PROVIDER_ID,{name:q.PROVIDER_ID,typeNode:Xe.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:$t.Kind.STRING,value:q.DEFAULT_EDFS_PROVIDER_ID}}]]),isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER]),name:q.EDFS_REDIS_PUBLISH,node:Xe.EDFS_REDIS_PUBLISH_DEFINITION,optionalArgumentNames:new Set([q.PROVIDER_ID]),requiredArgumentNames:new Set([q.CHANNEL])};$e.REDIS_SUBSCRIBE_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.CHANNELS,{name:q.CHANNELS,typeNode:{kind:$t.Kind.NON_NULL_TYPE,type:{kind:$t.Kind.LIST_TYPE,type:Xe.REQUIRED_STRING_TYPE_NODE}}}],[q.PROVIDER_ID,{name:q.PROVIDER_ID,typeNode:Xe.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:$t.Kind.STRING,value:q.DEFAULT_EDFS_PROVIDER_ID}}]]),isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER]),name:q.EDFS_REDIS_SUBSCRIBE,node:Xe.EDFS_REDIS_SUBSCRIBE_DEFINITION,optionalArgumentNames:new Set([q.PROVIDER_ID]),requiredArgumentNames:new Set([q.CHANNELS])};$e.REQUIRE_FETCH_REASONS_DEFINITION_DATA={argumentTypeNodeByName:new Map,isRepeatable:!0,locations:new Set([q.FIELD_DEFINITION_UPPER,q.INTERFACE_UPPER,q.OBJECT_UPPER]),name:q.REQUIRE_FETCH_REASONS,node:Xe.REQUIRE_FETCH_REASONS_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.REQUIRES_SCOPES_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.SCOPES,{name:q.SCOPES,typeNode:{kind:$t.Kind.NON_NULL_TYPE,type:{kind:$t.Kind.LIST_TYPE,type:{kind:$t.Kind.NON_NULL_TYPE,type:{kind:$t.Kind.LIST_TYPE,type:{kind:$t.Kind.NON_NULL_TYPE,type:(0,Yi.stringToNamedTypeNode)(q.SCOPE_SCALAR)}}}}}}]]),isRepeatable:!1,locations:new Set([q.ENUM_UPPER,q.FIELD_DEFINITION_UPPER,q.INTERFACE_UPPER,q.OBJECT_UPPER,q.SCALAR_UPPER]),name:q.REQUIRES_SCOPES,node:Xe.REQUIRES_SCOPES_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([q.SCOPES])};$e.SEMANTIC_NON_NULL_DATA={argumentTypeNodeByName:new Map([[q.LEVELS,{name:q.LEVELS,typeNode:{kind:$t.Kind.NON_NULL_TYPE,type:{kind:$t.Kind.LIST_TYPE,type:{kind:$t.Kind.NON_NULL_TYPE,type:(0,Yi.stringToNamedTypeNode)(q.INT_SCALAR)}}},defaultValue:{kind:$t.Kind.LIST,values:[{kind:$t.Kind.INT,value:"0"}]}}]]),isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER]),name:q.SEMANTIC_NON_NULL,node:Xe.SEMANTIC_NON_NULL_DEFINITION,optionalArgumentNames:new Set([q.LEVELS]),requiredArgumentNames:new Set};$e.SPECIFIED_BY_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.URL_LOWER,{name:q.URL_LOWER,typeNode:Xe.REQUIRED_STRING_TYPE_NODE}]]),isRepeatable:!1,locations:new Set([q.SCALAR_UPPER]),name:q.SPECIFIED_BY,node:Xe.SPECIFIED_BY_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([q.URL_LOWER])};$e.SHAREABLE_DEFINITION_DATA={argumentTypeNodeByName:new Map,isRepeatable:!0,locations:new Set([q.FIELD_DEFINITION_UPPER,q.OBJECT_UPPER]),name:q.SHAREABLE,node:Xe.SHAREABLE_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.SUBSCRIPTION_FILTER_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.CONDITION,{name:q.CONDITION,typeNode:{kind:$t.Kind.NON_NULL_TYPE,type:(0,Yi.stringToNamedTypeNode)(q.SUBSCRIPTION_FILTER_CONDITION)}}]]),isRepeatable:!1,locations:new Set([q.FIELD_DEFINITION_UPPER]),name:q.SUBSCRIPTION_FILTER,node:Xe.SUBSCRIPTION_FILTER_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([q.CONDITION])};$e.TAG_DEFINITION_DATA={argumentTypeNodeByName:new Map([[q.NAME,{name:q.NAME,typeNode:Xe.REQUIRED_STRING_TYPE_NODE}]]),isRepeatable:!0,locations:new Set([q.ARGUMENT_DEFINITION_UPPER,q.ENUM_UPPER,q.ENUM_VALUE_UPPER,q.FIELD_DEFINITION_UPPER,q.INPUT_FIELD_DEFINITION_UPPER,q.INPUT_OBJECT_UPPER,q.INTERFACE_UPPER,q.OBJECT_UPPER,q.SCALAR_UPPER,q.UNION_UPPER]),name:q.TAG,node:Xe.TAG_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([q.NAME])}});var zf=w(Na=>{"use strict";m();T();N();Object.defineProperty(Na,"__esModule",{value:!0});Na.newFieldSetData=lle;Na.extractFieldSetValue=dle;Na.getNormalizedFieldSet=fle;Na.getInitialFieldCoordsPath=ple;Na.validateKeyFieldSets=mle;Na.getConditionalFieldSetDirectiveName=Nle;Na.isNodeQuery=Tle;Na.validateArgumentTemplateReferences=Ele;Na.initializeDirectiveDefinitionDatas=hle;var nr=De(),sV=Hr(),Rr=Mi(),oV=Ss(),YO=du(),an=QO(),At=vr(),Iu=Sr();function lle(){return{provides:new Map,requires:new Map}}function dle(e,t,n){if(!n||n.length>1)return;let r=n[0].arguments;if(!r||r.length!==1)return;let i=r[0];i.name.value!==At.FIELDS||i.value.kind!==nr.Kind.STRING||t.set(e,i.value.value)}function fle(e){return(0,nr.print)((0,sV.lexicographicallySortDocumentNode)(e)).replaceAll(/\s+/g," ").slice(2,-2)}function ple(e,t){return e?[t]:[]}function mle(e,t,n){let r=e.entityInterfaceDataByTypeName.get(t.name),i=t.name,a=[],o=[],c=r?void 0:e.internalGraph.addEntityDataNode(t.name),l=e.internalGraph.addOrUpdateNode(t.name),d=0;for(let[p,{documentNode:y,isUnresolvable:I,rawFieldSet:v}]of n){r&&(r.resolvable||(r.resolvable=!I)),d+=1;let F=[],k=[t],K=[],J=[],se=new Set,ie=-1,Te=!0,de="";if((0,nr.visit)(y,{Argument:{enter(Re){return F.push((0,Rr.unexpectedArgumentErrorMessage)(v,`${k[ie].name}.${de}`,Re.name.value)),nr.BREAK}},Field:{enter(Re){let xe=k[ie],tt=xe.name;if(Te){let An=`${tt}.${de}`,Qt=xe.fieldDataByName.get(de);if(!Qt)return F.push((0,Rr.undefinedFieldInFieldSetErrorMessage)(v,An,de)),nr.BREAK;let mn=(0,YO.getTypeNodeNamedTypeName)(Qt.node.type),Pr=e.parentDefinitionDataByTypeName.get(mn),Fr=Pr?Pr.kind:nr.Kind.SCALAR_TYPE_DEFINITION;return F.push((0,Rr.invalidSelectionSetErrorMessage)(v,[An],mn,(0,Iu.kindToNodeType)(Fr))),nr.BREAK}let ee=Re.name.value,Se=`${tt}.${ee}`;de=ee;let _t=xe.fieldDataByName.get(ee);if(!_t)return F.push((0,Rr.undefinedFieldInFieldSetErrorMessage)(v,tt,ee)),nr.BREAK;if(_t.argumentDataByName.size)return F.push((0,Rr.argumentsInKeyFieldSetErrorMessage)(v,Se)),nr.BREAK;if(K[ie].has(ee))return F.push((0,Rr.duplicateFieldInFieldSetErrorMessage)(v,Se)),nr.BREAK;(0,Iu.getValueOrDefault)((0,Iu.getValueOrDefault)(e.keyFieldSetsByEntityTypeNameByFieldCoords,Se,()=>new Map),i,()=>new Set).add(p),J.push(ee),_t.isShareableBySubgraphName.set(e.subgraphName,!0),K[ie].add(ee),(0,Iu.getValueOrDefault)(e.keyFieldNamesByParentTypeName,tt,()=>new Set).add(ee);let en=(0,YO.getTypeNodeNamedTypeName)(_t.node.type);if(oV.BASE_SCALARS.has(en)){se.add(J.join(At.PERIOD)),J.pop();return}let tn=e.parentDefinitionDataByTypeName.get(en);if(!tn)return F.push((0,Rr.unknownTypeInFieldSetErrorMessage)(v,Se,en)),nr.BREAK;if(tn.kind===nr.Kind.OBJECT_TYPE_DEFINITION){Te=!0,k.push(tn);return}if((0,sV.isKindAbstract)(tn.kind))return F.push((0,Rr.abstractTypeInKeyFieldSetErrorMessage)(v,Se,en,(0,Iu.kindToNodeType)(tn.kind))),nr.BREAK;se.add(J.join(At.PERIOD)),J.pop()}},InlineFragment:{enter(){return F.push(Rr.inlineFragmentInFieldSetErrorMessage),nr.BREAK}},SelectionSet:{enter(){if(!Te){let Re=k[ie],tt=`${Re.name}.${de}`,ee=Re.fieldDataByName.get(de);if(!ee)return F.push((0,Rr.undefinedFieldInFieldSetErrorMessage)(v,tt,de)),nr.BREAK;let Se=(0,YO.getTypeNodeNamedTypeName)(ee.node.type),_t=e.parentDefinitionDataByTypeName.get(Se),en=_t?_t.kind:nr.Kind.SCALAR_TYPE_DEFINITION;return F.push((0,Rr.invalidSelectionSetDefinitionErrorMessage)(v,[tt],Se,(0,Iu.kindToNodeType)(en))),nr.BREAK}if(ie+=1,Te=!1,ie<0||ie>=k.length)return F.push((0,Rr.unparsableFieldSetSelectionErrorMessage)(v,de)),nr.BREAK;K.push(new Set)},leave(){if(Te){let xe=k[ie].name,tt=k[ie+1],ee=`${xe}.${de}`;F.push((0,Rr.invalidSelectionSetErrorMessage)(v,[ee],tt.name,(0,Iu.kindToNodeType)(tt.kind))),Te=!1}ie-=1,k.pop(),K.pop()}}}),F.length>0){e.errors.push((0,Rr.invalidDirectiveError)(At.KEY,i,(0,Iu.numberToOrdinal)(d),F));continue}a.push(x({fieldName:"",selectionSet:p},I?{disableEntityResolver:!0}:{})),l.satisfiedFieldSets.add(p),!I&&(c==null||c.addTargetSubgraphByFieldSet(p,e.subgraphName),o.push(se))}if(a.length>0)return a}function Nle(e){return e?At.PROVIDES:At.REQUIRES}function Tle(e,t){return e===At.QUERY||t===nr.OperationTypeNode.QUERY}function Ele(e,t,n){let r=e.matchAll(oV.EDFS_ARGS_REGEXP),i=new Set,a=new Set;for(let o of r){if(o.length<2){a.add(o[0]);continue}t.has(o[1])||i.add(o[1])}for(let o of i)n.push((0,Rr.undefinedEventSubjectsArgumentErrorMessage)(o));for(let o of a)n.push((0,Rr.invalidEventSubjectsArgumentErrorMessage)(o))}function hle(){return new Map([[At.AUTHENTICATED,an.AUTHENTICATED_DEFINITION_DATA],[At.COMPOSE_DIRECTIVE,an.COMPOSE_DIRECTIVE_DEFINITION_DATA],[At.CONFIGURE_DESCRIPTION,an.CONFIGURE_DESCRIPTION_DEFINITION_DATA],[At.CONFIGURE_CHILD_DESCRIPTIONS,an.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION_DATA],[At.DEPRECATED,an.DEPRECATED_DEFINITION_DATA],[At.EDFS_KAFKA_PUBLISH,an.KAFKA_PUBLISH_DEFINITION_DATA],[At.EDFS_KAFKA_SUBSCRIBE,an.KAFKA_SUBSCRIBE_DEFINITION_DATA],[At.EDFS_NATS_PUBLISH,an.NATS_PUBLISH_DEFINITION_DATA],[At.EDFS_NATS_REQUEST,an.NATS_REQUEST_DEFINITION_DATA],[At.EDFS_NATS_SUBSCRIBE,an.NATS_SUBSCRIBE_DEFINITION_DATA],[At.EDFS_REDIS_PUBLISH,an.REDIS_PUBLISH_DEFINITION_DATA],[At.EDFS_REDIS_SUBSCRIBE,an.REDIS_SUBSCRIBE_DEFINITION_DATA],[At.EXTENDS,an.EXTENDS_DEFINITION_DATA],[At.EXTERNAL,an.EXTERNAL_DEFINITION_DATA],[At.INACCESSIBLE,an.INACCESSIBLE_DEFINITION_DATA],[At.INTERFACE_OBJECT,an.INTERFACE_OBJECT_DEFINITION_DATA],[At.KEY,an.KEY_DEFINITION_DATA],[At.LINK,an.LINK_DEFINITION_DATA],[At.ONE_OF,an.ONE_OF_DEFINITION_DATA],[At.OVERRIDE,an.OVERRIDE_DEFINITION_DATA],[At.PROVIDES,an.PROVIDES_DEFINITION_DATA],[At.REQUIRE_FETCH_REASONS,an.REQUIRE_FETCH_REASONS_DEFINITION_DATA],[At.REQUIRES,an.REQUIRES_DEFINITION_DATA],[At.REQUIRES_SCOPES,an.REQUIRES_SCOPES_DEFINITION_DATA],[At.SEMANTIC_NON_NULL,an.SEMANTIC_NON_NULL_DATA],[At.SHAREABLE,an.SHAREABLE_DEFINITION_DATA],[At.SPECIFIED_BY,an.SPECIFIED_BY_DEFINITION_DATA],[At.SUBSCRIPTION_FILTER,an.SUBSCRIPTION_FILTER_DEFINITION_DATA],[At.TAG,an.TAG_DEFINITION_DATA]])}});var HO=w(JO=>{"use strict";m();T();N();Object.defineProperty(JO,"__esModule",{value:!0});JO.recordSubgraphName=yle;function yle(e,t,n){if(!t.has(e)){t.add(e);return}n.add(e)}});var WO=w(DE=>{"use strict";m();T();N();Object.defineProperty(DE,"__esModule",{value:!0});DE.Warning=void 0;var zO=class extends Error{constructor(n){super(n.message);_(this,"subgraph");this.name="Warning",this.subgraph=n.subgraph}};DE.Warning=zO});var Wf=w(Ti=>{"use strict";m();T();N();Object.defineProperty(Ti,"__esModule",{value:!0});Ti.invalidOverrideTargetSubgraphNameWarning=Ile;Ti.externalInterfaceFieldsWarning=gle;Ti.nonExternalConditionalFieldWarning=_le;Ti.unimplementedInterfaceOutputTypeWarning=vle;Ti.invalidExternalFieldWarning=Sle;Ti.requiresDefinedOnNonEntityFieldWarning=Ole;Ti.consumerInactiveThresholdInvalidValueWarning=Dle;Ti.externalEntityExtensionKeyFieldWarning=ble;Ti.fieldAlreadyProvidedWarning=Ale;Ti.singleSubgraphInputFieldOneOfWarning=Rle;Ti.singleFederatedInputFieldOneOfWarning=Ple;var Ta=WO(),XO=vr();function Ile(e,t,n,r){return new Ta.Warning({message:`The Object type "${t}" defines the directive "@override(from: "${e}")" on the following field`+(n.length>1?"s":"")+': "'+n.join(XO.QUOTATION_JOIN)+`". +`;return n+=`The list value provided to the "levels" argument must be consistently defined across all subgraphs that define "@semanticNonNull" on field "${t}".`,new Error(n)}function Rse({requiredFieldNames:e,typeName:t}){return new Error(`The "@oneOf" directive defined on Input Object "${t}" is invalid because all Input fields must be optional (nullable); however, the following Input field`+(e.length>1?"s are":" is")+' required (non-nullable): "'+e.join(He.QUOTATION_JOIN)+'".')}});var IM=F(yM=>{"use strict";m();T();N();Object.defineProperty(yM,"__esModule",{value:!0})});var vE=F(_E=>{"use strict";m();T();N();Object.defineProperty(_E,"__esModule",{value:!0});_E.DEFAULT_CONSUMER_INACTIVE_THRESHOLD=void 0;_E.DEFAULT_CONSUMER_INACTIVE_THRESHOLD=30});var SE=F(hr=>{"use strict";m();T();N();Object.defineProperty(hr,"__esModule",{value:!0});hr.SUBSCRIPTION_FILTER_VALUE_DEFINITION=hr.SUBSCRIPTION_FILTER_CONDITION_DEFINITION=hr.SUBSCRIPTION_FIELD_CONDITION_DEFINITION=hr.SCOPE_SCALAR_DEFINITION=hr.LINK_PURPOSE_DEFINITION=hr.LINK_IMPORT_DEFINITION=hr.FIELD_SET_SCALAR_DEFINITION=hr.EDFS_NATS_STREAM_CONFIGURATION_DEFINITION=void 0;var en=Se(),pn=Rr(),fn=sr(),Pse=vE();hr.EDFS_NATS_STREAM_CONFIGURATION_DEFINITION={kind:en.Kind.INPUT_OBJECT_TYPE_DEFINITION,name:(0,pn.stringToNameNode)(fn.EDFS_NATS_STREAM_CONFIGURATION),fields:[{kind:en.Kind.INPUT_VALUE_DEFINITION,name:(0,pn.stringToNameNode)(fn.CONSUMER_INACTIVE_THRESHOLD),type:{kind:en.Kind.NON_NULL_TYPE,type:(0,pn.stringToNamedTypeNode)(fn.INT_SCALAR)},defaultValue:{kind:en.Kind.INT,value:Pse.DEFAULT_CONSUMER_INACTIVE_THRESHOLD.toString()}},{kind:en.Kind.INPUT_VALUE_DEFINITION,name:(0,pn.stringToNameNode)(fn.CONSUMER_NAME),type:{kind:en.Kind.NON_NULL_TYPE,type:(0,pn.stringToNamedTypeNode)(fn.STRING_SCALAR)}},{kind:en.Kind.INPUT_VALUE_DEFINITION,name:(0,pn.stringToNameNode)(fn.STREAM_NAME),type:{kind:en.Kind.NON_NULL_TYPE,type:(0,pn.stringToNamedTypeNode)(fn.STRING_SCALAR)}}]};hr.FIELD_SET_SCALAR_DEFINITION={kind:en.Kind.SCALAR_TYPE_DEFINITION,name:(0,pn.stringToNameNode)(fn.FIELD_SET_SCALAR)};hr.LINK_IMPORT_DEFINITION={kind:en.Kind.SCALAR_TYPE_DEFINITION,name:(0,pn.stringToNameNode)(fn.LINK_IMPORT)};hr.LINK_PURPOSE_DEFINITION={kind:en.Kind.ENUM_TYPE_DEFINITION,name:(0,pn.stringToNameNode)(fn.LINK_PURPOSE),values:[{directives:[],kind:en.Kind.ENUM_VALUE_DEFINITION,name:(0,pn.stringToNameNode)(fn.EXECUTION)},{directives:[],kind:en.Kind.ENUM_VALUE_DEFINITION,name:(0,pn.stringToNameNode)(fn.SECURITY)}]};hr.SCOPE_SCALAR_DEFINITION={kind:en.Kind.SCALAR_TYPE_DEFINITION,name:(0,pn.stringToNameNode)(fn.SCOPE_SCALAR)};hr.SUBSCRIPTION_FIELD_CONDITION_DEFINITION={fields:[{kind:en.Kind.INPUT_VALUE_DEFINITION,name:(0,pn.stringToNameNode)(fn.FIELD_PATH),type:{kind:en.Kind.NON_NULL_TYPE,type:(0,pn.stringToNamedTypeNode)(fn.STRING_SCALAR)}},{kind:en.Kind.INPUT_VALUE_DEFINITION,name:(0,pn.stringToNameNode)(fn.VALUES),type:{kind:en.Kind.NON_NULL_TYPE,type:{kind:en.Kind.LIST_TYPE,type:(0,pn.stringToNamedTypeNode)(fn.SUBSCRIPTION_FILTER_VALUE)}}}],kind:en.Kind.INPUT_OBJECT_TYPE_DEFINITION,name:(0,pn.stringToNameNode)(fn.SUBSCRIPTION_FIELD_CONDITION)};hr.SUBSCRIPTION_FILTER_CONDITION_DEFINITION={fields:[{kind:en.Kind.INPUT_VALUE_DEFINITION,name:(0,pn.stringToNameNode)(fn.AND_UPPER),type:{kind:en.Kind.LIST_TYPE,type:{kind:en.Kind.NON_NULL_TYPE,type:(0,pn.stringToNamedTypeNode)(fn.SUBSCRIPTION_FILTER_CONDITION)}}},{kind:en.Kind.INPUT_VALUE_DEFINITION,name:(0,pn.stringToNameNode)(fn.IN_UPPER),type:(0,pn.stringToNamedTypeNode)(fn.SUBSCRIPTION_FIELD_CONDITION)},{kind:en.Kind.INPUT_VALUE_DEFINITION,name:(0,pn.stringToNameNode)(fn.OR_UPPER),type:{kind:en.Kind.LIST_TYPE,type:{kind:en.Kind.NON_NULL_TYPE,type:(0,pn.stringToNamedTypeNode)(fn.SUBSCRIPTION_FILTER_CONDITION)}}},{kind:en.Kind.INPUT_VALUE_DEFINITION,name:(0,pn.stringToNameNode)(fn.NOT_UPPER),type:(0,pn.stringToNamedTypeNode)(fn.SUBSCRIPTION_FILTER_CONDITION)}],kind:en.Kind.INPUT_OBJECT_TYPE_DEFINITION,name:(0,pn.stringToNameNode)(fn.SUBSCRIPTION_FILTER_CONDITION)};hr.SUBSCRIPTION_FILTER_VALUE_DEFINITION={kind:en.Kind.SCALAR_TYPE_DEFINITION,name:(0,pn.stringToNameNode)(fn.SUBSCRIPTION_FILTER_VALUE)}});var id=F(Zn=>{"use strict";m();T();N();Object.defineProperty(Zn,"__esModule",{value:!0});Zn.CLIENT_PERSISTED_DIRECTIVE_NAMES=Zn.IGNORED_FEDERATED_TYPE_NAMES=Zn.DEPENDENCIES_BY_DIRECTIVE_NAME=Zn.COMPOSITE_OUTPUT_NODE_KINDS=Zn.SUBSCRIPTION_FILTER_LIST_INPUT_NAMES=Zn.SUBSCRIPTION_FILTER_INPUT_NAMES=Zn.STREAM_CONFIGURATION_FIELD_NAMES=Zn.EVENT_DIRECTIVE_NAMES=Zn.TYPE_SYSTEM_DIRECTIVE_LOCATIONS=void 0;var tt=sr(),OE=Se(),es=SE();Zn.TYPE_SYSTEM_DIRECTIVE_LOCATIONS=new Set([tt.ARGUMENT_DEFINITION_UPPER,tt.ENUM_UPPER,tt.ENUM_VALUE_UPPER,tt.FIELD_DEFINITION_UPPER,tt.INPUT_FIELD_DEFINITION_UPPER,tt.INPUT_OBJECT_UPPER,tt.INTERFACE_UPPER,tt.OBJECT_UPPER,tt.SCALAR_UPPER,tt.SCHEMA_UPPER,tt.UNION_UPPER]);Zn.EVENT_DIRECTIVE_NAMES=new Set([tt.EDFS_KAFKA_PUBLISH,tt.EDFS_KAFKA_SUBSCRIBE,tt.EDFS_NATS_PUBLISH,tt.EDFS_NATS_REQUEST,tt.EDFS_NATS_SUBSCRIBE,tt.EDFS_REDIS_PUBLISH,tt.EDFS_REDIS_SUBSCRIBE]);Zn.STREAM_CONFIGURATION_FIELD_NAMES=new Set([tt.CONSUMER_INACTIVE_THRESHOLD,tt.CONSUMER_NAME,tt.STREAM_NAME]);Zn.SUBSCRIPTION_FILTER_INPUT_NAMES=new Set([tt.AND_UPPER,tt.IN_UPPER,tt.NOT_UPPER,tt.OR_UPPER]);Zn.SUBSCRIPTION_FILTER_LIST_INPUT_NAMES=new Set([tt.AND_UPPER,tt.OR_UPPER]);Zn.COMPOSITE_OUTPUT_NODE_KINDS=new Set([OE.Kind.INTERFACE_TYPE_DEFINITION,OE.Kind.INTERFACE_TYPE_EXTENSION,OE.Kind.OBJECT_TYPE_DEFINITION,OE.Kind.OBJECT_TYPE_EXTENSION]);Zn.DEPENDENCIES_BY_DIRECTIVE_NAME=new Map([[tt.EDFS_NATS_SUBSCRIBE,[es.EDFS_NATS_STREAM_CONFIGURATION_DEFINITION]],[tt.KEY,[es.FIELD_SET_SCALAR_DEFINITION]],[tt.LINK,[es.LINK_IMPORT_DEFINITION,es.LINK_PURPOSE_DEFINITION]],[tt.PROVIDES,[es.FIELD_SET_SCALAR_DEFINITION]],[tt.REQUIRES,[es.FIELD_SET_SCALAR_DEFINITION]],[tt.REQUIRES_SCOPES,[es.SCOPE_SCALAR_DEFINITION]],[tt.SUBSCRIPTION_FILTER,[es.SUBSCRIPTION_FIELD_CONDITION_DEFINITION,es.SUBSCRIPTION_FILTER_CONDITION_DEFINITION,es.SUBSCRIPTION_FILTER_VALUE_DEFINITION]]]);Zn.IGNORED_FEDERATED_TYPE_NAMES=new Set([tt.BOOLEAN_SCALAR,tt.EDFS_NATS_STREAM_CONFIGURATION,tt.FIELD_SET_SCALAR,tt.ID_SCALAR,tt.INT_SCALAR,tt.FLOAT_SCALAR,tt.LINK_IMPORT,tt.LINK_PURPOSE,tt.STRING_SCALAR,tt.SUBSCRIPTION_FIELD_CONDITION,tt.SUBSCRIPTION_FILTER_CONDITION,tt.SUBSCRIPTION_FILTER_VALUE]);Zn.CLIENT_PERSISTED_DIRECTIVE_NAMES=new Set([tt.DEPRECATED,tt.ONE_OF,tt.SEMANTIC_NON_NULL])});var Zi=F((hO,gM)=>{"use strict";m();T();N();var nf=function(e){return e&&e.Math===Math&&e};gM.exports=nf(typeof globalThis=="object"&&globalThis)||nf(typeof window=="object"&&window)||nf(typeof self=="object"&&self)||nf(typeof global=="object"&&global)||nf(typeof hO=="object"&&hO)||function(){return this}()||Function("return this")()});var Bs=F((ARe,_M)=>{"use strict";m();T();N();_M.exports=function(e){try{return!!e()}catch(t){return!0}}});var bu=F((wRe,vM)=>{"use strict";m();T();N();var Fse=Bs();vM.exports=!Fse(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var yO=F((URe,SM)=>{"use strict";m();T();N();var wse=Bs();SM.exports=!wse(function(){var e=function(){}.bind();return typeof e!="function"||e.hasOwnProperty("prototype")})});var Rc=F((qRe,OM)=>{"use strict";m();T();N();var Lse=yO(),DE=Function.prototype.call;OM.exports=Lse?DE.bind(DE):function(){return DE.apply(DE,arguments)}});var RM=F(AM=>{"use strict";m();T();N();var DM={}.propertyIsEnumerable,bM=Object.getOwnPropertyDescriptor,Cse=bM&&!DM.call({1:2},1);AM.f=Cse?function(t){var n=bM(this,t);return!!n&&n.enumerable}:DM});var IO=F((JRe,PM)=>{"use strict";m();T();N();PM.exports=function(e,t){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:t}}});var gi=F((XRe,LM)=>{"use strict";m();T();N();var FM=yO(),wM=Function.prototype,gO=wM.call,Bse=FM&&wM.bind.bind(gO,gO);LM.exports=FM?Bse:function(e){return function(){return gO.apply(e,arguments)}}});var UM=F((nPe,BM)=>{"use strict";m();T();N();var CM=gi(),Use=CM({}.toString),kse=CM("".slice);BM.exports=function(e){return kse(Use(e),8,-1)}});var MM=F((sPe,kM)=>{"use strict";m();T();N();var Mse=gi(),xse=Bs(),qse=UM(),_O=Object,jse=Mse("".split);kM.exports=xse(function(){return!_O("z").propertyIsEnumerable(0)})?function(e){return qse(e)==="String"?jse(e,""):_O(e)}:_O});var vO=F((lPe,xM)=>{"use strict";m();T();N();xM.exports=function(e){return e==null}});var SO=F((mPe,qM)=>{"use strict";m();T();N();var Vse=vO(),Kse=TypeError;qM.exports=function(e){if(Vse(e))throw new Kse("Can't call method on "+e);return e}});var bE=F((hPe,jM)=>{"use strict";m();T();N();var Gse=MM(),$se=SO();jM.exports=function(e){return Gse($se(e))}});var Ia=F((_Pe,VM)=>{"use strict";m();T();N();var OO=typeof document=="object"&&document.all;VM.exports=typeof OO=="undefined"&&OO!==void 0?function(e){return typeof e=="function"||e===OO}:function(e){return typeof e=="function"}});var ad=F((DPe,KM)=>{"use strict";m();T();N();var Qse=Ia();KM.exports=function(e){return typeof e=="object"?e!==null:Qse(e)}});var AE=F((PPe,GM)=>{"use strict";m();T();N();var DO=Zi(),Yse=Ia(),Jse=function(e){return Yse(e)?e:void 0};GM.exports=function(e,t){return arguments.length<2?Jse(DO[e]):DO[e]&&DO[e][t]}});var QM=F((CPe,$M)=>{"use strict";m();T();N();var Hse=gi();$M.exports=Hse({}.isPrototypeOf)});var zM=F((MPe,HM)=>{"use strict";m();T();N();var zse=Zi(),YM=zse.navigator,JM=YM&&YM.userAgent;HM.exports=JM?String(JM):""});var rx=F((VPe,nx)=>{"use strict";m();T();N();var tx=Zi(),bO=zM(),WM=tx.process,XM=tx.Deno,ZM=WM&&WM.versions||XM&&XM.version,ex=ZM&&ZM.v8,ga,RE;ex&&(ga=ex.split("."),RE=ga[0]>0&&ga[0]<4?1:+(ga[0]+ga[1]));!RE&&bO&&(ga=bO.match(/Edge\/(\d+)/),(!ga||ga[1]>=74)&&(ga=bO.match(/Chrome\/(\d+)/),ga&&(RE=+ga[1])));nx.exports=RE});var AO=F((QPe,ax)=>{"use strict";m();T();N();var ix=rx(),Wse=Bs(),Xse=Zi(),Zse=Xse.String;ax.exports=!!Object.getOwnPropertySymbols&&!Wse(function(){var e=Symbol("symbol detection");return!Zse(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&ix&&ix<41})});var RO=F((zPe,sx)=>{"use strict";m();T();N();var eoe=AO();sx.exports=eoe&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var PO=F((eFe,ox)=>{"use strict";m();T();N();var toe=AE(),noe=Ia(),roe=QM(),ioe=RO(),aoe=Object;ox.exports=ioe?function(e){return typeof e=="symbol"}:function(e){var t=toe("Symbol");return noe(t)&&roe(t.prototype,aoe(e))}});var cx=F((iFe,ux)=>{"use strict";m();T();N();var soe=String;ux.exports=function(e){try{return soe(e)}catch(t){return"Object"}}});var PE=F((uFe,lx)=>{"use strict";m();T();N();var ooe=Ia(),uoe=cx(),coe=TypeError;lx.exports=function(e){if(ooe(e))return e;throw new coe(uoe(e)+" is not a function")}});var FO=F((pFe,dx)=>{"use strict";m();T();N();var loe=PE(),doe=vO();dx.exports=function(e,t){var n=e[t];return doe(n)?void 0:loe(n)}});var fx=F((TFe,px)=>{"use strict";m();T();N();var wO=Rc(),LO=Ia(),CO=ad(),poe=TypeError;px.exports=function(e,t){var n,r;if(t==="string"&&LO(n=e.toString)&&!CO(r=wO(n,e))||LO(n=e.valueOf)&&!CO(r=wO(n,e))||t!=="string"&&LO(n=e.toString)&&!CO(r=wO(n,e)))return r;throw new poe("Can't convert object to primitive value")}});var Nx=F((IFe,mx)=>{"use strict";m();T();N();mx.exports=!1});var FE=F((SFe,Ex)=>{"use strict";m();T();N();var Tx=Zi(),foe=Object.defineProperty;Ex.exports=function(e,t){try{foe(Tx,e,{value:t,configurable:!0,writable:!0})}catch(n){Tx[e]=t}return t}});var wE=F((AFe,Ix)=>{"use strict";m();T();N();var moe=Nx(),Noe=Zi(),Toe=FE(),hx="__core-js_shared__",yx=Ix.exports=Noe[hx]||Toe(hx,{});(yx.versions||(yx.versions=[])).push({version:"3.41.0",mode:moe?"pure":"global",copyright:"\xA9 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.41.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var BO=F((wFe,_x)=>{"use strict";m();T();N();var gx=wE();_x.exports=function(e,t){return gx[e]||(gx[e]=t||{})}});var Sx=F((UFe,vx)=>{"use strict";m();T();N();var Eoe=SO(),hoe=Object;vx.exports=function(e){return hoe(Eoe(e))}});var Au=F((qFe,Ox)=>{"use strict";m();T();N();var yoe=gi(),Ioe=Sx(),goe=yoe({}.hasOwnProperty);Ox.exports=Object.hasOwn||function(t,n){return goe(Ioe(t),n)}});var UO=F((GFe,Dx)=>{"use strict";m();T();N();var _oe=gi(),voe=0,Soe=Math.random(),Ooe=_oe(1 .toString);Dx.exports=function(e){return"Symbol("+(e===void 0?"":e)+")_"+Ooe(++voe+Soe,36)}});var Rx=F((JFe,Ax)=>{"use strict";m();T();N();var Doe=Zi(),boe=BO(),bx=Au(),Aoe=UO(),Roe=AO(),Poe=RO(),sd=Doe.Symbol,kO=boe("wks"),Foe=Poe?sd.for||sd:sd&&sd.withoutSetter||Aoe;Ax.exports=function(e){return bx(kO,e)||(kO[e]=Roe&&bx(sd,e)?sd[e]:Foe("Symbol."+e)),kO[e]}});var Lx=F((XFe,wx)=>{"use strict";m();T();N();var woe=Rc(),Px=ad(),Fx=PO(),Loe=FO(),Coe=fx(),Boe=Rx(),Uoe=TypeError,koe=Boe("toPrimitive");wx.exports=function(e,t){if(!Px(e)||Fx(e))return e;var n=Loe(e,koe),r;if(n){if(t===void 0&&(t="default"),r=woe(n,e,t),!Px(r)||Fx(r))return r;throw new Uoe("Can't convert object to primitive value")}return t===void 0&&(t="number"),Coe(e,t)}});var MO=F((nwe,Cx)=>{"use strict";m();T();N();var Moe=Lx(),xoe=PO();Cx.exports=function(e){var t=Moe(e,"string");return xoe(t)?t:t+""}});var kx=F((swe,Ux)=>{"use strict";m();T();N();var qoe=Zi(),Bx=ad(),xO=qoe.document,joe=Bx(xO)&&Bx(xO.createElement);Ux.exports=function(e){return joe?xO.createElement(e):{}}});var qO=F((lwe,Mx)=>{"use strict";m();T();N();var Voe=bu(),Koe=Bs(),Goe=kx();Mx.exports=!Voe&&!Koe(function(){return Object.defineProperty(Goe("div"),"a",{get:function(){return 7}}).a!==7})});var jO=F(qx=>{"use strict";m();T();N();var $oe=bu(),Qoe=Rc(),Yoe=RM(),Joe=IO(),Hoe=bE(),zoe=MO(),Woe=Au(),Xoe=qO(),xx=Object.getOwnPropertyDescriptor;qx.f=$oe?xx:function(t,n){if(t=Hoe(t),n=zoe(n),Xoe)try{return xx(t,n)}catch(r){}if(Woe(t,n))return Joe(!Qoe(Yoe.f,t,n),t[n])}});var Vx=F((hwe,jx)=>{"use strict";m();T();N();var Zoe=bu(),eue=Bs();jx.exports=Zoe&&eue(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var rf=F((_we,Kx)=>{"use strict";m();T();N();var tue=ad(),nue=String,rue=TypeError;Kx.exports=function(e){if(tue(e))return e;throw new rue(nue(e)+" is not an object")}});var CE=F($x=>{"use strict";m();T();N();var iue=bu(),aue=qO(),sue=Vx(),LE=rf(),Gx=MO(),oue=TypeError,VO=Object.defineProperty,uue=Object.getOwnPropertyDescriptor,KO="enumerable",GO="configurable",$O="writable";$x.f=iue?sue?function(t,n,r){if(LE(t),n=Gx(n),LE(r),typeof t=="function"&&n==="prototype"&&"value"in r&&$O in r&&!r[$O]){var i=uue(t,n);i&&i[$O]&&(t[n]=r.value,r={configurable:GO in r?r[GO]:i[GO],enumerable:KO in r?r[KO]:i[KO],writable:!1})}return VO(t,n,r)}:VO:function(t,n,r){if(LE(t),n=Gx(n),LE(r),aue)try{return VO(t,n,r)}catch(i){}if("get"in r||"set"in r)throw new oue("Accessors not supported");return"value"in r&&(t[n]=r.value),t}});var QO=F((Pwe,Qx)=>{"use strict";m();T();N();var cue=bu(),lue=CE(),due=IO();Qx.exports=cue?function(e,t,n){return lue.f(e,t,due(1,n))}:function(e,t,n){return e[t]=n,e}});var Hx=F((Cwe,Jx)=>{"use strict";m();T();N();var YO=bu(),pue=Au(),Yx=Function.prototype,fue=YO&&Object.getOwnPropertyDescriptor,JO=pue(Yx,"name"),mue=JO&&function(){}.name==="something",Nue=JO&&(!YO||YO&&fue(Yx,"name").configurable);Jx.exports={EXISTS:JO,PROPER:mue,CONFIGURABLE:Nue}});var Wx=F((Mwe,zx)=>{"use strict";m();T();N();var Tue=gi(),Eue=Ia(),HO=wE(),hue=Tue(Function.toString);Eue(HO.inspectSource)||(HO.inspectSource=function(e){return hue(e)});zx.exports=HO.inspectSource});var eq=F((Vwe,Zx)=>{"use strict";m();T();N();var yue=Zi(),Iue=Ia(),Xx=yue.WeakMap;Zx.exports=Iue(Xx)&&/native code/.test(String(Xx))});var rq=F((Qwe,nq)=>{"use strict";m();T();N();var gue=BO(),_ue=UO(),tq=gue("keys");nq.exports=function(e){return tq[e]||(tq[e]=_ue(e))}});var zO=F((zwe,iq)=>{"use strict";m();T();N();iq.exports={}});var uq=F((eLe,oq)=>{"use strict";m();T();N();var vue=eq(),sq=Zi(),Sue=ad(),Oue=QO(),WO=Au(),XO=wE(),Due=rq(),bue=zO(),aq="Object already initialized",ZO=sq.TypeError,Aue=sq.WeakMap,BE,af,UE,Rue=function(e){return UE(e)?af(e):BE(e,{})},Pue=function(e){return function(t){var n;if(!Sue(t)||(n=af(t)).type!==e)throw new ZO("Incompatible receiver, "+e+" required");return n}};vue||XO.state?(_a=XO.state||(XO.state=new Aue),_a.get=_a.get,_a.has=_a.has,_a.set=_a.set,BE=function(e,t){if(_a.has(e))throw new ZO(aq);return t.facade=e,_a.set(e,t),t},af=function(e){return _a.get(e)||{}},UE=function(e){return _a.has(e)}):(Pc=Due("state"),bue[Pc]=!0,BE=function(e,t){if(WO(e,Pc))throw new ZO(aq);return t.facade=e,Oue(e,Pc,t),t},af=function(e){return WO(e,Pc)?e[Pc]:{}},UE=function(e){return WO(e,Pc)});var _a,Pc;oq.exports={set:BE,get:af,has:UE,enforce:Rue,getterFor:Pue}});var pq=F((iLe,dq)=>{"use strict";m();T();N();var tD=gi(),Fue=Bs(),wue=Ia(),kE=Au(),eD=bu(),Lue=Hx().CONFIGURABLE,Cue=Wx(),lq=uq(),Bue=lq.enforce,Uue=lq.get,cq=String,ME=Object.defineProperty,kue=tD("".slice),Mue=tD("".replace),xue=tD([].join),que=eD&&!Fue(function(){return ME(function(){},"length",{value:8}).length!==8}),jue=String(String).split("String"),Vue=dq.exports=function(e,t,n){kue(cq(t),0,7)==="Symbol("&&(t="["+Mue(cq(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!kE(e,"name")||Lue&&e.name!==t)&&(eD?ME(e,"name",{value:t,configurable:!0}):e.name=t),que&&n&&kE(n,"arity")&&e.length!==n.arity&&ME(e,"length",{value:n.arity});try{n&&kE(n,"constructor")&&n.constructor?eD&&ME(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(i){}var r=Bue(e);return kE(r,"source")||(r.source=xue(jue,typeof t=="string"?t:"")),e};Function.prototype.toString=Vue(function(){return wue(this)&&Uue(this).source||Cue(this)},"toString")});var mq=F((uLe,fq)=>{"use strict";m();T();N();var Kue=Ia(),Gue=CE(),$ue=pq(),Que=FE();fq.exports=function(e,t,n,r){r||(r={});var i=r.enumerable,a=r.name!==void 0?r.name:t;if(Kue(n)&&$ue(n,a,r),r.global)i?e[t]=n:Que(t,n);else{try{r.unsafe?e[t]&&(i=!0):delete e[t]}catch(o){}i?e[t]=n:Gue.f(e,t,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return e}});var Tq=F((pLe,Nq)=>{"use strict";m();T();N();var Yue=Math.ceil,Jue=Math.floor;Nq.exports=Math.trunc||function(t){var n=+t;return(n>0?Jue:Yue)(n)}});var xE=F((TLe,Eq)=>{"use strict";m();T();N();var Hue=Tq();Eq.exports=function(e){var t=+e;return t!==t||t===0?0:Hue(t)}});var yq=F((ILe,hq)=>{"use strict";m();T();N();var zue=xE(),Wue=Math.max,Xue=Math.min;hq.exports=function(e,t){var n=zue(e);return n<0?Wue(n+t,0):Xue(n,t)}});var gq=F((SLe,Iq)=>{"use strict";m();T();N();var Zue=xE(),ece=Math.min;Iq.exports=function(e){var t=Zue(e);return t>0?ece(t,9007199254740991):0}});var vq=F((ALe,_q)=>{"use strict";m();T();N();var tce=gq();_q.exports=function(e){return tce(e.length)}});var Dq=F((wLe,Oq)=>{"use strict";m();T();N();var nce=bE(),rce=yq(),ice=vq(),Sq=function(e){return function(t,n,r){var i=nce(t),a=ice(i);if(a===0)return!e&&-1;var o=rce(r,a),c;if(e&&n!==n){for(;a>o;)if(c=i[o++],c!==c)return!0}else for(;a>o;o++)if((e||o in i)&&i[o]===n)return e||o||0;return!e&&-1}};Oq.exports={includes:Sq(!0),indexOf:Sq(!1)}});var Rq=F((ULe,Aq)=>{"use strict";m();T();N();var ace=gi(),nD=Au(),sce=bE(),oce=Dq().indexOf,uce=zO(),bq=ace([].push);Aq.exports=function(e,t){var n=sce(e),r=0,i=[],a;for(a in n)!nD(uce,a)&&nD(n,a)&&bq(i,a);for(;t.length>r;)nD(n,a=t[r++])&&(~oce(i,a)||bq(i,a));return i}});var Fq=F((qLe,Pq)=>{"use strict";m();T();N();Pq.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Lq=F(wq=>{"use strict";m();T();N();var cce=Rq(),lce=Fq(),dce=lce.concat("length","prototype");wq.f=Object.getOwnPropertyNames||function(t){return cce(t,dce)}});var Bq=F(Cq=>{"use strict";m();T();N();Cq.f=Object.getOwnPropertySymbols});var kq=F((XLe,Uq)=>{"use strict";m();T();N();var pce=AE(),fce=gi(),mce=Lq(),Nce=Bq(),Tce=rf(),Ece=fce([].concat);Uq.exports=pce("Reflect","ownKeys")||function(t){var n=mce.f(Tce(t)),r=Nce.f;return r?Ece(n,r(t)):n}});var qq=F((nCe,xq)=>{"use strict";m();T();N();var Mq=Au(),hce=kq(),yce=jO(),Ice=CE();xq.exports=function(e,t,n){for(var r=hce(t),i=Ice.f,a=yce.f,o=0;o{"use strict";m();T();N();var gce=Bs(),_ce=Ia(),vce=/#|\.prototype\./,sf=function(e,t){var n=Oce[Sce(e)];return n===bce?!0:n===Dce?!1:_ce(t)?gce(t):!!t},Sce=sf.normalize=function(e){return String(e).replace(vce,".").toLowerCase()},Oce=sf.data={},Dce=sf.NATIVE="N",bce=sf.POLYFILL="P";jq.exports=sf});var rD=F((lCe,Kq)=>{"use strict";m();T();N();var qE=Zi(),Ace=jO().f,Rce=QO(),Pce=mq(),Fce=FE(),wce=qq(),Lce=Vq();Kq.exports=function(e,t){var n=e.target,r=e.global,i=e.stat,a,o,c,l,d,f;if(r?o=qE:i?o=qE[n]||Fce(n,{}):o=qE[n]&&qE[n].prototype,o)for(c in t){if(d=t[c],e.dontCallGetSet?(f=Ace(o,c),l=f&&f.value):l=o[c],a=Lce(r?c:n+(i?".":"#")+c,e.forced),!a&&l!==void 0){if(typeof d==typeof l)continue;wce(d,l)}(e.sham||l&&l.sham)&&Rce(d,"sham",!0),Pce(o,c,d,e)}}});var of=F((mCe,Gq)=>{"use strict";m();T();N();var iD=gi(),jE=Set.prototype;Gq.exports={Set,add:iD(jE.add),has:iD(jE.has),remove:iD(jE.delete),proto:jE}});var aD=F((hCe,$q)=>{"use strict";m();T();N();var Cce=of().has;$q.exports=function(e){return Cce(e),e}});var Yq=F((_Ce,Qq)=>{"use strict";m();T();N();var Bce=gi(),Uce=PE();Qq.exports=function(e,t,n){try{return Bce(Uce(Object.getOwnPropertyDescriptor(e,t)[n]))}catch(r){}}});var sD=F((DCe,Jq)=>{"use strict";m();T();N();var kce=Yq(),Mce=of();Jq.exports=kce(Mce.proto,"size","get")||function(e){return e.size}});var oD=F((PCe,Hq)=>{"use strict";m();T();N();var xce=Rc();Hq.exports=function(e,t,n){for(var r=n?e:e.iterator,i=e.next,a,o;!(a=xce(i,r)).done;)if(o=t(a.value),o!==void 0)return o}});var t1=F((CCe,e1)=>{"use strict";m();T();N();var zq=gi(),qce=oD(),Wq=of(),jce=Wq.Set,Xq=Wq.proto,Vce=zq(Xq.forEach),Zq=zq(Xq.keys),Kce=Zq(new jce).next;e1.exports=function(e,t,n){return n?qce({iterator:Zq(e),next:Kce},t):Vce(e,t)}});var r1=F((MCe,n1)=>{"use strict";m();T();N();n1.exports=function(e){return{iterator:e,next:e.next,done:!1}}});var uD=F((VCe,c1)=>{"use strict";m();T();N();var i1=PE(),o1=rf(),a1=Rc(),Gce=xE(),$ce=r1(),s1="Invalid size",Qce=RangeError,Yce=TypeError,Jce=Math.max,u1=function(e,t){this.set=e,this.size=Jce(t,0),this.has=i1(e.has),this.keys=i1(e.keys)};u1.prototype={getIterator:function(){return $ce(o1(a1(this.keys,this.set)))},includes:function(e){return a1(this.has,this.set,e)}};c1.exports=function(e){o1(e);var t=+e.size;if(t!==t)throw new Yce(s1);var n=Gce(t);if(n<0)throw new Qce(s1);return new u1(e,n)}});var d1=F((QCe,l1)=>{"use strict";m();T();N();var Hce=aD(),zce=sD(),Wce=t1(),Xce=uD();l1.exports=function(t){var n=Hce(this),r=Xce(t);return zce(n)>r.size?!1:Wce(n,function(i){if(!r.includes(i))return!1},!0)!==!1}});var cD=F((zCe,m1)=>{"use strict";m();T();N();var Zce=AE(),p1=function(e){return{size:e,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}},f1=function(e){return{size:e,has:function(){return!0},keys:function(){throw new Error("e")}}};m1.exports=function(e,t){var n=Zce("Set");try{new n()[e](p1(0));try{return new n()[e](p1(-1)),!1}catch(i){if(!t)return!0;try{return new n()[e](f1(-1/0)),!1}catch(a){var r=new n;return r.add(1),r.add(2),t(r[e](f1(1/0)))}}}catch(i){return!1}}});var N1=F(()=>{"use strict";m();T();N();var ele=rD(),tle=d1(),nle=cD(),rle=!nle("isSubsetOf",function(e){return e});ele({target:"Set",proto:!0,real:!0,forced:rle},{isSubsetOf:tle})});var T1=F(()=>{"use strict";m();T();N();N1()});var y1=F((lBe,h1)=>{"use strict";m();T();N();var ile=Rc(),E1=rf(),ale=FO();h1.exports=function(e,t,n){var r,i;E1(e);try{if(r=ale(e,"return"),!r){if(t==="throw")throw n;return n}r=ile(r,e)}catch(a){i=!0,r=a}if(t==="throw")throw n;if(i)throw r;return E1(r),n}});var g1=F((mBe,I1)=>{"use strict";m();T();N();var sle=aD(),ole=of().has,ule=sD(),cle=uD(),lle=oD(),dle=y1();I1.exports=function(t){var n=sle(this),r=cle(t);if(ule(n){"use strict";m();T();N();var ple=rD(),fle=g1(),mle=cD(),Nle=!mle("isSupersetOf",function(e){return!e});ple({target:"Set",proto:!0,real:!0,forced:Nle},{isSupersetOf:fle})});var v1=F(()=>{"use strict";m();T();N();_1()});var uf=F(Rn=>{"use strict";m();T();N();Object.defineProperty(Rn,"__esModule",{value:!0});Rn.subtractSet=Ele;Rn.mapToArrayOfValues=hle;Rn.kindToConvertedTypeString=yle;Rn.fieldDatasToSimpleFieldDatas=Ile;Rn.isNodeLeaf=gle;Rn.newEntityInterfaceFederationData=_le;Rn.upsertEntityInterfaceFederationData=vle;Rn.upsertEntityData=Ole;Rn.updateEntityData=S1;Rn.newFieldAuthorizationData=Dle;Rn.newAuthorizationData=ble;Rn.addScopes=lD;Rn.mergeRequiredScopesByAND=GE;Rn.mergeRequiredScopesByOR=dD;Rn.upsertFieldAuthorizationData=O1;Rn.upsertAuthorizationData=Ple;Rn.upsertAuthorizationConfiguration=Fle;Rn.isObjectNodeKind=wle;Rn.isCompositeOutputNodeKind=Lle;Rn.isObjectDefinitionData=Cle;Rn.getNodeCoords=Ble;var Kt=Se(),oi=sr(),VE=Pr(),KE=Iu();T1();v1();var Tle=id();function Ele(e,t){for(let n of e)t.delete(n)}function hle(e){let t=[];for(let n of e.values())t.push(n);return t}function yle(e){switch(e){case Kt.Kind.BOOLEAN:return oi.BOOLEAN_SCALAR;case Kt.Kind.ENUM:case Kt.Kind.ENUM_TYPE_DEFINITION:case Kt.Kind.ENUM_TYPE_EXTENSION:return oi.ENUM;case Kt.Kind.ENUM_VALUE_DEFINITION:return oi.ENUM_VALUE;case Kt.Kind.FIELD_DEFINITION:return oi.FIELD;case Kt.Kind.FLOAT:return oi.FLOAT_SCALAR;case Kt.Kind.INPUT_OBJECT_TYPE_DEFINITION:case Kt.Kind.INPUT_OBJECT_TYPE_EXTENSION:return oi.INPUT_OBJECT;case Kt.Kind.INPUT_VALUE_DEFINITION:return oi.INPUT_VALUE;case Kt.Kind.INT:return oi.INT_SCALAR;case Kt.Kind.INTERFACE_TYPE_DEFINITION:case Kt.Kind.INTERFACE_TYPE_EXTENSION:return oi.INTERFACE;case Kt.Kind.NULL:return oi.NULL;case Kt.Kind.OBJECT:case Kt.Kind.OBJECT_TYPE_DEFINITION:case Kt.Kind.OBJECT_TYPE_EXTENSION:return oi.OBJECT;case Kt.Kind.STRING:return oi.STRING_SCALAR;case Kt.Kind.SCALAR_TYPE_DEFINITION:case Kt.Kind.SCALAR_TYPE_EXTENSION:return oi.SCALAR;case Kt.Kind.UNION_TYPE_DEFINITION:case Kt.Kind.UNION_TYPE_EXTENSION:return oi.UNION;default:return e}}function Ile(e){let t=[];for(let{name:n,namedTypeName:r}of e)t.push({name:n,namedTypeName:r});return t}function gle(e){if(!e)return!0;switch(e){case Kt.Kind.OBJECT_TYPE_DEFINITION:case Kt.Kind.INTERFACE_TYPE_DEFINITION:case Kt.Kind.UNION_TYPE_DEFINITION:return!1;default:return!0}}function _le(e,t){return{concreteTypeNames:new Set(e.concreteTypeNames),fieldDatasBySubgraphName:new Map([[t,e.fieldDatas]]),interfaceFieldNames:new Set(e.interfaceFieldNames),interfaceObjectFieldNames:new Set(e.interfaceObjectFieldNames),interfaceObjectSubgraphNames:new Set(e.isInterfaceObject?[t]:[]),subgraphDataByTypeName:new Map([[t,e]]),typeName:e.typeName}}function vle(e,t,n){(0,VE.addIterableToSet)({source:t.concreteTypeNames,target:e.concreteTypeNames}),e.subgraphDataByTypeName.set(n,t),e.fieldDatasBySubgraphName.set(n,t.fieldDatas),(0,VE.addIterableToSet)({source:t.interfaceFieldNames,target:e.interfaceFieldNames}),(0,VE.addIterableToSet)({source:t.interfaceObjectFieldNames,target:e.interfaceObjectFieldNames}),t.isInterfaceObject&&e.interfaceObjectSubgraphNames.add(n)}function Sle({keyFieldSetDataByFieldSet:e,subgraphName:t,typeName:n}){let r=new Map([[t,e]]),i=new Map;for(let[a,{documentNode:o,isUnresolvable:c}]of e)c||i.set(a,o);return{keyFieldSetDatasBySubgraphName:r,documentNodeByKeyFieldSet:i,keyFieldSets:new Set,subgraphNames:new Set([t]),typeName:n}}function Ole({entityDataByTypeName:e,keyFieldSetDataByFieldSet:t,subgraphName:n,typeName:r}){let i=e.get(r);i?S1({entityData:i,keyFieldSetDataByFieldSet:t,subgraphName:n}):e.set(r,Sle({keyFieldSetDataByFieldSet:t,subgraphName:n,typeName:r}))}function S1({entityData:e,keyFieldSetDataByFieldSet:t,subgraphName:n}){e.subgraphNames.add(n);let r=e.keyFieldSetDatasBySubgraphName.get(n);if(!r){e.keyFieldSetDatasBySubgraphName.set(n,t);for(let[i,{documentNode:a,isUnresolvable:o}]of t)o||e.documentNodeByKeyFieldSet.set(i,a);return}for(let[i,a]of t){a.isUnresolvable||e.documentNodeByKeyFieldSet.set(i,a.documentNode);let o=r.get(i);if(o){o.isUnresolvable||(o.isUnresolvable=a.isUnresolvable);continue}r.set(i,a)}}function Dle(e){return{fieldName:e,inheritedData:{requiredScopes:[],requiredScopesByOR:[],requiresAuthentication:!1},originalData:{requiredScopes:[],requiresAuthentication:!1}}}function ble(e){return{fieldAuthDataByFieldName:new Map,requiredScopes:[],requiredScopesByOR:[],requiresAuthentication:!1,typeName:e}}function lD(e,t){for(let n=e.length-1;n>-1;n--){if(e[n].isSubsetOf(t))return;e[n].isSupersetOf(t)&&e.splice(n,1)}e.push(t)}function GE(e,t){if(e.length<1||t.length<1){for(let r of t)e.push(new Set(r));return e}let n=[];for(let r of t)for(let i of e){let a=(0,VE.addSets)(r,i);lD(n,a)}return n}function dD(e,t){for(let n of t)lD(e,n);return e.length<=KE.MAX_OR_SCOPES}function O1(e,t){var i,a;let n=t.fieldName,r=e.get(n);return r?((i=r.inheritedData).requiresAuthentication||(i.requiresAuthentication=t.inheritedData.requiresAuthentication),(a=r.originalData).requiresAuthentication||(a.requiresAuthentication=t.originalData.requiresAuthentication),!dD(r.inheritedData.requiredScopesByOR,t.inheritedData.requiredScopes)||r.inheritedData.requiredScopes.length*t.inheritedData.requiredScopes.length>KE.MAX_OR_SCOPES||r.originalData.requiredScopes.length*t.originalData.requiredScopes.length>KE.MAX_OR_SCOPES?!1:(r.inheritedData.requiredScopes=GE(r.inheritedData.requiredScopes,t.inheritedData.requiredScopes),r.originalData.requiredScopes=GE(r.originalData.requiredScopes,t.originalData.requiredScopes),!0)):(e.set(n,D1(t)),!0)}function Ale(e){let t=new Map;for(let[n,r]of e)t.set(n,D1(r));return t}function D1(e){return{fieldName:e.fieldName,inheritedData:{requiredScopes:[...e.inheritedData.requiredScopes],requiredScopesByOR:[...e.inheritedData.requiredScopes],requiresAuthentication:e.inheritedData.requiresAuthentication},originalData:{requiredScopes:[...e.originalData.requiredScopes],requiresAuthentication:e.originalData.requiresAuthentication}}}function Rle(e){return{fieldAuthDataByFieldName:Ale(e.fieldAuthDataByFieldName),requiredScopes:[...e.requiredScopes],requiredScopesByOR:[...e.requiredScopes],requiresAuthentication:e.requiresAuthentication,typeName:e.typeName}}function Ple(e,t,n){let r=e.get(t.typeName);if(!r){e.set(t.typeName,Rle(t));return}r.requiresAuthentication||(r.requiresAuthentication=t.requiresAuthentication),!dD(r.requiredScopesByOR,t.requiredScopes)||r.requiredScopes.length*t.requiredScopes.length>KE.MAX_OR_SCOPES?n.add(t.typeName):r.requiredScopes=GE(r.requiredScopes,t.requiredScopes);for(let[i,a]of t.fieldAuthDataByFieldName)O1(r.fieldAuthDataByFieldName,a)||n.add(`${t.typeName}.${i}`)}function Fle(e,t){let n=t.typeName;for(let[r,i]of t.fieldAuthDataByFieldName){let a=`${n}.${r}`,o=e.get(a);o?(o.requiresAuthentication=i.inheritedData.requiresAuthentication,o.requiredScopes=i.inheritedData.requiredScopes.map(c=>[...c]),o.requiredScopesByOR=i.inheritedData.requiredScopesByOR.map(c=>[...c])):e.set(a,{argumentNames:[],typeName:n,fieldName:r,requiresAuthentication:i.inheritedData.requiresAuthentication,requiredScopes:i.inheritedData.requiredScopes.map(c=>[...c]),requiredScopesByOR:i.inheritedData.requiredScopesByOR.map(c=>[...c])})}}function wle(e){return e===Kt.Kind.OBJECT_TYPE_DEFINITION||e===Kt.Kind.OBJECT_TYPE_EXTENSION}function Lle(e){return Tle.COMPOSITE_OUTPUT_NODE_KINDS.has(e)}function Cle(e){return e?e.kind===Kt.Kind.OBJECT_TYPE_DEFINITION:!1}function Ble(e){switch(e.kind){case Kt.Kind.ARGUMENT:case Kt.Kind.FIELD_DEFINITION:case Kt.Kind.INPUT_VALUE_DEFINITION:case Kt.Kind.ENUM_VALUE_DEFINITION:return e.federatedCoords;default:return e.name}}});var pD=F($e=>{"use strict";m();T();N();Object.defineProperty($e,"__esModule",{value:!0});$e.TAG_DEFINITION_DATA=$e.SUBSCRIPTION_FILTER_DEFINITION_DATA=$e.SHAREABLE_DEFINITION_DATA=$e.SPECIFIED_BY_DEFINITION_DATA=$e.SEMANTIC_NON_NULL_DATA=$e.REQUIRES_SCOPES_DEFINITION_DATA=$e.REQUIRE_FETCH_REASONS_DEFINITION_DATA=$e.REDIS_SUBSCRIBE_DEFINITION_DATA=$e.REDIS_PUBLISH_DEFINITION_DATA=$e.REQUIRES_DEFINITION_DATA=$e.PROVIDES_DEFINITION_DATA=$e.LINK_DEFINITION_DATA=$e.KEY_DEFINITION_DATA=$e.OVERRIDE_DEFINITION_DATA=$e.ONE_OF_DEFINITION_DATA=$e.NATS_SUBSCRIBE_DEFINITION_DATA=$e.NATS_REQUEST_DEFINITION_DATA=$e.NATS_PUBLISH_DEFINITION_DATA=$e.KAFKA_SUBSCRIBE_DEFINITION_DATA=$e.KAFKA_PUBLISH_DEFINITION_DATA=$e.INTERFACE_OBJECT_DEFINITION_DATA=$e.INACCESSIBLE_DEFINITION_DATA=$e.EXTERNAL_DEFINITION_DATA=$e.EXTENDS_DEFINITION_DATA=$e.DEPRECATED_DEFINITION_DATA=$e.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION_DATA=$e.CONFIGURE_DESCRIPTION_DEFINITION_DATA=$e.COMPOSE_DIRECTIVE_DEFINITION_DATA=$e.AUTHENTICATED_DEFINITION_DATA=void 0;var ea=Rr(),Gt=Se(),x=sr(),on=kp(),xn=nT();$e.AUTHENTICATED_DEFINITION_DATA={argumentTypeNodeByName:new Map([]),isRepeatable:!1,locations:new Set([x.ENUM_UPPER,x.FIELD_DEFINITION_UPPER,x.INTERFACE_UPPER,x.OBJECT_UPPER,x.SCALAR_UPPER]),name:x.AUTHENTICATED,node:on.AUTHENTICATED_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.COMPOSE_DIRECTIVE_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.NAME,{name:x.NAME,typeNode:xn.REQUIRED_STRING_TYPE_NODE}]]),isRepeatable:!0,locations:new Set([x.SCHEMA_UPPER]),name:x.COMPOSE_DIRECTIVE,node:on.COMPOSE_DIRECTIVE_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([x.NAME])};$e.CONFIGURE_DESCRIPTION_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.PROPAGATE,{name:x.PROPAGATE,typeNode:{kind:Gt.Kind.NON_NULL_TYPE,type:(0,ea.stringToNamedTypeNode)(x.BOOLEAN_SCALAR)},defaultValue:{kind:Gt.Kind.BOOLEAN,value:!0}}],[x.DESCRIPTION_OVERRIDE,{name:x.DESCRIPTION_OVERRIDE,typeNode:(0,ea.stringToNamedTypeNode)(x.STRING_SCALAR)}]]),isRepeatable:!1,locations:new Set([x.ARGUMENT_DEFINITION_UPPER,x.ENUM_UPPER,x.ENUM_VALUE_UPPER,x.FIELD_DEFINITION_UPPER,x.INTERFACE_UPPER,x.INPUT_OBJECT_UPPER,x.INPUT_FIELD_DEFINITION_UPPER,x.OBJECT_UPPER,x.SCALAR_UPPER,x.SCHEMA_UPPER,x.UNION_UPPER]),name:x.CONFIGURE_DESCRIPTION,node:on.CONFIGURE_DESCRIPTION_DEFINITION,optionalArgumentNames:new Set([x.PROPAGATE,x.DESCRIPTION_OVERRIDE]),requiredArgumentNames:new Set};$e.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.PROPAGATE,{name:x.PROPAGATE,typeNode:{kind:Gt.Kind.NON_NULL_TYPE,type:(0,ea.stringToNamedTypeNode)(x.BOOLEAN_SCALAR)},defaultValue:{kind:Gt.Kind.BOOLEAN,value:!0}}]]),isRepeatable:!1,locations:new Set([x.ENUM_UPPER,x.INPUT_OBJECT_UPPER,x.INTERFACE_UPPER,x.OBJECT_UPPER]),name:x.CONFIGURE_CHILD_DESCRIPTIONS,node:on.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION,optionalArgumentNames:new Set([x.PROPAGATE]),requiredArgumentNames:new Set};$e.DEPRECATED_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.REASON,{name:x.REASON,typeNode:(0,ea.stringToNamedTypeNode)(x.STRING_SCALAR),defaultValue:{kind:Gt.Kind.STRING,value:Gt.DEFAULT_DEPRECATION_REASON}}]]),isRepeatable:!1,locations:new Set([x.ARGUMENT_DEFINITION_UPPER,x.ENUM_VALUE_UPPER,x.FIELD_DEFINITION_UPPER,x.INPUT_FIELD_DEFINITION_UPPER]),name:x.DEPRECATED,node:on.DEPRECATED_DEFINITION,optionalArgumentNames:new Set([x.REASON]),requiredArgumentNames:new Set};$e.EXTENDS_DEFINITION_DATA={argumentTypeNodeByName:new Map,isRepeatable:!1,locations:new Set([x.INTERFACE_UPPER,x.OBJECT_UPPER]),name:x.EXTENDS,node:on.EXTENDS_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.EXTERNAL_DEFINITION_DATA={argumentTypeNodeByName:new Map,isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER,x.OBJECT_UPPER]),name:x.EXTERNAL,node:on.EXTERNAL_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.INACCESSIBLE_DEFINITION_DATA={argumentTypeNodeByName:new Map,isRepeatable:!1,locations:new Set([x.ARGUMENT_DEFINITION_UPPER,x.ENUM_UPPER,x.ENUM_VALUE_UPPER,x.FIELD_DEFINITION_UPPER,x.INPUT_FIELD_DEFINITION_UPPER,x.INPUT_OBJECT_UPPER,x.INTERFACE_UPPER,x.OBJECT_UPPER,x.SCALAR_UPPER,x.UNION_UPPER]),name:x.INACCESSIBLE,node:on.INACCESSIBLE_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.INTERFACE_OBJECT_DEFINITION_DATA={argumentTypeNodeByName:new Map,isRepeatable:!1,locations:new Set([x.OBJECT_UPPER]),name:x.INTERFACE_OBJECT,node:on.INTERFACE_OBJECT_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.KAFKA_PUBLISH_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.TOPIC,{name:x.TOPIC,typeNode:xn.REQUIRED_STRING_TYPE_NODE}],[x.PROVIDER_ID,{name:x.PROVIDER_ID,typeNode:xn.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:Gt.Kind.STRING,value:x.DEFAULT_EDFS_PROVIDER_ID}}]]),isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER]),name:x.EDFS_KAFKA_PUBLISH,node:on.EDFS_KAFKA_PUBLISH_DEFINITION,optionalArgumentNames:new Set([x.PROVIDER_ID]),requiredArgumentNames:new Set([x.TOPIC])};$e.KAFKA_SUBSCRIBE_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.TOPICS,{name:x.TOPICS,typeNode:{kind:Gt.Kind.NON_NULL_TYPE,type:{kind:Gt.Kind.LIST_TYPE,type:xn.REQUIRED_STRING_TYPE_NODE}}}],[x.PROVIDER_ID,{name:x.PROVIDER_ID,typeNode:xn.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:Gt.Kind.STRING,value:x.DEFAULT_EDFS_PROVIDER_ID}}]]),isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER]),name:x.EDFS_KAFKA_SUBSCRIBE,node:on.EDFS_KAFKA_SUBSCRIBE_DEFINITION,optionalArgumentNames:new Set([x.PROVIDER_ID]),requiredArgumentNames:new Set([x.TOPICS])};$e.NATS_PUBLISH_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.SUBJECT,{name:x.SUBJECT,typeNode:xn.REQUIRED_STRING_TYPE_NODE}],[x.PROVIDER_ID,{name:x.PROVIDER_ID,typeNode:xn.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:Gt.Kind.STRING,value:x.DEFAULT_EDFS_PROVIDER_ID}}]]),isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER]),name:x.EDFS_NATS_PUBLISH,node:on.EDFS_NATS_PUBLISH_DEFINITION,optionalArgumentNames:new Set([x.PROVIDER_ID]),requiredArgumentNames:new Set([x.SUBJECT])};$e.NATS_REQUEST_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.SUBJECT,{name:x.SUBJECT,typeNode:xn.REQUIRED_STRING_TYPE_NODE}],[x.PROVIDER_ID,{name:x.PROVIDER_ID,typeNode:xn.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:Gt.Kind.STRING,value:x.DEFAULT_EDFS_PROVIDER_ID}}]]),isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER]),name:x.EDFS_NATS_REQUEST,node:on.EDFS_NATS_REQUEST_DEFINITION,optionalArgumentNames:new Set([x.PROVIDER_ID]),requiredArgumentNames:new Set([x.SUBJECT])};$e.NATS_SUBSCRIBE_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.SUBJECTS,{name:x.SUBJECTS,typeNode:{kind:Gt.Kind.NON_NULL_TYPE,type:{kind:Gt.Kind.LIST_TYPE,type:xn.REQUIRED_STRING_TYPE_NODE}}}],[x.PROVIDER_ID,{name:x.PROVIDER_ID,typeNode:xn.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:Gt.Kind.STRING,value:x.DEFAULT_EDFS_PROVIDER_ID}}],[x.STREAM_CONFIGURATION,{name:x.STREAM_CONFIGURATION,typeNode:(0,ea.stringToNamedTypeNode)(x.EDFS_NATS_STREAM_CONFIGURATION)}]]),isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER]),name:x.EDFS_NATS_SUBSCRIBE,node:on.EDFS_NATS_SUBSCRIBE_DEFINITION,optionalArgumentNames:new Set([x.PROVIDER_ID,x.STREAM_CONFIGURATION]),requiredArgumentNames:new Set([x.SUBJECTS])};$e.ONE_OF_DEFINITION_DATA={argumentTypeNodeByName:new Map([]),isRepeatable:!1,locations:new Set([x.INPUT_OBJECT_UPPER]),name:x.ONE_OF,node:on.ONE_OF_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.OVERRIDE_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.FROM,{name:x.FROM,typeNode:xn.REQUIRED_STRING_TYPE_NODE}]]),isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER]),name:x.OVERRIDE,node:on.OVERRIDE_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([x.FROM])};$e.KEY_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.FIELDS,{name:x.FIELDS,typeNode:xn.REQUIRED_FIELDSET_TYPE_NODE}],[x.RESOLVABLE,{name:x.RESOLVABLE,typeNode:(0,ea.stringToNamedTypeNode)(x.BOOLEAN_SCALAR),defaultValue:{kind:Gt.Kind.BOOLEAN,value:!0}}]]),isRepeatable:!0,locations:new Set([x.INTERFACE_UPPER,x.OBJECT_UPPER]),name:x.KEY,node:on.KEY_DEFINITION,optionalArgumentNames:new Set([x.RESOLVABLE]),requiredArgumentNames:new Set([x.FIELDS])};$e.LINK_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.URL_LOWER,{name:x.URL_LOWER,typeNode:xn.REQUIRED_STRING_TYPE_NODE}],[x.AS,{name:x.AS,typeNode:(0,ea.stringToNamedTypeNode)(x.STRING_SCALAR)}],[x.FOR,{name:x.FOR,typeNode:(0,ea.stringToNamedTypeNode)(x.LINK_PURPOSE)}],[x.IMPORT,{name:x.IMPORT,typeNode:{kind:Gt.Kind.LIST_TYPE,type:(0,ea.stringToNamedTypeNode)(x.LINK_IMPORT)}}]]),isRepeatable:!0,locations:new Set([x.SCHEMA_UPPER]),name:x.LINK,node:on.LINK_DEFINITION,optionalArgumentNames:new Set([x.AS,x.FOR,x.IMPORT]),requiredArgumentNames:new Set([x.URL_LOWER])};$e.PROVIDES_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.FIELDS,{name:x.FIELDS,typeNode:xn.REQUIRED_FIELDSET_TYPE_NODE}]]),isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER]),name:x.PROVIDES,node:on.PROVIDES_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([x.FIELDS])};$e.REQUIRES_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.FIELDS,{name:x.FIELDS,typeNode:xn.REQUIRED_FIELDSET_TYPE_NODE}]]),isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER]),name:x.REQUIRES,node:on.REQUIRES_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([x.FIELDS])};$e.REDIS_PUBLISH_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.CHANNEL,{name:x.CHANNEL,typeNode:xn.REQUIRED_STRING_TYPE_NODE}],[x.PROVIDER_ID,{name:x.PROVIDER_ID,typeNode:xn.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:Gt.Kind.STRING,value:x.DEFAULT_EDFS_PROVIDER_ID}}]]),isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER]),name:x.EDFS_REDIS_PUBLISH,node:on.EDFS_REDIS_PUBLISH_DEFINITION,optionalArgumentNames:new Set([x.PROVIDER_ID]),requiredArgumentNames:new Set([x.CHANNEL])};$e.REDIS_SUBSCRIBE_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.CHANNELS,{name:x.CHANNELS,typeNode:{kind:Gt.Kind.NON_NULL_TYPE,type:{kind:Gt.Kind.LIST_TYPE,type:xn.REQUIRED_STRING_TYPE_NODE}}}],[x.PROVIDER_ID,{name:x.PROVIDER_ID,typeNode:xn.REQUIRED_STRING_TYPE_NODE,defaultValue:{kind:Gt.Kind.STRING,value:x.DEFAULT_EDFS_PROVIDER_ID}}]]),isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER]),name:x.EDFS_REDIS_SUBSCRIBE,node:on.EDFS_REDIS_SUBSCRIBE_DEFINITION,optionalArgumentNames:new Set([x.PROVIDER_ID]),requiredArgumentNames:new Set([x.CHANNELS])};$e.REQUIRE_FETCH_REASONS_DEFINITION_DATA={argumentTypeNodeByName:new Map,isRepeatable:!0,locations:new Set([x.FIELD_DEFINITION_UPPER,x.INTERFACE_UPPER,x.OBJECT_UPPER]),name:x.REQUIRE_FETCH_REASONS,node:on.REQUIRE_FETCH_REASONS_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.REQUIRES_SCOPES_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.SCOPES,{name:x.SCOPES,typeNode:{kind:Gt.Kind.NON_NULL_TYPE,type:{kind:Gt.Kind.LIST_TYPE,type:{kind:Gt.Kind.NON_NULL_TYPE,type:{kind:Gt.Kind.LIST_TYPE,type:{kind:Gt.Kind.NON_NULL_TYPE,type:(0,ea.stringToNamedTypeNode)(x.SCOPE_SCALAR)}}}}}}]]),isRepeatable:!1,locations:new Set([x.ENUM_UPPER,x.FIELD_DEFINITION_UPPER,x.INTERFACE_UPPER,x.OBJECT_UPPER,x.SCALAR_UPPER]),name:x.REQUIRES_SCOPES,node:on.REQUIRES_SCOPES_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([x.SCOPES])};$e.SEMANTIC_NON_NULL_DATA={argumentTypeNodeByName:new Map([[x.LEVELS,{name:x.LEVELS,typeNode:{kind:Gt.Kind.NON_NULL_TYPE,type:{kind:Gt.Kind.LIST_TYPE,type:{kind:Gt.Kind.NON_NULL_TYPE,type:(0,ea.stringToNamedTypeNode)(x.INT_SCALAR)}}},defaultValue:{kind:Gt.Kind.LIST,values:[{kind:Gt.Kind.INT,value:"0"}]}}]]),isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER]),name:x.SEMANTIC_NON_NULL,node:on.SEMANTIC_NON_NULL_DEFINITION,optionalArgumentNames:new Set([x.LEVELS]),requiredArgumentNames:new Set};$e.SPECIFIED_BY_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.URL_LOWER,{name:x.URL_LOWER,typeNode:xn.REQUIRED_STRING_TYPE_NODE}]]),isRepeatable:!1,locations:new Set([x.SCALAR_UPPER]),name:x.SPECIFIED_BY,node:on.SPECIFIED_BY_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([x.URL_LOWER])};$e.SHAREABLE_DEFINITION_DATA={argumentTypeNodeByName:new Map,isRepeatable:!0,locations:new Set([x.FIELD_DEFINITION_UPPER,x.OBJECT_UPPER]),name:x.SHAREABLE,node:on.SHAREABLE_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set};$e.SUBSCRIPTION_FILTER_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.CONDITION,{name:x.CONDITION,typeNode:{kind:Gt.Kind.NON_NULL_TYPE,type:(0,ea.stringToNamedTypeNode)(x.SUBSCRIPTION_FILTER_CONDITION)}}]]),isRepeatable:!1,locations:new Set([x.FIELD_DEFINITION_UPPER]),name:x.SUBSCRIPTION_FILTER,node:on.SUBSCRIPTION_FILTER_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([x.CONDITION])};$e.TAG_DEFINITION_DATA={argumentTypeNodeByName:new Map([[x.NAME,{name:x.NAME,typeNode:xn.REQUIRED_STRING_TYPE_NODE}]]),isRepeatable:!0,locations:new Set([x.ARGUMENT_DEFINITION_UPPER,x.ENUM_UPPER,x.ENUM_VALUE_UPPER,x.FIELD_DEFINITION_UPPER,x.INPUT_FIELD_DEFINITION_UPPER,x.INPUT_OBJECT_UPPER,x.INTERFACE_UPPER,x.OBJECT_UPPER,x.SCALAR_UPPER,x.UNION_UPPER]),name:x.TAG,node:on.TAG_DEFINITION,optionalArgumentNames:new Set,requiredArgumentNames:new Set([x.NAME])}});var cf=F(va=>{"use strict";m();T();N();Object.defineProperty(va,"__esModule",{value:!0});va.newFieldSetData=Ule;va.extractFieldSetValue=kle;va.getNormalizedFieldSet=Mle;va.getInitialFieldCoordsPath=xle;va.validateKeyFieldSets=qle;va.getConditionalFieldSetDirectiveName=jle;va.isNodeQuery=Vle;va.validateArgumentTemplateReferences=Kle;va.initializeDirectiveDefinitionDatas=Gle;var cr=Se(),b1=Rr(),Ur=Gi(),A1=Iu(),fD=yu(),un=pD(),Pt=sr(),Ru=Pr();function Ule(){return{provides:new Map,requires:new Map}}function kle(e,t,n){if(!n||n.length>1)return;let r=n[0].arguments;if(!r||r.length!==1)return;let i=r[0];i.name.value!==Pt.FIELDS||i.value.kind!==cr.Kind.STRING||t.set(e,i.value.value)}function Mle(e){return(0,cr.print)((0,b1.lexicographicallySortDocumentNode)(e)).replaceAll(/\s+/g," ").slice(2,-2)}function xle(e,t){return e?[t]:[]}function qle(e,t,n){let r=e.entityInterfaceDataByTypeName.get(t.name),i=t.name,a=[],o=[],c=r?void 0:e.internalGraph.addEntityDataNode(t.name),l=e.internalGraph.addOrUpdateNode(t.name),d=0;for(let[f,{documentNode:y,isUnresolvable:I,rawFieldSet:v}]of n){r&&(r.resolvable||(r.resolvable=!I)),d+=1;let w=[],U=[t],V=[],Y=[],re=new Set,ne=-1,me=!0,ue="";if((0,cr.visit)(y,{Argument:{enter(Ae){return w.push((0,Ur.unexpectedArgumentErrorMessage)(v,`${U[ne].name}.${ue}`,Ae.name.value)),cr.BREAK}},Field:{enter(Ae){let Me=U[ne],nt=Me.name;if(me){let Fn=`${nt}.${ue}`,$t=Me.fieldDataByName.get(ue);if(!$t)return w.push((0,Ur.undefinedFieldInFieldSetErrorMessage)(v,Fn,ue)),cr.BREAK;let En=(0,fD.getTypeNodeNamedTypeName)($t.node.type),kr=e.parentDefinitionDataByTypeName.get(En),Mr=kr?kr.kind:cr.Kind.SCALAR_TYPE_DEFINITION;return w.push((0,Ur.invalidSelectionSetErrorMessage)(v,[Fn],En,(0,Ru.kindToNodeType)(Mr))),cr.BREAK}let X=Ae.name.value,_e=`${nt}.${X}`;ue=X;let vt=Me.fieldDataByName.get(X);if(!vt)return w.push((0,Ur.undefinedFieldInFieldSetErrorMessage)(v,nt,X)),cr.BREAK;if(vt.argumentDataByName.size)return w.push((0,Ur.argumentsInKeyFieldSetErrorMessage)(v,_e)),cr.BREAK;if(V[ne].has(X))return w.push((0,Ur.duplicateFieldInFieldSetErrorMessage)(v,_e)),cr.BREAK;(0,Ru.getValueOrDefault)((0,Ru.getValueOrDefault)(e.keyFieldSetsByEntityTypeNameByFieldCoords,_e,()=>new Map),i,()=>new Set).add(f),Y.push(X),vt.isShareableBySubgraphName.set(e.subgraphName,!0),V[ne].add(X),(0,Ru.getValueOrDefault)(e.keyFieldNamesByParentTypeName,nt,()=>new Set).add(X);let nn=(0,fD.getTypeNodeNamedTypeName)(vt.node.type);if(A1.BASE_SCALARS.has(nn)){re.add(Y.join(Pt.PERIOD)),Y.pop();return}let rn=e.parentDefinitionDataByTypeName.get(nn);if(!rn)return w.push((0,Ur.unknownTypeInFieldSetErrorMessage)(v,_e,nn)),cr.BREAK;if(rn.kind===cr.Kind.OBJECT_TYPE_DEFINITION){me=!0,U.push(rn);return}if((0,b1.isKindAbstract)(rn.kind))return w.push((0,Ur.abstractTypeInKeyFieldSetErrorMessage)(v,_e,nn,(0,Ru.kindToNodeType)(rn.kind))),cr.BREAK;re.add(Y.join(Pt.PERIOD)),Y.pop()}},InlineFragment:{enter(){return w.push(Ur.inlineFragmentInFieldSetErrorMessage),cr.BREAK}},SelectionSet:{enter(){if(!me){let Ae=U[ne],nt=`${Ae.name}.${ue}`,X=Ae.fieldDataByName.get(ue);if(!X)return w.push((0,Ur.undefinedFieldInFieldSetErrorMessage)(v,nt,ue)),cr.BREAK;let _e=(0,fD.getTypeNodeNamedTypeName)(X.node.type),vt=e.parentDefinitionDataByTypeName.get(_e),nn=vt?vt.kind:cr.Kind.SCALAR_TYPE_DEFINITION;return w.push((0,Ur.invalidSelectionSetDefinitionErrorMessage)(v,[nt],_e,(0,Ru.kindToNodeType)(nn))),cr.BREAK}if(ne+=1,me=!1,ne<0||ne>=U.length)return w.push((0,Ur.unparsableFieldSetSelectionErrorMessage)(v,ue)),cr.BREAK;V.push(new Set)},leave(){if(me){let Me=U[ne].name,nt=U[ne+1],X=`${Me}.${ue}`;w.push((0,Ur.invalidSelectionSetErrorMessage)(v,[X],nt.name,(0,Ru.kindToNodeType)(nt.kind))),me=!1}ne-=1,U.pop(),V.pop()}}}),w.length>0){e.errors.push((0,Ur.invalidDirectiveError)(Pt.KEY,i,(0,Ru.numberToOrdinal)(d),w));continue}a.push(M({fieldName:"",selectionSet:f},I?{disableEntityResolver:!0}:{})),l.satisfiedFieldSets.add(f),!I&&(c==null||c.addTargetSubgraphByFieldSet(f,e.subgraphName),o.push(re))}if(a.length>0)return a}function jle(e){return e?Pt.PROVIDES:Pt.REQUIRES}function Vle(e,t){return e===Pt.QUERY||t===cr.OperationTypeNode.QUERY}function Kle(e,t,n){let r=e.matchAll(A1.EDFS_ARGS_REGEXP),i=new Set,a=new Set;for(let o of r){if(o.length<2){a.add(o[0]);continue}t.has(o[1])||i.add(o[1])}for(let o of i)n.push((0,Ur.undefinedEventSubjectsArgumentErrorMessage)(o));for(let o of a)n.push((0,Ur.invalidEventSubjectsArgumentErrorMessage)(o))}function Gle(){return new Map([[Pt.AUTHENTICATED,un.AUTHENTICATED_DEFINITION_DATA],[Pt.COMPOSE_DIRECTIVE,un.COMPOSE_DIRECTIVE_DEFINITION_DATA],[Pt.CONFIGURE_DESCRIPTION,un.CONFIGURE_DESCRIPTION_DEFINITION_DATA],[Pt.CONFIGURE_CHILD_DESCRIPTIONS,un.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION_DATA],[Pt.DEPRECATED,un.DEPRECATED_DEFINITION_DATA],[Pt.EDFS_KAFKA_PUBLISH,un.KAFKA_PUBLISH_DEFINITION_DATA],[Pt.EDFS_KAFKA_SUBSCRIBE,un.KAFKA_SUBSCRIBE_DEFINITION_DATA],[Pt.EDFS_NATS_PUBLISH,un.NATS_PUBLISH_DEFINITION_DATA],[Pt.EDFS_NATS_REQUEST,un.NATS_REQUEST_DEFINITION_DATA],[Pt.EDFS_NATS_SUBSCRIBE,un.NATS_SUBSCRIBE_DEFINITION_DATA],[Pt.EDFS_REDIS_PUBLISH,un.REDIS_PUBLISH_DEFINITION_DATA],[Pt.EDFS_REDIS_SUBSCRIBE,un.REDIS_SUBSCRIBE_DEFINITION_DATA],[Pt.EXTENDS,un.EXTENDS_DEFINITION_DATA],[Pt.EXTERNAL,un.EXTERNAL_DEFINITION_DATA],[Pt.INACCESSIBLE,un.INACCESSIBLE_DEFINITION_DATA],[Pt.INTERFACE_OBJECT,un.INTERFACE_OBJECT_DEFINITION_DATA],[Pt.KEY,un.KEY_DEFINITION_DATA],[Pt.LINK,un.LINK_DEFINITION_DATA],[Pt.ONE_OF,un.ONE_OF_DEFINITION_DATA],[Pt.OVERRIDE,un.OVERRIDE_DEFINITION_DATA],[Pt.PROVIDES,un.PROVIDES_DEFINITION_DATA],[Pt.REQUIRE_FETCH_REASONS,un.REQUIRE_FETCH_REASONS_DEFINITION_DATA],[Pt.REQUIRES,un.REQUIRES_DEFINITION_DATA],[Pt.REQUIRES_SCOPES,un.REQUIRES_SCOPES_DEFINITION_DATA],[Pt.SEMANTIC_NON_NULL,un.SEMANTIC_NON_NULL_DATA],[Pt.SHAREABLE,un.SHAREABLE_DEFINITION_DATA],[Pt.SPECIFIED_BY,un.SPECIFIED_BY_DEFINITION_DATA],[Pt.SUBSCRIPTION_FILTER,un.SUBSCRIPTION_FILTER_DEFINITION_DATA],[Pt.TAG,un.TAG_DEFINITION_DATA]])}});var ND=F(mD=>{"use strict";m();T();N();Object.defineProperty(mD,"__esModule",{value:!0});mD.recordSubgraphName=$le;function $le(e,t,n){if(!t.has(e)){t.add(e);return}n.add(e)}});var ED=F($E=>{"use strict";m();T();N();Object.defineProperty($E,"__esModule",{value:!0});$E.Warning=void 0;var TD=class extends Error{constructor(n){super(n.message);_(this,"subgraph");this.name="Warning",this.subgraph=n.subgraph}};$E.Warning=TD});var lf=F(_i=>{"use strict";m();T();N();Object.defineProperty(_i,"__esModule",{value:!0});_i.invalidOverrideTargetSubgraphNameWarning=Qle;_i.externalInterfaceFieldsWarning=Yle;_i.nonExternalConditionalFieldWarning=Jle;_i.unimplementedInterfaceOutputTypeWarning=Hle;_i.invalidExternalFieldWarning=zle;_i.requiresDefinedOnNonEntityFieldWarning=Wle;_i.consumerInactiveThresholdInvalidValueWarning=Xle;_i.externalEntityExtensionKeyFieldWarning=Zle;_i.fieldAlreadyProvidedWarning=ede;_i.singleSubgraphInputFieldOneOfWarning=tde;_i.singleFederatedInputFieldOneOfWarning=nde;var Sa=ED(),hD=sr();function Qle(e,t,n,r){return new Sa.Warning({message:`The Object type "${t}" defines the directive "@override(from: "${e}")" on the following field`+(n.length>1?"s":"")+': "'+n.join(hD.QUOTATION_JOIN)+`". The required "from" argument of type "String!" should be provided with an existing subgraph name. However, a subgraph by the name of "${e}" does not exist. -If this subgraph has been recently deleted, remember to clean up unused "@override" directives that reference this subgraph.`,subgraph:{name:r}})}function bE(e){return`The subgraph "${e}" is currently a "version one" subgraph, but if it were updated to "version two" in its current state, composition would be unsuccessful due to the following warning that would instead propagate as an error: -`}function gle(e,t,n){return new Ta.Warning({message:bE(e)+`The Interface "${t}" is invalid because the following field definition`+(n.length>1?"s are":" is")+` declared "@external": - "`+n.join(XO.QUOTATION_JOIN)+`" -Interface fields should not be declared "@external". This is because Interface fields do not resolve directly, but the "@external" directive relates to whether a Field instance can be resolved by the subgraph in which it is defined.`,subgraph:{name:e}})}function _le(e,t,n,r,i){return new Ta.Warning({message:bE(t)+`The Field "${e}" in subgraph "${t}" defines a "@${i}" directive with the following field set: +If this subgraph has been recently deleted, remember to clean up unused "@override" directives that reference this subgraph.`,subgraph:{name:r}})}function QE(e){return`The subgraph "${e}" is currently a "version one" subgraph, but if it were updated to "version two" in its current state, composition would be unsuccessful due to the following warning that would instead propagate as an error: +`}function Yle(e,t,n){return new Sa.Warning({message:QE(e)+`The Interface "${t}" is invalid because the following field definition`+(n.length>1?"s are":" is")+` declared "@external": + "`+n.join(hD.QUOTATION_JOIN)+`" +Interface fields should not be declared "@external". This is because Interface fields do not resolve directly, but the "@external" directive relates to whether a Field instance can be resolved by the subgraph in which it is defined.`,subgraph:{name:e}})}function Jle(e,t,n,r,i){return new Sa.Warning({message:QE(t)+`The Field "${e}" in subgraph "${t}" defines a "@${i}" directive with the following field set: "${r}". However, neither the field "${n}" nor any of its field set ancestors are declared @external. -Consequently, "${n}" is already provided by subgraph "${t}" and should not form part of a "@${i}" directive field set.`,subgraph:{name:t}})}function vle(e,t){return new Ta.Warning({message:`Subgraph "${e}": The Interface "${t}" is used as an output type without at least one Object type implementation defined in the schema.`,subgraph:{name:e}})}function Sle(e,t){return new Ta.Warning({message:bE(t)+` The Object Field "${e}" is invalidly declared "@external". An Object field should only be declared "@external" if it is part of a "@key", "@provides", or "@requires" field set, or the field is necessary to satisfy an Interface implementation. In the case that none of these conditions is true, the "@external" directive should be removed.`,subgraph:{name:t}})}function Ole(e,t){return new Ta.Warning({message:` The Object Field "${e}" defines a "@requires" directive, but the Object is not an entity. Consequently, the "@requires" FieldSet cannot be satisfied because there is no entity resolver with which to provide the required Fields.`,subgraph:{name:t}})}function Dle(e,t=""){return new Ta.Warning({message:'The "consumerInactiveThreshold" argument of type "Int" should be positive and smaller than 2,147,483,648.'+ +t?` -${t}`:"",subgraph:{name:e}})}function ble(e,t,n,r){return new Ta.Warning({message:`The entity extension "${e}" defined in subgraph "${r}" defines a "@key" directive with the field set "${t}". +Consequently, "${n}" is already provided by subgraph "${t}" and should not form part of a "@${i}" directive field set.`,subgraph:{name:t}})}function Hle(e,t){return new Sa.Warning({message:`Subgraph "${e}": The Interface "${t}" is used as an output type without at least one Object type implementation defined in the schema.`,subgraph:{name:e}})}function zle(e,t){return new Sa.Warning({message:QE(t)+` The Object Field "${e}" is invalidly declared "@external". An Object field should only be declared "@external" if it is part of a "@key", "@provides", or "@requires" field set, or the field is necessary to satisfy an Interface implementation. In the case that none of these conditions is true, the "@external" directive should be removed.`,subgraph:{name:t}})}function Wle(e,t){return new Sa.Warning({message:` The Object Field "${e}" defines a "@requires" directive, but the Object is not an entity. Consequently, the "@requires" FieldSet cannot be satisfied because there is no entity resolver with which to provide the required Fields.`,subgraph:{name:t}})}function Xle(e,t=""){return new Sa.Warning({message:'The "consumerInactiveThreshold" argument of type "Int" should be positive and smaller than 2,147,483,648.'+ +t?` +${t}`:"",subgraph:{name:e}})}function Zle(e,t,n,r){return new Sa.Warning({message:`The entity extension "${e}" defined in subgraph "${r}" defines a "@key" directive with the field set "${t}". The following field coordinates that form part of that field set are declared "@external": - "`+n.join(XO.QUOTATION_JOIN)+`" -Please note fields that form part of entity extension "@key" field sets are always provided in that subgraph. Any such "@external" declarations are unnecessary relics of Federation Version 1 syntax and are effectively ignored.`,subgraph:{name:r}})}function Ale(e,t,n,r){return new Ta.Warning({message:bE(r)+`The field "${e}" is unconditionally provided by subgraph "${r}" and should not form part of any "@${t}" field set. + "`+n.join(hD.QUOTATION_JOIN)+`" +Please note fields that form part of entity extension "@key" field sets are always provided in that subgraph. Any such "@external" declarations are unnecessary relics of Federation Version 1 syntax and are effectively ignored.`,subgraph:{name:r}})}function ede(e,t,n,r){return new Sa.Warning({message:QE(r)+`The field "${e}" is unconditionally provided by subgraph "${r}" and should not form part of any "@${t}" field set. However, "${e}" forms part of the "@${t}" field set defined "${n}". -Although "${e}" is declared "@external", it is part of a "@key" directive on an extension type. Such fields are only declared "@external" for legacy syntactical reasons and are not internally considered "@external".`,subgraph:{name:r}})}function Rle({fieldName:e,subgraphName:t,typeName:n}){return new Ta.Warning({message:`The directive "@oneOf" is defined on Input Object "${n}", but only one optional Input field, "${e}", is defined. Consider removing "@oneOf" and changing "${e}" to a required type instead.`,subgraph:{name:t}})}function Ple({fieldName:e,typeName:t}){return new Ta.Warning({message:`The directive "@oneOf" is defined on Input Object "${t}", but only one optional Input field, "${e}", is propagated to the federated graph. Consider removing "@oneOf", changing "${e}" to a required type, and removing any other remaining optional Input fields instead.`,subgraph:{name:""}})}});var eD=w(RE=>{"use strict";m();T();N();Object.defineProperty(RE,"__esModule",{value:!0});RE.upsertDirectiveSchemaAndEntityDefinitions=Lle;RE.upsertParentsAndChildren=Cle;var jn=De(),gu=Mi(),gc=Ss(),AE=Hf(),Wl=Hr(),ZO=zf(),Fle=Yl(),zl=Sl(),Xf=du(),wle=Wf(),fr=vr(),pr=Sr();function Lle(e,t){(0,jn.visit)(t,{Directive:{enter(n){let r=n.name.value;if(Fle.EVENT_DIRECTIVE_NAMES.has(r)&&e.edfsDirectiveReferences.add(r),gc.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.has(r))return e.isSubgraphVersionTwo=!0,!1;if(gc.BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.has(r))return!1;switch(r){case fr.SUBSCRIPTION_FILTER:{e.directiveDefinitionByDirectiveName.set(fr.SUBSCRIPTION_FILTER,gc.SUBSCRIPTION_FILTER_DEFINITION);break}case fr.CONFIGURE_DESCRIPTION:{e.directiveDefinitionByDirectiveName.set(fr.CONFIGURE_DESCRIPTION,gc.CONFIGURE_DESCRIPTION_DEFINITION);break}case fr.CONFIGURE_CHILD_DESCRIPTIONS:{e.directiveDefinitionByDirectiveName.set(fr.CONFIGURE_CHILD_DESCRIPTIONS,gc.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION);break}}e.referencedDirectiveNames.add(r)}},DirectiveDefinition:{enter(n){return e.addDirectiveDefinitionDataByNode(n)&&e.customDirectiveDefinitions.set(n.name.value,n),!1}},InterfaceTypeDefinition:{enter(n){let r=n.name.value;if(e.internalGraph.addOrUpdateNode(r,{isAbstract:!0}),!(0,Wl.isObjectLikeNodeEntity)(n))return;let i=(0,pr.getValueOrDefault)(e.keyFieldSetDatasByTypeName,r,()=>new Map);e.extractKeyFieldSets(n,i),(0,AE.upsertEntityData)({entityDataByTypeName:e.entityDataByTypeName,keyFieldSetDataByFieldSet:i,subgraphName:e.subgraphName,typeName:r}),(0,pr.getValueOrDefault)(e.entityInterfaceDataByTypeName,r,()=>({concreteTypeNames:new Set,fieldDatas:[],interfaceFieldNames:new Set,interfaceObjectFieldNames:new Set,isInterfaceObject:!1,resolvable:!1,typeName:r}))}},InterfaceTypeExtension:{enter(n){let r=n.name.value;if(e.internalGraph.addOrUpdateNode(r,{isAbstract:!0}),!(0,Wl.isObjectLikeNodeEntity)(n))return;let i=(0,pr.getValueOrDefault)(e.keyFieldSetDatasByTypeName,r,()=>new Map);e.extractKeyFieldSets(n,i),(0,AE.upsertEntityData)({entityDataByTypeName:e.entityDataByTypeName,keyFieldSetDataByFieldSet:i,subgraphName:e.subgraphName,typeName:r}),(0,pr.getValueOrDefault)(e.entityInterfaceDataByTypeName,r,()=>({concreteTypeNames:new Set,fieldDatas:[],interfaceFieldNames:new Set,interfaceObjectFieldNames:new Set,isInterfaceObject:!1,resolvable:!1,typeName:r}))}},ObjectTypeDefinition:{enter(n){if(!(0,Wl.isObjectLikeNodeEntity)(n))return;let r=n.name.value;(0,Wl.isNodeInterfaceObject)(n)&&(e.entityInterfaceDataByTypeName.set(r,{concreteTypeNames:new Set,fieldDatas:[],interfaceObjectFieldNames:new Set,interfaceFieldNames:new Set,isInterfaceObject:!0,resolvable:!1,typeName:r}),e.internalGraph.addOrUpdateNode(r,{isAbstract:!0}));let i=(0,pr.getValueOrDefault)(e.keyFieldSetDatasByTypeName,r,()=>new Map);e.extractKeyFieldSets(n,i),(0,AE.upsertEntityData)({entityDataByTypeName:e.entityDataByTypeName,keyFieldSetDataByFieldSet:i,subgraphName:e.subgraphName,typeName:r})}},ObjectTypeExtension:{enter(n){if(!(0,Wl.isObjectLikeNodeEntity)(n))return;let r=n.name.value,i=(0,pr.getValueOrDefault)(e.keyFieldSetDatasByTypeName,r,()=>new Map);e.extractKeyFieldSets(n,i),(0,AE.upsertEntityData)({entityDataByTypeName:e.entityDataByTypeName,keyFieldSetDataByFieldSet:i,subgraphName:e.subgraphName,typeName:r})}},OperationTypeDefinition:{enter(n){let r=n.operation,i=e.schemaData.operationTypes.get(r),a=(0,Xf.getTypeNodeNamedTypeName)(n.type);if(i)return(0,gu.duplicateOperationTypeDefinitionError)(r,a,(0,Xf.getTypeNodeNamedTypeName)(i.type)),!1;let o=e.operationTypeNodeByTypeName.get(a);return o?(e.errors.push((0,gu.invalidOperationTypeDefinitionError)(o,a,r)),!1):(e.operationTypeNodeByTypeName.set(a,r),e.schemaData.operationTypes.set(r,n),!1)}},SchemaDefinition:{enter(n){e.schemaData.description=n.description,e.extractDirectives(n,e.schemaData.directivesByDirectiveName)}},SchemaExtension:{enter(n){e.extractDirectives(n,e.schemaData.directivesByDirectiveName)}}})}function Cle(e,t){let n=!1,r;(0,jn.visit)(t,{EnumTypeDefinition:{enter(i){e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertEnumDataByNode(i)},leave(){e.originalParentTypeName="",e.lastParentNodeKind=jn.Kind.NULL}},EnumTypeExtension:{enter(i){e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertEnumDataByNode(i,!0)},leave(){e.originalParentTypeName="",e.lastParentNodeKind=jn.Kind.NULL}},EnumValueDefinition:{enter(i){let a=i.name.value;e.lastChildNodeKind=i.kind;let o=(0,pr.getOrThrowError)(e.parentDefinitionDataByTypeName,e.originalParentTypeName,fr.PARENT_DEFINITION_DATA);if(o.kind!==jn.Kind.ENUM_TYPE_DEFINITION){e.errors.push((0,gu.unexpectedParentKindForChildError)(e.originalParentTypeName,"Enum or Enum extension",(0,pr.kindToNodeType)(o.kind),a,(0,pr.kindToNodeType)(i.kind)));return}if(o.enumValueDataByName.has(a)){e.errors.push((0,gu.duplicateEnumValueDefinitionError)(e.originalParentTypeName,a));return}o.enumValueDataByName.set(a,{appearances:1,configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:e.extractDirectives(i,new Map),federatedCoords:`${e.originalParentTypeName}.${a}`,kind:jn.Kind.ENUM_VALUE_DEFINITION,name:a,node:(0,Xf.getMutableEnumValueNode)(i),parentTypeName:e.originalParentTypeName,persistedDirectivesData:(0,zl.newPersistedDirectivesData)(),subgraphNames:new Set([e.subgraphName]),description:(0,Wl.formatDescription)(i.description)})},leave(){e.lastChildNodeKind=jn.Kind.NULL}},FieldDefinition:{enter(i){let a=i.name.value;if(n&&fr.IGNORED_FIELDS.has(a))return!1;e.edfsDirectiveReferences.size>0&&e.validateSubscriptionFilterDirectiveLocation(i),e.lastChildNodeKind=i.kind;let o=(0,Xf.getTypeNodeNamedTypeName)(i.type);(0,pr.getValueOrDefault)(e.fieldCoordsByNamedTypeName,o,()=>new Set).add(`${e.renamedParentTypeName||e.originalParentTypeName}.${a}`),r&&!r.isAbstract&&e.internalGraph.addEdge(r,e.internalGraph.addOrUpdateNode(o),a),gc.BASE_SCALARS.has(o)||e.referencedTypeNames.add(o);let c=(0,pr.getOrThrowError)(e.parentDefinitionDataByTypeName,e.originalParentTypeName,fr.PARENT_DEFINITION_DATA);if(!(0,zl.isParentDataCompositeOutputType)(c)){e.errors.push((0,gu.unexpectedParentKindForChildError)(e.originalParentTypeName,'"Object" or "Interface"',(0,pr.kindToNodeType)(c.kind),a,(0,pr.kindToNodeType)(i.kind)));return}if(c.fieldDataByName.has(a)){e.errors.push((0,gu.duplicateFieldDefinitionError)((0,pr.kindToNodeType)(c.kind),c.name,a));return}let l=e.extractArguments(new Map,i),d=e.extractDirectives(i,new Map),p=new Set;e.handleFieldInheritableDirectives({directivesByDirectiveName:d,fieldName:a,inheritedDirectiveNames:p,parentData:c});let y=e.addFieldDataByNode(c.fieldDataByName,i,l,d,p);n&&e.extractEventDirectivesToConfiguration(i,l);let I=y.directivesByDirectiveName.get(fr.PROVIDES),v=y.directivesByDirectiveName.get(fr.REQUIRES);if(!v&&!I)return;let F=e.entityDataByTypeName.get(e.originalParentTypeName),k=(0,pr.getValueOrDefault)(e.fieldSetDataByTypeName,e.originalParentTypeName,ZO.newFieldSetData);I&&(0,ZO.extractFieldSetValue)(a,k.provides,I),v&&(F||e.warnings.push((0,wle.requiresDefinedOnNonEntityFieldWarning)(`${e.originalParentTypeName}.${a}`,e.subgraphName)),(0,ZO.extractFieldSetValue)(a,k.requires,v))},leave(){e.lastChildNodeKind=jn.Kind.NULL}},InputObjectTypeDefinition:{enter(i){e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertInputObjectByNode(i)},leave(){e.lastParentNodeKind=jn.Kind.NULL,e.originalParentTypeName=""}},InputObjectTypeExtension:{enter(i){e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertInputObjectByNode(i,!0)},leave(){e.originalParentTypeName="",e.lastParentNodeKind=jn.Kind.NULL}},InputValueDefinition:{enter(i){let a=i.name.value;if(e.lastParentNodeKind!==jn.Kind.INPUT_OBJECT_TYPE_DEFINITION&&e.lastParentNodeKind!==jn.Kind.INPUT_OBJECT_TYPE_EXTENSION){e.argumentName=a;return}e.lastChildNodeKind=i.kind;let o=(0,Xf.getTypeNodeNamedTypeName)(i.type);gc.BASE_SCALARS.has(o)||e.referencedTypeNames.add(o);let c=(0,pr.getOrThrowError)(e.parentDefinitionDataByTypeName,e.originalParentTypeName,fr.PARENT_DEFINITION_DATA);if(c.kind!==jn.Kind.INPUT_OBJECT_TYPE_DEFINITION)return e.errors.push((0,gu.unexpectedParentKindForChildError)(e.originalParentTypeName,"input object or input object extension",(0,pr.kindToNodeType)(c.kind),a,(0,pr.kindToNodeType)(i.kind))),!1;if(c.inputValueDataByName.has(a)){e.errors.push((0,gu.duplicateInputFieldDefinitionError)(e.originalParentTypeName,a));return}e.addInputValueDataByNode({inputValueDataByName:c.inputValueDataByName,isArgument:!1,node:i,originalParentTypeName:e.originalParentTypeName})},leave(){e.argumentName="",e.lastChildNodeKind===jn.Kind.INPUT_VALUE_DEFINITION&&(e.lastChildNodeKind=jn.Kind.NULL)}},InterfaceTypeDefinition:{enter(i){e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertInterfaceDataByNode(i)},leave(){e.doesParentRequireFetchReasons=!1,e.originalParentTypeName="",e.lastParentNodeKind=jn.Kind.NULL}},InterfaceTypeExtension:{enter(i){e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertInterfaceDataByNode(i,!0)},leave(){e.doesParentRequireFetchReasons=!1,e.originalParentTypeName="",e.lastParentNodeKind=jn.Kind.NULL}},ObjectTypeDefinition:{enter(i){if(i.name.value===fr.SERVICE_OBJECT)return!1;e.originalParentTypeName=i.name.value,n=(0,zl.isTypeNameRootType)(e.originalParentTypeName,e.operationTypeNodeByTypeName),e.renamedParentTypeName=(0,zl.getRenamedRootTypeName)(e.originalParentTypeName,e.operationTypeNodeByTypeName),e.originalTypeNameByRenamedTypeName.set(e.renamedParentTypeName,e.originalParentTypeName),r=n?e.internalGraph.getRootNode(e.renamedParentTypeName):e.internalGraph.addOrUpdateNode(e.renamedParentTypeName),e.lastParentNodeKind=i.kind,e.upsertObjectDataByNode(i)},leave(){r=void 0,n=!1,e.originalParentTypeName="",e.renamedParentTypeName="",e.lastParentNodeKind=jn.Kind.NULL,e.isParentObjectExternal=!1,e.doesParentRequireFetchReasons=!1,e.isParentObjectShareable=!1}},ObjectTypeExtension:{enter(i){if(i.name.value===fr.SERVICE_OBJECT)return!1;e.originalParentTypeName=i.name.value,n=(0,zl.isTypeNameRootType)(e.originalParentTypeName,e.operationTypeNodeByTypeName),e.renamedParentTypeName=(0,zl.getRenamedRootTypeName)(e.originalParentTypeName,e.operationTypeNodeByTypeName),e.originalTypeNameByRenamedTypeName.set(e.renamedParentTypeName,e.originalParentTypeName),r=n?e.internalGraph.getRootNode(e.renamedParentTypeName):e.internalGraph.addOrUpdateNode(e.renamedParentTypeName),e.lastParentNodeKind=i.kind,e.upsertObjectDataByNode(i,!0)},leave(){r=void 0,n=!1,e.originalParentTypeName="",e.renamedParentTypeName="",e.lastParentNodeKind=jn.Kind.NULL,e.isParentObjectExternal=!1,e.doesParentRequireFetchReasons=!1,e.isParentObjectShareable=!1}},ScalarTypeDefinition:{enter(i){if(i.name.value===fr.ANY_SCALAR)return!1;e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertScalarByNode(i)},leave(){e.originalParentTypeName="",e.lastParentNodeKind=jn.Kind.NULL}},ScalarTypeExtension:{enter(i){if(i.name.value===fr.ANY_SCALAR)return!1;e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertScalarByNode(i,!0)},leave(){e.originalParentTypeName="",e.lastParentNodeKind=jn.Kind.NULL}},UnionTypeDefinition:{enter(i){i.name.value!==fr.ENTITY_UNION&&e.upsertUnionByNode(i)}},UnionTypeExtension:{enter(i){if(i.name.value===fr.ENTITY_UNION)return!1;e.upsertUnionByNode(i,!0)}}})}});var aD=w(Qa=>{"use strict";m();T();N();Object.defineProperty(Qa,"__esModule",{value:!0});Qa.EntityDataNode=Qa.RootNode=Qa.GraphNode=Qa.Edge=void 0;var PE=Sr(),tD=class{constructor(t,n,r,i=!1){_(this,"edgeName");_(this,"id");_(this,"isAbstractEdge");_(this,"isInaccessible",!1);_(this,"node");_(this,"visitedIndices",new Set);this.edgeName=i?`... on ${r}`:r,this.id=t,this.isAbstractEdge=i,this.node=n}};Qa.Edge=tD;var nD=class{constructor(t,n,r){_(this,"fieldDataByName",new Map);_(this,"headToTailEdges",new Map);_(this,"entityEdges",new Array);_(this,"nodeName");_(this,"hasEntitySiblings",!1);_(this,"isAbstract");_(this,"isInaccessible",!1);_(this,"isLeaf",!1);_(this,"isRootNode",!1);_(this,"satisfiedFieldSets",new Set);_(this,"subgraphName");_(this,"typeName");this.isAbstract=!!(r!=null&&r.isAbstract),this.isLeaf=!!(r!=null&&r.isLeaf),this.nodeName=`${t}.${n}`,this.subgraphName=t,this.typeName=n}handleInaccessibleEdges(){if(this.isAbstract)return;let t=(0,PE.getEntriesNotInHashSet)(this.headToTailEdges.keys(),this.fieldDataByName);for(let n of t){let r=this.headToTailEdges.get(n);r&&(r.isInaccessible=!0)}}getAllAccessibleEntityNodeNames(){let t=new Set([this.nodeName]);return this.getAccessibleEntityNodeNames(this,t),t.delete(this.nodeName),t}getAccessibleEntityNodeNames(t,n){for(let r of t.entityEdges)(0,PE.add)(n,r.node.nodeName)&&this.getAccessibleEntityNodeNames(r.node,n)}};Qa.GraphNode=nD;var rD=class{constructor(t){_(this,"fieldDataByName",new Map);_(this,"headToSharedTailEdges",new Map);_(this,"isAbstract",!1);_(this,"isRootNode",!0);_(this,"typeName");this.typeName=t}removeInaccessibleEdges(t){for(let[n,r]of this.headToSharedTailEdges)if(!t.has(n))for(let i of r)i.isInaccessible=!0}};Qa.RootNode=rD;var iD=class{constructor(t){_(this,"fieldSetsByTargetSubgraphName",new Map);_(this,"targetSubgraphNamesByFieldSet",new Map);_(this,"typeName");this.typeName=t}addTargetSubgraphByFieldSet(t,n){(0,PE.getValueOrDefault)(this.targetSubgraphNamesByFieldSet,t,()=>new Set).add(n),(0,PE.getValueOrDefault)(this.fieldSetsByTargetSubgraphName,n,()=>new Set).add(t)}};Qa.EntityDataNode=iD});var sD=w(Kn=>{"use strict";m();T();N();Object.defineProperty(Kn,"__esModule",{value:!0});Kn.ROOT_TYPE_NAMES=Kn.QUOTATION_JOIN=Kn.NOT_APPLICABLE=Kn.LITERAL_SPACE=Kn.LITERAL_PERIOD=Kn.SUBSCRIPTION=Kn.QUERY=Kn.MUTATION=void 0;Kn.MUTATION="Mutation";Kn.QUERY="Query";Kn.SUBSCRIPTION="Subscription";Kn.LITERAL_PERIOD=".";Kn.LITERAL_SPACE=" ";Kn.NOT_APPLICABLE="N/A";Kn.QUOTATION_JOIN='", "';Kn.ROOT_TYPE_NAMES=new Set([Kn.MUTATION,Kn.QUERY,Kn.SUBSCRIPTION])});var lD=w(Ea=>{"use strict";m();T();N();Object.defineProperty(Ea,"__esModule",{value:!0});Ea.newRootFieldData=Ble;Ea.generateResolvabilityErrorReasons=cD;Ea.generateSharedResolvabilityErrorReasons=uV;Ea.generateSelectionSetSegments=FE;Ea.renderSelectionSet=wE;Ea.generateRootResolvabilityErrors=kle;Ea.generateEntityResolvabilityErrors=Mle;Ea.generateSharedEntityResolvabilityErrors=xle;Ea.getMultipliedRelativeOriginPaths=qle;var oD=Mi(),uD=Sr(),Ya=sD();function Ble(e,t,n){return{coords:`${e}.${t}`,message:`The root type field "${e}.${t}" is defined in the following subgraph`+(n.size>1?"s":"")+`: "${[...n].join(Ya.QUOTATION_JOIN)}".`,subgraphNames:n}}function Ule(e,t){return e.isLeaf?e.name+` <-- +Although "${e}" is declared "@external", it is part of a "@key" directive on an extension type. Such fields are only declared "@external" for legacy syntactical reasons and are not internally considered "@external".`,subgraph:{name:r}})}function tde({fieldName:e,subgraphName:t,typeName:n}){return new Sa.Warning({message:`The directive "@oneOf" is defined on Input Object "${n}", but only one optional Input field, "${e}", is defined. Consider removing "@oneOf" and changing "${e}" to a required type instead.`,subgraph:{name:t}})}function nde({fieldName:e,typeName:t}){return new Sa.Warning({message:`The directive "@oneOf" is defined on Input Object "${t}", but only one optional Input field, "${e}", is propagated to the federated graph. Consider removing "@oneOf", changing "${e}" to a required type, and removing any other remaining optional Input fields instead.`,subgraph:{name:""}})}});var gD=F(JE=>{"use strict";m();T();N();Object.defineProperty(JE,"__esModule",{value:!0});JE.upsertDirectiveSchemaAndEntityDefinitions=ade;JE.upsertParentsAndChildren=sde;var Qn=Se(),Pu=Gi(),ID=Iu(),YE=uf(),ud=Rr(),yD=cf(),rde=id(),od=Bl(),df=yu(),ide=lf(),ta=sr(),yr=Pr();function ade(e,t){(0,Qn.visit)(t,{Directive:{enter(n){let r=n.name.value;return e.referencedDirectiveNames.add(r),rde.EVENT_DIRECTIVE_NAMES.has(r)&&e.edfsDirectiveReferences.add(r),ID.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.has(r)&&(e.isSubgraphVersionTwo=!0),!1}},DirectiveDefinition:{enter(n){return e.addDirectiveDefinitionDataByNode(n)&&e.customDirectiveDefinitionByName.set(n.name.value,n),!1}},InterfaceTypeDefinition:{enter(n){let r=n.name.value;if(e.internalGraph.addOrUpdateNode(r,{isAbstract:!0}),!(0,ud.isObjectLikeNodeEntity)(n))return;let i=(0,yr.getValueOrDefault)(e.keyFieldSetDatasByTypeName,r,()=>new Map);e.extractKeyFieldSets(n,i),(0,YE.upsertEntityData)({entityDataByTypeName:e.entityDataByTypeName,keyFieldSetDataByFieldSet:i,subgraphName:e.subgraphName,typeName:r}),(0,yr.getValueOrDefault)(e.entityInterfaceDataByTypeName,r,()=>({concreteTypeNames:new Set,fieldDatas:[],interfaceFieldNames:new Set,interfaceObjectFieldNames:new Set,isInterfaceObject:!1,resolvable:!1,typeName:r}))}},InterfaceTypeExtension:{enter(n){let r=n.name.value;if(e.internalGraph.addOrUpdateNode(r,{isAbstract:!0}),!(0,ud.isObjectLikeNodeEntity)(n))return;let i=(0,yr.getValueOrDefault)(e.keyFieldSetDatasByTypeName,r,()=>new Map);e.extractKeyFieldSets(n,i),(0,YE.upsertEntityData)({entityDataByTypeName:e.entityDataByTypeName,keyFieldSetDataByFieldSet:i,subgraphName:e.subgraphName,typeName:r}),(0,yr.getValueOrDefault)(e.entityInterfaceDataByTypeName,r,()=>({concreteTypeNames:new Set,fieldDatas:[],interfaceFieldNames:new Set,interfaceObjectFieldNames:new Set,isInterfaceObject:!1,resolvable:!1,typeName:r}))}},ObjectTypeDefinition:{enter(n){if(!(0,ud.isObjectLikeNodeEntity)(n))return;let r=n.name.value;(0,ud.isNodeInterfaceObject)(n)&&(e.entityInterfaceDataByTypeName.set(r,{concreteTypeNames:new Set,fieldDatas:[],interfaceObjectFieldNames:new Set,interfaceFieldNames:new Set,isInterfaceObject:!0,resolvable:!1,typeName:r}),e.internalGraph.addOrUpdateNode(r,{isAbstract:!0}));let i=(0,yr.getValueOrDefault)(e.keyFieldSetDatasByTypeName,r,()=>new Map);e.extractKeyFieldSets(n,i),(0,YE.upsertEntityData)({entityDataByTypeName:e.entityDataByTypeName,keyFieldSetDataByFieldSet:i,subgraphName:e.subgraphName,typeName:r})}},ObjectTypeExtension:{enter(n){if(!(0,ud.isObjectLikeNodeEntity)(n))return;let r=n.name.value,i=(0,yr.getValueOrDefault)(e.keyFieldSetDatasByTypeName,r,()=>new Map);e.extractKeyFieldSets(n,i),(0,YE.upsertEntityData)({entityDataByTypeName:e.entityDataByTypeName,keyFieldSetDataByFieldSet:i,subgraphName:e.subgraphName,typeName:r})}},OperationTypeDefinition:{enter(n){let r=n.operation,i=e.schemaData.operationTypes.get(r),a=(0,df.getTypeNodeNamedTypeName)(n.type);if(i)return e.errors.push((0,Pu.duplicateOperationTypeDefinitionError)(r,a,(0,df.getTypeNodeNamedTypeName)(i.type))),!1;let o=e.operationTypeNodeByTypeName.get(a);return o?(e.errors.push((0,Pu.invalidOperationTypeDefinitionError)(o,a,r)),!1):(e.operationTypeNodeByTypeName.set(a,r),e.schemaData.operationTypes.set(r,n),!1)}},SchemaDefinition:{enter(n){e.schemaData.description=n.description,e.extractDirectives(n,e.schemaData.directivesByDirectiveName)}},SchemaExtension:{enter(n){e.extractDirectives(n,e.schemaData.directivesByDirectiveName)}}})}function sde(e,t){let n=!1,r;(0,Qn.visit)(t,{EnumTypeDefinition:{enter(i){e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertEnumDataByNode(i)},leave(){e.originalParentTypeName="",e.lastParentNodeKind=Qn.Kind.NULL}},EnumTypeExtension:{enter(i){e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertEnumDataByNode(i,!0)},leave(){e.originalParentTypeName="",e.lastParentNodeKind=Qn.Kind.NULL}},EnumValueDefinition:{enter(i){let a=i.name.value;e.lastChildNodeKind=i.kind;let o=(0,yr.getOrThrowError)(e.parentDefinitionDataByTypeName,e.originalParentTypeName,ta.PARENT_DEFINITION_DATA);if(o.kind!==Qn.Kind.ENUM_TYPE_DEFINITION){e.errors.push((0,Pu.unexpectedParentKindForChildError)(e.originalParentTypeName,"Enum or Enum extension",(0,yr.kindToNodeType)(o.kind),a,(0,yr.kindToNodeType)(i.kind)));return}if(o.enumValueDataByName.has(a)){e.errors.push((0,Pu.duplicateEnumValueDefinitionError)(e.originalParentTypeName,a));return}o.enumValueDataByName.set(a,{appearances:1,configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:e.extractDirectives(i,new Map),federatedCoords:`${e.originalParentTypeName}.${a}`,kind:Qn.Kind.ENUM_VALUE_DEFINITION,name:a,node:(0,df.getMutableEnumValueNode)(i),parentTypeName:e.originalParentTypeName,persistedDirectivesData:(0,od.newPersistedDirectivesData)(),subgraphNames:new Set([e.subgraphName]),description:(0,ud.formatDescription)(i.description)})},leave(){e.lastChildNodeKind=Qn.Kind.NULL}},FieldDefinition:{enter(i){let a=i.name.value;if(n&&ta.IGNORED_FIELDS.has(a))return!1;e.edfsDirectiveReferences.size>0&&e.validateSubscriptionFilterDirectiveLocation(i),e.lastChildNodeKind=i.kind;let o=(0,df.getTypeNodeNamedTypeName)(i.type);(0,yr.getValueOrDefault)(e.fieldCoordsByNamedTypeName,o,()=>new Set).add(`${e.renamedParentTypeName||e.originalParentTypeName}.${a}`),r&&!r.isAbstract&&e.internalGraph.addEdge(r,e.internalGraph.addOrUpdateNode(o),a),ID.BASE_SCALARS.has(o)||e.referencedTypeNames.add(o);let c=(0,yr.getOrThrowError)(e.parentDefinitionDataByTypeName,e.originalParentTypeName,ta.PARENT_DEFINITION_DATA);if(!(0,od.isParentDataCompositeOutputType)(c)){e.errors.push((0,Pu.unexpectedParentKindForChildError)(e.originalParentTypeName,'"Object" or "Interface"',(0,yr.kindToNodeType)(c.kind),a,(0,yr.kindToNodeType)(i.kind)));return}if(c.fieldDataByName.has(a)){e.errors.push((0,Pu.duplicateFieldDefinitionError)((0,yr.kindToNodeType)(c.kind),c.name,a));return}let l=e.extractArguments(new Map,i),d=e.extractDirectives(i,new Map),f=new Set;e.handleFieldInheritableDirectives({directivesByDirectiveName:d,fieldName:a,inheritedDirectiveNames:f,parentData:c});let y=e.addFieldDataByNode(c.fieldDataByName,i,l,d,f);n&&e.extractEventDirectivesToConfiguration(i,l);let I=y.directivesByDirectiveName.get(ta.PROVIDES),v=y.directivesByDirectiveName.get(ta.REQUIRES);if(!v&&!I)return;let w=e.entityDataByTypeName.get(e.originalParentTypeName),U=(0,yr.getValueOrDefault)(e.fieldSetDataByTypeName,e.originalParentTypeName,yD.newFieldSetData);I&&(0,yD.extractFieldSetValue)(a,U.provides,I),v&&(w||e.warnings.push((0,ide.requiresDefinedOnNonEntityFieldWarning)(`${e.originalParentTypeName}.${a}`,e.subgraphName)),(0,yD.extractFieldSetValue)(a,U.requires,v))},leave(){e.lastChildNodeKind=Qn.Kind.NULL}},InputObjectTypeDefinition:{enter(i){e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertInputObjectByNode(i)},leave(){e.lastParentNodeKind=Qn.Kind.NULL,e.originalParentTypeName=""}},InputObjectTypeExtension:{enter(i){e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertInputObjectByNode(i,!0)},leave(){e.originalParentTypeName="",e.lastParentNodeKind=Qn.Kind.NULL}},InputValueDefinition:{enter(i){let a=i.name.value;if(e.lastParentNodeKind!==Qn.Kind.INPUT_OBJECT_TYPE_DEFINITION&&e.lastParentNodeKind!==Qn.Kind.INPUT_OBJECT_TYPE_EXTENSION){e.argumentName=a;return}e.lastChildNodeKind=i.kind;let o=(0,df.getTypeNodeNamedTypeName)(i.type);ID.BASE_SCALARS.has(o)||e.referencedTypeNames.add(o);let c=(0,yr.getOrThrowError)(e.parentDefinitionDataByTypeName,e.originalParentTypeName,ta.PARENT_DEFINITION_DATA);if(c.kind!==Qn.Kind.INPUT_OBJECT_TYPE_DEFINITION)return e.errors.push((0,Pu.unexpectedParentKindForChildError)(e.originalParentTypeName,"input object or input object extension",(0,yr.kindToNodeType)(c.kind),a,(0,yr.kindToNodeType)(i.kind))),!1;if(c.inputValueDataByName.has(a)){e.errors.push((0,Pu.duplicateInputFieldDefinitionError)(e.originalParentTypeName,a));return}e.addInputValueDataByNode({inputValueDataByName:c.inputValueDataByName,isArgument:!1,node:i,originalParentTypeName:e.originalParentTypeName})},leave(){e.argumentName="",e.lastChildNodeKind===Qn.Kind.INPUT_VALUE_DEFINITION&&(e.lastChildNodeKind=Qn.Kind.NULL)}},InterfaceTypeDefinition:{enter(i){e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertInterfaceDataByNode(i)},leave(){e.doesParentRequireFetchReasons=!1,e.originalParentTypeName="",e.lastParentNodeKind=Qn.Kind.NULL}},InterfaceTypeExtension:{enter(i){e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertInterfaceDataByNode(i,!0)},leave(){e.doesParentRequireFetchReasons=!1,e.originalParentTypeName="",e.lastParentNodeKind=Qn.Kind.NULL}},ObjectTypeDefinition:{enter(i){if(i.name.value===ta.SERVICE_OBJECT)return!1;e.originalParentTypeName=i.name.value,n=(0,od.isTypeNameRootType)(e.originalParentTypeName,e.operationTypeNodeByTypeName),e.renamedParentTypeName=(0,od.getRenamedRootTypeName)(e.originalParentTypeName,e.operationTypeNodeByTypeName),e.originalTypeNameByRenamedTypeName.set(e.renamedParentTypeName,e.originalParentTypeName),r=n?e.internalGraph.getRootNode(e.renamedParentTypeName):e.internalGraph.addOrUpdateNode(e.renamedParentTypeName),e.lastParentNodeKind=i.kind,e.upsertObjectDataByNode(i)},leave(){r=void 0,n=!1,e.originalParentTypeName="",e.renamedParentTypeName="",e.lastParentNodeKind=Qn.Kind.NULL,e.isParentObjectExternal=!1,e.doesParentRequireFetchReasons=!1,e.isParentObjectShareable=!1}},ObjectTypeExtension:{enter(i){if(i.name.value===ta.SERVICE_OBJECT)return!1;e.originalParentTypeName=i.name.value,n=(0,od.isTypeNameRootType)(e.originalParentTypeName,e.operationTypeNodeByTypeName),e.renamedParentTypeName=(0,od.getRenamedRootTypeName)(e.originalParentTypeName,e.operationTypeNodeByTypeName),e.originalTypeNameByRenamedTypeName.set(e.renamedParentTypeName,e.originalParentTypeName),r=n?e.internalGraph.getRootNode(e.renamedParentTypeName):e.internalGraph.addOrUpdateNode(e.renamedParentTypeName),e.lastParentNodeKind=i.kind,e.upsertObjectDataByNode(i,!0)},leave(){r=void 0,n=!1,e.originalParentTypeName="",e.renamedParentTypeName="",e.lastParentNodeKind=Qn.Kind.NULL,e.isParentObjectExternal=!1,e.doesParentRequireFetchReasons=!1,e.isParentObjectShareable=!1}},ScalarTypeDefinition:{enter(i){if(i.name.value===ta.ANY_SCALAR)return!1;e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertScalarByNode(i)},leave(){e.originalParentTypeName="",e.lastParentNodeKind=Qn.Kind.NULL}},ScalarTypeExtension:{enter(i){if(i.name.value===ta.ANY_SCALAR)return!1;e.originalParentTypeName=i.name.value,e.lastParentNodeKind=i.kind,e.upsertScalarByNode(i,!0)},leave(){e.originalParentTypeName="",e.lastParentNodeKind=Qn.Kind.NULL}},UnionTypeDefinition:{enter(i){if(i.name.value===ta.ENTITY_UNION)return!1;e.upsertUnionByNode(i)}},UnionTypeExtension:{enter(i){if(i.name.value===ta.ENTITY_UNION)return!1;e.upsertUnionByNode(i,!0)}}})}});var DD=F(ts=>{"use strict";m();T();N();Object.defineProperty(ts,"__esModule",{value:!0});ts.EntityDataNode=ts.RootNode=ts.GraphNode=ts.Edge=void 0;var HE=Pr(),_D=class{constructor(t,n,r,i=!1){_(this,"edgeName");_(this,"id");_(this,"isAbstractEdge");_(this,"isInaccessible",!1);_(this,"node");_(this,"visitedIndices",new Set);this.edgeName=i?`... on ${r}`:r,this.id=t,this.isAbstractEdge=i,this.node=n}};ts.Edge=_D;var vD=class{constructor(t,n,r){_(this,"fieldDataByName",new Map);_(this,"headToTailEdges",new Map);_(this,"entityEdges",new Array);_(this,"nodeName");_(this,"hasEntitySiblings",!1);_(this,"isAbstract");_(this,"isInaccessible",!1);_(this,"isLeaf",!1);_(this,"isRootNode",!1);_(this,"satisfiedFieldSets",new Set);_(this,"subgraphName");_(this,"typeName");this.isAbstract=!!(r!=null&&r.isAbstract),this.isLeaf=!!(r!=null&&r.isLeaf),this.nodeName=`${t}.${n}`,this.subgraphName=t,this.typeName=n}handleInaccessibleEdges(){if(this.isAbstract)return;let t=(0,HE.getEntriesNotInHashSet)(this.headToTailEdges.keys(),this.fieldDataByName);for(let n of t){let r=this.headToTailEdges.get(n);r&&(r.isInaccessible=!0)}}getAllAccessibleEntityNodeNames(){let t=new Set([this.nodeName]);return this.getAccessibleEntityNodeNames(this,t),t.delete(this.nodeName),t}getAccessibleEntityNodeNames(t,n){for(let r of t.entityEdges)(0,HE.add)(n,r.node.nodeName)&&this.getAccessibleEntityNodeNames(r.node,n)}};ts.GraphNode=vD;var SD=class{constructor(t){_(this,"fieldDataByName",new Map);_(this,"headToSharedTailEdges",new Map);_(this,"isAbstract",!1);_(this,"isRootNode",!0);_(this,"typeName");this.typeName=t}removeInaccessibleEdges(t){for(let[n,r]of this.headToSharedTailEdges)if(!t.has(n))for(let i of r)i.isInaccessible=!0}};ts.RootNode=SD;var OD=class{constructor(t){_(this,"fieldSetsByTargetSubgraphName",new Map);_(this,"targetSubgraphNamesByFieldSet",new Map);_(this,"typeName");this.typeName=t}addTargetSubgraphByFieldSet(t,n){(0,HE.getValueOrDefault)(this.targetSubgraphNamesByFieldSet,t,()=>new Set).add(n),(0,HE.getValueOrDefault)(this.fieldSetsByTargetSubgraphName,n,()=>new Set).add(t)}};ts.EntityDataNode=OD});var bD=F(Yn=>{"use strict";m();T();N();Object.defineProperty(Yn,"__esModule",{value:!0});Yn.ROOT_TYPE_NAMES=Yn.QUOTATION_JOIN=Yn.NOT_APPLICABLE=Yn.LITERAL_SPACE=Yn.LITERAL_PERIOD=Yn.SUBSCRIPTION=Yn.QUERY=Yn.MUTATION=void 0;Yn.MUTATION="Mutation";Yn.QUERY="Query";Yn.SUBSCRIPTION="Subscription";Yn.LITERAL_PERIOD=".";Yn.LITERAL_SPACE=" ";Yn.NOT_APPLICABLE="N/A";Yn.QUOTATION_JOIN='", "';Yn.ROOT_TYPE_NAMES=new Set([Yn.MUTATION,Yn.QUERY,Yn.SUBSCRIPTION])});var FD=F(Oa=>{"use strict";m();T();N();Object.defineProperty(Oa,"__esModule",{value:!0});Oa.newRootFieldData=ode;Oa.generateResolvabilityErrorReasons=PD;Oa.generateSharedResolvabilityErrorReasons=R1;Oa.generateSelectionSetSegments=zE;Oa.renderSelectionSet=WE;Oa.generateRootResolvabilityErrors=cde;Oa.generateEntityResolvabilityErrors=lde;Oa.generateSharedEntityResolvabilityErrors=dde;Oa.getMultipliedRelativeOriginPaths=pde;var AD=Gi(),RD=Pr(),ns=bD();function ode(e,t,n){return{coords:`${e}.${t}`,message:`The root type field "${e}.${t}" is defined in the following subgraph`+(n.size>1?"s":"")+`: "${[...n].join(ns.QUOTATION_JOIN)}".`,subgraphNames:n}}function ude(e,t){return e.isLeaf?e.name+` <-- `:e.name+` { <-- -`+Ya.LITERAL_SPACE.repeat(t+3)+`... -`+Ya.LITERAL_SPACE.repeat(t+2)+`} -`}function cD({entityAncestorData:e,rootFieldData:t,unresolvableFieldData:n}){let{fieldName:r,typeName:i,subgraphNames:a}=n,o=[t.message,`The field "${i}.${r}" is defined in the following subgraph`+(a.size>1?"s":"")+`: "${[...a].join(Ya.QUOTATION_JOIN)}".`];if(e){let c=!1;for(let[l,d]of e.fieldSetsByTargetSubgraphName)if(a.has(l)){c=!0;for(let p of d)o.push(`The entity ancestor "${e.typeName}" in subgraph "${e.subgraphName}" does not satisfy the key field set "${p}" to access subgraph "${l}".`)}c||o.push(`The entity ancestor "${e.typeName}" in subgraph "${e.subgraphName}" has no accessible target entities (resolvable @key directives) in the subgraphs where "${i}.${r}" is defined.`),o.push(`The type "${i}" is not a descendant of any other entity ancestors that can provide a shared route to access "${r}".`)}else t.subgraphNames.size>1&&o.push(`None of the subgraphs that shares the same root type field "${t.coords}" can provide a route to access "${r}".`),o.push(`The type "${i}" is not a descendant of an entity ancestor that can provide a shared route to access "${r}".`);return i!==(e==null?void 0:e.typeName)&&o.push(`The type "${i}" has no accessible target entities (resolvable @key directives) in any other subgraph, so accessing other subgraphs is not possible.`),o}function uV({entityAncestors:e,rootFieldData:t,unresolvableFieldData:n}){let{fieldName:r,typeName:i,subgraphNames:a}=n,o=[t.message,`The field "${i}.${r}" is defined in the following subgraph`+(a.size>1?"s":"")+`: "${[...a].join(Ya.QUOTATION_JOIN)}".`],c=!1;for(let[l,d]of e.fieldSetsByTargetSubgraphName){if(!a.has(l))continue;let p=e.subgraphNames.filter(I=>I!==l),y=p.length>1;c=!0;for(let I of d)o.push(`The entity ancestor "${e.typeName}" in subgraph${y?"s":""} "${p.join(Ya.QUOTATION_JOIN)}" do${y?"":"es"} not satisfy the key field set "${I}" to access subgraph "${l}".`)}if(!c){let l=e.subgraphNames.length>1;o.push(`The entity ancestor "${e.typeName}" in subgraph${l?"s":""} "${e.subgraphNames.join(Ya.QUOTATION_JOIN)}" ha${l?"ve":"s"} no accessible target entities (resolvable @key directives) in the subgraphs where "${i}.${r}" is defined.`)}return o.push(`The type "${i}" is not a descendant of any other entity ancestors that can provide a shared route to access "${r}".`),i!==e.typeName&&o.push(`The type "${i}" has no accessible target entities (resolvable @key directives) in any other subgraph, so accessing other subgraphs is not possible.`),o}function FE(e){let t=e.split(new RegExp("(?<=\\w)\\.")),n="",r="";for(let i=0;i{"use strict";m();T();N();Object.defineProperty(LE,"__esModule",{value:!0});LE.NodeResolutionData=void 0;var Vle=Mi(),_c,fD=class fD{constructor({fieldDataByName:t,isResolved:n=!1,resolvedDescendantNames:r,resolvedFieldNames:i,typeName:a}){tR(this,_c,!1);_(this,"fieldDataByName");_(this,"resolvedDescendantNames");_(this,"resolvedFieldNames");_(this,"typeName");Uy(this,_c,n),this.fieldDataByName=t,this.resolvedDescendantNames=new Set(r),this.resolvedFieldNames=new Set(i),this.typeName=a}addData(t){for(let n of t.resolvedFieldNames)this.addResolvedFieldName(n);for(let n of t.resolvedDescendantNames)this.resolvedDescendantNames.add(n)}addResolvedFieldName(t){if(!this.fieldDataByName.has(t))throw(0,Vle.unexpectedEdgeFatalError)(this.typeName,[t]);this.resolvedFieldNames.add(t)}copy(){return new fD({fieldDataByName:this.fieldDataByName,isResolved:By(this,_c),resolvedDescendantNames:this.resolvedDescendantNames,resolvedFieldNames:this.resolvedFieldNames,typeName:this.typeName})}areDescendantsResolved(){return this.fieldDataByName.size===this.resolvedDescendantNames.size}isResolved(){if(By(this,_c))return!0;if(this.fieldDataByName.size!==this.resolvedFieldNames.size)return!1;for(let t of this.fieldDataByName.keys())if(!this.resolvedFieldNames.has(t))return!1;return Uy(this,_c,!0),!0}};_c=new WeakMap;var dD=fD;LE.NodeResolutionData=dD});var lV=w(BE=>{"use strict";m();T();N();Object.defineProperty(BE,"__esModule",{value:!0});BE.EntityWalker=void 0;var jle=CE(),Ja=Sr(),pD=class{constructor({encounteredEntityNodeNames:t,index:n,relativeOriginPaths:r,resDataByNodeName:i,resDataByRelativeOriginPath:a,subgraphNameByUnresolvablePath:o,visitedEntities:c}){_(this,"encounteredEntityNodeNames");_(this,"index");_(this,"resDataByNodeName");_(this,"resDataByRelativeOriginPath");_(this,"selectionPathByEntityNodeName",new Map);_(this,"subgraphNameByUnresolvablePath");_(this,"visitedEntities");_(this,"relativeOriginPaths");this.encounteredEntityNodeNames=t,this.index=n,this.relativeOriginPaths=r,this.resDataByNodeName=i,this.resDataByRelativeOriginPath=a,this.visitedEntities=c,this.subgraphNameByUnresolvablePath=o}getNodeResolutionData({node:{fieldDataByName:t,nodeName:n,typeName:r},selectionPath:i}){let a=(0,Ja.getValueOrDefault)(this.resDataByNodeName,n,()=>new jle.NodeResolutionData({fieldDataByName:t,typeName:r}));if(!this.relativeOriginPaths||this.relativeOriginPaths.size<1)return(0,Ja.getValueOrDefault)(this.resDataByRelativeOriginPath,i,()=>a.copy());let o;for(let c of this.relativeOriginPaths){let l=(0,Ja.getValueOrDefault)(this.resDataByRelativeOriginPath,`${c}${i}`,()=>a.copy());o!=null||(o=l)}return o}visitEntityDescendantEdge({edge:t,selectionPath:n}){return t.isInaccessible||t.node.isInaccessible?{visited:!1,areDescendantsResolved:!1}:t.node.isLeaf?{visited:!0,areDescendantsResolved:!0}:(0,Ja.add)(t.visitedIndices,this.index)?t.node.hasEntitySiblings?this.visitedEntities.has(t.node.nodeName)||this.encounteredEntityNodeNames.has(t.node.nodeName)?{visited:!0,areDescendantsResolved:!0}:(this.encounteredEntityNodeNames.add(t.node.nodeName),(0,Ja.getValueOrDefault)(this.selectionPathByEntityNodeName,t.node.nodeName,()=>`${n}.${t.edgeName}`),{visited:!0,areDescendantsResolved:!1}):t.node.isAbstract?this.visitEntityDescendantAbstractNode({node:t.node,selectionPath:`${n}.${t.edgeName}`}):this.visitEntityDescendantConcreteNode({node:t.node,selectionPath:`${n}.${t.edgeName}`}):(this.removeUnresolvablePaths({selectionPath:`${n}.${t.edgeName}`,removeDescendantPaths:!0}),{visited:!0,areDescendantsResolved:!0,isRevisitedNode:!0})}visitEntityDescendantConcreteNode({node:t,selectionPath:n}){if(t.headToTailEdges.size<1)return t.isLeaf=!0,{visited:!0,areDescendantsResolved:!0};let r=this.getNodeResolutionData({node:t,selectionPath:n});if(r.isResolved()&&r.areDescendantsResolved())return{visited:!0,areDescendantsResolved:!0};let i;for(let[a,o]of t.headToTailEdges){let{visited:c,areDescendantsResolved:l,isRevisitedNode:d}=this.visitEntityDescendantEdge({edge:o,selectionPath:n});i!=null||(i=d),this.propagateVisitedField({areDescendantsResolved:l,fieldName:a,data:r,nodeName:t.nodeName,selectionPath:n,visited:c})}return r.isResolved()?this.removeUnresolvablePaths({removeDescendantPaths:i,selectionPath:n}):this.addUnresolvablePaths({selectionPath:n,subgraphName:t.subgraphName}),{visited:!0,areDescendantsResolved:r.areDescendantsResolved()}}visitEntityDescendantAbstractNode({node:t,selectionPath:n}){if(t.headToTailEdges.size<1)return{visited:!0,areDescendantsResolved:!0};let r=0;for(let i of t.headToTailEdges.values())this.visitEntityDescendantEdge({edge:i,selectionPath:n}).areDescendantsResolved&&(r+=1);return{visited:!0,areDescendantsResolved:r===t.headToTailEdges.size}}propagateVisitedField({areDescendantsResolved:t,data:n,fieldName:r,nodeName:i,selectionPath:a,visited:o}){if(!o)return;let c=(0,Ja.getValueOrDefault)(this.resDataByNodeName,i,()=>n.copy());if(n.addResolvedFieldName(r),c.addResolvedFieldName(r),t&&n.resolvedDescendantNames.add(r),this.relativeOriginPaths){for(let d of this.relativeOriginPaths){let p=(0,Ja.getValueOrDefault)(this.resDataByRelativeOriginPath,`${d}${a}`,()=>n.copy());p.addResolvedFieldName(r),t&&p.resolvedDescendantNames.add(r)}return}let l=(0,Ja.getValueOrDefault)(this.resDataByRelativeOriginPath,a,()=>n.copy());l.addResolvedFieldName(r),t&&l.resolvedDescendantNames.add(r)}addUnresolvablePaths({selectionPath:t,subgraphName:n}){if(!this.relativeOriginPaths){(0,Ja.getValueOrDefault)(this.subgraphNameByUnresolvablePath,t,()=>n);return}for(let r of this.relativeOriginPaths)(0,Ja.getValueOrDefault)(this.subgraphNameByUnresolvablePath,`${r}${t}`,()=>n)}removeUnresolvablePaths({selectionPath:t,removeDescendantPaths:n}){if(!this.relativeOriginPaths){if(this.subgraphNameByUnresolvablePath.delete(t),n)for(let r of this.subgraphNameByUnresolvablePath.keys())r.startsWith(t)&&this.subgraphNameByUnresolvablePath.delete(r);return}for(let r of this.relativeOriginPaths){let i=`${r}${t}`;if(this.subgraphNameByUnresolvablePath.delete(i),n)for(let a of this.subgraphNameByUnresolvablePath.keys())a.startsWith(i)&&this.subgraphNameByUnresolvablePath.delete(a)}}};BE.EntityWalker=pD});var dV=w(kE=>{"use strict";m();T();N();Object.defineProperty(kE,"__esModule",{value:!0});kE.RootFieldWalker=void 0;var Ha=Sr(),UE=CE(),mD=class{constructor({index:t,nodeResolutionDataByNodeName:n}){_(this,"index");_(this,"resDataByNodeName");_(this,"resDataByPath",new Map);_(this,"entityNodeNamesByPath",new Map);_(this,"pathsByEntityNodeName",new Map);_(this,"unresolvablePaths",new Set);this.index=t,this.resDataByNodeName=n}visitEdge({edge:t,selectionPath:n}){return t.isInaccessible||t.node.isInaccessible?{visited:!1,areDescendantsResolved:!0}:t.node.isLeaf?{visited:!0,areDescendantsResolved:!0}:(0,Ha.add)(t.visitedIndices,this.index)?t.node.hasEntitySiblings?this.resDataByNodeName.has(t.node.nodeName)?{visited:!0,areDescendantsResolved:!0}:((0,Ha.getValueOrDefault)(this.pathsByEntityNodeName,t.node.nodeName,()=>new Set).add(`${n}.${t.edgeName}`),{visited:!0,areDescendantsResolved:!1}):t.node.isAbstract?this.visitAbstractNode({node:t.node,selectionPath:`${n}.${t.edgeName}`}):this.visitConcreteNode({node:t.node,selectionPath:`${n}.${t.edgeName}`}):{visited:!0,areDescendantsResolved:!0}}visitAbstractNode({node:t,selectionPath:n}){if(t.headToTailEdges.size<1)return{visited:!0,areDescendantsResolved:!0};let r=0;for(let i of t.headToTailEdges.values())this.visitEdge({edge:i,selectionPath:n}).areDescendantsResolved&&(r+=1);return{visited:!0,areDescendantsResolved:r===t.headToTailEdges.size}}visitConcreteNode({node:t,selectionPath:n}){if(t.headToTailEdges.size<1)return t.isLeaf=!0,{visited:!0,areDescendantsResolved:!0};let r=this.resDataByNodeName.get(t.nodeName);if(r)return{visited:!0,areDescendantsResolved:r.areDescendantsResolved()};let i=this.getNodeResolutionData({node:t,selectionPath:n});if(i.isResolved()&&i.areDescendantsResolved())return{visited:!0,areDescendantsResolved:!0};for(let[a,o]of t.headToTailEdges){let{visited:c,areDescendantsResolved:l}=this.visitEdge({edge:o,selectionPath:n});this.propagateVisitedField({areDescendantsResolved:l,fieldName:a,data:i,node:t,selectionPath:n,visited:c})}return i.isResolved()?this.unresolvablePaths.delete(n):this.unresolvablePaths.add(n),{visited:!0,areDescendantsResolved:i.areDescendantsResolved()}}visitSharedEdge({edge:t,selectionPath:n}){return t.isInaccessible||t.node.isInaccessible?{visited:!1,areDescendantsResolved:!0}:t.node.isLeaf?{visited:!0,areDescendantsResolved:!0}:(0,Ha.add)(t.visitedIndices,this.index)?(t.node.hasEntitySiblings&&(0,Ha.getValueOrDefault)(this.entityNodeNamesByPath,`${n}.${t.edgeName}`,()=>new Set).add(t.node.nodeName),t.node.isAbstract?this.visitSharedAbstractNode({node:t.node,selectionPath:`${n}.${t.edgeName}`}):this.visitSharedConcreteNode({node:t.node,selectionPath:`${n}.${t.edgeName}`})):{visited:!0,areDescendantsResolved:!0}}visitSharedAbstractNode({node:t,selectionPath:n}){if(t.headToTailEdges.size<1)return{visited:!0,areDescendantsResolved:!0};let r=0;for(let i of t.headToTailEdges.values())this.visitSharedEdge({edge:i,selectionPath:n}).areDescendantsResolved&&(r+=1);return{visited:!0,areDescendantsResolved:r===t.headToTailEdges.size}}visitSharedConcreteNode({node:t,selectionPath:n}){if(t.headToTailEdges.size<1)return t.isLeaf=!0,{visited:!0,areDescendantsResolved:!0};let r=this.getSharedNodeResolutionData({node:t,selectionPath:n});if(r.isResolved()&&r.areDescendantsResolved())return{visited:!0,areDescendantsResolved:!0};for(let[i,a]of t.headToTailEdges){let{visited:o,areDescendantsResolved:c}=this.visitSharedEdge({edge:a,selectionPath:n});this.propagateSharedVisitedField({areDescendantsResolved:c,data:r,fieldName:i,node:t,visited:o})}return r.isResolved()?this.unresolvablePaths.delete(n):this.unresolvablePaths.add(n),{visited:!0,areDescendantsResolved:r.areDescendantsResolved()}}getNodeResolutionData({node:t,selectionPath:n}){let r=(0,Ha.getValueOrDefault)(this.resDataByNodeName,t.nodeName,()=>new UE.NodeResolutionData({fieldDataByName:t.fieldDataByName,typeName:t.typeName}));return(0,Ha.getValueOrDefault)(this.resDataByPath,n,()=>r.copy()),r}getSharedNodeResolutionData({node:t,selectionPath:n}){let r=(0,Ha.getValueOrDefault)(this.resDataByNodeName,t.nodeName,()=>new UE.NodeResolutionData({fieldDataByName:t.fieldDataByName,typeName:t.typeName}));return(0,Ha.getValueOrDefault)(this.resDataByPath,n,()=>r.copy())}propagateVisitedField({areDescendantsResolved:t,data:n,fieldName:r,node:i,selectionPath:a,visited:o}){if(!o)return;n.addResolvedFieldName(r);let c=(0,Ha.getValueOrDefault)(this.resDataByPath,a,()=>new UE.NodeResolutionData({fieldDataByName:i.fieldDataByName,typeName:i.typeName}));c.addResolvedFieldName(r),t&&(n.resolvedDescendantNames.add(r),c.resolvedDescendantNames.add(r))}propagateSharedVisitedField({areDescendantsResolved:t,data:n,fieldName:r,node:i,visited:a}){if(!a)return;n.addResolvedFieldName(r);let o=(0,Ha.getValueOrDefault)(this.resDataByNodeName,i.nodeName,()=>new UE.NodeResolutionData({fieldDataByName:i.fieldDataByName,typeName:i.typeName}));o.addResolvedFieldName(r),t&&(n.resolvedDescendantNames.add(r),o.resolvedDescendantNames.add(r))}visitRootFieldEdges({edges:t,rootTypeName:n}){let r=t.length>1;for(let i of t){if(i.isInaccessible)return{visited:!1,areDescendantsResolved:!1};let a=r?this.visitSharedEdge({edge:i,selectionPath:n}):this.visitEdge({edge:i,selectionPath:n});if(a.areDescendantsResolved)return a}return{visited:!0,areDescendantsResolved:!1}}};kE.RootFieldWalker=mD});var TD=w(xE=>{"use strict";m();T();N();Object.defineProperty(xE,"__esModule",{value:!0});xE.Graph=void 0;var Xl=aD(),vc=lD(),Ji=Sr(),ME=sD(),Kle=lV(),Gle=dV(),ND=class{constructor(){_(this,"edgeId",-1);_(this,"entityDataNodeByTypeName",new Map);_(this,"nodeByNodeName",new Map);_(this,"nodesByTypeName",new Map);_(this,"resolvedRootFieldNodeNames",new Set);_(this,"rootNodeByTypeName",new Map);_(this,"subgraphName",ME.NOT_APPLICABLE);_(this,"resDataByNodeName",new Map);_(this,"resDataByRelativePathByEntity",new Map);_(this,"visitedEntitiesByOriginEntity",new Map);_(this,"walkerIndex",-1)}getRootNode(t){return(0,Ji.getValueOrDefault)(this.rootNodeByTypeName,t,()=>new Xl.RootNode(t))}addOrUpdateNode(t,n){let r=`${this.subgraphName}.${t}`,i=this.nodeByNodeName.get(r);if(i)return i.isAbstract||(i.isAbstract=!!(n!=null&&n.isAbstract)),!i.isLeaf&&(n!=null&&n.isLeaf)&&(i.isLeaf=!0),i;let a=new Xl.GraphNode(this.subgraphName,t,n);return this.nodeByNodeName.set(r,a),(0,Ji.getValueOrDefault)(this.nodesByTypeName,t,()=>[]).push(a),a}addEdge(t,n,r,i=!1){if(t.isRootNode){let c=new Xl.Edge(this.getNextEdgeId(),n,r);return(0,Ji.getValueOrDefault)(t.headToSharedTailEdges,r,()=>[]).push(c),c}let a=t,o=new Xl.Edge(this.getNextEdgeId(),n,i?n.typeName:r,i);return a.headToTailEdges.set(r,o),o}addEntityDataNode(t){let n=this.entityDataNodeByTypeName.get(t);if(n)return n;let r=new Xl.EntityDataNode(t);return this.entityDataNodeByTypeName.set(t,r),r}getNextEdgeId(){return this.edgeId+=1}getNextWalkerIndex(){return this.walkerIndex+=1}setNodeInaccessible(t){let n=this.nodesByTypeName.get(t);if(n)for(let r of n)r.isInaccessible=!0}initializeNode(t,n){let r=this.entityDataNodeByTypeName.get(t);if(ME.ROOT_TYPE_NAMES.has(t)){let a=this.getRootNode(t);a.removeInaccessibleEdges(n),a.fieldDataByName=n;return}let i=this.nodesByTypeName.get(t);if(i){for(let a of i)if(a.fieldDataByName=n,a.handleInaccessibleEdges(),a.isLeaf=!1,!!r){a.hasEntitySiblings=!0;for(let o of a.satisfiedFieldSets){let c=r.targetSubgraphNamesByFieldSet.get(o);for(let l of c!=null?c:[]){if(l===a.subgraphName)continue;let d=this.nodeByNodeName.get(`${l}.${a.typeName}`);d&&a.entityEdges.push(new Xl.Edge(this.getNextEdgeId(),d,""))}}}}}setSubgraphName(t){this.subgraphName=t}visitEntity({encounteredEntityNodeNames:t,entityNodeName:n,relativeOriginPaths:r,resDataByRelativeOriginPath:i,subgraphNameByUnresolvablePath:a,visitedEntities:o}){let c=this.nodeByNodeName.get(n);if(!c)throw new Error(`Fatal: Could not find entity node for "${n}".`);o.add(n);let l=this.nodesByTypeName.get(c.typeName);if(!(l!=null&&l.length))throw new Error(`Fatal: Could not find any nodes for "${n}".`);let d=new Kle.EntityWalker({encounteredEntityNodeNames:t,index:this.getNextWalkerIndex(),relativeOriginPaths:r,resDataByNodeName:this.resDataByNodeName,resDataByRelativeOriginPath:i,subgraphNameByUnresolvablePath:a,visitedEntities:o}),p=c.getAllAccessibleEntityNodeNames();for(let y of l){if(y.nodeName!==c.nodeName&&!p.has(y.nodeName))continue;let{areDescendantsResolved:I}=d.visitEntityDescendantConcreteNode({node:y,selectionPath:""});if(I)return}for(let[y,I]of d.selectionPathByEntityNodeName)this.visitEntity({encounteredEntityNodeNames:t,entityNodeName:y,relativeOriginPaths:(0,vc.getMultipliedRelativeOriginPaths)({relativeOriginPaths:r,selectionPath:I}),resDataByRelativeOriginPath:i,subgraphNameByUnresolvablePath:a,visitedEntities:o})}validate(){for(let t of this.rootNodeByTypeName.values())for(let[n,r]of t.headToSharedTailEdges){let i=r.length>1;if(!i){let p=r[0].node.nodeName;if(this.resolvedRootFieldNodeNames.has(p))continue;this.resolvedRootFieldNodeNames.add(p)}let a=new Gle.RootFieldWalker({index:this.getNextWalkerIndex(),nodeResolutionDataByNodeName:this.resDataByNodeName});if(a.visitRootFieldEdges({edges:r,rootTypeName:t.typeName.toLowerCase()}).areDescendantsResolved)continue;let o=i?a.entityNodeNamesByPath.size>0:a.pathsByEntityNodeName.size>0;if(a.unresolvablePaths.size<1&&!o)continue;let c=(0,Ji.getOrThrowError)(t.fieldDataByName,n,"fieldDataByName"),l=(0,vc.newRootFieldData)(t.typeName,n,c.subgraphNames);if(!o)return{errors:(0,vc.generateRootResolvabilityErrors)({unresolvablePaths:a.unresolvablePaths,resDataByPath:a.resDataByPath,rootFieldData:l}),success:!1};let d=this.validateEntities({isSharedRootField:i,rootFieldData:l,walker:a});if(!d.success)return d}return{success:!0}}consolidateUnresolvableRootWithEntityPaths({pathFromRoot:t,resDataByRelativeOriginPath:n,subgraphNameByUnresolvablePath:r,walker:i}){for(let a of i.unresolvablePaths){if(!a.startsWith(t))continue;let o=a.slice(t.length),c=(0,Ji.getOrThrowError)(i.resDataByPath,a,"rootFieldWalker.unresolvablePaths"),l=n.get(o);if(l){if(c.addData(l),l.addData(c),!c.isResolved()){i.unresolvablePaths.delete(a);continue}i.unresolvablePaths.delete(a),r.delete(o)}}}consolidateUnresolvableEntityWithRootPaths({pathFromRoot:t,resDataByRelativeOriginPath:n,subgraphNameByUnresolvablePath:r,walker:i}){for(let a of r.keys()){let o=(0,Ji.getOrThrowError)(n,a,"resDataByRelativeOriginPath"),c=`${t}${a}`,l=i.resDataByPath.get(c);l&&(o.addData(l),l.addData(o)),o.isResolved()&&r.delete(a)}}validateSharedRootFieldEntities({rootFieldData:t,walker:n}){for(let[r,i]of n.entityNodeNamesByPath){let a=new Map,o=new Map;for(let l of i)this.visitEntity({encounteredEntityNodeNames:new Set,entityNodeName:l,resDataByRelativeOriginPath:o,subgraphNameByUnresolvablePath:a,visitedEntities:new Set});if(this.consolidateUnresolvableRootWithEntityPaths({pathFromRoot:r,resDataByRelativeOriginPath:o,subgraphNameByUnresolvablePath:a,walker:n}),a.size<1)continue;this.consolidateUnresolvableEntityWithRootPaths({pathFromRoot:r,resDataByRelativeOriginPath:o,subgraphNameByUnresolvablePath:a,walker:n});let c=new Array;if(a.size>0&&c.push(...this.getSharedEntityResolvabilityErrors({entityNodeNames:i,resDataByPath:o,pathFromRoot:r,rootFieldData:t,subgraphNameByUnresolvablePath:a})),n.unresolvablePaths.size>0&&c.push(...(0,vc.generateRootResolvabilityErrors)({unresolvablePaths:n.unresolvablePaths,resDataByPath:n.resDataByPath,rootFieldData:t})),!(c.length<1))return{errors:c,success:!1}}return n.unresolvablePaths.size>0?{errors:(0,vc.generateRootResolvabilityErrors)({resDataByPath:n.resDataByPath,rootFieldData:t,unresolvablePaths:n.unresolvablePaths}),success:!1}:{success:!0}}validateRootFieldEntities({rootFieldData:t,walker:n}){var r;for(let[i,a]of n.pathsByEntityNodeName){let o=new Map;if(this.resDataByNodeName.has(i))continue;let c=(0,Ji.getValueOrDefault)(this.resDataByRelativePathByEntity,i,()=>new Map);if(this.visitEntity({encounteredEntityNodeNames:new Set,entityNodeName:i,resDataByRelativeOriginPath:c,subgraphNameByUnresolvablePath:o,visitedEntities:(0,Ji.getValueOrDefault)(this.visitedEntitiesByOriginEntity,i,()=>new Set)}),!(o.size<1))return{errors:this.getEntityResolvabilityErrors({entityNodeName:i,pathFromRoot:(r=(0,Ji.getFirstEntry)(a))!=null?r:"",rootFieldData:t,subgraphNameByUnresolvablePath:o}),success:!1}}return{success:!0}}validateEntities(t){return t.isSharedRootField?this.validateSharedRootFieldEntities(t):this.validateRootFieldEntities(t)}getEntityResolvabilityErrors({entityNodeName:t,pathFromRoot:n,rootFieldData:r,subgraphNameByUnresolvablePath:i}){let a=(0,Ji.getOrThrowError)(this.resDataByRelativePathByEntity,t,"resDataByRelativePathByEntity"),o=t.split(ME.LITERAL_PERIOD)[1],{fieldSetsByTargetSubgraphName:c}=(0,Ji.getOrThrowError)(this.entityDataNodeByTypeName,o,"entityDataNodeByTypeName");return(0,vc.generateEntityResolvabilityErrors)({entityAncestorData:{fieldSetsByTargetSubgraphName:c,subgraphName:"",typeName:o},pathFromRoot:n,resDataByPath:a,rootFieldData:r,subgraphNameByUnresolvablePath:i})}getSharedEntityResolvabilityErrors({entityNodeNames:t,pathFromRoot:n,rootFieldData:r,resDataByPath:i,subgraphNameByUnresolvablePath:a}){let o,c=new Array;for(let d of t){let p=d.split(ME.LITERAL_PERIOD);o!=null||(o=p[1]),c.push(p[0])}let{fieldSetsByTargetSubgraphName:l}=(0,Ji.getOrThrowError)(this.entityDataNodeByTypeName,o,"entityDataNodeByTypeName");return(0,vc.generateSharedEntityResolvabilityErrors)({entityAncestors:{fieldSetsByTargetSubgraphName:l,subgraphNames:c,typeName:o},pathFromRoot:n,resDataByPath:i,rootFieldData:r,subgraphNameByUnresolvablePath:a})}};xE.Graph=ND});var ED=w(qE=>{"use strict";m();T();N();Object.defineProperty(qE,"__esModule",{value:!0});qE.newFieldSetConditionData=$le;qE.newConfigurationData=Qle;function $le({fieldCoordinatesPath:e,fieldPath:t}){return{fieldCoordinatesPath:e,fieldPath:t}}function Qle(e,t){return{fieldNames:new Set,isRootNode:e,typeName:t}}});var yD=w(Sc=>{"use strict";m();T();N();Object.defineProperty(Sc,"__esModule",{value:!0});Sc.NormalizationFactory=void 0;Sc.normalizeSubgraphFromString=zle;Sc.normalizeSubgraph=pV;Sc.batchNormalize=Wle;var Z=De(),bn=Hr(),ni=zf(),qt=Ss(),Gn=Hf(),le=Mi(),VE=Yl(),Yle=bv(),Ei=iE(),Jle=HO(),Wa=Wf(),fV=eD(),za=Df(),sn=Sl(),rr=du(),hD=TD(),jE=Pv(),z=vr(),Hle=gl(),je=Sr(),Zf=ED();function zle(e,t=!0){let{error:n,documentNode:r}=(0,bn.safeParse)(e,t);return n||!r?{errors:[(0,le.subgraphInvalidSyntaxError)(n)],success:!1,warnings:[]}:new ep(new hD.Graph).normalize(r)}function pV(e,t,n){return new ep(n||new hD.Graph,t).normalize(e)}var ep=class{constructor(t,n){_(this,"argumentName","");_(this,"authorizationDataByParentTypeName",new Map);_(this,"concreteTypeNamesByAbstractTypeName",new Map);_(this,"conditionalFieldDataByCoords",new Map);_(this,"configurationDataByTypeName",new Map);_(this,"customDirectiveDefinitions",new Map);_(this,"definedDirectiveNames",new Set);_(this,"directiveDefinitionByDirectiveName",new Map);_(this,"directiveDefinitionDataByDirectiveName",(0,ni.initializeDirectiveDefinitionDatas)());_(this,"doesParentRequireFetchReasons",!1);_(this,"edfsDirectiveReferences",new Set);_(this,"errors",new Array);_(this,"entityDataByTypeName",new Map);_(this,"entityInterfaceDataByTypeName",new Map);_(this,"eventsConfigurations",new Map);_(this,"fieldSetDataByTypeName",new Map);_(this,"internalGraph");_(this,"invalidConfigureDescriptionNodeDatas",[]);_(this,"invalidORScopesCoords",new Set);_(this,"invalidRepeatedDirectiveNameByCoords",new Map);_(this,"isParentObjectExternal",!1);_(this,"isParentObjectShareable",!1);_(this,"isSubgraphEventDrivenGraph",!1);_(this,"isSubgraphVersionTwo",!1);_(this,"keyFieldSetDatasByTypeName",new Map);_(this,"lastParentNodeKind",Z.Kind.NULL);_(this,"lastChildNodeKind",Z.Kind.NULL);_(this,"parentTypeNamesWithAuthDirectives",new Set);_(this,"keyFieldSetsByEntityTypeNameByFieldCoords",new Map);_(this,"keyFieldNamesByParentTypeName",new Map);_(this,"fieldCoordsByNamedTypeName",new Map);_(this,"operationTypeNodeByTypeName",new Map);_(this,"originalParentTypeName","");_(this,"originalTypeNameByRenamedTypeName",new Map);_(this,"overridesByTargetSubgraphName",new Map);_(this,"parentDefinitionDataByTypeName",new Map);_(this,"schemaData");_(this,"referencedDirectiveNames",new Set);_(this,"referencedTypeNames",new Set);_(this,"renamedParentTypeName","");_(this,"subgraphName");_(this,"unvalidatedExternalFieldCoords",new Set);_(this,"usesEdfsNatsStreamConfiguration",!1);_(this,"warnings",[]);for(let[r,i]of qt.BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME)this.directiveDefinitionByDirectiveName.set(r,i);this.subgraphName=n||z.NOT_APPLICABLE,this.internalGraph=t,this.internalGraph.setSubgraphName(this.subgraphName),this.schemaData={directivesByDirectiveName:new Map,kind:Z.Kind.SCHEMA_DEFINITION,name:z.SCHEMA,operationTypes:new Map}}validateArguments(t,n){for(let r of t.argumentDataByName.values()){let i=(0,rr.getTypeNodeNamedTypeName)(r.type);if(qt.BASE_SCALARS.has(i)){r.namedTypeKind=Z.Kind.SCALAR_TYPE_DEFINITION;continue}let a=this.parentDefinitionDataByTypeName.get(i);if(a){if((0,sn.isInputNodeKind)(a.kind)){r.namedTypeKind=a.kind;continue}this.errors.push((0,le.invalidNamedTypeError)({data:r,namedTypeData:a,nodeType:`${(0,je.kindToNodeType)(n)} field argument`}))}}}isTypeNameRootType(t){return z.ROOT_TYPE_NAMES.has(t)||this.operationTypeNodeByTypeName.has(t)}isArgumentValueValid(t,n){if(n.kind===Z.Kind.NULL)return t.kind!==Z.Kind.NON_NULL_TYPE;switch(t.kind){case Z.Kind.LIST_TYPE:{if(n.kind!==Z.Kind.LIST)return this.isArgumentValueValid((0,rr.getNamedTypeNode)(t.type),n);for(let r of n.values)if(!this.isArgumentValueValid(t.type,r))return!1;return!0}case Z.Kind.NAMED_TYPE:switch(t.name.value){case z.BOOLEAN_SCALAR:return n.kind===Z.Kind.BOOLEAN;case z.FLOAT_SCALAR:return n.kind===Z.Kind.FLOAT||n.kind===Z.Kind.INT;case z.ID_SCALAR:return n.kind===Z.Kind.STRING||n.kind===Z.Kind.INT;case z.INT_SCALAR:return n.kind===Z.Kind.INT;case z.FIELD_SET_SCALAR:case z.SCOPE_SCALAR:case z.STRING_SCALAR:return n.kind===Z.Kind.STRING;case z.LINK_IMPORT:return!0;case z.LINK_PURPOSE:return n.kind!==Z.Kind.ENUM?!1:n.value===z.SECURITY||n.value===z.EXECUTION;case z.SUBSCRIPTION_FIELD_CONDITION:case z.SUBSCRIPTION_FILTER_CONDITION:return n.kind===Z.Kind.OBJECT;default:{let r=this.parentDefinitionDataByTypeName.get(t.name.value);if(!r)return!1;if(r.kind===Z.Kind.SCALAR_TYPE_DEFINITION)return!0;if(r.kind===Z.Kind.ENUM_TYPE_DEFINITION){if(n.kind!==Z.Kind.ENUM)return!1;let i=r.enumValueDataByName.get(n.value);return i?!i.directivesByDirectiveName.has(z.INACCESSIBLE):!1}return r.kind!==Z.Kind.INPUT_OBJECT_TYPE_DEFINITION?!1:n.kind===Z.Kind.OBJECT}}default:return this.isArgumentValueValid(t.type,n)}}handleFieldInheritableDirectives({directivesByDirectiveName:t,fieldName:n,inheritedDirectiveNames:r,parentData:i}){this.doesParentRequireFetchReasons&&!t.has(z.REQUIRE_FETCH_REASONS)&&(t.set(z.REQUIRE_FETCH_REASONS,[(0,je.generateSimpleDirective)(z.REQUIRE_FETCH_REASONS)]),r.add(z.REQUIRE_FETCH_REASONS)),(this.doesParentRequireFetchReasons||t.has(z.REQUIRE_FETCH_REASONS))&&i.requireFetchReasonsFieldNames.add(n),(0,Gn.isObjectDefinitionData)(i)&&(this.isParentObjectExternal&&!t.has(z.EXTERNAL)&&(t.set(z.EXTERNAL,[(0,je.generateSimpleDirective)(z.EXTERNAL)]),r.add(z.EXTERNAL)),t.has(z.EXTERNAL)&&this.unvalidatedExternalFieldCoords.add(`${i.name}.${n}`),this.isParentObjectShareable&&!t.has(z.SHAREABLE)&&(t.set(z.SHAREABLE,[(0,je.generateSimpleDirective)(z.SHAREABLE)]),r.add(z.SHAREABLE)))}extractDirectives(t,n){if(!t.directives)return n;let r=(0,Gn.isCompositeOutputNodeKind)(t.kind),i=(0,Gn.isObjectNodeKind)(t.kind);for(let a of t.directives){let o=a.name.value;o===z.SHAREABLE?(0,je.getValueOrDefault)(n,o,()=>[a]):(0,je.getValueOrDefault)(n,o,()=>[]).push(a),r&&(this.doesParentRequireFetchReasons||(this.doesParentRequireFetchReasons=o===z.REQUIRE_FETCH_REASONS),i&&(this.isParentObjectExternal||(this.isParentObjectExternal=o===z.EXTERNAL),this.isParentObjectShareable||(this.isParentObjectShareable=o===z.SHAREABLE)))}return n}validateDirective({data:t,definitionData:n,directiveCoords:r,directiveNode:i,errorMessages:a,requiredArgumentNames:o}){let c=i.name.value,l=t.kind===Z.Kind.FIELD_DEFINITION?t.renamedParentTypeName||t.originalParentTypeName:t.name,d=c===z.AUTHENTICATED,p=(0,sn.isFieldData)(t),y=c===z.OVERRIDE,I=c===z.REQUIRES_SCOPES,v=c===z.SEMANTIC_NON_NULL;if(!i.arguments||i.arguments.length<1)return n.requiredArgumentNames.size>0&&a.push((0,le.undefinedRequiredArgumentsErrorMessage)(c,o,[])),d&&this.handleAuthenticatedDirective(t,l),v&&p&&((0,sn.isTypeRequired)(t.type)?a.push((0,le.semanticNonNullLevelsNonNullErrorMessage)({typeString:(0,Ei.printTypeNode)(t.type),value:"0"})):t.nullLevelsBySubgraphName.set(this.subgraphName,new Set([0]))),a;let F=new Set,k=new Set,K=new Set,J=[];for(let Te of i.arguments){let de=Te.name.value;if(F.has(de)){k.add(de);continue}F.add(de);let Re=n.argumentTypeNodeByName.get(de);if(!Re){K.add(de);continue}if(!this.isArgumentValueValid(Re.typeNode,Te.value)){a.push((0,le.invalidArgumentValueErrorMessage)((0,Z.print)(Te.value),`@${c}`,de,(0,Ei.printTypeNode)(Re.typeNode)));continue}if(y&&p){this.handleOverrideDirective({data:t,directiveCoords:r,errorMessages:a,targetSubgraphName:Te.value.value});continue}if(v&&p){this.handleSemanticNonNullDirective({data:t,directiveNode:i,errorMessages:a});continue}!I||de!==z.SCOPES||this.extractRequiredScopes({directiveCoords:r,orScopes:Te.value.values,requiredScopes:J})}k.size>0&&a.push((0,le.duplicateDirectiveArgumentDefinitionsErrorMessage)([...k])),K.size>0&&a.push((0,le.unexpectedDirectiveArgumentErrorMessage)(c,[...K]));let se=(0,je.getEntriesNotInHashSet)(o,F);if(se.length>0&&a.push((0,le.undefinedRequiredArgumentsErrorMessage)(c,o,se)),a.length>0||!I)return a;let ie=(0,je.getValueOrDefault)(this.authorizationDataByParentTypeName,l,()=>(0,Gn.newAuthorizationData)(l));if(t.kind!==Z.Kind.FIELD_DEFINITION)this.parentTypeNamesWithAuthDirectives.add(l),ie.requiredScopes.push(...J);else{let Te=(0,je.getValueOrDefault)(ie.fieldAuthDataByFieldName,t.name,()=>(0,Gn.newFieldAuthorizationData)(t.name));Te.inheritedData.requiredScopes.push(...J),Te.originalData.requiredScopes.push(...J)}return a}validateDirectives(t,n){let r=new Set;for(let[i,a]of t.directivesByDirectiveName){let o=this.directiveDefinitionDataByDirectiveName.get(i);if(!o){r.has(i)||(this.errors.push((0,le.undefinedDirectiveError)(i,n)),r.add(i));continue}let c=[],l=(0,bn.nodeKindToDirectiveLocation)(t.kind);if(o.locations.has(l)||c.push((0,le.invalidDirectiveLocationErrorMessage)(i,l)),a.length>1&&!o.isRepeatable){let p=(0,je.getValueOrDefault)(this.invalidRepeatedDirectiveNameByCoords,n,()=>new Set);p.has(i)||(p.add(i),c.push((0,le.invalidRepeatedDirectiveErrorMessage)(i)))}let d=[...o.requiredArgumentNames];for(let p=0;p0&&this.errors.push((0,le.invalidDirectiveError)(i,n,(0,je.numberToOrdinal)(p+1),y))}}switch(t.kind){case Z.Kind.ENUM_TYPE_DEFINITION:{for(let[i,a]of t.enumValueDataByName)this.validateDirectives(a,`${t.name}.${i}`);return}case Z.Kind.FIELD_DEFINITION:{for(let[i,a]of t.argumentDataByName)this.validateDirectives(a,`${t.originalParentTypeName}.${t.name}(${i}: ...)`);return}case Z.Kind.INPUT_OBJECT_TYPE_DEFINITION:{for(let[i,a]of t.inputValueDataByName)this.validateDirectives(a,`${t.name}.${i}`);return}case Z.Kind.INTERFACE_TYPE_DEFINITION:case Z.Kind.OBJECT_TYPE_DEFINITION:{for(let[i,a]of t.fieldDataByName)this.validateDirectives(a,`${t.name}.${i}`);return}default:return}}getNodeExtensionType(t,n,r=!1){return t?za.ExtensionType.REAL:r||!n.has(z.EXTENDS)?za.ExtensionType.NONE:za.ExtensionType.EXTENDS}setParentDataExtensionType(t,n){switch(t.extensionType){case za.ExtensionType.EXTENDS:case za.ExtensionType.NONE:{if(n===za.ExtensionType.REAL)return;this.errors.push((0,le.duplicateTypeDefinitionError)((0,je.kindToNodeType)(t.kind),t.name));return}default:t.extensionType=n}}extractConfigureDescriptionData(t,n){var i,a;if(!n.arguments||n.arguments.length<1){t.description||this.invalidConfigureDescriptionNodeDatas.push(t),t.configureDescriptionDataBySubgraphName.set(this.subgraphName,{propagate:!0,description:((i=t.description)==null?void 0:i.value)||""});return}let r={propagate:!0,description:((a=t.description)==null?void 0:a.value)||""};for(let o of n.arguments)switch(o.name.value){case z.PROPAGATE:{if(o.value.kind!=Z.Kind.BOOLEAN)return;r.propagate=o.value.value;break}case z.DESCRIPTION_OVERRIDE:{if(o.value.kind!=Z.Kind.STRING)return;r.description=o.value.value;break}default:return}!t.description&&!r.description&&this.invalidConfigureDescriptionNodeDatas.push(t),t.configureDescriptionDataBySubgraphName.set(this.subgraphName,r)}extractConfigureDescriptionsData(t){let n=t.directivesByDirectiveName.get(z.CONFIGURE_DESCRIPTION);n&&n.length==1&&this.extractConfigureDescriptionData(t,n[0])}extractImplementedInterfaceTypeNames(t,n){if(!t.interfaces)return n;let r=t.name.value;for(let i of t.interfaces){let a=i.name.value;if(n.has(a)){this.errors.push((0,le.duplicateImplementedInterfaceError)((0,Gn.kindToConvertedTypeString)(t.kind),r,a));continue}n.add(a)}return n}updateCompositeOutputDataByNode(t,n,r){this.setParentDataExtensionType(n,r),this.extractImplementedInterfaceTypeNames(t,n.implementedInterfaceTypeNames),n.description||(n.description=(0,bn.formatDescription)("description"in t?t.description:void 0)),this.extractConfigureDescriptionsData(n),n.isEntity||(n.isEntity=n.directivesByDirectiveName.has(z.KEY)),n.isInaccessible||(n.isInaccessible=n.directivesByDirectiveName.has(z.INACCESSIBLE)),n.subgraphNames.add(this.subgraphName)}addConcreteTypeNamesForImplementedInterfaces(t,n){for(let r of t)(0,je.getValueOrDefault)(this.concreteTypeNamesByAbstractTypeName,r,()=>new Set).add(n),this.internalGraph.addEdge(this.internalGraph.addOrUpdateNode(r,{isAbstract:!0}),this.internalGraph.addOrUpdateNode(n),n,!0)}extractArguments(t,n){var o;if(!((o=n.arguments)!=null&&o.length))return t;let r=n.name.value,i=`${this.originalParentTypeName}.${r}`,a=new Set;for(let c of n.arguments){let l=c.name.value;if(t.has(l)){a.add(l);continue}this.addInputValueDataByNode({fieldName:r,inputValueDataByName:t,isArgument:!0,node:c,originalParentTypeName:this.originalParentTypeName,renamedParentTypeName:this.renamedParentTypeName})}return a.size>0&&this.errors.push((0,le.duplicateArgumentsError)(i,[...a])),t}addPersistedDirectiveDefinitionDataByNode(t,n,r){let i=n.name.value,a=`@${i}`,o=new Map;for(let c of n.arguments||[])this.addInputValueDataByNode({inputValueDataByName:o,isArgument:!0,node:c,originalParentTypeName:a});t.set(i,{argumentDataByName:o,executableLocations:r,name:i,repeatable:n.repeatable,subgraphNames:new Set([this.subgraphName]),description:(0,bn.formatDescription)(n.description)})}extractDirectiveLocations(t,n){let r=new Set,i=new Set;for(let a of t.locations){let o=a.value;if(!i.has(o)){if(!z.EXECUTABLE_DIRECTIVE_LOCATIONS.has(o)&&!VE.TYPE_SYSTEM_DIRECTIVE_LOCATIONS.has(o)){n.push((0,le.invalidDirectiveDefinitionLocationErrorMessage)(o)),i.add(o);continue}if(r.has(o)){n.push((0,le.duplicateDirectiveDefinitionLocationErrorMessage)(o)),i.add(o);continue}r.add(o)}}return r}extractArgumentData(t,n){let r=new Map,i=new Set,a=new Set,o={argumentTypeNodeByName:r,optionalArgumentNames:i,requiredArgumentNames:a};if(!t)return o;let c=new Set;for(let l of t){let d=l.name.value;if(r.has(d)){c.add(d);continue}l.defaultValue&&i.add(d),(0,sn.isTypeRequired)(l.type)&&!l.defaultValue&&a.add(d),r.set(d,{name:d,typeNode:l.type,defaultValue:l.defaultValue})}return c.size>0&&n.push((0,le.duplicateDirectiveDefinitionArgumentErrorMessage)([...c])),o}addDirectiveDefinitionDataByNode(t){let n=t.name.value;if(this.definedDirectiveNames.has(n))return this.errors.push((0,le.duplicateDirectiveDefinitionError)(n)),!1;if(this.definedDirectiveNames.add(n),this.directiveDefinitionByDirectiveName.set(n,t),qt.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.has(n))return this.isSubgraphVersionTwo=!0,!1;if(qt.ALL_IN_BUILT_DIRECTIVE_NAMES.has(n))return!1;let r=[],{argumentTypeNodeByName:i,optionalArgumentNames:a,requiredArgumentNames:o}=this.extractArgumentData(t.arguments,r);return this.directiveDefinitionDataByDirectiveName.set(n,{argumentTypeNodeByName:i,isRepeatable:t.repeatable,locations:this.extractDirectiveLocations(t,r),name:n,node:t,optionalArgumentNames:a,requiredArgumentNames:o}),r.length>0&&this.errors.push((0,le.invalidDirectiveDefinitionError)(n,r)),!0}addFieldDataByNode(t,n,r,i,a=new Set){let o=n.name.value,c=this.renamedParentTypeName||this.originalParentTypeName,l=`${this.originalParentTypeName}.${o}`,{isExternal:d,isShareable:p}=(0,sn.isNodeExternalOrShareable)(n,!this.isSubgraphVersionTwo,i),y=(0,rr.getTypeNodeNamedTypeName)(n.type),I={argumentDataByName:r,configureDescriptionDataBySubgraphName:new Map,externalFieldDataBySubgraphName:new Map([[this.subgraphName,(0,sn.newExternalFieldData)(d)]]),federatedCoords:`${c}.${o}`,inheritedDirectiveNames:a,isInaccessible:i.has(z.INACCESSIBLE),isShareableBySubgraphName:new Map([[this.subgraphName,p]]),kind:Z.Kind.FIELD_DEFINITION,name:o,namedTypeKind:qt.BASE_SCALARS.has(y)?Z.Kind.SCALAR_TYPE_DEFINITION:Z.Kind.NULL,namedTypeName:y,node:(0,rr.getMutableFieldNode)(n,l,this.errors),nullLevelsBySubgraphName:new Map,originalParentTypeName:this.originalParentTypeName,persistedDirectivesData:(0,sn.newPersistedDirectivesData)(),renamedParentTypeName:c,subgraphNames:new Set([this.subgraphName]),type:(0,rr.getMutableTypeNode)(n.type,l,this.errors),directivesByDirectiveName:i,description:(0,bn.formatDescription)(n.description)};return qt.BASE_SCALARS.has(I.namedTypeName)||this.referencedTypeNames.add(I.namedTypeName),this.extractConfigureDescriptionsData(I),t.set(o,I),I}addInputValueDataByNode({fieldName:t,inputValueDataByName:n,isArgument:r,node:i,originalParentTypeName:a,renamedParentTypeName:o}){let c=o||a,l=i.name.value,d=r?`${a}${t?`.${t}`:""}(${l}: ...)`:`${a}.${l}`;i.defaultValue&&!(0,sn.areDefaultValuesCompatible)(i.type,i.defaultValue)&&this.errors.push((0,le.incompatibleInputValueDefaultValueTypeError)((r?z.ARGUMENT:z.INPUT_FIELD)+` "${l}"`,d,(0,Ei.printTypeNode)(i.type),(0,Z.print)(i.defaultValue)));let p=r?`${c}${t?`.${t}`:""}(${l}: ...)`:`${c}.${l}`,y=(0,rr.getTypeNodeNamedTypeName)(i.type),I={configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:this.extractDirectives(i,new Map),federatedCoords:p,fieldName:t,includeDefaultValue:!!i.defaultValue,isArgument:r,kind:r?Z.Kind.ARGUMENT:Z.Kind.INPUT_VALUE_DEFINITION,name:l,namedTypeKind:qt.BASE_SCALARS.has(y)?Z.Kind.SCALAR_TYPE_DEFINITION:Z.Kind.NULL,namedTypeName:y,node:(0,rr.getMutableInputValueNode)(i,a,this.errors),originalCoords:d,originalParentTypeName:a,persistedDirectivesData:(0,sn.newPersistedDirectivesData)(),renamedParentTypeName:c,requiredSubgraphNames:new Set((0,sn.isTypeRequired)(i.type)?[this.subgraphName]:[]),subgraphNames:new Set([this.subgraphName]),type:(0,rr.getMutableTypeNode)(i.type,a,this.errors),defaultValue:i.defaultValue,description:(0,bn.formatDescription)(i.description)};this.extractConfigureDescriptionsData(I),n.set(l,I)}upsertInterfaceDataByNode(t,n=!1){let r=t.name.value,i=this.parentDefinitionDataByTypeName.get(r),a=this.extractDirectives(t,(i==null?void 0:i.directivesByDirectiveName)||new Map),o=this.getNodeExtensionType(n,a),c=this.entityInterfaceDataByTypeName.get(r);if(c&&t.fields)for(let d of t.fields)c.interfaceFieldNames.add(d.name.value);if(i){if(i.kind!==Z.Kind.INTERFACE_TYPE_DEFINITION){this.errors.push((0,le.multipleNamedTypeDefinitionError)(r,(0,je.kindToNodeType)(i.kind),(0,Gn.kindToConvertedTypeString)(t.kind)));return}this.updateCompositeOutputDataByNode(t,i,o);return}let l={configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:a,extensionType:o,fieldDataByName:new Map,implementedInterfaceTypeNames:this.extractImplementedInterfaceTypeNames(t,new Set),isEntity:a.has(z.KEY),isInaccessible:a.has(z.INACCESSIBLE),kind:Z.Kind.INTERFACE_TYPE_DEFINITION,name:r,node:(0,rr.getMutableInterfaceNode)(t.name),persistedDirectivesData:(0,sn.newPersistedDirectivesData)(),requireFetchReasonsFieldNames:new Set,subgraphNames:new Set([this.subgraphName]),description:(0,bn.formatDescription)("description"in t?t.description:void 0)};this.extractConfigureDescriptionsData(l),this.parentDefinitionDataByTypeName.set(r,l)}getRenamedRootTypeName(t){let n=this.operationTypeNodeByTypeName.get(t);if(!n)return t;switch(n){case Z.OperationTypeNode.MUTATION:return z.MUTATION;case Z.OperationTypeNode.SUBSCRIPTION:return z.SUBSCRIPTION;default:return z.QUERY}}addInterfaceObjectFieldsByNode(t){let n=t.name.value,r=this.entityInterfaceDataByTypeName.get(n);if(!(!r||!r.isInterfaceObject||!t.fields))for(let i of t.fields)r.interfaceObjectFieldNames.add(i.name.value)}upsertObjectDataByNode(t,n=!1){var p;let r=t.name.value,i=this.parentDefinitionDataByTypeName.get(r),a=this.extractDirectives(t,(p=i==null?void 0:i.directivesByDirectiveName)!=null?p:new Map),o=this.isTypeNameRootType(r),c=this.getNodeExtensionType(n,a,o);if(this.addInterfaceObjectFieldsByNode(t),i){if(i.kind!==Z.Kind.OBJECT_TYPE_DEFINITION){this.errors.push((0,le.multipleNamedTypeDefinitionError)(r,(0,je.kindToNodeType)(i.kind),(0,Gn.kindToConvertedTypeString)(t.kind)));return}this.updateCompositeOutputDataByNode(t,i,c),a.has(z.INTERFACE_OBJECT)||this.addConcreteTypeNamesForImplementedInterfaces(i.implementedInterfaceTypeNames,r);return}let l=this.extractImplementedInterfaceTypeNames(t,new Set);a.has(z.INTERFACE_OBJECT)||this.addConcreteTypeNamesForImplementedInterfaces(l,r);let d={configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:a,extensionType:c,fieldDataByName:new Map,implementedInterfaceTypeNames:l,isEntity:a.has(z.KEY),isInaccessible:a.has(z.INACCESSIBLE),isRootType:o,kind:Z.Kind.OBJECT_TYPE_DEFINITION,name:r,node:(0,rr.getMutableObjectNode)(t.name),persistedDirectivesData:(0,sn.newPersistedDirectivesData)(),requireFetchReasonsFieldNames:new Set,renamedTypeName:this.getRenamedRootTypeName(r),subgraphNames:new Set([this.subgraphName]),description:(0,bn.formatDescription)("description"in t?t.description:void 0)};this.extractConfigureDescriptionsData(d),this.parentDefinitionDataByTypeName.set(r,d)}upsertEnumDataByNode(t,n=!1){let r=t.name.value;this.internalGraph.addOrUpdateNode(r,{isLeaf:!0});let i=this.parentDefinitionDataByTypeName.get(r),a=this.extractDirectives(t,(i==null?void 0:i.directivesByDirectiveName)||new Map),o=this.getNodeExtensionType(n,a);if(i){if(i.kind!==Z.Kind.ENUM_TYPE_DEFINITION){this.errors.push((0,le.multipleNamedTypeDefinitionError)(r,(0,je.kindToNodeType)(i.kind),(0,Gn.kindToConvertedTypeString)(t.kind)));return}this.setParentDataExtensionType(i,o),i.isInaccessible||(i.isInaccessible=a.has(z.INACCESSIBLE)),i.subgraphNames.add(this.subgraphName),i.description||(i.description=(0,bn.formatDescription)("description"in t?t.description:void 0)),this.extractConfigureDescriptionsData(i);return}let c={appearances:1,configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:a,extensionType:o,enumValueDataByName:new Map,isInaccessible:a.has(z.INACCESSIBLE),kind:Z.Kind.ENUM_TYPE_DEFINITION,name:r,node:(0,rr.getMutableEnumNode)(t.name),persistedDirectivesData:(0,sn.newPersistedDirectivesData)(),subgraphNames:new Set([this.subgraphName]),description:(0,bn.formatDescription)("description"in t?t.description:void 0)};this.extractConfigureDescriptionsData(c),this.parentDefinitionDataByTypeName.set(r,c)}upsertInputObjectByNode(t,n=!1){let r=t.name.value,i=this.parentDefinitionDataByTypeName.get(r),a=this.extractDirectives(t,(i==null?void 0:i.directivesByDirectiveName)||new Map),o=this.getNodeExtensionType(n,a);if(i){if(i.kind!==Z.Kind.INPUT_OBJECT_TYPE_DEFINITION){this.errors.push((0,le.multipleNamedTypeDefinitionError)(r,(0,je.kindToNodeType)(i.kind),(0,Gn.kindToConvertedTypeString)(t.kind)));return}this.setParentDataExtensionType(i,o),i.isInaccessible||(i.isInaccessible=a.has(z.INACCESSIBLE)),i.subgraphNames.add(this.subgraphName),i.description||(i.description=(0,bn.formatDescription)("description"in t?t.description:void 0)),this.extractConfigureDescriptionsData(i);return}let c={configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:a,extensionType:o,inputValueDataByName:new Map,isInaccessible:a.has(z.INACCESSIBLE),kind:Z.Kind.INPUT_OBJECT_TYPE_DEFINITION,name:r,node:(0,rr.getMutableInputObjectNode)(t.name),persistedDirectivesData:(0,sn.newPersistedDirectivesData)(),subgraphNames:new Set([this.subgraphName]),description:(0,bn.formatDescription)("description"in t?t.description:void 0)};this.extractConfigureDescriptionsData(c),this.parentDefinitionDataByTypeName.set(r,c)}upsertScalarByNode(t,n=!1){let r=t.name.value;this.internalGraph.addOrUpdateNode(r,{isLeaf:!0});let i=this.parentDefinitionDataByTypeName.get(r),a=this.extractDirectives(t,(i==null?void 0:i.directivesByDirectiveName)||new Map),o=this.getNodeExtensionType(n,a);if(i){if(i.kind!==Z.Kind.SCALAR_TYPE_DEFINITION){this.errors.push((0,le.multipleNamedTypeDefinitionError)(r,(0,je.kindToNodeType)(i.kind),(0,Gn.kindToConvertedTypeString)(t.kind)));return}this.setParentDataExtensionType(i,o),i.description||(i.description=(0,bn.formatDescription)("description"in t?t.description:void 0)),i.subgraphNames.add(this.subgraphName),this.extractConfigureDescriptionsData(i);return}let c={configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:a,extensionType:o,kind:Z.Kind.SCALAR_TYPE_DEFINITION,name:r,node:(0,rr.getMutableScalarNode)(t.name),persistedDirectivesData:(0,sn.newPersistedDirectivesData)(),subgraphNames:new Set([this.subgraphName]),description:(0,bn.formatDescription)("description"in t?t.description:void 0)};this.extractConfigureDescriptionsData(c),this.parentDefinitionDataByTypeName.set(r,c)}extractUnionMembers(t,n){if(!t.types)return n;let r=t.name.value;for(let i of t.types){let a=i.name.value;if(n.has(a)){this.errors.push((0,le.duplicateUnionMemberDefinitionError)(r,a));continue}(0,je.getValueOrDefault)(this.concreteTypeNamesByAbstractTypeName,r,()=>new Set).add(a),qt.BASE_SCALARS.has(a)||this.referencedTypeNames.add(a),n.set(a,i)}return n}upsertUnionByNode(t,n=!1){let r=t.name.value,i=this.parentDefinitionDataByTypeName.get(r),a=this.extractDirectives(t,(i==null?void 0:i.directivesByDirectiveName)||new Map),o=this.getNodeExtensionType(n,a);if(this.addConcreteTypeNamesForUnion(t),i){if(i.kind!==Z.Kind.UNION_TYPE_DEFINITION){this.errors.push((0,le.multipleNamedTypeDefinitionError)(r,(0,je.kindToNodeType)(i.kind),(0,Gn.kindToConvertedTypeString)(t.kind)));return}this.setParentDataExtensionType(i,o),this.extractUnionMembers(t,i.memberByMemberTypeName),i.description||(i.description=(0,bn.formatDescription)("description"in t?t.description:void 0)),i.subgraphNames.add(this.subgraphName),this.extractConfigureDescriptionsData(i);return}let c={configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:a,extensionType:o,kind:Z.Kind.UNION_TYPE_DEFINITION,memberByMemberTypeName:this.extractUnionMembers(t,new Map),name:r,node:(0,rr.getMutableUnionNode)(t.name),persistedDirectivesData:(0,sn.newPersistedDirectivesData)(),subgraphNames:new Set([this.subgraphName]),description:(0,bn.formatDescription)("description"in t?t.description:void 0)};this.extractConfigureDescriptionsData(c),this.parentDefinitionDataByTypeName.set(r,c)}extractKeyFieldSets(t,n){var a;let r=t.name.value;if(!((a=t.directives)!=null&&a.length)){this.errors.push((0,le.expectedEntityError)(r));return}let i=0;for(let o of t.directives){if(o.name.value!==z.KEY||(i+=1,!o.arguments||o.arguments.length<1))continue;let c,l=!1;for(let v of o.arguments){if(v.name.value===z.RESOLVABLE){v.value.kind===Z.Kind.BOOLEAN&&!v.value.value&&(l=!0);continue}if(v.name.value!==z.FIELDS){c=void 0;break}if(v.value.kind!==Z.Kind.STRING){c=void 0;break}c=v.value.value}if(c===void 0)continue;let{error:d,documentNode:p}=(0,bn.safeParse)("{"+c+"}");if(d||!p){this.errors.push((0,le.invalidDirectiveError)(z.KEY,r,(0,je.numberToOrdinal)(i),[(0,le.unparsableFieldSetErrorMessage)(c,d)]));continue}let y=(0,ni.getNormalizedFieldSet)(p),I=n.get(y);I?I.isUnresolvable||(I.isUnresolvable=l):n.set(y,{documentNode:p,isUnresolvable:l,normalizedFieldSet:y,rawFieldSet:c})}}getFieldSetParent(t,n,r,i){if(!t)return{fieldSetParentData:n};let a=(0,je.getOrThrowError)(n.fieldDataByName,r,`${i}.fieldDataByFieldName`),o=(0,rr.getTypeNodeNamedTypeName)(a.node.type),c=this.parentDefinitionDataByTypeName.get(o);return c?c.kind!==Z.Kind.INTERFACE_TYPE_DEFINITION&&c.kind!==Z.Kind.OBJECT_TYPE_DEFINITION?{errorString:(0,le.incompatibleTypeWithProvidesErrorMessage)(`${i}.${r}`,o)}:{fieldSetParentData:c}:{errorString:(0,le.unknownNamedTypeErrorMessage)(`${i}.${r}`,o)}}validateConditionalFieldSet(t,n,r,i,a){let{error:o,documentNode:c}=(0,bn.safeParse)("{"+n+"}");if(o||!c)return{errorMessages:[(0,le.unparsableFieldSetErrorMessage)(n,o)]};let l=this,d=[t],p=(0,ni.getConditionalFieldSetDirectiveName)(i),y=[],I=`${a}.${r}`,v=(0,ni.getInitialFieldCoordsPath)(i,I),F=[r],k=new Set,K=[],J=-1,se=!0,ie=r,Te=!1;return(0,Z.visit)(c,{Argument:{enter(){return!1}},Field:{enter(de){let Re=d[J],xe=Re.name;if(Re.kind===Z.Kind.UNION_TYPE_DEFINITION)return K.push((0,le.invalidSelectionOnUnionErrorMessage)(n,v,xe)),Z.BREAK;let tt=de.name.value,ee=`${xe}.${tt}`;if(l.unvalidatedExternalFieldCoords.delete(ee),se)return K.push((0,le.invalidSelectionSetErrorMessage)(n,v,xe,(0,je.kindToNodeType)(Re.kind))),Z.BREAK;v.push(ee),F.push(tt),ie=tt;let Se=Re.fieldDataByName.get(tt);if(!Se)return K.push((0,le.undefinedFieldInFieldSetErrorMessage)(n,xe,tt)),Z.BREAK;if(y[J].has(tt))return K.push((0,le.duplicateFieldInFieldSetErrorMessage)(n,ee)),Z.BREAK;y[J].add(tt);let{isDefinedExternal:_t,isUnconditionallyProvided:en}=(0,je.getOrThrowError)(Se.externalFieldDataBySubgraphName,l.subgraphName,`${ee}.externalFieldDataBySubgraphName`),tn=_t&&!en;en||(Te=!0);let An=(0,rr.getTypeNodeNamedTypeName)(Se.node.type),Qt=l.parentDefinitionDataByTypeName.get(An);if(qt.BASE_SCALARS.has(An)||(Qt==null?void 0:Qt.kind)===Z.Kind.SCALAR_TYPE_DEFINITION||(Qt==null?void 0:Qt.kind)===Z.Kind.ENUM_TYPE_DEFINITION){if(k.size<1&&!_t){if(l.isSubgraphVersionTwo){l.errors.push((0,le.nonExternalConditionalFieldError)(I,l.subgraphName,ee,n,p));return}l.warnings.push((0,Wa.nonExternalConditionalFieldWarning)(I,l.subgraphName,ee,n,p));return}if(k.size<1&&en){l.isSubgraphVersionTwo?K.push((0,le.fieldAlreadyProvidedErrorMessage)(ee,l.subgraphName,p)):l.warnings.push((0,Wa.fieldAlreadyProvidedWarning)(ee,p,I,l.subgraphName));return}if(!tn&&!i)return;let mn=(0,je.getValueOrDefault)(l.conditionalFieldDataByCoords,ee,sn.newConditionalFieldData),Pr=(0,Zf.newFieldSetConditionData)({fieldCoordinatesPath:[...v],fieldPath:[...F]});i?mn.providedBy.push(Pr):mn.requiredBy.push(Pr);return}if(!Qt)return K.push((0,le.unknownTypeInFieldSetErrorMessage)(n,ee,An)),Z.BREAK;if(_t&&(i&&(0,je.getValueOrDefault)(l.conditionalFieldDataByCoords,ee,sn.newConditionalFieldData).providedBy.push((0,Zf.newFieldSetConditionData)({fieldCoordinatesPath:[...v],fieldPath:[...F]})),k.add(ee)),Qt.kind===Z.Kind.OBJECT_TYPE_DEFINITION||Qt.kind===Z.Kind.INTERFACE_TYPE_DEFINITION||Qt.kind===Z.Kind.UNION_TYPE_DEFINITION){se=!0,d.push(Qt);return}},leave(){k.delete(v.pop()||""),F.pop()}},InlineFragment:{enter(de){let Re=d[J],xe=Re.name,tt=v.length<1?t.name:v[v.length-1];if(!de.typeCondition)return K.push((0,le.inlineFragmentWithoutTypeConditionErrorMessage)(n,tt)),Z.BREAK;let ee=de.typeCondition.name.value;if(ee===xe){d.push(Re),se=!0;return}if(!(0,bn.isKindAbstract)(Re.kind))return K.push((0,le.invalidInlineFragmentTypeErrorMessage)(n,v,ee,xe)),Z.BREAK;let Se=l.parentDefinitionDataByTypeName.get(ee);if(!Se)return K.push((0,le.unknownInlineFragmentTypeConditionErrorMessage)(n,v,xe,ee)),Z.BREAK;switch(se=!0,Se.kind){case Z.Kind.INTERFACE_TYPE_DEFINITION:{if(!Se.implementedInterfaceTypeNames.has(xe))break;d.push(Se);return}case Z.Kind.OBJECT_TYPE_DEFINITION:{let _t=l.concreteTypeNamesByAbstractTypeName.get(xe);if(!_t||!_t.has(ee))break;d.push(Se);return}case Z.Kind.UNION_TYPE_DEFINITION:{d.push(Se);return}default:return K.push((0,le.invalidInlineFragmentTypeConditionTypeErrorMessage)(n,v,xe,ee,(0,je.kindToNodeType)(Se.kind))),Z.BREAK}return K.push((0,le.invalidInlineFragmentTypeConditionErrorMessage)(n,v,ee,(0,je.kindToNodeType)(Re.kind),xe)),Z.BREAK}},SelectionSet:{enter(){if(!se){let de=d[J];if(de.kind===Z.Kind.UNION_TYPE_DEFINITION)return K.push((0,le.unparsableFieldSetSelectionErrorMessage)(n,ie)),Z.BREAK;let Re=de.fieldDataByName.get(ie);if(!Re)return K.push((0,le.undefinedFieldInFieldSetErrorMessage)(n,de.name,ie)),Z.BREAK;let xe=(0,rr.getTypeNodeNamedTypeName)(Re.node.type),tt=l.parentDefinitionDataByTypeName.get(xe),ee=tt?tt.kind:Z.Kind.SCALAR_TYPE_DEFINITION;return K.push((0,le.invalidSelectionSetDefinitionErrorMessage)(n,v,xe,(0,je.kindToNodeType)(ee))),Z.BREAK}if(J+=1,se=!1,J<0||J>=d.length)return K.push((0,le.unparsableFieldSetSelectionErrorMessage)(n,ie)),Z.BREAK;y.push(new Set)},leave(){if(se){let de=d[J+1];K.push((0,le.invalidSelectionSetErrorMessage)(n,v,de.name,(0,je.kindToNodeType)(de.kind))),se=!1}J-=1,d.pop(),y.pop()}}}),K.length>0||!Te?{errorMessages:K}:{configuration:{fieldName:r,selectionSet:(0,ni.getNormalizedFieldSet)(c)},errorMessages:K}}validateProvidesOrRequires(t,n,r){let i=[],a=[],o=(0,sn.getParentTypeName)(t);for(let[c,l]of n){let{fieldSetParentData:d,errorString:p}=this.getFieldSetParent(r,t,c,o),y=`${o}.${c}`;if(p){i.push(p);continue}if(!d)continue;let{errorMessages:I,configuration:v}=this.validateConditionalFieldSet(d,l,c,r,o);if(I.length>0){i.push(` On field "${y}": - -`+I.join(z.HYPHEN_JOIN));continue}v&&a.push(v)}if(i.length>0){this.errors.push((0,le.invalidProvidesOrRequiresDirectivesError)((0,ni.getConditionalFieldSetDirectiveName)(r),i));return}if(a.length>0)return a}validateInterfaceImplementations(t){if(t.implementedInterfaceTypeNames.size<1)return;let n=t.directivesByDirectiveName.has(z.INACCESSIBLE),r=new Map,i=new Map,a=!1;for(let o of t.implementedInterfaceTypeNames){let c=this.parentDefinitionDataByTypeName.get(o);if(qt.BASE_SCALARS.has(o)&&this.referencedTypeNames.add(o),!c)continue;if(c.kind!==Z.Kind.INTERFACE_TYPE_DEFINITION){i.set(c.name,(0,je.kindToNodeType)(c.kind));continue}if(t.name===c.name){a=!0;continue}let l={invalidFieldImplementations:new Map,unimplementedFields:[]},d=!1;for(let[p,y]of c.fieldDataByName){this.unvalidatedExternalFieldCoords.delete(`${t.name}.${p}`);let I=!1,v=t.fieldDataByName.get(p);if(!v){d=!0,l.unimplementedFields.push(p);continue}let F={invalidAdditionalArguments:new Set,invalidImplementedArguments:[],isInaccessible:!1,originalResponseType:(0,Ei.printTypeNode)(y.node.type),unimplementedArguments:new Set};(0,sn.isTypeValidImplementation)(y.node.type,v.node.type,this.concreteTypeNamesByAbstractTypeName)||(d=!0,I=!0,F.implementedResponseType=(0,Ei.printTypeNode)(v.node.type));let k=new Set;for(let[K,J]of y.argumentDataByName){k.add(K);let se=v.argumentDataByName.get(K);if(!se){d=!0,I=!0,F.unimplementedArguments.add(K);continue}let ie=(0,Ei.printTypeNode)(se.type),Te=(0,Ei.printTypeNode)(J.type);Te!==ie&&(d=!0,I=!0,F.invalidImplementedArguments.push({actualType:ie,argumentName:K,expectedType:Te}))}for(let[K,J]of v.argumentDataByName)k.has(K)||J.type.kind===Z.Kind.NON_NULL_TYPE&&(d=!0,I=!0,F.invalidAdditionalArguments.add(K));!n&&v.isInaccessible&&!y.isInaccessible&&(d=!0,I=!0,F.isInaccessible=!0),I&&l.invalidFieldImplementations.set(p,F)}d&&r.set(o,l)}i.size>0&&this.errors.push((0,le.invalidImplementedTypeError)(t.name,i)),a&&this.errors.push((0,le.selfImplementationError)(t.name)),r.size>0&&this.errors.push((0,le.invalidInterfaceImplementationError)(t.name,(0,je.kindToNodeType)(t.kind),r))}handleAuthenticatedDirective(t,n){let r=(0,je.getValueOrDefault)(this.authorizationDataByParentTypeName,n,()=>(0,Gn.newAuthorizationData)(n));if(t.kind===Z.Kind.FIELD_DEFINITION){let i=(0,je.getValueOrDefault)(r.fieldAuthDataByFieldName,t.name,()=>(0,Gn.newFieldAuthorizationData)(t.name));i.inheritedData.requiresAuthentication=!0,i.originalData.requiresAuthentication=!0}else r.requiresAuthentication=!0,this.parentTypeNamesWithAuthDirectives.add(n)}handleOverrideDirective({data:t,directiveCoords:n,errorMessages:r,targetSubgraphName:i}){if(i===this.subgraphName){r.push((0,le.equivalentSourceAndTargetOverrideErrorMessage)(i,n));return}let a=(0,je.getValueOrDefault)(this.overridesByTargetSubgraphName,i,()=>new Map);(0,je.getValueOrDefault)(a,t.renamedParentTypeName,()=>new Set).add(t.name)}handleSemanticNonNullDirective({data:t,directiveNode:n,errorMessages:r}){var y;let i=new Set,a=t.node.type,o=0;for(;a;)switch(a.kind){case Z.Kind.LIST_TYPE:{o+=1,a=a.type;break}case Z.Kind.NON_NULL_TYPE:{i.add(o),a=a.type;break}default:{a=null;break}}let c=(y=n.arguments)==null?void 0:y.find(I=>I.name.value===z.LEVELS);if(!c||c.value.kind!==Z.Kind.LIST){r.push(le.semanticNonNullArgumentErrorMessage);return}let l=c.value.values,d=(0,Ei.printTypeNode)(t.type),p=new Set;for(let{value:I}of l){let v=parseInt(I,10);if(Number.isNaN(v)){r.push((0,le.semanticNonNullLevelsNaNIndexErrorMessage)(I));continue}if(v<0||v>o){r.push((0,le.semanticNonNullLevelsIndexOutOfBoundsErrorMessage)({maxIndex:o,typeString:d,value:I}));continue}if(!i.has(v)){p.add(v);continue}r.push((0,le.semanticNonNullLevelsNonNullErrorMessage)({typeString:d,value:I}))}t.nullLevelsBySubgraphName.set(this.subgraphName,p)}extractRequiredScopes({directiveCoords:t,orScopes:n,requiredScopes:r}){if(n.length>qt.MAX_OR_SCOPES){this.invalidORScopesCoords.add(t);return}for(let i of n){let a=new Set;for(let o of i.values)a.add(o.value);a.size<1||(0,Gn.addScopes)(r,a)}}getKafkaPublishConfiguration(t,n,r,i){let a=[],o=z.DEFAULT_EDFS_PROVIDER_ID;for(let c of t.arguments||[])switch(c.name.value){case z.TOPIC:{if(c.value.kind!==Z.Kind.STRING||c.value.value.length<1){i.push((0,le.invalidEventSubjectErrorMessage)(z.TOPIC));continue}(0,ni.validateArgumentTemplateReferences)(c.value.value,n,i),a.push(c.value.value);break}case z.PROVIDER_ID:{if(c.value.kind!==Z.Kind.STRING||c.value.value.length<1){i.push(le.invalidEventProviderIdErrorMessage);continue}o=c.value.value;break}}if(!(i.length>0))return{fieldName:r,providerId:o,providerType:z.PROVIDER_TYPE_KAFKA,topics:a,type:z.PUBLISH}}getKafkaSubscribeConfiguration(t,n,r,i){let a=[],o=z.DEFAULT_EDFS_PROVIDER_ID;for(let c of t.arguments||[])switch(c.name.value){case z.TOPICS:{if(c.value.kind!==Z.Kind.LIST){i.push((0,le.invalidEventSubjectsErrorMessage)(z.TOPICS));continue}for(let l of c.value.values){if(l.kind!==Z.Kind.STRING||l.value.length<1){i.push((0,le.invalidEventSubjectsItemErrorMessage)(z.TOPICS));break}(0,ni.validateArgumentTemplateReferences)(l.value,n,i),a.push(l.value)}break}case z.PROVIDER_ID:{if(c.value.kind!==Z.Kind.STRING||c.value.value.length<1){i.push(le.invalidEventProviderIdErrorMessage);continue}o=c.value.value;break}}if(!(i.length>0))return{fieldName:r,providerId:o,providerType:z.PROVIDER_TYPE_KAFKA,topics:a,type:z.SUBSCRIBE}}getNatsPublishAndRequestConfiguration(t,n,r,i,a){let o=[],c=z.DEFAULT_EDFS_PROVIDER_ID;for(let l of n.arguments||[])switch(l.name.value){case z.SUBJECT:{if(l.value.kind!==Z.Kind.STRING||l.value.value.length<1){a.push((0,le.invalidEventSubjectErrorMessage)(z.SUBJECT));continue}(0,ni.validateArgumentTemplateReferences)(l.value.value,r,a),o.push(l.value.value);break}case z.PROVIDER_ID:{if(l.value.kind!==Z.Kind.STRING||l.value.value.length<1){a.push(le.invalidEventProviderIdErrorMessage);continue}c=l.value.value;break}}if(!(a.length>0))return{fieldName:i,providerId:c,providerType:z.PROVIDER_TYPE_NATS,subjects:o,type:t}}getNatsSubscribeConfiguration(t,n,r,i){let a=[],o=z.DEFAULT_EDFS_PROVIDER_ID,c=jE.DEFAULT_CONSUMER_INACTIVE_THRESHOLD,l="",d="";for(let p of t.arguments||[])switch(p.name.value){case z.SUBJECTS:{if(p.value.kind!==Z.Kind.LIST){i.push((0,le.invalidEventSubjectsErrorMessage)(z.SUBJECTS));continue}for(let y of p.value.values){if(y.kind!==Z.Kind.STRING||y.value.length<1){i.push((0,le.invalidEventSubjectsItemErrorMessage)(z.SUBJECTS));break}(0,ni.validateArgumentTemplateReferences)(y.value,n,i),a.push(y.value)}break}case z.PROVIDER_ID:{if(p.value.kind!==Z.Kind.STRING||p.value.value.length<1){i.push(le.invalidEventProviderIdErrorMessage);continue}o=p.value.value;break}case z.STREAM_CONFIGURATION:{if(this.usesEdfsNatsStreamConfiguration=!0,p.value.kind!==Z.Kind.OBJECT||p.value.fields.length<1){i.push(le.invalidNatsStreamInputErrorMessage);continue}let y=!0,I=new Set,v=new Set(VE.STREAM_CONFIGURATION_FIELD_NAMES),F=new Set([z.CONSUMER_NAME,z.STREAM_NAME]),k=new Set,K=new Set;for(let J of p.value.fields){let se=J.name.value;if(!VE.STREAM_CONFIGURATION_FIELD_NAMES.has(se)){I.add(se),y=!1;continue}if(v.has(se))v.delete(se);else{k.add(se),y=!1;continue}switch(F.has(se)&&F.delete(se),se){case z.CONSUMER_NAME:if(J.value.kind!=Z.Kind.STRING||J.value.value.length<1){K.add(se),y=!1;continue}l=J.value.value;break;case z.STREAM_NAME:if(J.value.kind!=Z.Kind.STRING||J.value.value.length<1){K.add(se),y=!1;continue}d=J.value.value;break;case z.CONSUMER_INACTIVE_THRESHOLD:if(J.value.kind!=Z.Kind.INT){i.push((0,le.invalidArgumentValueErrorMessage)((0,Z.print)(J.value),"edfs__NatsStreamConfiguration","consumerInactiveThreshold",z.INT_SCALAR)),y=!1;continue}try{c=parseInt(J.value.value,10)}catch(ie){i.push((0,le.invalidArgumentValueErrorMessage)((0,Z.print)(J.value),"edfs__NatsStreamConfiguration","consumerInactiveThreshold",z.INT_SCALAR)),y=!1}break}}(!y||F.size>0)&&i.push((0,le.invalidNatsStreamInputFieldsErrorMessage)([...F],[...k],[...K],[...I]))}}if(!(i.length>0))return c<0?(c=jE.DEFAULT_CONSUMER_INACTIVE_THRESHOLD,this.warnings.push((0,Wa.consumerInactiveThresholdInvalidValueWarning)(this.subgraphName,`The value has been set to ${jE.DEFAULT_CONSUMER_INACTIVE_THRESHOLD}.`))):c>Hle.MAX_INT32&&(c=0,this.warnings.push((0,Wa.consumerInactiveThresholdInvalidValueWarning)(this.subgraphName,"The value has been set to 0. This means the consumer will remain indefinitely active until its manual deletion."))),x({fieldName:r,providerId:o,providerType:z.PROVIDER_TYPE_NATS,subjects:a,type:z.SUBSCRIBE},l&&d?{streamConfiguration:{consumerInactiveThreshold:c,consumerName:l,streamName:d}}:{})}getRedisPublishConfiguration(t,n,r,i){let a=[],o=z.DEFAULT_EDFS_PROVIDER_ID;for(let c of t.arguments||[])switch(c.name.value){case z.CHANNEL:{if(c.value.kind!==Z.Kind.STRING||c.value.value.length<1){i.push((0,le.invalidEventSubjectErrorMessage)(z.CHANNEL));continue}(0,ni.validateArgumentTemplateReferences)(c.value.value,n,i),a.push(c.value.value);break}case z.PROVIDER_ID:{if(c.value.kind!==Z.Kind.STRING||c.value.value.length<1){i.push(le.invalidEventProviderIdErrorMessage);continue}o=c.value.value;break}}if(!(i.length>0))return{fieldName:r,providerId:o,providerType:z.PROVIDER_TYPE_REDIS,channels:a,type:z.PUBLISH}}getRedisSubscribeConfiguration(t,n,r,i){let a=[],o=z.DEFAULT_EDFS_PROVIDER_ID;for(let c of t.arguments||[])switch(c.name.value){case z.CHANNELS:{if(c.value.kind!==Z.Kind.LIST){i.push((0,le.invalidEventSubjectsErrorMessage)(z.CHANNELS));continue}for(let l of c.value.values){if(l.kind!==Z.Kind.STRING||l.value.length<1){i.push((0,le.invalidEventSubjectsItemErrorMessage)(z.CHANNELS));break}(0,ni.validateArgumentTemplateReferences)(l.value,n,i),a.push(l.value)}break}case z.PROVIDER_ID:{if(c.value.kind!==Z.Kind.STRING||c.value.value.length<1){i.push(le.invalidEventProviderIdErrorMessage);continue}o=c.value.value;break}}if(!(i.length>0))return{fieldName:r,providerId:o,providerType:z.PROVIDER_TYPE_REDIS,channels:a,type:z.SUBSCRIBE}}validateSubscriptionFilterDirectiveLocation(t){if(!t.directives)return;let n=this.renamedParentTypeName||this.originalParentTypeName,r=`${n}.${t.name.value}`,i=this.getOperationTypeNodeForRootTypeName(n)===Z.OperationTypeNode.SUBSCRIPTION;for(let a of t.directives)if(a.name.value===z.SUBSCRIPTION_FILTER&&!i){this.errors.push((0,le.invalidSubscriptionFilterLocationError)(r));return}}extractEventDirectivesToConfiguration(t,n){if(!t.directives)return;let r=t.name.value,i=`${this.renamedParentTypeName||this.originalParentTypeName}.${r}`;for(let a of t.directives){let o=[],c;switch(a.name.value){case z.EDFS_KAFKA_PUBLISH:c=this.getKafkaPublishConfiguration(a,n,r,o);break;case z.EDFS_KAFKA_SUBSCRIBE:c=this.getKafkaSubscribeConfiguration(a,n,r,o);break;case z.EDFS_NATS_PUBLISH:{c=this.getNatsPublishAndRequestConfiguration(z.PUBLISH,a,n,r,o);break}case z.EDFS_NATS_REQUEST:{c=this.getNatsPublishAndRequestConfiguration(z.REQUEST,a,n,r,o);break}case z.EDFS_NATS_SUBSCRIBE:{c=this.getNatsSubscribeConfiguration(a,n,r,o);break}case z.EDFS_REDIS_PUBLISH:{c=this.getRedisPublishConfiguration(a,n,r,o);break}case z.EDFS_REDIS_SUBSCRIBE:{c=this.getRedisSubscribeConfiguration(a,n,r,o);break}default:continue}if(o.length>0){this.errors.push((0,le.invalidEventDirectiveError)(a.name.value,i,o));continue}c&&(0,je.getValueOrDefault)(this.eventsConfigurations,this.renamedParentTypeName||this.originalParentTypeName,()=>[]).push(c)}}getValidEventsDirectiveNamesForOperationTypeNode(t){switch(t){case Z.OperationTypeNode.MUTATION:return new Set([z.EDFS_KAFKA_PUBLISH,z.EDFS_NATS_PUBLISH,z.EDFS_NATS_REQUEST,z.EDFS_REDIS_PUBLISH]);case Z.OperationTypeNode.QUERY:return new Set([z.EDFS_NATS_REQUEST]);case Z.OperationTypeNode.SUBSCRIPTION:return new Set([z.EDFS_KAFKA_SUBSCRIBE,z.EDFS_NATS_SUBSCRIBE,z.EDFS_REDIS_SUBSCRIBE])}}getOperationTypeNodeForRootTypeName(t){let n=this.operationTypeNodeByTypeName.get(t);if(n)return n;switch(t){case z.MUTATION:return Z.OperationTypeNode.MUTATION;case z.QUERY:return Z.OperationTypeNode.QUERY;case z.SUBSCRIPTION:return Z.OperationTypeNode.SUBSCRIPTION;default:return}}validateEventDrivenRootType(t,n,r,i){let a=this.getOperationTypeNodeForRootTypeName(t.name);if(!a){this.errors.push((0,le.invalidRootTypeError)(t.name));return}let o=this.getValidEventsDirectiveNamesForOperationTypeNode(a);for(let[c,l]of t.fieldDataByName){let d=`${l.originalParentTypeName}.${c}`,p=new Set;for(let K of VE.EVENT_DIRECTIVE_NAMES)l.directivesByDirectiveName.has(K)&&p.add(K);let y=new Set;for(let K of p)o.has(K)||y.add(K);if((p.size<1||y.size>0)&&n.set(d,{definesDirectives:p.size>0,invalidDirectiveNames:[...y]}),a===Z.OperationTypeNode.MUTATION){let K=(0,Ei.printTypeNode)(l.type);K!==z.NON_NULLABLE_EDFS_PUBLISH_EVENT_RESULT&&i.set(d,K);continue}let I=(0,Ei.printTypeNode)(l.type),v=l.namedTypeName+"!",F=!1,k=this.concreteTypeNamesByAbstractTypeName.get(l.namedTypeName)||new Set([l.namedTypeName]);for(let K of k)if(F||(F=this.entityDataByTypeName.has(K)),F)break;(!F||I!==v)&&r.set(d,I)}}validateEventDrivenKeyDefinition(t,n){let r=this.keyFieldSetDatasByTypeName.get(t);if(r)for(let[i,{isUnresolvable:a}]of r)a||(0,je.getValueOrDefault)(n,t,()=>[]).push(i)}validateEventDrivenObjectFields(t,n,r,i){var a;for(let[o,c]of t){let l=`${c.originalParentTypeName}.${o}`;if(n.has(o)){(a=c.externalFieldDataBySubgraphName.get(this.subgraphName))!=null&&a.isDefinedExternal||r.set(l,o);continue}i.set(l,o)}}isEdfsPublishResultValid(){let t=this.parentDefinitionDataByTypeName.get(z.EDFS_PUBLISH_RESULT);if(!t)return!0;if(t.kind!==Z.Kind.OBJECT_TYPE_DEFINITION||t.fieldDataByName.size!=1)return!1;for(let[n,r]of t.fieldDataByName)if(r.argumentDataByName.size>0||n!==z.SUCCESS||(0,Ei.printTypeNode)(r.type)!==z.NON_NULLABLE_BOOLEAN)return!1;return!0}isNatsStreamConfigurationInputObjectValid(t){if(t.kind!==Z.Kind.INPUT_OBJECT_TYPE_DEFINITION||t.inputValueDataByName.size!=3)return!1;for(let[n,r]of t.inputValueDataByName)switch(n){case z.CONSUMER_INACTIVE_THRESHOLD:{if((0,Ei.printTypeNode)(r.type)!==z.NON_NULLABLE_INT||!r.defaultValue||r.defaultValue.kind!==Z.Kind.INT||r.defaultValue.value!==`${jE.DEFAULT_CONSUMER_INACTIVE_THRESHOLD}`)return!1;break}case z.CONSUMER_NAME:case z.STREAM_NAME:{if((0,Ei.printTypeNode)(r.type)!==z.NON_NULLABLE_STRING)return!1;break}default:return!1}return!0}validateEventDrivenSubgraph(t){let n=[],r=new Map,i=new Map,a=new Map,o=new Map,c=new Map,l=new Map,d=new Set,p=new Set;for(let[y,I]of this.parentDefinitionDataByTypeName){if(y===z.EDFS_PUBLISH_RESULT||y===z.EDFS_NATS_STREAM_CONFIGURATION||I.kind!==Z.Kind.OBJECT_TYPE_DEFINITION)continue;if(I.isRootType){this.validateEventDrivenRootType(I,r,i,a);continue}let v=this.keyFieldNamesByParentTypeName.get(y);if(!v){p.add(y);continue}this.validateEventDrivenKeyDefinition(y,o),this.validateEventDrivenObjectFields(I.fieldDataByName,v,c,l)}if(this.isEdfsPublishResultValid()||n.push(le.invalidEdfsPublishResultObjectErrorMessage),this.edfsDirectiveReferences.has(z.EDFS_NATS_SUBSCRIBE)){let y=this.parentDefinitionDataByTypeName.get(z.EDFS_NATS_STREAM_CONFIGURATION);y&&this.usesEdfsNatsStreamConfiguration&&!this.isNatsStreamConfigurationInputObjectValid(y)&&n.push(le.invalidNatsStreamConfigurationDefinitionErrorMessage),this.parentDefinitionDataByTypeName.delete(z.EDFS_NATS_STREAM_CONFIGURATION),t.push(qt.EDFS_NATS_STREAM_CONFIGURATION_DEFINITION)}r.size>0&&n.push((0,le.invalidRootTypeFieldEventsDirectivesErrorMessage)(r)),a.size>0&&n.push((0,le.invalidEventDrivenMutationResponseTypeErrorMessage)(a)),i.size>0&&n.push((0,le.invalidRootTypeFieldResponseTypesEventDrivenErrorMessage)(i)),o.size>0&&n.push((0,le.invalidKeyFieldSetsEventDrivenErrorMessage)(o)),c.size>0&&n.push((0,le.nonExternalKeyFieldNamesEventDrivenErrorMessage)(c)),l.size>0&&n.push((0,le.nonKeyFieldNamesEventDrivenErrorMessage)(l)),d.size>0&&n.push((0,le.nonEntityObjectExtensionsEventDrivenErrorMessage)([...d])),p.size>0&&n.push((0,le.nonKeyComposingObjectTypeNamesEventDrivenErrorMessage)([...p])),n.length>0&&this.errors.push((0,le.invalidEventDrivenGraphError)(n))}validateUnionMembers(t){if(t.memberByMemberTypeName.size<1){this.errors.push((0,le.noDefinedUnionMembersError)(t.name));return}let n=[];for(let r of t.memberByMemberTypeName.keys()){let i=this.parentDefinitionDataByTypeName.get(r);i&&i.kind!==Z.Kind.OBJECT_TYPE_DEFINITION&&n.push(`"${r}", which is type "${(0,je.kindToNodeType)(i.kind)}"`)}n.length>0&&this.errors.push((0,le.invalidUnionMemberTypeError)(t.name,n))}addConcreteTypeNamesForUnion(t){if(!t.types||t.types.length<1)return;let n=t.name.value;for(let r of t.types){let i=r.name.value;(0,je.getValueOrDefault)(this.concreteTypeNamesByAbstractTypeName,n,()=>new Set).add(i),this.internalGraph.addEdge(this.internalGraph.addOrUpdateNode(n,{isAbstract:!0}),this.internalGraph.addOrUpdateNode(i),i,!0)}}addValidKeyFieldSetConfigurations(){for(let[t,n]of this.keyFieldSetDatasByTypeName){let r=this.parentDefinitionDataByTypeName.get(t);if(!r||r.kind!==Z.Kind.OBJECT_TYPE_DEFINITION&&r.kind!==Z.Kind.INTERFACE_TYPE_DEFINITION){this.errors.push((0,le.undefinedCompositeOutputTypeError)(t));continue}let i=(0,sn.getParentTypeName)(r),a=(0,je.getValueOrDefault)(this.configurationDataByTypeName,i,()=>(0,Zf.newConfigurationData)(!0,i)),o=(0,ni.validateKeyFieldSets)(this,r,n);o&&(a.keys=o)}}getValidFlattenedDirectiveArray(t,n,r=!1){let i=[];for(let[a,o]of t){if(r&&z.INHERITABLE_DIRECTIVE_NAMES.has(a))continue;let c=this.directiveDefinitionDataByDirectiveName.get(a);if(!c)continue;if(!c.isRepeatable&&o.length>1){let p=(0,je.getValueOrDefault)(this.invalidRepeatedDirectiveNameByCoords,n,()=>new Set);p.has(a)||(p.add(a),this.errors.push((0,le.invalidDirectiveError)(a,n,"1st",[(0,le.invalidRepeatedDirectiveErrorMessage)(a)])));continue}if(a!==z.KEY){i.push(...o);continue}let l=[],d=new Set;for(let p=0;pnew Set).add(k)),(0,je.getValueOrDefault)(a.keyFieldNamesByParentTypeName,v,()=>new Set).add(F);let se=(0,rr.getTypeNodeNamedTypeName)(K.node.type);if(qt.BASE_SCALARS.has(se))return;let ie=a.parentDefinitionDataByTypeName.get(se);if(!ie)return Z.BREAK;if(ie.kind===Z.Kind.OBJECT_TYPE_DEFINITION){p=!0,c.push(ie);return}if((0,bn.isKindAbstract)(ie.kind))return Z.BREAK}},InlineFragment:{enter(){return Z.BREAK}},SelectionSet:{enter(){if(!p||(d+=1,p=!1,d<0||d>=c.length))return Z.BREAK},leave(){p&&(p=!1),d-=1,c.pop()}}}),!(l.size<1))for(let[y,I]of l)this.warnings.push((0,Wa.externalEntityExtensionKeyFieldWarning)(i.name,y,[...I],this.subgraphName))}}for(let n of t)this.keyFieldSetDatasByTypeName.delete(n)}addValidConditionalFieldSetConfigurations(){for(let[t,n]of this.fieldSetDataByTypeName){let r=this.parentDefinitionDataByTypeName.get(t);if(!r||r.kind!==Z.Kind.OBJECT_TYPE_DEFINITION&&r.kind!==Z.Kind.INTERFACE_TYPE_DEFINITION){this.errors.push((0,le.undefinedCompositeOutputTypeError)(t));continue}let i=(0,sn.getParentTypeName)(r),a=(0,je.getValueOrDefault)(this.configurationDataByTypeName,i,()=>(0,Zf.newConfigurationData)(!1,i)),o=this.validateProvidesOrRequires(r,n.provides,!0);o&&(a.provides=o);let c=this.validateProvidesOrRequires(r,n.requires,!1);c&&(a.requires=c)}}addFieldNamesToConfigurationData(t,n){let r=new Set;for(let[i,a]of t){let o=a.externalFieldDataBySubgraphName.get(this.subgraphName);if(!o||o.isUnconditionallyProvided){n.fieldNames.add(i);continue}r.add(i),this.edfsDirectiveReferences.size>0&&n.fieldNames.add(i)}r.size>0&&(n.externalFieldNames=r)}validateOneOfDirective({data:t,requiredFieldNames:n}){var r,i;return t.directivesByDirectiveName.has(z.ONE_OF)?n.size>0?(this.errors.push((0,le.oneOfRequiredFieldsError)({requiredFieldNames:Array.from(n),typeName:t.name})),!1):(t.inputValueDataByName.size===1&&this.warnings.push((0,Wa.singleSubgraphInputFieldOneOfWarning)({fieldName:(i=(r=(0,je.getFirstEntry)(t.inputValueDataByName))==null?void 0:r.name)!=null?i:"unknown",subgraphName:this.subgraphName,typeName:t.name})),!0):!0}normalize(t){var a;(0,fV.upsertDirectiveSchemaAndEntityDefinitions)(this,t),(0,fV.upsertParentsAndChildren)(this,t),this.validateDirectives(this.schemaData,z.SCHEMA);for(let[o,c]of this.parentDefinitionDataByTypeName)this.validateDirectives(c,o);this.invalidORScopesCoords.size>0&&this.errors.push((0,le.orScopesLimitError)(qt.MAX_OR_SCOPES,[...this.invalidORScopesCoords]));let n=[];for(let o of qt.BASE_DIRECTIVE_DEFINITIONS)n.push(o);if(n.push(qt.FIELD_SET_SCALAR_DEFINITION),this.isSubgraphVersionTwo){for(let o of qt.VERSION_TWO_DIRECTIVE_DEFINITIONS)n.push(o),this.directiveDefinitionByDirectiveName.set(o.name.value,o);n.push(qt.SCOPE_SCALAR_DEFINITION)}for(let o of this.edfsDirectiveReferences){let c=qt.EVENT_DRIVEN_DIRECTIVE_DEFINITIONS_BY_DIRECTIVE_NAME.get(o);if(!c){this.errors.push((0,le.invalidEdfsDirectiveName)(o));continue}n.push(c)}this.edfsDirectiveReferences.size>0&&this.referencedDirectiveNames.has(z.SUBSCRIPTION_FILTER)&&(n.push(qt.SUBSCRIPTION_FILTER_DEFINITION),n.push(qt.SUBSCRIPTION_FILTER_CONDITION_DEFINITION),n.push(qt.SUBSCRIPTION_FIELD_CONDITION_DEFINITION),n.push(qt.SUBSCRIPTION_FILTER_VALUE_DEFINITION)),this.referencedDirectiveNames.has(z.CONFIGURE_DESCRIPTION)&&n.push(qt.CONFIGURE_DESCRIPTION_DEFINITION),this.referencedDirectiveNames.has(z.CONFIGURE_CHILD_DESCRIPTIONS)&&n.push(qt.CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION),this.referencedDirectiveNames.has(z.LINK)&&(n.push(qt.LINK_DEFINITION),n.push(qt.LINK_IMPORT_DEFINITION),n.push(qt.LINK_PURPOSE_DEFINITION)),this.referencedDirectiveNames.has(z.ONE_OF)&&n.push(qt.ONE_OF_DEFINITION),this.referencedDirectiveNames.has(z.REQUIRE_FETCH_REASONS)&&n.push(qt.REQUIRE_FETCH_REASONS_DEFINITION),this.referencedDirectiveNames.has(z.SEMANTIC_NON_NULL)&&n.push(qt.SEMANTIC_NON_NULL_DEFINITION);for(let o of this.customDirectiveDefinitions.values())n.push(o);this.schemaData.operationTypes.size>0&&n.push(this.getSchemaNodeByData(this.schemaData));for(let o of this.invalidConfigureDescriptionNodeDatas)o.description||this.errors.push((0,le.configureDescriptionNoDescriptionError)((0,je.kindToNodeType)(o.kind),o.name));this.evaluateExternalKeyFields();for(let[o,c]of this.parentDefinitionDataByTypeName)switch(c.kind){case Z.Kind.ENUM_TYPE_DEFINITION:{if(c.enumValueDataByName.size<1){this.errors.push((0,le.noDefinedEnumValuesError)(o));break}n.push(this.getEnumNodeByData(c));break}case Z.Kind.INPUT_OBJECT_TYPE_DEFINITION:{if(c.inputValueDataByName.size<1){this.errors.push((0,le.noInputValueDefinitionsError)(o));break}let l=new Set;for(let d of c.inputValueDataByName.values()){if((0,sn.isTypeRequired)(d.type)&&l.add(d.name),d.namedTypeKind!==Z.Kind.NULL)continue;let p=this.parentDefinitionDataByTypeName.get(d.namedTypeName);if(p){if(!(0,sn.isInputNodeKind)(p.kind)){this.errors.push((0,le.invalidNamedTypeError)({data:d,namedTypeData:p,nodeType:`${(0,je.kindToNodeType)(c.kind)} field`}));continue}d.namedTypeKind=p.kind}}if(!this.validateOneOfDirective({data:c,requiredFieldNames:l}))break;n.push(this.getInputObjectNodeByData(c));break}case Z.Kind.INTERFACE_TYPE_DEFINITION:case Z.Kind.OBJECT_TYPE_DEFINITION:{let l=this.entityDataByTypeName.has(o),d=this.operationTypeNodeByTypeName.get(o),p=c.kind===Z.Kind.OBJECT_TYPE_DEFINITION;this.isSubgraphVersionTwo&&c.extensionType===za.ExtensionType.EXTENDS&&(c.extensionType=za.ExtensionType.NONE),d&&(c.fieldDataByName.delete(z.SERVICE_FIELD),c.fieldDataByName.delete(z.ENTITIES_FIELD));let y=[];for(let[K,J]of c.fieldDataByName){if(!p&&((a=J.externalFieldDataBySubgraphName.get(this.subgraphName))!=null&&a.isDefinedExternal)&&y.push(K),this.validateArguments(J,c.kind),J.namedTypeKind!==Z.Kind.NULL)continue;let se=this.parentDefinitionDataByTypeName.get(J.namedTypeName);if(se){if(!(0,sn.isOutputNodeKind)(se.kind)){this.errors.push((0,le.invalidNamedTypeError)({data:J,namedTypeData:se,nodeType:`${(0,je.kindToNodeType)(c.kind)} field`}));continue}J.namedTypeKind=this.entityInterfaceDataByTypeName.get(se.name)?Z.Kind.INTERFACE_TYPE_DEFINITION:se.kind}}y.length>0&&(this.isSubgraphVersionTwo?this.errors.push((0,le.externalInterfaceFieldsError)(o,y)):this.warnings.push((0,Wa.externalInterfaceFieldsWarning)(this.subgraphName,o,y)));let I=(0,sn.getParentTypeName)(c),v=(0,je.getValueOrDefault)(this.configurationDataByTypeName,I,()=>(0,Zf.newConfigurationData)(l,o)),F=this.entityInterfaceDataByTypeName.get(o);if(F){F.fieldDatas=(0,Gn.fieldDatasToSimpleFieldDatas)(c.fieldDataByName.values());let K=this.concreteTypeNamesByAbstractTypeName.get(o);K&&(0,je.addIterableValuesToSet)(K,F.concreteTypeNames),v.isInterfaceObject=F.isInterfaceObject,v.entityInterfaceConcreteTypeNames=F.concreteTypeNames}let k=this.eventsConfigurations.get(I);k&&(v.events=k),this.addFieldNamesToConfigurationData(c.fieldDataByName,v),this.validateInterfaceImplementations(c),n.push(this.getCompositeOutputNodeByData(c)),c.fieldDataByName.size<1&&!(0,ni.isNodeQuery)(o,d)&&this.errors.push((0,le.noFieldDefinitionsError)((0,je.kindToNodeType)(c.kind),o)),c.requireFetchReasonsFieldNames.size>0&&(v.requireFetchReasonsFieldNames=[...c.requireFetchReasonsFieldNames]);break}case Z.Kind.SCALAR_TYPE_DEFINITION:{if(c.extensionType===za.ExtensionType.REAL){this.errors.push((0,le.noBaseScalarDefinitionError)(o));break}n.push(this.getScalarNodeByData(c));break}case Z.Kind.UNION_TYPE_DEFINITION:{n.push(this.getUnionNodeByData(c)),this.validateUnionMembers(c);break}default:throw(0,le.unexpectedKindFatalError)(o)}this.addValidConditionalFieldSetConfigurations(),this.addValidKeyFieldSetConfigurations();for(let o of Object.values(Z.OperationTypeNode)){let c=this.schemaData.operationTypes.get(o),l=(0,je.getOrThrowError)(bn.operationTypeNodeToDefaultType,o,z.OPERATION_TO_DEFAULT),d=c?(0,rr.getTypeNodeNamedTypeName)(c.type):l;if(qt.BASE_SCALARS.has(d)&&this.referencedTypeNames.add(d),d!==l&&this.parentDefinitionDataByTypeName.has(l)){this.errors.push((0,le.invalidRootTypeDefinitionError)(o,d,l));continue}let p=this.parentDefinitionDataByTypeName.get(d);if(c){if(!p)continue;this.operationTypeNodeByTypeName.set(d,o)}if(!p)continue;let y=this.configurationDataByTypeName.get(l);y&&(y.isRootNode=!0,y.typeName=l),p.kind!==Z.Kind.OBJECT_TYPE_DEFINITION&&this.errors.push((0,le.operationDefinitionError)(d,o,p.kind))}for(let o of this.referencedTypeNames){let c=this.parentDefinitionDataByTypeName.get(o);if(!c){this.errors.push((0,le.undefinedTypeError)(o));continue}if(c.kind!==Z.Kind.INTERFACE_TYPE_DEFINITION)continue;let l=this.concreteTypeNamesByAbstractTypeName.get(o);(!l||l.size<1)&&this.warnings.push((0,Wa.unimplementedInterfaceOutputTypeWarning)(this.subgraphName,o))}let r=new Map;for(let o of this.directiveDefinitionByDirectiveName.values()){let c=(0,bn.extractExecutableDirectiveLocations)(o.locations,new Set);c.size<1||this.addPersistedDirectiveDefinitionDataByNode(r,o,c)}this.isSubgraphEventDrivenGraph=this.edfsDirectiveReferences.size>0,this.isSubgraphEventDrivenGraph&&this.validateEventDrivenSubgraph(n);for(let o of this.unvalidatedExternalFieldCoords)this.isSubgraphVersionTwo?this.errors.push((0,le.invalidExternalDirectiveError)(o)):this.warnings.push((0,Wa.invalidExternalFieldWarning)(o,this.subgraphName));if(this.errors.length>0)return{success:!1,errors:this.errors,warnings:this.warnings};let i={kind:Z.Kind.DOCUMENT,definitions:n};return{authorizationDataByParentTypeName:this.authorizationDataByParentTypeName,concreteTypeNamesByAbstractTypeName:this.concreteTypeNamesByAbstractTypeName,conditionalFieldDataByCoordinates:this.conditionalFieldDataByCoords,configurationDataByTypeName:this.configurationDataByTypeName,directiveDefinitionByDirectiveName:this.directiveDefinitionByDirectiveName,entityDataByTypeName:this.entityDataByTypeName,entityInterfaces:this.entityInterfaceDataByTypeName,fieldCoordsByNamedTypeName:this.fieldCoordsByNamedTypeName,isEventDrivenGraph:this.isSubgraphEventDrivenGraph,isVersionTwo:this.isSubgraphVersionTwo,keyFieldNamesByParentTypeName:this.keyFieldNamesByParentTypeName,keyFieldSetsByEntityTypeNameByKeyFieldCoords:this.keyFieldSetsByEntityTypeNameByFieldCoords,operationTypes:this.operationTypeNodeByTypeName,originalTypeNameByRenamedTypeName:this.originalTypeNameByRenamedTypeName,overridesByTargetSubgraphName:this.overridesByTargetSubgraphName,parentDefinitionDataByTypeName:this.parentDefinitionDataByTypeName,persistedDirectiveDefinitionDataByDirectiveName:r,subgraphAST:i,subgraphString:(0,Z.print)(i),schema:(0,Yle.buildASTSchema)(i,{assumeValid:!0,assumeValidSDL:!0}),success:!0,warnings:this.warnings}}};Sc.NormalizationFactory=ep;function Wle(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,c=new Set,l=new Map,d=new Set,p=new Set,y=[],I=new Set,v=new Map,F=[],k=[];for(let se of e)se.name&&(0,Jle.recordSubgraphName)(se.name,d,p);let K=new hD.Graph;for(let se=0;se0&&F.push(...de.warnings),!de.success){k.push((0,le.subgraphValidationError)(Te,de.errors));continue}if(!de){k.push((0,le.subgraphValidationError)(Te,[le.subgraphValidationFailureError]));continue}l.set(Te,de.parentDefinitionDataByTypeName);for(let Re of de.authorizationDataByParentTypeName.values())(0,Gn.upsertAuthorizationData)(t,Re,I);for(let[Re,xe]of de.fieldCoordsByNamedTypeName)(0,je.addIterableValuesToSet)(xe,(0,je.getValueOrDefault)(v,Re,()=>new Set));for(let[Re,xe]of de.concreteTypeNamesByAbstractTypeName){let tt=n.get(Re);if(!tt){n.set(Re,new Set(xe));continue}(0,je.addIterableValuesToSet)(xe,tt)}for(let[Re,xe]of de.entityDataByTypeName){let tt=xe.keyFieldSetDatasBySubgraphName.get(Te);tt&&(0,Gn.upsertEntityData)({entityDataByTypeName:r,keyFieldSetDataByFieldSet:tt,typeName:Re,subgraphName:Te})}if(ie.name&&i.set(Te,{conditionalFieldDataByCoordinates:de.conditionalFieldDataByCoordinates,configurationDataByTypeName:de.configurationDataByTypeName,definitions:de.subgraphAST,directiveDefinitionByDirectiveName:de.directiveDefinitionByDirectiveName,entityInterfaces:de.entityInterfaces,isVersionTwo:de.isVersionTwo,keyFieldNamesByParentTypeName:de.keyFieldNamesByParentTypeName,name:Te,operationTypes:de.operationTypes,overriddenFieldNamesByParentTypeName:new Map,parentDefinitionDataByTypeName:de.parentDefinitionDataByTypeName,persistedDirectiveDefinitionDataByDirectiveName:de.persistedDirectiveDefinitionDataByDirectiveName,schema:de.schema,url:ie.url}),!(de.overridesByTargetSubgraphName.size<1))for(let[Re,xe]of de.overridesByTargetSubgraphName){let tt=d.has(Re);for(let[ee,Se]of xe){let _t=de.originalTypeNameByRenamedTypeName.get(ee)||ee;if(!tt)F.push((0,Wa.invalidOverrideTargetSubgraphNameWarning)(Re,_t,[...Se],ie.name));else{let en=(0,je.getValueOrDefault)(a,Re,()=>new Map),tn=(0,je.getValueOrDefault)(en,ee,()=>new Set(Se));(0,je.addIterableValuesToSet)(Se,tn)}for(let en of Se){let tn=`${_t}.${en}`,An=o.get(tn);if(!An){o.set(tn,[Te]);continue}An.push(Te),c.add(tn)}}}}let J=[];if(I.size>0&&J.push((0,le.orScopesLimitError)(qt.MAX_OR_SCOPES,[...I])),(y.length>0||p.size>0)&&J.push((0,le.invalidSubgraphNamesError)([...p],y)),c.size>0){let se=[];for(let ie of c){let Te=(0,je.getOrThrowError)(o,ie,"overrideSourceSubgraphNamesByFieldPath");se.push((0,le.duplicateOverriddenFieldErrorMessage)(ie,Te))}J.push((0,le.duplicateOverriddenFieldsError)(se))}if(J.push(...k),J.length>0)return{errors:J,success:!1,warnings:F};for(let[se,ie]of a){let Te=(0,je.getOrThrowError)(i,se,"internalSubgraphBySubgraphName");Te.overriddenFieldNamesByParentTypeName=ie;for(let[de,Re]of ie){let xe=Te.configurationDataByTypeName.get(de);xe&&((0,Gn.subtractSet)(Re,xe.fieldNames),xe.fieldNames.size<1&&Te.configurationDataByTypeName.delete(de))}}return{authorizationDataByParentTypeName:t,concreteTypeNamesByAbstractTypeName:n,entityDataByTypeName:r,fieldCoordsByNamedTypeName:v,internalSubgraphBySubgraphName:i,internalGraph:K,success:!0,warnings:F}}});var KE=w(bc=>{"use strict";m();T();N();Object.defineProperty(bc,"__esModule",{value:!0});bc.DivergentType=void 0;bc.getLeastRestrictiveMergedTypeNode=Zle;bc.getMostRestrictiveMergedTypeNode=ede;bc.renameNamedTypeName=tde;var Oc=De(),NV=Mi(),Xle=du(),mV=Hr(),TV=gl(),Dc;(function(e){e[e.NONE=0]="NONE",e[e.CURRENT=1]="CURRENT",e[e.OTHER=2]="OTHER"})(Dc||(bc.DivergentType=Dc={}));function EV(e,t,n,r,i){t=(0,Xle.getMutableTypeNode)(t,n,i);let a={kind:e.kind},o=Dc.NONE,c=a;for(let l=0;l{"use strict";m();T();N();Object.defineProperty(gD,"__esModule",{value:!0});gD.renameRootTypes=ide;var nde=De(),ID=Hr(),rde=KE(),_u=vr(),Ac=Sr();function ide(e,t){let n,r=!1,i;(0,nde.visit)(t.definitions,{FieldDefinition:{enter(a){let o=a.name.value;if(r&&(o===_u.SERVICE_FIELD||o===_u.ENTITIES_FIELD))return n.fieldDataByName.delete(o),!1;let c=n.name,l=(0,Ac.getOrThrowError)(n.fieldDataByName,o,`${c}.fieldDataByFieldName`),d=t.operationTypes.get(l.namedTypeName);if(d){let p=(0,Ac.getOrThrowError)(ID.operationTypeNodeToDefaultType,d,_u.OPERATION_TO_DEFAULT);l.namedTypeName!==p&&(0,rde.renameNamedTypeName)(l,p,e.errors)}return i!=null&&i.has(o)&&l.isShareableBySubgraphName.delete(t.name),!1}},InterfaceTypeDefinition:{enter(a){let o=a.name.value;if(!e.entityInterfaceFederationDataByTypeName.get(o))return!1;n=(0,Ac.getOrThrowError)(t.parentDefinitionDataByTypeName,o,_u.PARENT_DEFINITION_DATA)},leave(){n=void 0}},ObjectTypeDefinition:{enter(a){let o=a.name.value,c=t.operationTypes.get(o),l=c?(0,Ac.getOrThrowError)(ID.operationTypeNodeToDefaultType,c,_u.OPERATION_TO_DEFAULT):o;n=(0,Ac.getOrThrowError)(t.parentDefinitionDataByTypeName,o,_u.PARENT_DEFINITION_DATA),r=n.isRootType,!e.entityInterfaceFederationDataByTypeName.get(o)&&(e.addValidPrimaryKeyTargetsToEntityData(o),i=t.overriddenFieldNamesByParentTypeName.get(l),o!==l&&(n.name=l,t.parentDefinitionDataByTypeName.set(l,n),t.parentDefinitionDataByTypeName.delete(o)))},leave(){n=void 0,r=!1,i=void 0}},ObjectTypeExtension:{enter(a){let o=a.name.value,c=t.operationTypes.get(o),l=c?(0,Ac.getOrThrowError)(ID.operationTypeNodeToDefaultType,c,_u.OPERATION_TO_DEFAULT):o;n=(0,Ac.getOrThrowError)(t.parentDefinitionDataByTypeName,o,_u.PARENT_DEFINITION_DATA),r=n.isRootType,e.addValidPrimaryKeyTargetsToEntityData(o),i=t.overriddenFieldNamesByParentTypeName.get(o),o!==l&&(n.name=l,t.parentDefinitionDataByTypeName.set(l,n),t.parentDefinitionDataByTypeName.delete(o))},leave(){n=void 0,r=!1,i=void 0}}})}});var hV=w((Zl,tp)=>{"use strict";m();T();N();(function(){var e,t="4.17.21",n=200,r="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",i="Expected a function",a="Invalid `variable` option passed into `_.template`",o="__lodash_hash_undefined__",c=500,l="__lodash_placeholder__",d=1,p=2,y=4,I=1,v=2,F=1,k=2,K=4,J=8,se=16,ie=32,Te=64,de=128,Re=256,xe=512,tt=30,ee="...",Se=800,_t=16,en=1,tn=2,An=3,Qt=1/0,mn=9007199254740991,Pr=17976931348623157e292,Fr=NaN,kn=4294967295,zt=kn-1,Rn=kn>>>1,ue=[["ary",de],["bind",F],["bindKey",k],["curry",J],["curryRight",se],["flip",xe],["partial",ie],["partialRight",Te],["rearg",Re]],be="[object Arguments]",ve="[object Array]",Ce="[object AsyncFunction]",vt="[object Boolean]",Y="[object Date]",oe="[object DOMException]",qe="[object Error]",Ye="[object Function]",Ut="[object GeneratorFunction]",nt="[object Map]",Rt="[object Number]",ns="[object Null]",Vr="[object Object]",rs="[object Promise]",xc="[object Proxy]",ga="[object RegExp]",mr="[object Set]",ri="[object String]",Vt="[object Symbol]",Nr="[object Undefined]",Du="[object WeakMap]",_a="[object WeakSet]",bu="[object ArrayBuffer]",R="[object DataView]",h="[object Float32Array]",g="[object Float64Array]",C="[object Int8Array]",G="[object Int16Array]",te="[object Int32Array]",fe="[object Uint8Array]",pt="[object Uint8ClampedArray]",Nn="[object Uint16Array]",on="[object Uint32Array]",yn=/\b__p \+= '';/g,nn=/\b(__p \+=) '' \+/g,W1=/(__e\(.*?\)|\b__t\)) \+\n'';/g,_b=/&(?:amp|lt|gt|quot|#39);/g,vb=/[&<>"']/g,X1=RegExp(_b.source),Z1=RegExp(vb.source),ej=/<%-([\s\S]+?)%>/g,tj=/<%([\s\S]+?)%>/g,Sb=/<%=([\s\S]+?)%>/g,nj=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rj=/^\w*$/,ij=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,_h=/[\\^$.*+?()[\]{}|]/g,aj=RegExp(_h.source),vh=/^\s+/,sj=/\s/,oj=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,uj=/\{\n\/\* \[wrapped with (.+)\] \*/,cj=/,? & /,lj=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,dj=/[()=,{}\[\]\/\s]/,fj=/\\(\\)?/g,pj=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ob=/\w*$/,mj=/^[-+]0x[0-9a-f]+$/i,Nj=/^0b[01]+$/i,Tj=/^\[object .+?Constructor\]$/,Ej=/^0o[0-7]+$/i,hj=/^(?:0|[1-9]\d*)$/,yj=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Sp=/($^)/,Ij=/['\n\r\u2028\u2029\\]/g,Op="\\ud800-\\udfff",gj="\\u0300-\\u036f",_j="\\ufe20-\\ufe2f",vj="\\u20d0-\\u20ff",Db=gj+_j+vj,bb="\\u2700-\\u27bf",Ab="a-z\\xdf-\\xf6\\xf8-\\xff",Sj="\\xac\\xb1\\xd7\\xf7",Oj="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Dj="\\u2000-\\u206f",bj=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Rb="A-Z\\xc0-\\xd6\\xd8-\\xde",Pb="\\ufe0e\\ufe0f",Fb=Sj+Oj+Dj+bj,Sh="['\u2019]",Aj="["+Op+"]",wb="["+Fb+"]",Dp="["+Db+"]",Lb="\\d+",Rj="["+bb+"]",Cb="["+Ab+"]",Bb="[^"+Op+Fb+Lb+bb+Ab+Rb+"]",Oh="\\ud83c[\\udffb-\\udfff]",Pj="(?:"+Dp+"|"+Oh+")",Ub="[^"+Op+"]",Dh="(?:\\ud83c[\\udde6-\\uddff]){2}",bh="[\\ud800-\\udbff][\\udc00-\\udfff]",qc="["+Rb+"]",kb="\\u200d",Mb="(?:"+Cb+"|"+Bb+")",Fj="(?:"+qc+"|"+Bb+")",xb="(?:"+Sh+"(?:d|ll|m|re|s|t|ve))?",qb="(?:"+Sh+"(?:D|LL|M|RE|S|T|VE))?",Vb=Pj+"?",jb="["+Pb+"]?",wj="(?:"+kb+"(?:"+[Ub,Dh,bh].join("|")+")"+jb+Vb+")*",Lj="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Cj="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Kb=jb+Vb+wj,Bj="(?:"+[Rj,Dh,bh].join("|")+")"+Kb,Uj="(?:"+[Ub+Dp+"?",Dp,Dh,bh,Aj].join("|")+")",kj=RegExp(Sh,"g"),Mj=RegExp(Dp,"g"),Ah=RegExp(Oh+"(?="+Oh+")|"+Uj+Kb,"g"),xj=RegExp([qc+"?"+Cb+"+"+xb+"(?="+[wb,qc,"$"].join("|")+")",Fj+"+"+qb+"(?="+[wb,qc+Mb,"$"].join("|")+")",qc+"?"+Mb+"+"+xb,qc+"+"+qb,Cj,Lj,Lb,Bj].join("|"),"g"),qj=RegExp("["+kb+Op+Db+Pb+"]"),Vj=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,jj=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Kj=-1,En={};En[h]=En[g]=En[C]=En[G]=En[te]=En[fe]=En[pt]=En[Nn]=En[on]=!0,En[be]=En[ve]=En[bu]=En[vt]=En[R]=En[Y]=En[qe]=En[Ye]=En[nt]=En[Rt]=En[Vr]=En[ga]=En[mr]=En[ri]=En[Du]=!1;var Tn={};Tn[be]=Tn[ve]=Tn[bu]=Tn[R]=Tn[vt]=Tn[Y]=Tn[h]=Tn[g]=Tn[C]=Tn[G]=Tn[te]=Tn[nt]=Tn[Rt]=Tn[Vr]=Tn[ga]=Tn[mr]=Tn[ri]=Tn[Vt]=Tn[fe]=Tn[pt]=Tn[Nn]=Tn[on]=!0,Tn[qe]=Tn[Ye]=Tn[Du]=!1;var Gj={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},$j={"&":"&","<":"<",">":">",'"':""","'":"'"},Qj={"&":"&","<":"<",">":">",""":'"',"'":"'"},Yj={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Jj=parseFloat,Hj=parseInt,Gb=typeof global=="object"&&global&&global.Object===Object&&global,zj=typeof self=="object"&&self&&self.Object===Object&&self,ir=Gb||zj||Function("return this")(),Rh=typeof Zl=="object"&&Zl&&!Zl.nodeType&&Zl,Au=Rh&&typeof tp=="object"&&tp&&!tp.nodeType&&tp,$b=Au&&Au.exports===Rh,Ph=$b&&Gb.process,hi=function(){try{var $=Au&&Au.require&&Au.require("util").types;return $||Ph&&Ph.binding&&Ph.binding("util")}catch(ce){}}(),Qb=hi&&hi.isArrayBuffer,Yb=hi&&hi.isDate,Jb=hi&&hi.isMap,Hb=hi&&hi.isRegExp,zb=hi&&hi.isSet,Wb=hi&&hi.isTypedArray;function ii($,ce,ne){switch(ne.length){case 0:return $.call(ce);case 1:return $.call(ce,ne[0]);case 2:return $.call(ce,ne[0],ne[1]);case 3:return $.call(ce,ne[0],ne[1],ne[2])}return $.apply(ce,ne)}function Wj($,ce,ne,Be){for(var ut=-1,Yt=$==null?0:$.length;++ut-1}function Fh($,ce,ne){for(var Be=-1,ut=$==null?0:$.length;++Be-1;);return ne}function a0($,ce){for(var ne=$.length;ne--&&Vc(ce,$[ne],0)>-1;);return ne}function sK($,ce){for(var ne=$.length,Be=0;ne--;)$[ne]===ce&&++Be;return Be}var oK=Bh(Gj),uK=Bh($j);function cK($){return"\\"+Yj[$]}function lK($,ce){return $==null?e:$[ce]}function jc($){return qj.test($)}function dK($){return Vj.test($)}function fK($){for(var ce,ne=[];!(ce=$.next()).done;)ne.push(ce.value);return ne}function xh($){var ce=-1,ne=Array($.size);return $.forEach(function(Be,ut){ne[++ce]=[ut,Be]}),ne}function s0($,ce){return function(ne){return $(ce(ne))}}function Go($,ce){for(var ne=-1,Be=$.length,ut=0,Yt=[];++ne-1}function ZK(s,u){var f=this.__data__,E=Gp(f,s);return E<0?(++this.size,f.push([s,u])):f[E][1]=u,this}is.prototype.clear=HK,is.prototype.delete=zK,is.prototype.get=WK,is.prototype.has=XK,is.prototype.set=ZK;function as(s){var u=-1,f=s==null?0:s.length;for(this.clear();++u=u?s:u)),s}function _i(s,u,f,E,S,L){var M,j=u&d,H=u&p,pe=u&y;if(f&&(M=S?f(s,E,S,L):f(s)),M!==e)return M;if(!vn(s))return s;var me=dt(s);if(me){if(M=r$(s),!j)return jr(s,M)}else{var he=hr(s),Ae=he==Ye||he==Ut;if(Wo(s))return j0(s,j);if(he==Vr||he==be||Ae&&!S){if(M=H||Ae?{}:oA(s),!j)return H?QG(s,NG(M,s)):$G(s,h0(M,s))}else{if(!Tn[he])return S?s:{};M=i$(s,he,j)}}L||(L=new Wi);var Ke=L.get(s);if(Ke)return Ke;L.set(s,M),UA(s)?s.forEach(function(et){M.add(_i(et,u,f,et,s,L))}):CA(s)&&s.forEach(function(et,St){M.set(St,_i(et,u,f,St,s,L))});var Ze=pe?H?dy:ly:H?Gr:ar,Et=me?e:Ze(s);return yi(Et||s,function(et,St){Et&&(St=et,et=s[St]),Ed(M,St,_i(et,u,f,St,s,L))}),M}function TG(s){var u=ar(s);return function(f){return y0(f,s,u)}}function y0(s,u,f){var E=f.length;if(s==null)return!E;for(s=dn(s);E--;){var S=f[E],L=u[S],M=s[S];if(M===e&&!(S in s)||!L(M))return!1}return!0}function I0(s,u,f){if(typeof s!="function")throw new Ii(i);return Sd(function(){s.apply(e,f)},u)}function hd(s,u,f,E){var S=-1,L=bp,M=!0,j=s.length,H=[],pe=u.length;if(!j)return H;f&&(u=In(u,ai(f))),E?(L=Fh,M=!1):u.length>=n&&(L=dd,M=!1,u=new Fu(u));e:for(;++SS?0:S+f),E=E===e||E>S?S:Nt(E),E<0&&(E+=S),E=f>E?0:MA(E);f0&&f(j)?u>1?Tr(j,u-1,f,E,S):Ko(S,j):E||(S[S.length]=j)}return S}var Qh=J0(),v0=J0(!0);function va(s,u){return s&&Qh(s,u,ar)}function Yh(s,u){return s&&v0(s,u,ar)}function Qp(s,u){return jo(u,function(f){return ls(s[f])})}function Lu(s,u){u=Ho(u,s);for(var f=0,E=u.length;s!=null&&fu}function yG(s,u){return s!=null&&rn.call(s,u)}function IG(s,u){return s!=null&&u in dn(s)}function gG(s,u,f){return s>=Er(u,f)&&s=120&&me.length>=120)?new Fu(M&&me):e}me=s[0];var he=-1,Ae=j[0];e:for(;++he-1;)j!==s&&kp.call(j,H,1),kp.call(s,H,1);return s}function C0(s,u){for(var f=s?u.length:0,E=f-1;f--;){var S=u[f];if(f==E||S!==L){var L=S;cs(S)?kp.call(s,S,1):ry(s,S)}}return s}function ey(s,u){return s+qp(m0()*(u-s+1))}function CG(s,u,f,E){for(var S=-1,L=zn(xp((u-s)/(f||1)),0),M=ne(L);L--;)M[E?L:++S]=s,s+=f;return M}function ty(s,u){var f="";if(!s||u<1||u>mn)return f;do u%2&&(f+=s),u=qp(u/2),u&&(s+=s);while(u);return f}function It(s,u){return hy(lA(s,u,$r),s+"")}function BG(s){return E0(Xc(s))}function UG(s,u){var f=Xc(s);return rm(f,wu(u,0,f.length))}function gd(s,u,f,E){if(!vn(s))return s;u=Ho(u,s);for(var S=-1,L=u.length,M=L-1,j=s;j!=null&&++SS?0:S+u),f=f>S?S:f,f<0&&(f+=S),S=u>f?0:f-u>>>0,u>>>=0;for(var L=ne(S);++E>>1,M=s[L];M!==null&&!oi(M)&&(f?M<=u:M=n){var pe=u?null:zG(s);if(pe)return Rp(pe);M=!1,S=dd,H=new Fu}else H=u?[]:j;e:for(;++E=E?s:vi(s,u,f)}var V0=bK||function(s){return ir.clearTimeout(s)};function j0(s,u){if(u)return s.slice();var f=s.length,E=c0?c0(f):new s.constructor(f);return s.copy(E),E}function oy(s){var u=new s.constructor(s.byteLength);return new Bp(u).set(new Bp(s)),u}function VG(s,u){var f=u?oy(s.buffer):s.buffer;return new s.constructor(f,s.byteOffset,s.byteLength)}function jG(s){var u=new s.constructor(s.source,Ob.exec(s));return u.lastIndex=s.lastIndex,u}function KG(s){return Td?dn(Td.call(s)):{}}function K0(s,u){var f=u?oy(s.buffer):s.buffer;return new s.constructor(f,s.byteOffset,s.length)}function G0(s,u){if(s!==u){var f=s!==e,E=s===null,S=s===s,L=oi(s),M=u!==e,j=u===null,H=u===u,pe=oi(u);if(!j&&!pe&&!L&&s>u||L&&M&&H&&!j&&!pe||E&&M&&H||!f&&H||!S)return 1;if(!E&&!L&&!pe&&s=j)return H;var pe=f[E];return H*(pe=="desc"?-1:1)}}return s.index-u.index}function $0(s,u,f,E){for(var S=-1,L=s.length,M=f.length,j=-1,H=u.length,pe=zn(L-M,0),me=ne(H+pe),he=!E;++j1?f[S-1]:e,M=S>2?f[2]:e;for(L=s.length>3&&typeof L=="function"?(S--,L):e,M&&Lr(f[0],f[1],M)&&(L=S<3?e:L,S=1),u=dn(u);++E-1?S[L?u[M]:M]:e}}function W0(s){return us(function(u){var f=u.length,E=f,S=gi.prototype.thru;for(s&&u.reverse();E--;){var L=u[E];if(typeof L!="function")throw new Ii(i);if(S&&!M&&tm(L)=="wrapper")var M=new gi([],!0)}for(E=M?E:f;++E1&&Pt.reverse(),me&&Hj))return!1;var pe=L.get(s),me=L.get(u);if(pe&&me)return pe==u&&me==s;var he=-1,Ae=!0,Ke=f&v?new Fu:e;for(L.set(s,u),L.set(u,s);++he1?"& ":"")+u[E],u=u.join(f>2?", ":" "),s.replace(oj,`{ +`+ns.LITERAL_SPACE.repeat(t+3)+`... +`+ns.LITERAL_SPACE.repeat(t+2)+`} +`}function PD({entityAncestorData:e,rootFieldData:t,unresolvableFieldData:n}){let{fieldName:r,typeName:i,subgraphNames:a}=n,o=[t.message,`The field "${i}.${r}" is defined in the following subgraph`+(a.size>1?"s":"")+`: "${[...a].join(ns.QUOTATION_JOIN)}".`];if(e){let c=!1;for(let[l,d]of e.fieldSetsByTargetSubgraphName)if(a.has(l)){c=!0;for(let f of d)o.push(`The entity ancestor "${e.typeName}" in subgraph "${e.subgraphName}" does not satisfy the key field set "${f}" to access subgraph "${l}".`)}c||o.push(`The entity ancestor "${e.typeName}" in subgraph "${e.subgraphName}" has no accessible target entities (resolvable @key directives) in the subgraphs where "${i}.${r}" is defined.`),o.push(`The type "${i}" is not a descendant of any other entity ancestors that can provide a shared route to access "${r}".`)}else t.subgraphNames.size>1&&o.push(`None of the subgraphs that shares the same root type field "${t.coords}" can provide a route to access "${r}".`),o.push(`The type "${i}" is not a descendant of an entity ancestor that can provide a shared route to access "${r}".`);return i!==(e==null?void 0:e.typeName)&&o.push(`The type "${i}" has no accessible target entities (resolvable @key directives) in any other subgraph, so accessing other subgraphs is not possible.`),o}function R1({entityAncestors:e,rootFieldData:t,unresolvableFieldData:n}){let{fieldName:r,typeName:i,subgraphNames:a}=n,o=[t.message,`The field "${i}.${r}" is defined in the following subgraph`+(a.size>1?"s":"")+`: "${[...a].join(ns.QUOTATION_JOIN)}".`],c=!1;for(let[l,d]of e.fieldSetsByTargetSubgraphName){if(!a.has(l))continue;let f=e.subgraphNames.filter(I=>I!==l),y=f.length>1;c=!0;for(let I of d)o.push(`The entity ancestor "${e.typeName}" in subgraph${y?"s":""} "${f.join(ns.QUOTATION_JOIN)}" do${y?"":"es"} not satisfy the key field set "${I}" to access subgraph "${l}".`)}if(!c){let l=e.subgraphNames.length>1;o.push(`The entity ancestor "${e.typeName}" in subgraph${l?"s":""} "${e.subgraphNames.join(ns.QUOTATION_JOIN)}" ha${l?"ve":"s"} no accessible target entities (resolvable @key directives) in the subgraphs where "${i}.${r}" is defined.`)}return o.push(`The type "${i}" is not a descendant of any other entity ancestors that can provide a shared route to access "${r}".`),i!==e.typeName&&o.push(`The type "${i}" has no accessible target entities (resolvable @key directives) in any other subgraph, so accessing other subgraphs is not possible.`),o}function zE(e){let t=e.split(new RegExp("(?<=\\w)\\.")),n="",r="";for(let i=0;i{"use strict";m();T();N();Object.defineProperty(XE,"__esModule",{value:!0});XE.NodeResolutionData=void 0;var fde=Gi(),Fc,LD=class LD{constructor({fieldDataByName:t,isResolved:n=!1,resolvedDescendantNames:r,resolvedFieldNames:i,typeName:a}){cl(this,Fc,!1);_(this,"fieldDataByName");_(this,"resolvedDescendantNames");_(this,"resolvedFieldNames");_(this,"typeName");rI(this,Fc,n),this.fieldDataByName=t,this.resolvedDescendantNames=new Set(r),this.resolvedFieldNames=new Set(i),this.typeName=a}addData(t){for(let n of t.resolvedFieldNames)this.addResolvedFieldName(n);for(let n of t.resolvedDescendantNames)this.resolvedDescendantNames.add(n)}addResolvedFieldName(t){if(!this.fieldDataByName.has(t))throw(0,fde.unexpectedEdgeFatalError)(this.typeName,[t]);this.resolvedFieldNames.add(t)}copy(){return new LD({fieldDataByName:this.fieldDataByName,isResolved:nI(this,Fc),resolvedDescendantNames:this.resolvedDescendantNames,resolvedFieldNames:this.resolvedFieldNames,typeName:this.typeName})}areDescendantsResolved(){return this.fieldDataByName.size===this.resolvedDescendantNames.size}isResolved(){if(nI(this,Fc))return!0;if(this.fieldDataByName.size!==this.resolvedFieldNames.size)return!1;for(let t of this.fieldDataByName.keys())if(!this.resolvedFieldNames.has(t))return!1;return rI(this,Fc,!0),!0}};Fc=new WeakMap;var wD=LD;XE.NodeResolutionData=wD});var F1=F(eh=>{"use strict";m();T();N();Object.defineProperty(eh,"__esModule",{value:!0});eh.EntityWalker=void 0;var mde=ZE(),rs=Pr(),CD=class{constructor({encounteredEntityNodeNames:t,index:n,relativeOriginPaths:r,resDataByNodeName:i,resDataByRelativeOriginPath:a,subgraphNameByUnresolvablePath:o,visitedEntities:c}){_(this,"encounteredEntityNodeNames");_(this,"index");_(this,"resDataByNodeName");_(this,"resDataByRelativeOriginPath");_(this,"selectionPathByEntityNodeName",new Map);_(this,"subgraphNameByUnresolvablePath");_(this,"visitedEntities");_(this,"relativeOriginPaths");this.encounteredEntityNodeNames=t,this.index=n,this.relativeOriginPaths=r,this.resDataByNodeName=i,this.resDataByRelativeOriginPath=a,this.visitedEntities=c,this.subgraphNameByUnresolvablePath=o}getNodeResolutionData({node:{fieldDataByName:t,nodeName:n,typeName:r},selectionPath:i}){let a=(0,rs.getValueOrDefault)(this.resDataByNodeName,n,()=>new mde.NodeResolutionData({fieldDataByName:t,typeName:r}));if(!this.relativeOriginPaths||this.relativeOriginPaths.size<1)return(0,rs.getValueOrDefault)(this.resDataByRelativeOriginPath,i,()=>a.copy());let o;for(let c of this.relativeOriginPaths){let l=(0,rs.getValueOrDefault)(this.resDataByRelativeOriginPath,`${c}${i}`,()=>a.copy());o!=null||(o=l)}return o}visitEntityDescendantEdge({edge:t,selectionPath:n}){return t.isInaccessible||t.node.isInaccessible?{visited:!1,areDescendantsResolved:!1}:t.node.isLeaf?{visited:!0,areDescendantsResolved:!0}:(0,rs.add)(t.visitedIndices,this.index)?t.node.hasEntitySiblings?this.visitedEntities.has(t.node.nodeName)||this.encounteredEntityNodeNames.has(t.node.nodeName)?{visited:!0,areDescendantsResolved:!0}:(this.encounteredEntityNodeNames.add(t.node.nodeName),(0,rs.getValueOrDefault)(this.selectionPathByEntityNodeName,t.node.nodeName,()=>`${n}.${t.edgeName}`),{visited:!0,areDescendantsResolved:!1}):t.node.isAbstract?this.visitEntityDescendantAbstractNode({node:t.node,selectionPath:`${n}.${t.edgeName}`}):this.visitEntityDescendantConcreteNode({node:t.node,selectionPath:`${n}.${t.edgeName}`}):(this.removeUnresolvablePaths({selectionPath:`${n}.${t.edgeName}`,removeDescendantPaths:!0}),{visited:!0,areDescendantsResolved:!0,isRevisitedNode:!0})}visitEntityDescendantConcreteNode({node:t,selectionPath:n}){if(t.headToTailEdges.size<1)return t.isLeaf=!0,{visited:!0,areDescendantsResolved:!0};let r=this.getNodeResolutionData({node:t,selectionPath:n});if(r.isResolved()&&r.areDescendantsResolved())return{visited:!0,areDescendantsResolved:!0};let i;for(let[a,o]of t.headToTailEdges){let{visited:c,areDescendantsResolved:l,isRevisitedNode:d}=this.visitEntityDescendantEdge({edge:o,selectionPath:n});i!=null||(i=d),this.propagateVisitedField({areDescendantsResolved:l,fieldName:a,data:r,nodeName:t.nodeName,selectionPath:n,visited:c})}return r.isResolved()?this.removeUnresolvablePaths({removeDescendantPaths:i,selectionPath:n}):this.addUnresolvablePaths({selectionPath:n,subgraphName:t.subgraphName}),{visited:!0,areDescendantsResolved:r.areDescendantsResolved()}}visitEntityDescendantAbstractNode({node:t,selectionPath:n}){if(t.headToTailEdges.size<1)return{visited:!0,areDescendantsResolved:!0};let r=0;for(let i of t.headToTailEdges.values())this.visitEntityDescendantEdge({edge:i,selectionPath:n}).areDescendantsResolved&&(r+=1);return{visited:!0,areDescendantsResolved:r===t.headToTailEdges.size}}propagateVisitedField({areDescendantsResolved:t,data:n,fieldName:r,nodeName:i,selectionPath:a,visited:o}){if(!o)return;let c=(0,rs.getValueOrDefault)(this.resDataByNodeName,i,()=>n.copy());if(n.addResolvedFieldName(r),c.addResolvedFieldName(r),t&&n.resolvedDescendantNames.add(r),this.relativeOriginPaths){for(let d of this.relativeOriginPaths){let f=(0,rs.getValueOrDefault)(this.resDataByRelativeOriginPath,`${d}${a}`,()=>n.copy());f.addResolvedFieldName(r),t&&f.resolvedDescendantNames.add(r)}return}let l=(0,rs.getValueOrDefault)(this.resDataByRelativeOriginPath,a,()=>n.copy());l.addResolvedFieldName(r),t&&l.resolvedDescendantNames.add(r)}addUnresolvablePaths({selectionPath:t,subgraphName:n}){if(!this.relativeOriginPaths){(0,rs.getValueOrDefault)(this.subgraphNameByUnresolvablePath,t,()=>n);return}for(let r of this.relativeOriginPaths)(0,rs.getValueOrDefault)(this.subgraphNameByUnresolvablePath,`${r}${t}`,()=>n)}removeUnresolvablePaths({selectionPath:t,removeDescendantPaths:n}){if(!this.relativeOriginPaths){if(this.subgraphNameByUnresolvablePath.delete(t),n)for(let r of this.subgraphNameByUnresolvablePath.keys())r.startsWith(t)&&this.subgraphNameByUnresolvablePath.delete(r);return}for(let r of this.relativeOriginPaths){let i=`${r}${t}`;if(this.subgraphNameByUnresolvablePath.delete(i),n)for(let a of this.subgraphNameByUnresolvablePath.keys())a.startsWith(i)&&this.subgraphNameByUnresolvablePath.delete(a)}}};eh.EntityWalker=CD});var w1=F(nh=>{"use strict";m();T();N();Object.defineProperty(nh,"__esModule",{value:!0});nh.RootFieldWalker=void 0;var is=Pr(),th=ZE(),BD=class{constructor({index:t,nodeResolutionDataByNodeName:n}){_(this,"index");_(this,"resDataByNodeName");_(this,"resDataByPath",new Map);_(this,"entityNodeNamesByPath",new Map);_(this,"pathsByEntityNodeName",new Map);_(this,"unresolvablePaths",new Set);this.index=t,this.resDataByNodeName=n}visitEdge({edge:t,selectionPath:n}){return t.isInaccessible||t.node.isInaccessible?{visited:!1,areDescendantsResolved:!0}:t.node.isLeaf?{visited:!0,areDescendantsResolved:!0}:(0,is.add)(t.visitedIndices,this.index)?t.node.hasEntitySiblings?this.resDataByNodeName.has(t.node.nodeName)?{visited:!0,areDescendantsResolved:!0}:((0,is.getValueOrDefault)(this.pathsByEntityNodeName,t.node.nodeName,()=>new Set).add(`${n}.${t.edgeName}`),{visited:!0,areDescendantsResolved:!1}):t.node.isAbstract?this.visitAbstractNode({node:t.node,selectionPath:`${n}.${t.edgeName}`}):this.visitConcreteNode({node:t.node,selectionPath:`${n}.${t.edgeName}`}):{visited:!0,areDescendantsResolved:!0}}visitAbstractNode({node:t,selectionPath:n}){if(t.headToTailEdges.size<1)return{visited:!0,areDescendantsResolved:!0};let r=0;for(let i of t.headToTailEdges.values())this.visitEdge({edge:i,selectionPath:n}).areDescendantsResolved&&(r+=1);return{visited:!0,areDescendantsResolved:r===t.headToTailEdges.size}}visitConcreteNode({node:t,selectionPath:n}){if(t.headToTailEdges.size<1)return t.isLeaf=!0,{visited:!0,areDescendantsResolved:!0};let r=this.resDataByNodeName.get(t.nodeName);if(r)return{visited:!0,areDescendantsResolved:r.areDescendantsResolved()};let i=this.getNodeResolutionData({node:t,selectionPath:n});if(i.isResolved()&&i.areDescendantsResolved())return{visited:!0,areDescendantsResolved:!0};for(let[a,o]of t.headToTailEdges){let{visited:c,areDescendantsResolved:l}=this.visitEdge({edge:o,selectionPath:n});this.propagateVisitedField({areDescendantsResolved:l,fieldName:a,data:i,node:t,selectionPath:n,visited:c})}return i.isResolved()?this.unresolvablePaths.delete(n):this.unresolvablePaths.add(n),{visited:!0,areDescendantsResolved:i.areDescendantsResolved()}}visitSharedEdge({edge:t,selectionPath:n}){return t.isInaccessible||t.node.isInaccessible?{visited:!1,areDescendantsResolved:!0}:t.node.isLeaf?{visited:!0,areDescendantsResolved:!0}:(0,is.add)(t.visitedIndices,this.index)?(t.node.hasEntitySiblings&&(0,is.getValueOrDefault)(this.entityNodeNamesByPath,`${n}.${t.edgeName}`,()=>new Set).add(t.node.nodeName),t.node.isAbstract?this.visitSharedAbstractNode({node:t.node,selectionPath:`${n}.${t.edgeName}`}):this.visitSharedConcreteNode({node:t.node,selectionPath:`${n}.${t.edgeName}`})):{visited:!0,areDescendantsResolved:!0}}visitSharedAbstractNode({node:t,selectionPath:n}){if(t.headToTailEdges.size<1)return{visited:!0,areDescendantsResolved:!0};let r=0;for(let i of t.headToTailEdges.values())this.visitSharedEdge({edge:i,selectionPath:n}).areDescendantsResolved&&(r+=1);return{visited:!0,areDescendantsResolved:r===t.headToTailEdges.size}}visitSharedConcreteNode({node:t,selectionPath:n}){if(t.headToTailEdges.size<1)return t.isLeaf=!0,{visited:!0,areDescendantsResolved:!0};let r=this.getSharedNodeResolutionData({node:t,selectionPath:n});if(r.isResolved()&&r.areDescendantsResolved())return{visited:!0,areDescendantsResolved:!0};for(let[i,a]of t.headToTailEdges){let{visited:o,areDescendantsResolved:c}=this.visitSharedEdge({edge:a,selectionPath:n});this.propagateSharedVisitedField({areDescendantsResolved:c,data:r,fieldName:i,node:t,visited:o})}return r.isResolved()?this.unresolvablePaths.delete(n):this.unresolvablePaths.add(n),{visited:!0,areDescendantsResolved:r.areDescendantsResolved()}}getNodeResolutionData({node:t,selectionPath:n}){let r=(0,is.getValueOrDefault)(this.resDataByNodeName,t.nodeName,()=>new th.NodeResolutionData({fieldDataByName:t.fieldDataByName,typeName:t.typeName}));return(0,is.getValueOrDefault)(this.resDataByPath,n,()=>r.copy()),r}getSharedNodeResolutionData({node:t,selectionPath:n}){let r=(0,is.getValueOrDefault)(this.resDataByNodeName,t.nodeName,()=>new th.NodeResolutionData({fieldDataByName:t.fieldDataByName,typeName:t.typeName}));return(0,is.getValueOrDefault)(this.resDataByPath,n,()=>r.copy())}propagateVisitedField({areDescendantsResolved:t,data:n,fieldName:r,node:i,selectionPath:a,visited:o}){if(!o)return;n.addResolvedFieldName(r);let c=(0,is.getValueOrDefault)(this.resDataByPath,a,()=>new th.NodeResolutionData({fieldDataByName:i.fieldDataByName,typeName:i.typeName}));c.addResolvedFieldName(r),t&&(n.resolvedDescendantNames.add(r),c.resolvedDescendantNames.add(r))}propagateSharedVisitedField({areDescendantsResolved:t,data:n,fieldName:r,node:i,visited:a}){if(!a)return;n.addResolvedFieldName(r);let o=(0,is.getValueOrDefault)(this.resDataByNodeName,i.nodeName,()=>new th.NodeResolutionData({fieldDataByName:i.fieldDataByName,typeName:i.typeName}));o.addResolvedFieldName(r),t&&(n.resolvedDescendantNames.add(r),o.resolvedDescendantNames.add(r))}visitRootFieldEdges({edges:t,rootTypeName:n}){let r=t.length>1;for(let i of t){if(i.isInaccessible)return{visited:!1,areDescendantsResolved:!1};let a=r?this.visitSharedEdge({edge:i,selectionPath:n}):this.visitEdge({edge:i,selectionPath:n});if(a.areDescendantsResolved)return a}return{visited:!0,areDescendantsResolved:!1}}};nh.RootFieldWalker=BD});var kD=F(ih=>{"use strict";m();T();N();Object.defineProperty(ih,"__esModule",{value:!0});ih.Graph=void 0;var cd=DD(),wc=FD(),na=Pr(),rh=bD(),Nde=F1(),Tde=w1(),UD=class{constructor(){_(this,"edgeId",-1);_(this,"entityDataNodeByTypeName",new Map);_(this,"nodeByNodeName",new Map);_(this,"nodesByTypeName",new Map);_(this,"resolvedRootFieldNodeNames",new Set);_(this,"rootNodeByTypeName",new Map);_(this,"subgraphName",rh.NOT_APPLICABLE);_(this,"resDataByNodeName",new Map);_(this,"resDataByRelativePathByEntity",new Map);_(this,"visitedEntitiesByOriginEntity",new Map);_(this,"walkerIndex",-1)}getRootNode(t){return(0,na.getValueOrDefault)(this.rootNodeByTypeName,t,()=>new cd.RootNode(t))}addOrUpdateNode(t,n){let r=`${this.subgraphName}.${t}`,i=this.nodeByNodeName.get(r);if(i)return i.isAbstract||(i.isAbstract=!!(n!=null&&n.isAbstract)),!i.isLeaf&&(n!=null&&n.isLeaf)&&(i.isLeaf=!0),i;let a=new cd.GraphNode(this.subgraphName,t,n);return this.nodeByNodeName.set(r,a),(0,na.getValueOrDefault)(this.nodesByTypeName,t,()=>[]).push(a),a}addEdge(t,n,r,i=!1){if(t.isRootNode){let c=new cd.Edge(this.getNextEdgeId(),n,r);return(0,na.getValueOrDefault)(t.headToSharedTailEdges,r,()=>[]).push(c),c}let a=t,o=new cd.Edge(this.getNextEdgeId(),n,i?n.typeName:r,i);return a.headToTailEdges.set(r,o),o}addEntityDataNode(t){let n=this.entityDataNodeByTypeName.get(t);if(n)return n;let r=new cd.EntityDataNode(t);return this.entityDataNodeByTypeName.set(t,r),r}getNextEdgeId(){return this.edgeId+=1}getNextWalkerIndex(){return this.walkerIndex+=1}setNodeInaccessible(t){let n=this.nodesByTypeName.get(t);if(n)for(let r of n)r.isInaccessible=!0}initializeNode(t,n){let r=this.entityDataNodeByTypeName.get(t);if(rh.ROOT_TYPE_NAMES.has(t)){let a=this.getRootNode(t);a.removeInaccessibleEdges(n),a.fieldDataByName=n;return}let i=this.nodesByTypeName.get(t);if(i){for(let a of i)if(a.fieldDataByName=n,a.handleInaccessibleEdges(),a.isLeaf=!1,!!r){a.hasEntitySiblings=!0;for(let o of a.satisfiedFieldSets){let c=r.targetSubgraphNamesByFieldSet.get(o);for(let l of c!=null?c:[]){if(l===a.subgraphName)continue;let d=this.nodeByNodeName.get(`${l}.${a.typeName}`);d&&a.entityEdges.push(new cd.Edge(this.getNextEdgeId(),d,""))}}}}}setSubgraphName(t){this.subgraphName=t}visitEntity({encounteredEntityNodeNames:t,entityNodeName:n,relativeOriginPaths:r,resDataByRelativeOriginPath:i,subgraphNameByUnresolvablePath:a,visitedEntities:o}){let c=this.nodeByNodeName.get(n);if(!c)throw new Error(`Fatal: Could not find entity node for "${n}".`);o.add(n);let l=this.nodesByTypeName.get(c.typeName);if(!(l!=null&&l.length))throw new Error(`Fatal: Could not find any nodes for "${n}".`);let d=new Nde.EntityWalker({encounteredEntityNodeNames:t,index:this.getNextWalkerIndex(),relativeOriginPaths:r,resDataByNodeName:this.resDataByNodeName,resDataByRelativeOriginPath:i,subgraphNameByUnresolvablePath:a,visitedEntities:o}),f=c.getAllAccessibleEntityNodeNames();for(let y of l){if(y.nodeName!==c.nodeName&&!f.has(y.nodeName))continue;let{areDescendantsResolved:I}=d.visitEntityDescendantConcreteNode({node:y,selectionPath:""});if(I)return}for(let[y,I]of d.selectionPathByEntityNodeName)this.visitEntity({encounteredEntityNodeNames:t,entityNodeName:y,relativeOriginPaths:(0,wc.getMultipliedRelativeOriginPaths)({relativeOriginPaths:r,selectionPath:I}),resDataByRelativeOriginPath:i,subgraphNameByUnresolvablePath:a,visitedEntities:o})}validate(){for(let t of this.rootNodeByTypeName.values())for(let[n,r]of t.headToSharedTailEdges){let i=r.length>1;if(!i){let f=r[0].node.nodeName;if(this.resolvedRootFieldNodeNames.has(f))continue;this.resolvedRootFieldNodeNames.add(f)}let a=new Tde.RootFieldWalker({index:this.getNextWalkerIndex(),nodeResolutionDataByNodeName:this.resDataByNodeName});if(a.visitRootFieldEdges({edges:r,rootTypeName:t.typeName.toLowerCase()}).areDescendantsResolved)continue;let o=i?a.entityNodeNamesByPath.size>0:a.pathsByEntityNodeName.size>0;if(a.unresolvablePaths.size<1&&!o)continue;let c=(0,na.getOrThrowError)(t.fieldDataByName,n,"fieldDataByName"),l=(0,wc.newRootFieldData)(t.typeName,n,c.subgraphNames);if(!o)return{errors:(0,wc.generateRootResolvabilityErrors)({unresolvablePaths:a.unresolvablePaths,resDataByPath:a.resDataByPath,rootFieldData:l}),success:!1};let d=this.validateEntities({isSharedRootField:i,rootFieldData:l,walker:a});if(!d.success)return d}return{success:!0}}consolidateUnresolvableRootWithEntityPaths({pathFromRoot:t,resDataByRelativeOriginPath:n,subgraphNameByUnresolvablePath:r,walker:i}){for(let a of i.unresolvablePaths){if(!a.startsWith(t))continue;let o=a.slice(t.length),c=(0,na.getOrThrowError)(i.resDataByPath,a,"rootFieldWalker.unresolvablePaths"),l=n.get(o);if(l){if(c.addData(l),l.addData(c),!c.isResolved()){i.unresolvablePaths.delete(a);continue}i.unresolvablePaths.delete(a),r.delete(o)}}}consolidateUnresolvableEntityWithRootPaths({pathFromRoot:t,resDataByRelativeOriginPath:n,subgraphNameByUnresolvablePath:r,walker:i}){for(let a of r.keys()){let o=(0,na.getOrThrowError)(n,a,"resDataByRelativeOriginPath"),c=`${t}${a}`,l=i.resDataByPath.get(c);l&&(o.addData(l),l.addData(o)),o.isResolved()&&r.delete(a)}}validateSharedRootFieldEntities({rootFieldData:t,walker:n}){for(let[r,i]of n.entityNodeNamesByPath){let a=new Map,o=new Map;for(let l of i)this.visitEntity({encounteredEntityNodeNames:new Set,entityNodeName:l,resDataByRelativeOriginPath:o,subgraphNameByUnresolvablePath:a,visitedEntities:new Set});if(this.consolidateUnresolvableRootWithEntityPaths({pathFromRoot:r,resDataByRelativeOriginPath:o,subgraphNameByUnresolvablePath:a,walker:n}),a.size<1)continue;this.consolidateUnresolvableEntityWithRootPaths({pathFromRoot:r,resDataByRelativeOriginPath:o,subgraphNameByUnresolvablePath:a,walker:n});let c=new Array;if(a.size>0&&c.push(...this.getSharedEntityResolvabilityErrors({entityNodeNames:i,resDataByPath:o,pathFromRoot:r,rootFieldData:t,subgraphNameByUnresolvablePath:a})),n.unresolvablePaths.size>0&&c.push(...(0,wc.generateRootResolvabilityErrors)({unresolvablePaths:n.unresolvablePaths,resDataByPath:n.resDataByPath,rootFieldData:t})),!(c.length<1))return{errors:c,success:!1}}return n.unresolvablePaths.size>0?{errors:(0,wc.generateRootResolvabilityErrors)({resDataByPath:n.resDataByPath,rootFieldData:t,unresolvablePaths:n.unresolvablePaths}),success:!1}:{success:!0}}validateRootFieldEntities({rootFieldData:t,walker:n}){var r;for(let[i,a]of n.pathsByEntityNodeName){let o=new Map;if(this.resDataByNodeName.has(i))continue;let c=(0,na.getValueOrDefault)(this.resDataByRelativePathByEntity,i,()=>new Map);if(this.visitEntity({encounteredEntityNodeNames:new Set,entityNodeName:i,resDataByRelativeOriginPath:c,subgraphNameByUnresolvablePath:o,visitedEntities:(0,na.getValueOrDefault)(this.visitedEntitiesByOriginEntity,i,()=>new Set)}),!(o.size<1))return{errors:this.getEntityResolvabilityErrors({entityNodeName:i,pathFromRoot:(r=(0,na.getFirstEntry)(a))!=null?r:"",rootFieldData:t,subgraphNameByUnresolvablePath:o}),success:!1}}return{success:!0}}validateEntities(t){return t.isSharedRootField?this.validateSharedRootFieldEntities(t):this.validateRootFieldEntities(t)}getEntityResolvabilityErrors({entityNodeName:t,pathFromRoot:n,rootFieldData:r,subgraphNameByUnresolvablePath:i}){let a=(0,na.getOrThrowError)(this.resDataByRelativePathByEntity,t,"resDataByRelativePathByEntity"),o=t.split(rh.LITERAL_PERIOD)[1],{fieldSetsByTargetSubgraphName:c}=(0,na.getOrThrowError)(this.entityDataNodeByTypeName,o,"entityDataNodeByTypeName");return(0,wc.generateEntityResolvabilityErrors)({entityAncestorData:{fieldSetsByTargetSubgraphName:c,subgraphName:"",typeName:o},pathFromRoot:n,resDataByPath:a,rootFieldData:r,subgraphNameByUnresolvablePath:i})}getSharedEntityResolvabilityErrors({entityNodeNames:t,pathFromRoot:n,rootFieldData:r,resDataByPath:i,subgraphNameByUnresolvablePath:a}){let o,c=new Array;for(let d of t){let f=d.split(rh.LITERAL_PERIOD);o!=null||(o=f[1]),c.push(f[0])}let{fieldSetsByTargetSubgraphName:l}=(0,na.getOrThrowError)(this.entityDataNodeByTypeName,o,"entityDataNodeByTypeName");return(0,wc.generateSharedEntityResolvabilityErrors)({entityAncestors:{fieldSetsByTargetSubgraphName:l,subgraphNames:c,typeName:o},pathFromRoot:n,resDataByPath:i,rootFieldData:r,subgraphNameByUnresolvablePath:a})}};ih.Graph=UD});var MD=F(ah=>{"use strict";m();T();N();Object.defineProperty(ah,"__esModule",{value:!0});ah.newFieldSetConditionData=Ede;ah.newConfigurationData=hde;function Ede({fieldCoordinatesPath:e,fieldPath:t}){return{fieldCoordinatesPath:e,fieldPath:t}}function hde(e,t){return{fieldNames:new Set,isRootNode:e,typeName:t}}});var qD=F(Lc=>{"use strict";m();T();N();Object.defineProperty(Lc,"__esModule",{value:!0});Lc.NormalizationFactory=void 0;Lc.normalizeSubgraphFromString=_de;Lc.normalizeSubgraph=B1;Lc.batchNormalize=vde;var Z=Se(),Pn=Rr(),ui=cf(),$r=Iu(),Jn=uf(),oe=Gi(),pf=id(),yde=Jv(),vi=IE(),Ide=ND(),ss=lf(),L1=gD(),as=Up(),tn=Bl(),lr=yu(),xD=kD(),sh=vE(),W=sr(),gde=wl(),je=Pr(),ff=MD(),C1=SE();function _de(e,t=!0){let{error:n,documentNode:r}=(0,Pn.safeParse)(e,t);return n||!r?{errors:[(0,oe.subgraphInvalidSyntaxError)(n)],success:!1,warnings:[]}:new mf(new xD.Graph).normalize(r)}function B1(e,t,n){return new mf(n||new xD.Graph,t).normalize(e)}var oh,U1,mf=class{constructor(t,n){cl(this,oh);_(this,"argumentName","");_(this,"authorizationDataByParentTypeName",new Map);_(this,"concreteTypeNamesByAbstractTypeName",new Map);_(this,"conditionalFieldDataByCoords",new Map);_(this,"configurationDataByTypeName",new Map);_(this,"customDirectiveDefinitionByName",new Map);_(this,"definedDirectiveNames",new Set);_(this,"directiveDefinitionByName",new Map);_(this,"directiveDefinitionDataByName",(0,ui.initializeDirectiveDefinitionDatas)());_(this,"doesParentRequireFetchReasons",!1);_(this,"edfsDirectiveReferences",new Set);_(this,"errors",new Array);_(this,"entityDataByTypeName",new Map);_(this,"entityInterfaceDataByTypeName",new Map);_(this,"eventsConfigurations",new Map);_(this,"fieldSetDataByTypeName",new Map);_(this,"internalGraph");_(this,"invalidConfigureDescriptionNodeDatas",[]);_(this,"invalidORScopesCoords",new Set);_(this,"invalidRepeatedDirectiveNameByCoords",new Map);_(this,"isParentObjectExternal",!1);_(this,"isParentObjectShareable",!1);_(this,"isSubgraphEventDrivenGraph",!1);_(this,"isSubgraphVersionTwo",!1);_(this,"keyFieldSetDatasByTypeName",new Map);_(this,"lastParentNodeKind",Z.Kind.NULL);_(this,"lastChildNodeKind",Z.Kind.NULL);_(this,"parentTypeNamesWithAuthDirectives",new Set);_(this,"keyFieldSetsByEntityTypeNameByFieldCoords",new Map);_(this,"keyFieldNamesByParentTypeName",new Map);_(this,"fieldCoordsByNamedTypeName",new Map);_(this,"operationTypeNodeByTypeName",new Map);_(this,"originalParentTypeName","");_(this,"originalTypeNameByRenamedTypeName",new Map);_(this,"overridesByTargetSubgraphName",new Map);_(this,"parentDefinitionDataByTypeName",new Map);_(this,"schemaData");_(this,"referencedDirectiveNames",new Set);_(this,"referencedTypeNames",new Set);_(this,"renamedParentTypeName","");_(this,"subgraphName");_(this,"unvalidatedExternalFieldCoords",new Set);_(this,"usesEdfsNatsStreamConfiguration",!1);_(this,"warnings",[]);this.subgraphName=n||W.NOT_APPLICABLE,this.internalGraph=t,this.internalGraph.setSubgraphName(this.subgraphName),this.schemaData={directivesByDirectiveName:new Map,kind:Z.Kind.SCHEMA_DEFINITION,name:W.SCHEMA,operationTypes:new Map}}validateArguments(t,n){for(let r of t.argumentDataByName.values()){let i=(0,lr.getTypeNodeNamedTypeName)(r.type);if($r.BASE_SCALARS.has(i)){r.namedTypeKind=Z.Kind.SCALAR_TYPE_DEFINITION;continue}let a=this.parentDefinitionDataByTypeName.get(i);if(a){if((0,tn.isInputNodeKind)(a.kind)){r.namedTypeKind=a.kind;continue}this.errors.push((0,oe.invalidNamedTypeError)({data:r,namedTypeData:a,nodeType:`${(0,je.kindToNodeType)(n)} field argument`}))}}}isTypeNameRootType(t){return W.ROOT_TYPE_NAMES.has(t)||this.operationTypeNodeByTypeName.has(t)}isArgumentValueValid(t,n){if(n.kind===Z.Kind.NULL)return t.kind!==Z.Kind.NON_NULL_TYPE;switch(t.kind){case Z.Kind.LIST_TYPE:{if(n.kind!==Z.Kind.LIST)return this.isArgumentValueValid((0,lr.getNamedTypeNode)(t.type),n);for(let r of n.values)if(!this.isArgumentValueValid(t.type,r))return!1;return!0}case Z.Kind.NAMED_TYPE:switch(t.name.value){case W.BOOLEAN_SCALAR:return n.kind===Z.Kind.BOOLEAN;case W.FLOAT_SCALAR:return n.kind===Z.Kind.FLOAT||n.kind===Z.Kind.INT;case W.ID_SCALAR:return n.kind===Z.Kind.STRING||n.kind===Z.Kind.INT;case W.INT_SCALAR:return n.kind===Z.Kind.INT;case W.FIELD_SET_SCALAR:case W.SCOPE_SCALAR:case W.STRING_SCALAR:return n.kind===Z.Kind.STRING;case W.LINK_IMPORT:return!0;case W.LINK_PURPOSE:return n.kind!==Z.Kind.ENUM?!1:n.value===W.SECURITY||n.value===W.EXECUTION;case W.SUBSCRIPTION_FIELD_CONDITION:case W.SUBSCRIPTION_FILTER_CONDITION:return n.kind===Z.Kind.OBJECT;default:{let r=this.parentDefinitionDataByTypeName.get(t.name.value);if(!r)return!1;if(r.kind===Z.Kind.SCALAR_TYPE_DEFINITION)return!0;if(r.kind===Z.Kind.ENUM_TYPE_DEFINITION){if(n.kind!==Z.Kind.ENUM)return!1;let i=r.enumValueDataByName.get(n.value);return i?!i.directivesByDirectiveName.has(W.INACCESSIBLE):!1}return r.kind!==Z.Kind.INPUT_OBJECT_TYPE_DEFINITION?!1:n.kind===Z.Kind.OBJECT}}default:return this.isArgumentValueValid(t.type,n)}}handleFieldInheritableDirectives({directivesByDirectiveName:t,fieldName:n,inheritedDirectiveNames:r,parentData:i}){this.doesParentRequireFetchReasons&&!t.has(W.REQUIRE_FETCH_REASONS)&&(t.set(W.REQUIRE_FETCH_REASONS,[(0,je.generateSimpleDirective)(W.REQUIRE_FETCH_REASONS)]),r.add(W.REQUIRE_FETCH_REASONS)),(this.doesParentRequireFetchReasons||t.has(W.REQUIRE_FETCH_REASONS))&&i.requireFetchReasonsFieldNames.add(n),(0,Jn.isObjectDefinitionData)(i)&&(this.isParentObjectExternal&&!t.has(W.EXTERNAL)&&(t.set(W.EXTERNAL,[(0,je.generateSimpleDirective)(W.EXTERNAL)]),r.add(W.EXTERNAL)),t.has(W.EXTERNAL)&&this.unvalidatedExternalFieldCoords.add(`${i.name}.${n}`),this.isParentObjectShareable&&!t.has(W.SHAREABLE)&&(t.set(W.SHAREABLE,[(0,je.generateSimpleDirective)(W.SHAREABLE)]),r.add(W.SHAREABLE)))}extractDirectives(t,n){if(!t.directives)return n;let r=(0,Jn.isCompositeOutputNodeKind)(t.kind),i=(0,Jn.isObjectNodeKind)(t.kind);for(let a of t.directives){let o=a.name.value;o===W.SHAREABLE?(0,je.getValueOrDefault)(n,o,()=>[a]):(0,je.getValueOrDefault)(n,o,()=>[]).push(a),r&&(this.doesParentRequireFetchReasons||(this.doesParentRequireFetchReasons=o===W.REQUIRE_FETCH_REASONS),i&&(this.isParentObjectExternal||(this.isParentObjectExternal=o===W.EXTERNAL),this.isParentObjectShareable||(this.isParentObjectShareable=o===W.SHAREABLE)))}return n}validateDirective({data:t,definitionData:n,directiveCoords:r,directiveNode:i,errorMessages:a,requiredArgumentNames:o}){let c=i.name.value,l=t.kind===Z.Kind.FIELD_DEFINITION?t.renamedParentTypeName||t.originalParentTypeName:t.name,d=c===W.AUTHENTICATED,f=(0,tn.isFieldData)(t),y=c===W.OVERRIDE,I=c===W.REQUIRES_SCOPES,v=c===W.SEMANTIC_NON_NULL;if(!i.arguments||i.arguments.length<1)return n.requiredArgumentNames.size>0&&a.push((0,oe.undefinedRequiredArgumentsErrorMessage)(c,o,[])),d&&this.handleAuthenticatedDirective(t,l),v&&f&&((0,tn.isTypeRequired)(t.type)?a.push((0,oe.semanticNonNullLevelsNonNullErrorMessage)({typeString:(0,vi.printTypeNode)(t.type),value:"0"})):t.nullLevelsBySubgraphName.set(this.subgraphName,new Set([0]))),a;let w=new Set,U=new Set,V=new Set,Y=[];for(let me of i.arguments){let ue=me.name.value;if(w.has(ue)){U.add(ue);continue}w.add(ue);let Ae=n.argumentTypeNodeByName.get(ue);if(!Ae){V.add(ue);continue}if(!this.isArgumentValueValid(Ae.typeNode,me.value)){a.push((0,oe.invalidArgumentValueErrorMessage)((0,Z.print)(me.value),`@${c}`,ue,(0,vi.printTypeNode)(Ae.typeNode)));continue}if(y&&f){this.handleOverrideDirective({data:t,directiveCoords:r,errorMessages:a,targetSubgraphName:me.value.value});continue}if(v&&f){this.handleSemanticNonNullDirective({data:t,directiveNode:i,errorMessages:a});continue}!I||ue!==W.SCOPES||this.extractRequiredScopes({directiveCoords:r,orScopes:me.value.values,requiredScopes:Y})}U.size>0&&a.push((0,oe.duplicateDirectiveArgumentDefinitionsErrorMessage)([...U])),V.size>0&&a.push((0,oe.unexpectedDirectiveArgumentErrorMessage)(c,[...V]));let re=(0,je.getEntriesNotInHashSet)(o,w);if(re.length>0&&a.push((0,oe.undefinedRequiredArgumentsErrorMessage)(c,o,re)),a.length>0||!I)return a;let ne=(0,je.getValueOrDefault)(this.authorizationDataByParentTypeName,l,()=>(0,Jn.newAuthorizationData)(l));if(t.kind!==Z.Kind.FIELD_DEFINITION)this.parentTypeNamesWithAuthDirectives.add(l),ne.requiredScopes.push(...Y);else{let me=(0,je.getValueOrDefault)(ne.fieldAuthDataByFieldName,t.name,()=>(0,Jn.newFieldAuthorizationData)(t.name));me.inheritedData.requiredScopes.push(...Y),me.originalData.requiredScopes.push(...Y)}return a}validateDirectives(t,n){let r=new Set;for(let[i,a]of t.directivesByDirectiveName){let o=this.directiveDefinitionDataByName.get(i);if(!o){r.has(i)||(this.errors.push((0,oe.undefinedDirectiveError)(i,n)),r.add(i));continue}let c=[],l=(0,Pn.nodeKindToDirectiveLocation)(t.kind);if(o.locations.has(l)||c.push((0,oe.invalidDirectiveLocationErrorMessage)(i,l)),a.length>1&&!o.isRepeatable){let f=(0,je.getValueOrDefault)(this.invalidRepeatedDirectiveNameByCoords,n,()=>new Set);f.has(i)||(f.add(i),c.push((0,oe.invalidRepeatedDirectiveErrorMessage)(i)))}let d=[...o.requiredArgumentNames];for(let f=0;f0&&this.errors.push((0,oe.invalidDirectiveError)(i,n,(0,je.numberToOrdinal)(f+1),y))}}switch(t.kind){case Z.Kind.ENUM_TYPE_DEFINITION:{for(let[i,a]of t.enumValueDataByName)this.validateDirectives(a,`${t.name}.${i}`);return}case Z.Kind.FIELD_DEFINITION:{for(let[i,a]of t.argumentDataByName)this.validateDirectives(a,`${t.originalParentTypeName}.${t.name}(${i}: ...)`);return}case Z.Kind.INPUT_OBJECT_TYPE_DEFINITION:{for(let[i,a]of t.inputValueDataByName)this.validateDirectives(a,`${t.name}.${i}`);return}case Z.Kind.INTERFACE_TYPE_DEFINITION:case Z.Kind.OBJECT_TYPE_DEFINITION:{for(let[i,a]of t.fieldDataByName)this.validateDirectives(a,`${t.name}.${i}`);return}default:return}}getNodeExtensionType(t,n,r=!1){return t?as.ExtensionType.REAL:r||!n.has(W.EXTENDS)?as.ExtensionType.NONE:as.ExtensionType.EXTENDS}setParentDataExtensionType(t,n){switch(t.extensionType){case as.ExtensionType.EXTENDS:case as.ExtensionType.NONE:{if(n===as.ExtensionType.REAL)return;this.errors.push((0,oe.duplicateTypeDefinitionError)((0,je.kindToNodeType)(t.kind),t.name));return}default:t.extensionType=n}}extractConfigureDescriptionData(t,n){var i,a;if(!n.arguments||n.arguments.length<1){t.description||this.invalidConfigureDescriptionNodeDatas.push(t),t.configureDescriptionDataBySubgraphName.set(this.subgraphName,{propagate:!0,description:((i=t.description)==null?void 0:i.value)||""});return}let r={propagate:!0,description:((a=t.description)==null?void 0:a.value)||""};for(let o of n.arguments)switch(o.name.value){case W.PROPAGATE:{if(o.value.kind!=Z.Kind.BOOLEAN)return;r.propagate=o.value.value;break}case W.DESCRIPTION_OVERRIDE:{if(o.value.kind!=Z.Kind.STRING)return;r.description=o.value.value;break}default:return}!t.description&&!r.description&&this.invalidConfigureDescriptionNodeDatas.push(t),t.configureDescriptionDataBySubgraphName.set(this.subgraphName,r)}extractConfigureDescriptionsData(t){let n=t.directivesByDirectiveName.get(W.CONFIGURE_DESCRIPTION);n&&n.length==1&&this.extractConfigureDescriptionData(t,n[0])}extractImplementedInterfaceTypeNames(t,n){if(!t.interfaces)return n;let r=t.name.value;for(let i of t.interfaces){let a=i.name.value;if(n.has(a)){this.errors.push((0,oe.duplicateImplementedInterfaceError)((0,Jn.kindToConvertedTypeString)(t.kind),r,a));continue}n.add(a)}return n}updateCompositeOutputDataByNode(t,n,r){this.setParentDataExtensionType(n,r),this.extractImplementedInterfaceTypeNames(t,n.implementedInterfaceTypeNames),n.description||(n.description=(0,Pn.formatDescription)("description"in t?t.description:void 0)),this.extractConfigureDescriptionsData(n),n.isEntity||(n.isEntity=n.directivesByDirectiveName.has(W.KEY)),n.isInaccessible||(n.isInaccessible=n.directivesByDirectiveName.has(W.INACCESSIBLE)),n.subgraphNames.add(this.subgraphName)}addConcreteTypeNamesForImplementedInterfaces(t,n){for(let r of t)(0,je.getValueOrDefault)(this.concreteTypeNamesByAbstractTypeName,r,()=>new Set).add(n),this.internalGraph.addEdge(this.internalGraph.addOrUpdateNode(r,{isAbstract:!0}),this.internalGraph.addOrUpdateNode(n),n,!0)}extractArguments(t,n){var o;if(!((o=n.arguments)!=null&&o.length))return t;let r=n.name.value,i=`${this.originalParentTypeName}.${r}`,a=new Set;for(let c of n.arguments){let l=c.name.value;if(t.has(l)){a.add(l);continue}this.addInputValueDataByNode({fieldName:r,inputValueDataByName:t,isArgument:!0,node:c,originalParentTypeName:this.originalParentTypeName,renamedParentTypeName:this.renamedParentTypeName})}return a.size>0&&this.errors.push((0,oe.duplicateArgumentsError)(i,[...a])),t}addPersistedDirectiveDefinitionDataByNode(t,n,r){let i=n.name.value,a=`@${i}`,o=new Map;for(let c of n.arguments||[])this.addInputValueDataByNode({inputValueDataByName:o,isArgument:!0,node:c,originalParentTypeName:a});t.set(i,{argumentDataByName:o,executableLocations:r,name:i,repeatable:n.repeatable,subgraphNames:new Set([this.subgraphName]),description:(0,Pn.formatDescription)(n.description)})}extractDirectiveLocations(t,n){let r=new Set,i=new Set;for(let a of t.locations){let o=a.value;if(!i.has(o)){if(!W.EXECUTABLE_DIRECTIVE_LOCATIONS.has(o)&&!pf.TYPE_SYSTEM_DIRECTIVE_LOCATIONS.has(o)){n.push((0,oe.invalidDirectiveDefinitionLocationErrorMessage)(o)),i.add(o);continue}if(r.has(o)){n.push((0,oe.duplicateDirectiveDefinitionLocationErrorMessage)(o)),i.add(o);continue}r.add(o)}}return r}extractArgumentData(t,n){let r=new Map,i=new Set,a=new Set,o={argumentTypeNodeByName:r,optionalArgumentNames:i,requiredArgumentNames:a};if(!t)return o;let c=new Set;for(let l of t){let d=l.name.value;if(r.has(d)){c.add(d);continue}l.defaultValue&&i.add(d),(0,tn.isTypeRequired)(l.type)&&!l.defaultValue&&a.add(d),r.set(d,{name:d,typeNode:l.type,defaultValue:l.defaultValue})}return c.size>0&&n.push((0,oe.duplicateDirectiveDefinitionArgumentErrorMessage)([...c])),o}addDirectiveDefinitionDataByNode(t){let n=t.name.value;if(this.definedDirectiveNames.has(n))return this.errors.push((0,oe.duplicateDirectiveDefinitionError)(n)),!1;this.definedDirectiveNames.add(n);let r=$r.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.get(n);if(r)return this.directiveDefinitionByName.set(n,r),this.isSubgraphVersionTwo=!0,!1;if($r.DIRECTIVE_DEFINITION_BY_NAME.has(n))return!1;this.directiveDefinitionByName.set(n,t);let i=[],{argumentTypeNodeByName:a,optionalArgumentNames:o,requiredArgumentNames:c}=this.extractArgumentData(t.arguments,i);return this.directiveDefinitionDataByName.set(n,{argumentTypeNodeByName:a,isRepeatable:t.repeatable,locations:this.extractDirectiveLocations(t,i),name:n,node:t,optionalArgumentNames:o,requiredArgumentNames:c}),i.length>0&&this.errors.push((0,oe.invalidDirectiveDefinitionError)(n,i)),!0}addFieldDataByNode(t,n,r,i,a=new Set){let o=n.name.value,c=this.renamedParentTypeName||this.originalParentTypeName,l=`${this.originalParentTypeName}.${o}`,{isExternal:d,isShareable:f}=(0,tn.isNodeExternalOrShareable)(n,!this.isSubgraphVersionTwo,i),y=(0,lr.getTypeNodeNamedTypeName)(n.type),I={argumentDataByName:r,configureDescriptionDataBySubgraphName:new Map,externalFieldDataBySubgraphName:new Map([[this.subgraphName,(0,tn.newExternalFieldData)(d)]]),federatedCoords:`${c}.${o}`,inheritedDirectiveNames:a,isInaccessible:i.has(W.INACCESSIBLE),isShareableBySubgraphName:new Map([[this.subgraphName,f]]),kind:Z.Kind.FIELD_DEFINITION,name:o,namedTypeKind:$r.BASE_SCALARS.has(y)?Z.Kind.SCALAR_TYPE_DEFINITION:Z.Kind.NULL,namedTypeName:y,node:(0,lr.getMutableFieldNode)(n,l,this.errors),nullLevelsBySubgraphName:new Map,originalParentTypeName:this.originalParentTypeName,persistedDirectivesData:(0,tn.newPersistedDirectivesData)(),renamedParentTypeName:c,subgraphNames:new Set([this.subgraphName]),type:(0,lr.getMutableTypeNode)(n.type,l,this.errors),directivesByDirectiveName:i,description:(0,Pn.formatDescription)(n.description)};return $r.BASE_SCALARS.has(I.namedTypeName)||this.referencedTypeNames.add(I.namedTypeName),this.extractConfigureDescriptionsData(I),t.set(o,I),I}addInputValueDataByNode({fieldName:t,inputValueDataByName:n,isArgument:r,node:i,originalParentTypeName:a,renamedParentTypeName:o}){let c=o||a,l=i.name.value,d=r?`${a}${t?`.${t}`:""}(${l}: ...)`:`${a}.${l}`;i.defaultValue&&!(0,tn.areDefaultValuesCompatible)(i.type,i.defaultValue)&&this.errors.push((0,oe.incompatibleInputValueDefaultValueTypeError)((r?W.ARGUMENT:W.INPUT_FIELD)+` "${l}"`,d,(0,vi.printTypeNode)(i.type),(0,Z.print)(i.defaultValue)));let f=r?`${c}${t?`.${t}`:""}(${l}: ...)`:`${c}.${l}`,y=(0,lr.getTypeNodeNamedTypeName)(i.type),I={configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:this.extractDirectives(i,new Map),federatedCoords:f,fieldName:t,includeDefaultValue:!!i.defaultValue,isArgument:r,kind:r?Z.Kind.ARGUMENT:Z.Kind.INPUT_VALUE_DEFINITION,name:l,namedTypeKind:$r.BASE_SCALARS.has(y)?Z.Kind.SCALAR_TYPE_DEFINITION:Z.Kind.NULL,namedTypeName:y,node:(0,lr.getMutableInputValueNode)(i,a,this.errors),originalCoords:d,originalParentTypeName:a,persistedDirectivesData:(0,tn.newPersistedDirectivesData)(),renamedParentTypeName:c,requiredSubgraphNames:new Set((0,tn.isTypeRequired)(i.type)?[this.subgraphName]:[]),subgraphNames:new Set([this.subgraphName]),type:(0,lr.getMutableTypeNode)(i.type,a,this.errors),defaultValue:i.defaultValue,description:(0,Pn.formatDescription)(i.description)};this.extractConfigureDescriptionsData(I),n.set(l,I)}upsertInterfaceDataByNode(t,n=!1){let r=t.name.value,i=this.parentDefinitionDataByTypeName.get(r),a=this.extractDirectives(t,(i==null?void 0:i.directivesByDirectiveName)||new Map),o=this.getNodeExtensionType(n,a),c=this.entityInterfaceDataByTypeName.get(r);if(c&&t.fields)for(let d of t.fields)c.interfaceFieldNames.add(d.name.value);if(i){if(i.kind!==Z.Kind.INTERFACE_TYPE_DEFINITION){this.errors.push((0,oe.multipleNamedTypeDefinitionError)(r,(0,je.kindToNodeType)(i.kind),(0,Jn.kindToConvertedTypeString)(t.kind)));return}this.updateCompositeOutputDataByNode(t,i,o);return}let l={configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:a,extensionType:o,fieldDataByName:new Map,implementedInterfaceTypeNames:this.extractImplementedInterfaceTypeNames(t,new Set),isEntity:a.has(W.KEY),isInaccessible:a.has(W.INACCESSIBLE),kind:Z.Kind.INTERFACE_TYPE_DEFINITION,name:r,node:(0,lr.getMutableInterfaceNode)(t.name),persistedDirectivesData:(0,tn.newPersistedDirectivesData)(),requireFetchReasonsFieldNames:new Set,subgraphNames:new Set([this.subgraphName]),description:(0,Pn.formatDescription)("description"in t?t.description:void 0)};this.extractConfigureDescriptionsData(l),this.parentDefinitionDataByTypeName.set(r,l)}getRenamedRootTypeName(t){let n=this.operationTypeNodeByTypeName.get(t);if(!n)return t;switch(n){case Z.OperationTypeNode.MUTATION:return W.MUTATION;case Z.OperationTypeNode.SUBSCRIPTION:return W.SUBSCRIPTION;default:return W.QUERY}}addInterfaceObjectFieldsByNode(t){let n=t.name.value,r=this.entityInterfaceDataByTypeName.get(n);if(!(!r||!r.isInterfaceObject||!t.fields))for(let i of t.fields)r.interfaceObjectFieldNames.add(i.name.value)}upsertObjectDataByNode(t,n=!1){var f;let r=t.name.value,i=this.parentDefinitionDataByTypeName.get(r),a=this.extractDirectives(t,(f=i==null?void 0:i.directivesByDirectiveName)!=null?f:new Map),o=this.isTypeNameRootType(r),c=this.getNodeExtensionType(n,a,o);if(this.addInterfaceObjectFieldsByNode(t),i){if(i.kind!==Z.Kind.OBJECT_TYPE_DEFINITION){this.errors.push((0,oe.multipleNamedTypeDefinitionError)(r,(0,je.kindToNodeType)(i.kind),(0,Jn.kindToConvertedTypeString)(t.kind)));return}this.updateCompositeOutputDataByNode(t,i,c),a.has(W.INTERFACE_OBJECT)||this.addConcreteTypeNamesForImplementedInterfaces(i.implementedInterfaceTypeNames,r);return}let l=this.extractImplementedInterfaceTypeNames(t,new Set);a.has(W.INTERFACE_OBJECT)||this.addConcreteTypeNamesForImplementedInterfaces(l,r);let d={configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:a,extensionType:c,fieldDataByName:new Map,implementedInterfaceTypeNames:l,isEntity:a.has(W.KEY),isInaccessible:a.has(W.INACCESSIBLE),isRootType:o,kind:Z.Kind.OBJECT_TYPE_DEFINITION,name:r,node:(0,lr.getMutableObjectNode)(t.name),persistedDirectivesData:(0,tn.newPersistedDirectivesData)(),requireFetchReasonsFieldNames:new Set,renamedTypeName:this.getRenamedRootTypeName(r),subgraphNames:new Set([this.subgraphName]),description:(0,Pn.formatDescription)("description"in t?t.description:void 0)};this.extractConfigureDescriptionsData(d),this.parentDefinitionDataByTypeName.set(r,d)}upsertEnumDataByNode(t,n=!1){let r=t.name.value;this.internalGraph.addOrUpdateNode(r,{isLeaf:!0});let i=this.parentDefinitionDataByTypeName.get(r),a=this.extractDirectives(t,(i==null?void 0:i.directivesByDirectiveName)||new Map),o=this.getNodeExtensionType(n,a);if(i){if(i.kind!==Z.Kind.ENUM_TYPE_DEFINITION){this.errors.push((0,oe.multipleNamedTypeDefinitionError)(r,(0,je.kindToNodeType)(i.kind),(0,Jn.kindToConvertedTypeString)(t.kind)));return}this.setParentDataExtensionType(i,o),i.isInaccessible||(i.isInaccessible=a.has(W.INACCESSIBLE)),i.subgraphNames.add(this.subgraphName),i.description||(i.description=(0,Pn.formatDescription)("description"in t?t.description:void 0)),this.extractConfigureDescriptionsData(i);return}let c={appearances:1,configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:a,extensionType:o,enumValueDataByName:new Map,isInaccessible:a.has(W.INACCESSIBLE),kind:Z.Kind.ENUM_TYPE_DEFINITION,name:r,node:(0,lr.getMutableEnumNode)(t.name),persistedDirectivesData:(0,tn.newPersistedDirectivesData)(),subgraphNames:new Set([this.subgraphName]),description:(0,Pn.formatDescription)("description"in t?t.description:void 0)};this.extractConfigureDescriptionsData(c),this.parentDefinitionDataByTypeName.set(r,c)}upsertInputObjectByNode(t,n=!1){let r=t.name.value,i=this.parentDefinitionDataByTypeName.get(r),a=this.extractDirectives(t,(i==null?void 0:i.directivesByDirectiveName)||new Map),o=this.getNodeExtensionType(n,a);if(i)return i.kind!==Z.Kind.INPUT_OBJECT_TYPE_DEFINITION?(this.errors.push((0,oe.multipleNamedTypeDefinitionError)(r,(0,je.kindToNodeType)(i.kind),(0,Jn.kindToConvertedTypeString)(t.kind))),{success:!1}):(this.setParentDataExtensionType(i,o),i.isInaccessible||(i.isInaccessible=a.has(W.INACCESSIBLE)),i.subgraphNames.add(this.subgraphName),i.description||(i.description=(0,Pn.formatDescription)("description"in t?t.description:void 0)),this.extractConfigureDescriptionsData(i),{success:!0,data:i});let c={configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:a,extensionType:o,inputValueDataByName:new Map,isInaccessible:a.has(W.INACCESSIBLE),kind:Z.Kind.INPUT_OBJECT_TYPE_DEFINITION,name:r,node:(0,lr.getMutableInputObjectNode)(t.name),persistedDirectivesData:(0,tn.newPersistedDirectivesData)(),subgraphNames:new Set([this.subgraphName]),description:(0,Pn.formatDescription)("description"in t?t.description:void 0)};return this.extractConfigureDescriptionsData(c),this.parentDefinitionDataByTypeName.set(r,c),{success:!0,data:c}}upsertScalarByNode(t,n=!1){let r=t.name.value;this.internalGraph.addOrUpdateNode(r,{isLeaf:!0});let i=this.parentDefinitionDataByTypeName.get(r),a=this.extractDirectives(t,(i==null?void 0:i.directivesByDirectiveName)||new Map),o=this.getNodeExtensionType(n,a);if(i){if(i.kind!==Z.Kind.SCALAR_TYPE_DEFINITION){this.errors.push((0,oe.multipleNamedTypeDefinitionError)(r,(0,je.kindToNodeType)(i.kind),(0,Jn.kindToConvertedTypeString)(t.kind)));return}this.setParentDataExtensionType(i,o),i.description||(i.description=(0,Pn.formatDescription)("description"in t?t.description:void 0)),i.subgraphNames.add(this.subgraphName),this.extractConfigureDescriptionsData(i);return}let c={configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:a,extensionType:o,kind:Z.Kind.SCALAR_TYPE_DEFINITION,name:r,node:(0,lr.getMutableScalarNode)(t.name),persistedDirectivesData:(0,tn.newPersistedDirectivesData)(),subgraphNames:new Set([this.subgraphName]),description:(0,Pn.formatDescription)("description"in t?t.description:void 0)};this.extractConfigureDescriptionsData(c),this.parentDefinitionDataByTypeName.set(r,c)}extractUnionMembers(t,n){if(!t.types)return n;let r=t.name.value;for(let i of t.types){let a=i.name.value;if(n.has(a)){this.errors.push((0,oe.duplicateUnionMemberDefinitionError)(r,a));continue}(0,je.getValueOrDefault)(this.concreteTypeNamesByAbstractTypeName,r,()=>new Set).add(a),$r.BASE_SCALARS.has(a)||this.referencedTypeNames.add(a),n.set(a,i)}return n}upsertUnionByNode(t,n=!1){let r=t.name.value,i=this.parentDefinitionDataByTypeName.get(r),a=this.extractDirectives(t,(i==null?void 0:i.directivesByDirectiveName)||new Map),o=this.getNodeExtensionType(n,a);if(this.addConcreteTypeNamesForUnion(t),i){if(i.kind!==Z.Kind.UNION_TYPE_DEFINITION){this.errors.push((0,oe.multipleNamedTypeDefinitionError)(r,(0,je.kindToNodeType)(i.kind),(0,Jn.kindToConvertedTypeString)(t.kind)));return}this.setParentDataExtensionType(i,o),this.extractUnionMembers(t,i.memberByMemberTypeName),i.description||(i.description=(0,Pn.formatDescription)("description"in t?t.description:void 0)),i.subgraphNames.add(this.subgraphName),this.extractConfigureDescriptionsData(i);return}let c={configureDescriptionDataBySubgraphName:new Map,directivesByDirectiveName:a,extensionType:o,kind:Z.Kind.UNION_TYPE_DEFINITION,memberByMemberTypeName:this.extractUnionMembers(t,new Map),name:r,node:(0,lr.getMutableUnionNode)(t.name),persistedDirectivesData:(0,tn.newPersistedDirectivesData)(),subgraphNames:new Set([this.subgraphName]),description:(0,Pn.formatDescription)("description"in t?t.description:void 0)};this.extractConfigureDescriptionsData(c),this.parentDefinitionDataByTypeName.set(r,c)}extractKeyFieldSets(t,n){var a;let r=t.name.value;if(!((a=t.directives)!=null&&a.length)){this.errors.push((0,oe.expectedEntityError)(r));return}let i=0;for(let o of t.directives){if(o.name.value!==W.KEY||(i+=1,!o.arguments||o.arguments.length<1))continue;let c,l=!1;for(let v of o.arguments){if(v.name.value===W.RESOLVABLE){v.value.kind===Z.Kind.BOOLEAN&&!v.value.value&&(l=!0);continue}if(v.name.value!==W.FIELDS){c=void 0;break}if(v.value.kind!==Z.Kind.STRING){c=void 0;break}c=v.value.value}if(c===void 0)continue;let{error:d,documentNode:f}=(0,Pn.safeParse)("{"+c+"}");if(d||!f){this.errors.push((0,oe.invalidDirectiveError)(W.KEY,r,(0,je.numberToOrdinal)(i),[(0,oe.unparsableFieldSetErrorMessage)(c,d)]));continue}let y=(0,ui.getNormalizedFieldSet)(f),I=n.get(y);I?I.isUnresolvable||(I.isUnresolvable=l):n.set(y,{documentNode:f,isUnresolvable:l,normalizedFieldSet:y,rawFieldSet:c})}}getFieldSetParent(t,n,r,i){if(!t)return{fieldSetParentData:n};let a=(0,je.getOrThrowError)(n.fieldDataByName,r,`${i}.fieldDataByFieldName`),o=(0,lr.getTypeNodeNamedTypeName)(a.node.type),c=this.parentDefinitionDataByTypeName.get(o);return c?c.kind!==Z.Kind.INTERFACE_TYPE_DEFINITION&&c.kind!==Z.Kind.OBJECT_TYPE_DEFINITION?{errorString:(0,oe.incompatibleTypeWithProvidesErrorMessage)(`${i}.${r}`,o)}:{fieldSetParentData:c}:{errorString:(0,oe.unknownNamedTypeErrorMessage)(`${i}.${r}`,o)}}validateConditionalFieldSet(t,n,r,i,a){let{error:o,documentNode:c}=(0,Pn.safeParse)("{"+n+"}");if(o||!c)return{errorMessages:[(0,oe.unparsableFieldSetErrorMessage)(n,o)]};let l=this,d=[t],f=(0,ui.getConditionalFieldSetDirectiveName)(i),y=[],I=`${a}.${r}`,v=(0,ui.getInitialFieldCoordsPath)(i,I),w=[r],U=new Set,V=[],Y=-1,re=!0,ne=r,me=!1;return(0,Z.visit)(c,{Argument:{enter(){return!1}},Field:{enter(ue){let Ae=d[Y],Me=Ae.name;if(Ae.kind===Z.Kind.UNION_TYPE_DEFINITION)return V.push((0,oe.invalidSelectionOnUnionErrorMessage)(n,v,Me)),Z.BREAK;let nt=ue.name.value,X=`${Me}.${nt}`;if(l.unvalidatedExternalFieldCoords.delete(X),re)return V.push((0,oe.invalidSelectionSetErrorMessage)(n,v,Me,(0,je.kindToNodeType)(Ae.kind))),Z.BREAK;v.push(X),w.push(nt),ne=nt;let _e=Ae.fieldDataByName.get(nt);if(!_e)return V.push((0,oe.undefinedFieldInFieldSetErrorMessage)(n,Me,nt)),Z.BREAK;if(y[Y].has(nt))return V.push((0,oe.duplicateFieldInFieldSetErrorMessage)(n,X)),Z.BREAK;y[Y].add(nt);let{isDefinedExternal:vt,isUnconditionallyProvided:nn}=(0,je.getOrThrowError)(_e.externalFieldDataBySubgraphName,l.subgraphName,`${X}.externalFieldDataBySubgraphName`),rn=vt&&!nn;nn||(me=!0);let Fn=(0,lr.getTypeNodeNamedTypeName)(_e.node.type),$t=l.parentDefinitionDataByTypeName.get(Fn);if($r.BASE_SCALARS.has(Fn)||($t==null?void 0:$t.kind)===Z.Kind.SCALAR_TYPE_DEFINITION||($t==null?void 0:$t.kind)===Z.Kind.ENUM_TYPE_DEFINITION){if(U.size<1&&!vt){if(l.isSubgraphVersionTwo){l.errors.push((0,oe.nonExternalConditionalFieldError)(I,l.subgraphName,X,n,f));return}l.warnings.push((0,ss.nonExternalConditionalFieldWarning)(I,l.subgraphName,X,n,f));return}if(U.size<1&&nn){l.isSubgraphVersionTwo?V.push((0,oe.fieldAlreadyProvidedErrorMessage)(X,l.subgraphName,f)):l.warnings.push((0,ss.fieldAlreadyProvidedWarning)(X,f,I,l.subgraphName));return}if(!rn&&!i)return;let En=(0,je.getValueOrDefault)(l.conditionalFieldDataByCoords,X,tn.newConditionalFieldData),kr=(0,ff.newFieldSetConditionData)({fieldCoordinatesPath:[...v],fieldPath:[...w]});i?En.providedBy.push(kr):En.requiredBy.push(kr);return}if(!$t)return V.push((0,oe.unknownTypeInFieldSetErrorMessage)(n,X,Fn)),Z.BREAK;if(vt&&(i&&(0,je.getValueOrDefault)(l.conditionalFieldDataByCoords,X,tn.newConditionalFieldData).providedBy.push((0,ff.newFieldSetConditionData)({fieldCoordinatesPath:[...v],fieldPath:[...w]})),U.add(X)),$t.kind===Z.Kind.OBJECT_TYPE_DEFINITION||$t.kind===Z.Kind.INTERFACE_TYPE_DEFINITION||$t.kind===Z.Kind.UNION_TYPE_DEFINITION){re=!0,d.push($t);return}},leave(){U.delete(v.pop()||""),w.pop()}},InlineFragment:{enter(ue){let Ae=d[Y],Me=Ae.name,nt=v.length<1?t.name:v[v.length-1];if(!ue.typeCondition)return V.push((0,oe.inlineFragmentWithoutTypeConditionErrorMessage)(n,nt)),Z.BREAK;let X=ue.typeCondition.name.value;if(X===Me){d.push(Ae),re=!0;return}if(!(0,Pn.isKindAbstract)(Ae.kind))return V.push((0,oe.invalidInlineFragmentTypeErrorMessage)(n,v,X,Me)),Z.BREAK;let _e=l.parentDefinitionDataByTypeName.get(X);if(!_e)return V.push((0,oe.unknownInlineFragmentTypeConditionErrorMessage)(n,v,Me,X)),Z.BREAK;switch(re=!0,_e.kind){case Z.Kind.INTERFACE_TYPE_DEFINITION:{if(!_e.implementedInterfaceTypeNames.has(Me))break;d.push(_e);return}case Z.Kind.OBJECT_TYPE_DEFINITION:{let vt=l.concreteTypeNamesByAbstractTypeName.get(Me);if(!vt||!vt.has(X))break;d.push(_e);return}case Z.Kind.UNION_TYPE_DEFINITION:{d.push(_e);return}default:return V.push((0,oe.invalidInlineFragmentTypeConditionTypeErrorMessage)(n,v,Me,X,(0,je.kindToNodeType)(_e.kind))),Z.BREAK}return V.push((0,oe.invalidInlineFragmentTypeConditionErrorMessage)(n,v,X,(0,je.kindToNodeType)(Ae.kind),Me)),Z.BREAK}},SelectionSet:{enter(){if(!re){let ue=d[Y];if(ue.kind===Z.Kind.UNION_TYPE_DEFINITION)return V.push((0,oe.unparsableFieldSetSelectionErrorMessage)(n,ne)),Z.BREAK;let Ae=ue.fieldDataByName.get(ne);if(!Ae)return V.push((0,oe.undefinedFieldInFieldSetErrorMessage)(n,ue.name,ne)),Z.BREAK;let Me=(0,lr.getTypeNodeNamedTypeName)(Ae.node.type),nt=l.parentDefinitionDataByTypeName.get(Me),X=nt?nt.kind:Z.Kind.SCALAR_TYPE_DEFINITION;return V.push((0,oe.invalidSelectionSetDefinitionErrorMessage)(n,v,Me,(0,je.kindToNodeType)(X))),Z.BREAK}if(Y+=1,re=!1,Y<0||Y>=d.length)return V.push((0,oe.unparsableFieldSetSelectionErrorMessage)(n,ne)),Z.BREAK;y.push(new Set)},leave(){if(re){let ue=d[Y+1];V.push((0,oe.invalidSelectionSetErrorMessage)(n,v,ue.name,(0,je.kindToNodeType)(ue.kind))),re=!1}Y-=1,d.pop(),y.pop()}}}),V.length>0||!me?{errorMessages:V}:{configuration:{fieldName:r,selectionSet:(0,ui.getNormalizedFieldSet)(c)},errorMessages:V}}validateProvidesOrRequires(t,n,r){let i=[],a=[],o=(0,tn.getParentTypeName)(t);for(let[c,l]of n){let{fieldSetParentData:d,errorString:f}=this.getFieldSetParent(r,t,c,o),y=`${o}.${c}`;if(f){i.push(f);continue}if(!d)continue;let{errorMessages:I,configuration:v}=this.validateConditionalFieldSet(d,l,c,r,o);if(I.length>0){i.push(` On field "${y}": + -`+I.join(W.HYPHEN_JOIN));continue}v&&a.push(v)}if(i.length>0){this.errors.push((0,oe.invalidProvidesOrRequiresDirectivesError)((0,ui.getConditionalFieldSetDirectiveName)(r),i));return}if(a.length>0)return a}validateInterfaceImplementations(t){if(t.implementedInterfaceTypeNames.size<1)return;let n=t.directivesByDirectiveName.has(W.INACCESSIBLE),r=new Map,i=new Map,a=!1;for(let o of t.implementedInterfaceTypeNames){let c=this.parentDefinitionDataByTypeName.get(o);if($r.BASE_SCALARS.has(o)&&this.referencedTypeNames.add(o),!c)continue;if(c.kind!==Z.Kind.INTERFACE_TYPE_DEFINITION){i.set(c.name,(0,je.kindToNodeType)(c.kind));continue}if(t.name===c.name){a=!0;continue}let l={invalidFieldImplementations:new Map,unimplementedFields:[]},d=!1;for(let[f,y]of c.fieldDataByName){this.unvalidatedExternalFieldCoords.delete(`${t.name}.${f}`);let I=!1,v=t.fieldDataByName.get(f);if(!v){d=!0,l.unimplementedFields.push(f);continue}let w={invalidAdditionalArguments:new Set,invalidImplementedArguments:[],isInaccessible:!1,originalResponseType:(0,vi.printTypeNode)(y.node.type),unimplementedArguments:new Set};(0,tn.isTypeValidImplementation)(y.node.type,v.node.type,this.concreteTypeNamesByAbstractTypeName)||(d=!0,I=!0,w.implementedResponseType=(0,vi.printTypeNode)(v.node.type));let U=new Set;for(let[V,Y]of y.argumentDataByName){U.add(V);let re=v.argumentDataByName.get(V);if(!re){d=!0,I=!0,w.unimplementedArguments.add(V);continue}let ne=(0,vi.printTypeNode)(re.type),me=(0,vi.printTypeNode)(Y.type);me!==ne&&(d=!0,I=!0,w.invalidImplementedArguments.push({actualType:ne,argumentName:V,expectedType:me}))}for(let[V,Y]of v.argumentDataByName)U.has(V)||Y.type.kind===Z.Kind.NON_NULL_TYPE&&(d=!0,I=!0,w.invalidAdditionalArguments.add(V));!n&&v.isInaccessible&&!y.isInaccessible&&(d=!0,I=!0,w.isInaccessible=!0),I&&l.invalidFieldImplementations.set(f,w)}d&&r.set(o,l)}i.size>0&&this.errors.push((0,oe.invalidImplementedTypeError)(t.name,i)),a&&this.errors.push((0,oe.selfImplementationError)(t.name)),r.size>0&&this.errors.push((0,oe.invalidInterfaceImplementationError)(t.name,(0,je.kindToNodeType)(t.kind),r))}handleAuthenticatedDirective(t,n){let r=(0,je.getValueOrDefault)(this.authorizationDataByParentTypeName,n,()=>(0,Jn.newAuthorizationData)(n));if(t.kind===Z.Kind.FIELD_DEFINITION){let i=(0,je.getValueOrDefault)(r.fieldAuthDataByFieldName,t.name,()=>(0,Jn.newFieldAuthorizationData)(t.name));i.inheritedData.requiresAuthentication=!0,i.originalData.requiresAuthentication=!0}else r.requiresAuthentication=!0,this.parentTypeNamesWithAuthDirectives.add(n)}handleOverrideDirective({data:t,directiveCoords:n,errorMessages:r,targetSubgraphName:i}){if(i===this.subgraphName){r.push((0,oe.equivalentSourceAndTargetOverrideErrorMessage)(i,n));return}let a=(0,je.getValueOrDefault)(this.overridesByTargetSubgraphName,i,()=>new Map);(0,je.getValueOrDefault)(a,t.renamedParentTypeName,()=>new Set).add(t.name)}handleSemanticNonNullDirective({data:t,directiveNode:n,errorMessages:r}){var y;let i=new Set,a=t.node.type,o=0;for(;a;)switch(a.kind){case Z.Kind.LIST_TYPE:{o+=1,a=a.type;break}case Z.Kind.NON_NULL_TYPE:{i.add(o),a=a.type;break}default:{a=null;break}}let c=(y=n.arguments)==null?void 0:y.find(I=>I.name.value===W.LEVELS);if(!c||c.value.kind!==Z.Kind.LIST){r.push(oe.semanticNonNullArgumentErrorMessage);return}let l=c.value.values,d=(0,vi.printTypeNode)(t.type),f=new Set;for(let{value:I}of l){let v=parseInt(I,10);if(Number.isNaN(v)){r.push((0,oe.semanticNonNullLevelsNaNIndexErrorMessage)(I));continue}if(v<0||v>o){r.push((0,oe.semanticNonNullLevelsIndexOutOfBoundsErrorMessage)({maxIndex:o,typeString:d,value:I}));continue}if(!i.has(v)){f.add(v);continue}r.push((0,oe.semanticNonNullLevelsNonNullErrorMessage)({typeString:d,value:I}))}t.nullLevelsBySubgraphName.set(this.subgraphName,f)}extractRequiredScopes({directiveCoords:t,orScopes:n,requiredScopes:r}){if(n.length>$r.MAX_OR_SCOPES){this.invalidORScopesCoords.add(t);return}for(let i of n){let a=new Set;for(let o of i.values)a.add(o.value);a.size<1||(0,Jn.addScopes)(r,a)}}getKafkaPublishConfiguration(t,n,r,i){let a=[],o=W.DEFAULT_EDFS_PROVIDER_ID;for(let c of t.arguments||[])switch(c.name.value){case W.TOPIC:{if(c.value.kind!==Z.Kind.STRING||c.value.value.length<1){i.push((0,oe.invalidEventSubjectErrorMessage)(W.TOPIC));continue}(0,ui.validateArgumentTemplateReferences)(c.value.value,n,i),a.push(c.value.value);break}case W.PROVIDER_ID:{if(c.value.kind!==Z.Kind.STRING||c.value.value.length<1){i.push(oe.invalidEventProviderIdErrorMessage);continue}o=c.value.value;break}}if(!(i.length>0))return{fieldName:r,providerId:o,providerType:W.PROVIDER_TYPE_KAFKA,topics:a,type:W.PUBLISH}}getKafkaSubscribeConfiguration(t,n,r,i){let a=[],o=W.DEFAULT_EDFS_PROVIDER_ID;for(let c of t.arguments||[])switch(c.name.value){case W.TOPICS:{if(c.value.kind!==Z.Kind.LIST){i.push((0,oe.invalidEventSubjectsErrorMessage)(W.TOPICS));continue}for(let l of c.value.values){if(l.kind!==Z.Kind.STRING||l.value.length<1){i.push((0,oe.invalidEventSubjectsItemErrorMessage)(W.TOPICS));break}(0,ui.validateArgumentTemplateReferences)(l.value,n,i),a.push(l.value)}break}case W.PROVIDER_ID:{if(c.value.kind!==Z.Kind.STRING||c.value.value.length<1){i.push(oe.invalidEventProviderIdErrorMessage);continue}o=c.value.value;break}}if(!(i.length>0))return{fieldName:r,providerId:o,providerType:W.PROVIDER_TYPE_KAFKA,topics:a,type:W.SUBSCRIBE}}getNatsPublishAndRequestConfiguration(t,n,r,i,a){let o=[],c=W.DEFAULT_EDFS_PROVIDER_ID;for(let l of n.arguments||[])switch(l.name.value){case W.SUBJECT:{if(l.value.kind!==Z.Kind.STRING||l.value.value.length<1){a.push((0,oe.invalidEventSubjectErrorMessage)(W.SUBJECT));continue}(0,ui.validateArgumentTemplateReferences)(l.value.value,r,a),o.push(l.value.value);break}case W.PROVIDER_ID:{if(l.value.kind!==Z.Kind.STRING||l.value.value.length<1){a.push(oe.invalidEventProviderIdErrorMessage);continue}c=l.value.value;break}}if(!(a.length>0))return{fieldName:i,providerId:c,providerType:W.PROVIDER_TYPE_NATS,subjects:o,type:t}}getNatsSubscribeConfiguration(t,n,r,i){let a=[],o=W.DEFAULT_EDFS_PROVIDER_ID,c=sh.DEFAULT_CONSUMER_INACTIVE_THRESHOLD,l="",d="";for(let f of t.arguments||[])switch(f.name.value){case W.SUBJECTS:{if(f.value.kind!==Z.Kind.LIST){i.push((0,oe.invalidEventSubjectsErrorMessage)(W.SUBJECTS));continue}for(let y of f.value.values){if(y.kind!==Z.Kind.STRING||y.value.length<1){i.push((0,oe.invalidEventSubjectsItemErrorMessage)(W.SUBJECTS));break}(0,ui.validateArgumentTemplateReferences)(y.value,n,i),a.push(y.value)}break}case W.PROVIDER_ID:{if(f.value.kind!==Z.Kind.STRING||f.value.value.length<1){i.push(oe.invalidEventProviderIdErrorMessage);continue}o=f.value.value;break}case W.STREAM_CONFIGURATION:{if(this.usesEdfsNatsStreamConfiguration=!0,f.value.kind!==Z.Kind.OBJECT||f.value.fields.length<1){i.push(oe.invalidNatsStreamInputErrorMessage);continue}let y=!0,I=new Set,v=new Set(pf.STREAM_CONFIGURATION_FIELD_NAMES),w=new Set([W.CONSUMER_NAME,W.STREAM_NAME]),U=new Set,V=new Set;for(let Y of f.value.fields){let re=Y.name.value;if(!pf.STREAM_CONFIGURATION_FIELD_NAMES.has(re)){I.add(re),y=!1;continue}if(v.has(re))v.delete(re);else{U.add(re),y=!1;continue}switch(w.has(re)&&w.delete(re),re){case W.CONSUMER_NAME:if(Y.value.kind!=Z.Kind.STRING||Y.value.value.length<1){V.add(re),y=!1;continue}l=Y.value.value;break;case W.STREAM_NAME:if(Y.value.kind!=Z.Kind.STRING||Y.value.value.length<1){V.add(re),y=!1;continue}d=Y.value.value;break;case W.CONSUMER_INACTIVE_THRESHOLD:if(Y.value.kind!=Z.Kind.INT){i.push((0,oe.invalidArgumentValueErrorMessage)((0,Z.print)(Y.value),"edfs__NatsStreamConfiguration","consumerInactiveThreshold",W.INT_SCALAR)),y=!1;continue}try{c=parseInt(Y.value.value,10)}catch(ne){i.push((0,oe.invalidArgumentValueErrorMessage)((0,Z.print)(Y.value),"edfs__NatsStreamConfiguration","consumerInactiveThreshold",W.INT_SCALAR)),y=!1}break}}(!y||w.size>0)&&i.push((0,oe.invalidNatsStreamInputFieldsErrorMessage)([...w],[...U],[...V],[...I]))}}if(!(i.length>0))return c<0?(c=sh.DEFAULT_CONSUMER_INACTIVE_THRESHOLD,this.warnings.push((0,ss.consumerInactiveThresholdInvalidValueWarning)(this.subgraphName,`The value has been set to ${sh.DEFAULT_CONSUMER_INACTIVE_THRESHOLD}.`))):c>gde.MAX_INT32&&(c=0,this.warnings.push((0,ss.consumerInactiveThresholdInvalidValueWarning)(this.subgraphName,"The value has been set to 0. This means the consumer will remain indefinitely active until its manual deletion."))),M({fieldName:r,providerId:o,providerType:W.PROVIDER_TYPE_NATS,subjects:a,type:W.SUBSCRIBE},l&&d?{streamConfiguration:{consumerInactiveThreshold:c,consumerName:l,streamName:d}}:{})}getRedisPublishConfiguration(t,n,r,i){let a=[],o=W.DEFAULT_EDFS_PROVIDER_ID;for(let c of t.arguments||[])switch(c.name.value){case W.CHANNEL:{if(c.value.kind!==Z.Kind.STRING||c.value.value.length<1){i.push((0,oe.invalidEventSubjectErrorMessage)(W.CHANNEL));continue}(0,ui.validateArgumentTemplateReferences)(c.value.value,n,i),a.push(c.value.value);break}case W.PROVIDER_ID:{if(c.value.kind!==Z.Kind.STRING||c.value.value.length<1){i.push(oe.invalidEventProviderIdErrorMessage);continue}o=c.value.value;break}}if(!(i.length>0))return{fieldName:r,providerId:o,providerType:W.PROVIDER_TYPE_REDIS,channels:a,type:W.PUBLISH}}getRedisSubscribeConfiguration(t,n,r,i){let a=[],o=W.DEFAULT_EDFS_PROVIDER_ID;for(let c of t.arguments||[])switch(c.name.value){case W.CHANNELS:{if(c.value.kind!==Z.Kind.LIST){i.push((0,oe.invalidEventSubjectsErrorMessage)(W.CHANNELS));continue}for(let l of c.value.values){if(l.kind!==Z.Kind.STRING||l.value.length<1){i.push((0,oe.invalidEventSubjectsItemErrorMessage)(W.CHANNELS));break}(0,ui.validateArgumentTemplateReferences)(l.value,n,i),a.push(l.value)}break}case W.PROVIDER_ID:{if(c.value.kind!==Z.Kind.STRING||c.value.value.length<1){i.push(oe.invalidEventProviderIdErrorMessage);continue}o=c.value.value;break}}if(!(i.length>0))return{fieldName:r,providerId:o,providerType:W.PROVIDER_TYPE_REDIS,channels:a,type:W.SUBSCRIBE}}validateSubscriptionFilterDirectiveLocation(t){if(!t.directives)return;let n=this.renamedParentTypeName||this.originalParentTypeName,r=`${n}.${t.name.value}`,i=this.getOperationTypeNodeForRootTypeName(n)===Z.OperationTypeNode.SUBSCRIPTION;for(let a of t.directives)if(a.name.value===W.SUBSCRIPTION_FILTER&&!i){this.errors.push((0,oe.invalidSubscriptionFilterLocationError)(r));return}}extractEventDirectivesToConfiguration(t,n){if(!t.directives)return;let r=t.name.value,i=`${this.renamedParentTypeName||this.originalParentTypeName}.${r}`;for(let a of t.directives){let o=[],c;switch(a.name.value){case W.EDFS_KAFKA_PUBLISH:c=this.getKafkaPublishConfiguration(a,n,r,o);break;case W.EDFS_KAFKA_SUBSCRIBE:c=this.getKafkaSubscribeConfiguration(a,n,r,o);break;case W.EDFS_NATS_PUBLISH:{c=this.getNatsPublishAndRequestConfiguration(W.PUBLISH,a,n,r,o);break}case W.EDFS_NATS_REQUEST:{c=this.getNatsPublishAndRequestConfiguration(W.REQUEST,a,n,r,o);break}case W.EDFS_NATS_SUBSCRIBE:{c=this.getNatsSubscribeConfiguration(a,n,r,o);break}case W.EDFS_REDIS_PUBLISH:{c=this.getRedisPublishConfiguration(a,n,r,o);break}case W.EDFS_REDIS_SUBSCRIBE:{c=this.getRedisSubscribeConfiguration(a,n,r,o);break}default:continue}if(o.length>0){this.errors.push((0,oe.invalidEventDirectiveError)(a.name.value,i,o));continue}c&&(0,je.getValueOrDefault)(this.eventsConfigurations,this.renamedParentTypeName||this.originalParentTypeName,()=>[]).push(c)}}getValidEventsDirectiveNamesForOperationTypeNode(t){switch(t){case Z.OperationTypeNode.MUTATION:return new Set([W.EDFS_KAFKA_PUBLISH,W.EDFS_NATS_PUBLISH,W.EDFS_NATS_REQUEST,W.EDFS_REDIS_PUBLISH]);case Z.OperationTypeNode.QUERY:return new Set([W.EDFS_NATS_REQUEST]);case Z.OperationTypeNode.SUBSCRIPTION:return new Set([W.EDFS_KAFKA_SUBSCRIBE,W.EDFS_NATS_SUBSCRIBE,W.EDFS_REDIS_SUBSCRIBE])}}getOperationTypeNodeForRootTypeName(t){let n=this.operationTypeNodeByTypeName.get(t);if(n)return n;switch(t){case W.MUTATION:return Z.OperationTypeNode.MUTATION;case W.QUERY:return Z.OperationTypeNode.QUERY;case W.SUBSCRIPTION:return Z.OperationTypeNode.SUBSCRIPTION;default:return}}validateEventDrivenRootType(t,n,r,i){let a=this.getOperationTypeNodeForRootTypeName(t.name);if(!a){this.errors.push((0,oe.invalidRootTypeError)(t.name));return}let o=this.getValidEventsDirectiveNamesForOperationTypeNode(a);for(let[c,l]of t.fieldDataByName){let d=`${l.originalParentTypeName}.${c}`,f=new Set;for(let V of pf.EVENT_DIRECTIVE_NAMES)l.directivesByDirectiveName.has(V)&&f.add(V);let y=new Set;for(let V of f)o.has(V)||y.add(V);if((f.size<1||y.size>0)&&n.set(d,{definesDirectives:f.size>0,invalidDirectiveNames:[...y]}),a===Z.OperationTypeNode.MUTATION){let V=(0,vi.printTypeNode)(l.type);V!==W.NON_NULLABLE_EDFS_PUBLISH_EVENT_RESULT&&i.set(d,V);continue}let I=(0,vi.printTypeNode)(l.type),v=l.namedTypeName+"!",w=!1,U=this.concreteTypeNamesByAbstractTypeName.get(l.namedTypeName)||new Set([l.namedTypeName]);for(let V of U)if(w||(w=this.entityDataByTypeName.has(V)),w)break;(!w||I!==v)&&r.set(d,I)}}validateEventDrivenKeyDefinition(t,n){let r=this.keyFieldSetDatasByTypeName.get(t);if(r)for(let[i,{isUnresolvable:a}]of r)a||(0,je.getValueOrDefault)(n,t,()=>[]).push(i)}validateEventDrivenObjectFields(t,n,r,i){var a;for(let[o,c]of t){let l=`${c.originalParentTypeName}.${o}`;if(n.has(o)){(a=c.externalFieldDataBySubgraphName.get(this.subgraphName))!=null&&a.isDefinedExternal||r.set(l,o);continue}i.set(l,o)}}isEdfsPublishResultValid(){let t=this.parentDefinitionDataByTypeName.get(W.EDFS_PUBLISH_RESULT);if(!t)return!0;if(t.kind!==Z.Kind.OBJECT_TYPE_DEFINITION||t.fieldDataByName.size!=1)return!1;for(let[n,r]of t.fieldDataByName)if(r.argumentDataByName.size>0||n!==W.SUCCESS||(0,vi.printTypeNode)(r.type)!==W.NON_NULLABLE_BOOLEAN)return!1;return!0}isNatsStreamConfigurationInputObjectValid(t){if(!(0,tn.isInputObjectDefinitionData)(t)||t.inputValueDataByName.size!=3)return!1;for(let[n,r]of t.inputValueDataByName)switch(n){case W.CONSUMER_INACTIVE_THRESHOLD:{if((0,vi.printTypeNode)(r.type)!==W.NON_NULLABLE_INT||!r.defaultValue||r.defaultValue.kind!==Z.Kind.INT||r.defaultValue.value!==`${sh.DEFAULT_CONSUMER_INACTIVE_THRESHOLD}`)return!1;break}case W.CONSUMER_NAME:case W.STREAM_NAME:{if((0,vi.printTypeNode)(r.type)!==W.NON_NULLABLE_STRING)return!1;break}default:return!1}return!0}validateEventDrivenSubgraph(){let t=[],n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,c=new Map,l=new Set,d=new Set;for(let[f,y]of this.parentDefinitionDataByTypeName){if(f===W.EDFS_PUBLISH_RESULT||f===W.EDFS_NATS_STREAM_CONFIGURATION||y.kind!==Z.Kind.OBJECT_TYPE_DEFINITION)continue;if(y.isRootType){this.validateEventDrivenRootType(y,n,r,i);continue}let I=this.keyFieldNamesByParentTypeName.get(f);if(!I){d.add(f);continue}this.validateEventDrivenKeyDefinition(f,a),this.validateEventDrivenObjectFields(y.fieldDataByName,I,o,c)}if(this.isEdfsPublishResultValid()||t.push(oe.invalidEdfsPublishResultObjectErrorMessage),this.edfsDirectiveReferences.has(W.EDFS_NATS_SUBSCRIBE)){let f=this.parentDefinitionDataByTypeName.get(W.EDFS_NATS_STREAM_CONFIGURATION);f&&this.usesEdfsNatsStreamConfiguration&&!this.isNatsStreamConfigurationInputObjectValid(f)&&t.push(oe.invalidNatsStreamConfigurationDefinitionErrorMessage),this.parentDefinitionDataByTypeName.delete(W.EDFS_NATS_STREAM_CONFIGURATION);let y=this.upsertInputObjectByNode(C1.EDFS_NATS_STREAM_CONFIGURATION_DEFINITION);if(y.success)for(let I of C1.EDFS_NATS_STREAM_CONFIGURATION_DEFINITION.fields)this.addInputValueDataByNode({fieldName:I.name.value,isArgument:!1,inputValueDataByName:y.data.inputValueDataByName,node:I,originalParentTypeName:W.EDFS_NATS_STREAM_CONFIGURATION});else return}n.size>0&&t.push((0,oe.invalidRootTypeFieldEventsDirectivesErrorMessage)(n)),i.size>0&&t.push((0,oe.invalidEventDrivenMutationResponseTypeErrorMessage)(i)),r.size>0&&t.push((0,oe.invalidRootTypeFieldResponseTypesEventDrivenErrorMessage)(r)),a.size>0&&t.push((0,oe.invalidKeyFieldSetsEventDrivenErrorMessage)(a)),o.size>0&&t.push((0,oe.nonExternalKeyFieldNamesEventDrivenErrorMessage)(o)),c.size>0&&t.push((0,oe.nonKeyFieldNamesEventDrivenErrorMessage)(c)),l.size>0&&t.push((0,oe.nonEntityObjectExtensionsEventDrivenErrorMessage)([...l])),d.size>0&&t.push((0,oe.nonKeyComposingObjectTypeNamesEventDrivenErrorMessage)([...d])),t.length>0&&this.errors.push((0,oe.invalidEventDrivenGraphError)(t))}validateUnionMembers(t){if(t.memberByMemberTypeName.size<1){this.errors.push((0,oe.noDefinedUnionMembersError)(t.name));return}let n=[];for(let r of t.memberByMemberTypeName.keys()){let i=this.parentDefinitionDataByTypeName.get(r);i&&i.kind!==Z.Kind.OBJECT_TYPE_DEFINITION&&n.push(`"${r}", which is type "${(0,je.kindToNodeType)(i.kind)}"`)}n.length>0&&this.errors.push((0,oe.invalidUnionMemberTypeError)(t.name,n))}addConcreteTypeNamesForUnion(t){if(!t.types||t.types.length<1)return;let n=t.name.value;for(let r of t.types){let i=r.name.value;(0,je.getValueOrDefault)(this.concreteTypeNamesByAbstractTypeName,n,()=>new Set).add(i),this.internalGraph.addEdge(this.internalGraph.addOrUpdateNode(n,{isAbstract:!0}),this.internalGraph.addOrUpdateNode(i),i,!0)}}addValidKeyFieldSetConfigurations(){for(let[t,n]of this.keyFieldSetDatasByTypeName){let r=this.parentDefinitionDataByTypeName.get(t);if(!r||r.kind!==Z.Kind.OBJECT_TYPE_DEFINITION&&r.kind!==Z.Kind.INTERFACE_TYPE_DEFINITION){this.errors.push((0,oe.undefinedCompositeOutputTypeError)(t));continue}let i=(0,tn.getParentTypeName)(r),a=(0,je.getValueOrDefault)(this.configurationDataByTypeName,i,()=>(0,ff.newConfigurationData)(!0,i)),o=(0,ui.validateKeyFieldSets)(this,r,n);o&&(a.keys=o)}}getValidFlattenedDirectiveArray(t,n,r=!1){let i=[];for(let[a,o]of t){if(r&&W.INHERITABLE_DIRECTIVE_NAMES.has(a))continue;let c=this.directiveDefinitionDataByName.get(a);if(!c)continue;if(!c.isRepeatable&&o.length>1){let f=(0,je.getValueOrDefault)(this.invalidRepeatedDirectiveNameByCoords,n,()=>new Set);f.has(a)||(f.add(a),this.errors.push((0,oe.invalidDirectiveError)(a,n,"1st",[(0,oe.invalidRepeatedDirectiveErrorMessage)(a)])));continue}if(a!==W.KEY){i.push(...o);continue}let l=[],d=new Set;for(let f=0;fnew Set).add(U)),(0,je.getValueOrDefault)(a.keyFieldNamesByParentTypeName,v,()=>new Set).add(w);let re=(0,lr.getTypeNodeNamedTypeName)(V.node.type);if($r.BASE_SCALARS.has(re))return;let ne=a.parentDefinitionDataByTypeName.get(re);if(!ne)return Z.BREAK;if(ne.kind===Z.Kind.OBJECT_TYPE_DEFINITION){f=!0,c.push(ne);return}if((0,Pn.isKindAbstract)(ne.kind))return Z.BREAK}},InlineFragment:{enter(){return Z.BREAK}},SelectionSet:{enter(){if(!f||(d+=1,f=!1,d<0||d>=c.length))return Z.BREAK},leave(){f&&(f=!1),d-=1,c.pop()}}}),!(l.size<1))for(let[y,I]of l)this.warnings.push((0,ss.externalEntityExtensionKeyFieldWarning)(i.name,y,[...I],this.subgraphName))}}for(let n of t)this.keyFieldSetDatasByTypeName.delete(n)}addValidConditionalFieldSetConfigurations(){for(let[t,n]of this.fieldSetDataByTypeName){let r=this.parentDefinitionDataByTypeName.get(t);if(!r||r.kind!==Z.Kind.OBJECT_TYPE_DEFINITION&&r.kind!==Z.Kind.INTERFACE_TYPE_DEFINITION){this.errors.push((0,oe.undefinedCompositeOutputTypeError)(t));continue}let i=(0,tn.getParentTypeName)(r),a=(0,je.getValueOrDefault)(this.configurationDataByTypeName,i,()=>(0,ff.newConfigurationData)(!1,i)),o=this.validateProvidesOrRequires(r,n.provides,!0);o&&(a.provides=o);let c=this.validateProvidesOrRequires(r,n.requires,!1);c&&(a.requires=c)}}addFieldNamesToConfigurationData(t,n){let r=new Set;for(let[i,a]of t){let o=a.externalFieldDataBySubgraphName.get(this.subgraphName);if(!o||o.isUnconditionallyProvided){n.fieldNames.add(i);continue}r.add(i),this.edfsDirectiveReferences.size>0&&n.fieldNames.add(i)}r.size>0&&(n.externalFieldNames=r)}validateOneOfDirective({data:t,requiredFieldNames:n}){var r,i;return t.directivesByDirectiveName.has(W.ONE_OF)?n.size>0?(this.errors.push((0,oe.oneOfRequiredFieldsError)({requiredFieldNames:Array.from(n),typeName:t.name})),!1):(t.inputValueDataByName.size===1&&this.warnings.push((0,ss.singleSubgraphInputFieldOneOfWarning)({fieldName:(i=(r=(0,je.getFirstEntry)(t.inputValueDataByName))==null?void 0:r.name)!=null?i:"unknown",subgraphName:this.subgraphName,typeName:t.name})),!0):!0}normalize(t){var a;(0,L1.upsertDirectiveSchemaAndEntityDefinitions)(this,t),(0,L1.upsertParentsAndChildren)(this,t);let n=[];Rm(this,oh,U1).call(this,n),this.validateDirectives(this.schemaData,W.SCHEMA);for(let[o,c]of this.parentDefinitionDataByTypeName)this.validateDirectives(c,o);this.invalidORScopesCoords.size>0&&this.errors.push((0,oe.orScopesLimitError)($r.MAX_OR_SCOPES,[...this.invalidORScopesCoords])),this.schemaData.operationTypes.size>0&&n.push(this.getSchemaNodeByData(this.schemaData));for(let o of this.invalidConfigureDescriptionNodeDatas)o.description||this.errors.push((0,oe.configureDescriptionNoDescriptionError)((0,je.kindToNodeType)(o.kind),o.name));this.evaluateExternalKeyFields();for(let[o,c]of this.parentDefinitionDataByTypeName)switch(c.kind){case Z.Kind.ENUM_TYPE_DEFINITION:{if(c.enumValueDataByName.size<1){this.errors.push((0,oe.noDefinedEnumValuesError)(o));break}n.push(this.getEnumNodeByData(c));break}case Z.Kind.INPUT_OBJECT_TYPE_DEFINITION:{if(c.inputValueDataByName.size<1){this.errors.push((0,oe.noInputValueDefinitionsError)(o));break}let l=new Set;for(let d of c.inputValueDataByName.values()){if((0,tn.isTypeRequired)(d.type)&&l.add(d.name),d.namedTypeKind!==Z.Kind.NULL)continue;let f=this.parentDefinitionDataByTypeName.get(d.namedTypeName);if(f){if(!(0,tn.isInputNodeKind)(f.kind)){this.errors.push((0,oe.invalidNamedTypeError)({data:d,namedTypeData:f,nodeType:`${(0,je.kindToNodeType)(c.kind)} field`}));continue}d.namedTypeKind=f.kind}}if(!this.validateOneOfDirective({data:c,requiredFieldNames:l}))break;o!==W.EDFS_NATS_STREAM_CONFIGURATION&&n.push(this.getInputObjectNodeByData(c));break}case Z.Kind.INTERFACE_TYPE_DEFINITION:case Z.Kind.OBJECT_TYPE_DEFINITION:{let l=this.entityDataByTypeName.has(o),d=this.operationTypeNodeByTypeName.get(o),f=c.kind===Z.Kind.OBJECT_TYPE_DEFINITION;this.isSubgraphVersionTwo&&c.extensionType===as.ExtensionType.EXTENDS&&(c.extensionType=as.ExtensionType.NONE),d&&(c.fieldDataByName.delete(W.SERVICE_FIELD),c.fieldDataByName.delete(W.ENTITIES_FIELD));let y=[];for(let[V,Y]of c.fieldDataByName){if(!f&&((a=Y.externalFieldDataBySubgraphName.get(this.subgraphName))!=null&&a.isDefinedExternal)&&y.push(V),this.validateArguments(Y,c.kind),Y.namedTypeKind!==Z.Kind.NULL)continue;let re=this.parentDefinitionDataByTypeName.get(Y.namedTypeName);if(re){if(!(0,tn.isOutputNodeKind)(re.kind)){this.errors.push((0,oe.invalidNamedTypeError)({data:Y,namedTypeData:re,nodeType:`${(0,je.kindToNodeType)(c.kind)} field`}));continue}Y.namedTypeKind=this.entityInterfaceDataByTypeName.get(re.name)?Z.Kind.INTERFACE_TYPE_DEFINITION:re.kind}}y.length>0&&(this.isSubgraphVersionTwo?this.errors.push((0,oe.externalInterfaceFieldsError)(o,y)):this.warnings.push((0,ss.externalInterfaceFieldsWarning)(this.subgraphName,o,y)));let I=(0,tn.getParentTypeName)(c),v=(0,je.getValueOrDefault)(this.configurationDataByTypeName,I,()=>(0,ff.newConfigurationData)(l,o)),w=this.entityInterfaceDataByTypeName.get(o);if(w){w.fieldDatas=(0,Jn.fieldDatasToSimpleFieldDatas)(c.fieldDataByName.values());let V=this.concreteTypeNamesByAbstractTypeName.get(o);V&&(0,je.addIterableToSet)({source:V,target:w.concreteTypeNames}),v.isInterfaceObject=w.isInterfaceObject,v.entityInterfaceConcreteTypeNames=w.concreteTypeNames}let U=this.eventsConfigurations.get(I);U&&(v.events=U),this.addFieldNamesToConfigurationData(c.fieldDataByName,v),this.validateInterfaceImplementations(c),n.push(this.getCompositeOutputNodeByData(c)),c.fieldDataByName.size<1&&!(0,ui.isNodeQuery)(o,d)&&this.errors.push((0,oe.noFieldDefinitionsError)((0,je.kindToNodeType)(c.kind),o)),c.requireFetchReasonsFieldNames.size>0&&(v.requireFetchReasonsFieldNames=[...c.requireFetchReasonsFieldNames]);break}case Z.Kind.SCALAR_TYPE_DEFINITION:{if(c.extensionType===as.ExtensionType.REAL){this.errors.push((0,oe.noBaseScalarDefinitionError)(o));break}n.push(this.getScalarNodeByData(c));break}case Z.Kind.UNION_TYPE_DEFINITION:{n.push(this.getUnionNodeByData(c)),this.validateUnionMembers(c);break}default:throw(0,oe.unexpectedKindFatalError)(o)}this.addValidConditionalFieldSetConfigurations(),this.addValidKeyFieldSetConfigurations();for(let o of Object.values(Z.OperationTypeNode)){let c=this.schemaData.operationTypes.get(o),l=(0,je.getOrThrowError)(Pn.operationTypeNodeToDefaultType,o,W.OPERATION_TO_DEFAULT),d=c?(0,lr.getTypeNodeNamedTypeName)(c.type):l;if($r.BASE_SCALARS.has(d)&&this.referencedTypeNames.add(d),d!==l&&this.parentDefinitionDataByTypeName.has(l)){this.errors.push((0,oe.invalidRootTypeDefinitionError)(o,d,l));continue}let f=this.parentDefinitionDataByTypeName.get(d);if(c){if(!f)continue;this.operationTypeNodeByTypeName.set(d,o)}if(!f)continue;let y=this.configurationDataByTypeName.get(l);y&&(y.isRootNode=!0,y.typeName=l),f.kind!==Z.Kind.OBJECT_TYPE_DEFINITION&&this.errors.push((0,oe.operationDefinitionError)(d,o,f.kind))}for(let o of this.referencedTypeNames){let c=this.parentDefinitionDataByTypeName.get(o);if(!c){this.errors.push((0,oe.undefinedTypeError)(o));continue}if(c.kind!==Z.Kind.INTERFACE_TYPE_DEFINITION)continue;let l=this.concreteTypeNamesByAbstractTypeName.get(o);(!l||l.size<1)&&this.warnings.push((0,ss.unimplementedInterfaceOutputTypeWarning)(this.subgraphName,o))}let r=new Map;for(let o of this.directiveDefinitionByName.values()){let c=(0,Pn.extractExecutableDirectiveLocations)(o.locations,new Set);c.size<1||this.addPersistedDirectiveDefinitionDataByNode(r,o,c)}this.isSubgraphEventDrivenGraph=this.edfsDirectiveReferences.size>0,this.isSubgraphEventDrivenGraph&&this.validateEventDrivenSubgraph();for(let o of this.unvalidatedExternalFieldCoords)this.isSubgraphVersionTwo?this.errors.push((0,oe.invalidExternalDirectiveError)(o)):this.warnings.push((0,ss.invalidExternalFieldWarning)(o,this.subgraphName));if(this.errors.length>0)return{success:!1,errors:this.errors,warnings:this.warnings};let i={kind:Z.Kind.DOCUMENT,definitions:n};return{authorizationDataByParentTypeName:this.authorizationDataByParentTypeName,concreteTypeNamesByAbstractTypeName:this.concreteTypeNamesByAbstractTypeName,conditionalFieldDataByCoordinates:this.conditionalFieldDataByCoords,configurationDataByTypeName:this.configurationDataByTypeName,directiveDefinitionByName:this.directiveDefinitionByName,entityDataByTypeName:this.entityDataByTypeName,entityInterfaces:this.entityInterfaceDataByTypeName,fieldCoordsByNamedTypeName:this.fieldCoordsByNamedTypeName,isEventDrivenGraph:this.isSubgraphEventDrivenGraph,isVersionTwo:this.isSubgraphVersionTwo,keyFieldNamesByParentTypeName:this.keyFieldNamesByParentTypeName,keyFieldSetsByEntityTypeNameByKeyFieldCoords:this.keyFieldSetsByEntityTypeNameByFieldCoords,operationTypes:this.operationTypeNodeByTypeName,originalTypeNameByRenamedTypeName:this.originalTypeNameByRenamedTypeName,overridesByTargetSubgraphName:this.overridesByTargetSubgraphName,parentDefinitionDataByTypeName:this.parentDefinitionDataByTypeName,persistedDirectiveDefinitionDataByDirectiveName:r,subgraphAST:i,subgraphString:(0,Z.print)(i),schema:(0,yde.buildASTSchema)(i,{assumeValid:!0,assumeValidSDL:!0}),success:!0,warnings:this.warnings}}};oh=new WeakSet,U1=function(t){let n=new Set;for(let r of this.referencedDirectiveNames){let i=$r.DIRECTIVE_DEFINITION_BY_NAME.get(r);i&&(this.directiveDefinitionByName.set(r,i),(0,je.addOptionalIterableToSet)({source:pf.DEPENDENCIES_BY_DIRECTIVE_NAME.get(r),target:n}),t.push(i))}for(let r of this.customDirectiveDefinitionByName.values())t.push(r);t.push(...n)};Lc.NormalizationFactory=mf;function vde(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,c=new Set,l=new Map,d=new Set,f=new Set,y=[],I=new Set,v=new Map,w=[],U=[];for(let re of e)re.name&&(0,Ide.recordSubgraphName)(re.name,d,f);let V=new xD.Graph;for(let re=0;re0&&w.push(...ue.warnings),!ue.success){U.push((0,oe.subgraphValidationError)(me,ue.errors));continue}if(!ue){U.push((0,oe.subgraphValidationError)(me,[oe.subgraphValidationFailureError]));continue}l.set(me,ue.parentDefinitionDataByTypeName);for(let Ae of ue.authorizationDataByParentTypeName.values())(0,Jn.upsertAuthorizationData)(t,Ae,I);for(let[Ae,Me]of ue.fieldCoordsByNamedTypeName)(0,je.addIterableToSet)({source:Me,target:(0,je.getValueOrDefault)(v,Ae,()=>new Set)});for(let[Ae,Me]of ue.concreteTypeNamesByAbstractTypeName){let nt=n.get(Ae);if(!nt){n.set(Ae,new Set(Me));continue}(0,je.addIterableToSet)({source:Me,target:nt})}for(let[Ae,Me]of ue.entityDataByTypeName){let nt=Me.keyFieldSetDatasBySubgraphName.get(me);nt&&(0,Jn.upsertEntityData)({entityDataByTypeName:r,keyFieldSetDataByFieldSet:nt,typeName:Ae,subgraphName:me})}if(ne.name&&i.set(me,{conditionalFieldDataByCoordinates:ue.conditionalFieldDataByCoordinates,configurationDataByTypeName:ue.configurationDataByTypeName,definitions:ue.subgraphAST,directiveDefinitionByName:ue.directiveDefinitionByName,entityInterfaces:ue.entityInterfaces,isVersionTwo:ue.isVersionTwo,keyFieldNamesByParentTypeName:ue.keyFieldNamesByParentTypeName,name:me,operationTypes:ue.operationTypes,overriddenFieldNamesByParentTypeName:new Map,parentDefinitionDataByTypeName:ue.parentDefinitionDataByTypeName,persistedDirectiveDefinitionDataByDirectiveName:ue.persistedDirectiveDefinitionDataByDirectiveName,schema:ue.schema,url:ne.url}),!(ue.overridesByTargetSubgraphName.size<1))for(let[Ae,Me]of ue.overridesByTargetSubgraphName){let nt=d.has(Ae);for(let[X,_e]of Me){let vt=ue.originalTypeNameByRenamedTypeName.get(X)||X;if(!nt)w.push((0,ss.invalidOverrideTargetSubgraphNameWarning)(Ae,vt,[..._e],ne.name));else{let nn=(0,je.getValueOrDefault)(a,Ae,()=>new Map),rn=(0,je.getValueOrDefault)(nn,X,()=>new Set(_e));(0,je.addIterableToSet)({source:_e,target:rn})}for(let nn of _e){let rn=`${vt}.${nn}`,Fn=o.get(rn);if(!Fn){o.set(rn,[me]);continue}Fn.push(me),c.add(rn)}}}}let Y=[];if(I.size>0&&Y.push((0,oe.orScopesLimitError)($r.MAX_OR_SCOPES,[...I])),(y.length>0||f.size>0)&&Y.push((0,oe.invalidSubgraphNamesError)([...f],y)),c.size>0){let re=[];for(let ne of c){let me=(0,je.getOrThrowError)(o,ne,"overrideSourceSubgraphNamesByFieldPath");re.push((0,oe.duplicateOverriddenFieldErrorMessage)(ne,me))}Y.push((0,oe.duplicateOverriddenFieldsError)(re))}if(Y.push(...U),Y.length>0)return{errors:Y,success:!1,warnings:w};for(let[re,ne]of a){let me=(0,je.getOrThrowError)(i,re,"internalSubgraphBySubgraphName");me.overriddenFieldNamesByParentTypeName=ne;for(let[ue,Ae]of ne){let Me=me.configurationDataByTypeName.get(ue);Me&&((0,Jn.subtractSet)(Ae,Me.fieldNames),Me.fieldNames.size<1&&me.configurationDataByTypeName.delete(ue))}}return{authorizationDataByParentTypeName:t,concreteTypeNamesByAbstractTypeName:n,entityDataByTypeName:r,fieldCoordsByNamedTypeName:v,internalSubgraphBySubgraphName:i,internalGraph:V,success:!0,warnings:w}}});var uh=F(Uc=>{"use strict";m();T();N();Object.defineProperty(Uc,"__esModule",{value:!0});Uc.DivergentType=void 0;Uc.getLeastRestrictiveMergedTypeNode=Ode;Uc.getMostRestrictiveMergedTypeNode=Dde;Uc.renameNamedTypeName=bde;var Cc=Se(),M1=Gi(),Sde=yu(),k1=Rr(),x1=wl(),Bc;(function(e){e[e.NONE=0]="NONE",e[e.CURRENT=1]="CURRENT",e[e.OTHER=2]="OTHER"})(Bc||(Uc.DivergentType=Bc={}));function q1(e,t,n,r,i){t=(0,Sde.getMutableTypeNode)(t,n,i);let a={kind:e.kind},o=Bc.NONE,c=a;for(let l=0;l{"use strict";m();T();N();Object.defineProperty(VD,"__esModule",{value:!0});VD.renameRootTypes=Pde;var Ade=Se(),jD=Rr(),Rde=uh(),Fu=sr(),kc=Pr();function Pde(e,t){let n,r=!1,i;(0,Ade.visit)(t.definitions,{FieldDefinition:{enter(a){let o=a.name.value;if(r&&(o===Fu.SERVICE_FIELD||o===Fu.ENTITIES_FIELD))return n.fieldDataByName.delete(o),!1;let c=n.name,l=(0,kc.getOrThrowError)(n.fieldDataByName,o,`${c}.fieldDataByFieldName`),d=t.operationTypes.get(l.namedTypeName);if(d){let f=(0,kc.getOrThrowError)(jD.operationTypeNodeToDefaultType,d,Fu.OPERATION_TO_DEFAULT);l.namedTypeName!==f&&(0,Rde.renameNamedTypeName)(l,f,e.errors)}return i!=null&&i.has(o)&&l.isShareableBySubgraphName.delete(t.name),!1}},InterfaceTypeDefinition:{enter(a){let o=a.name.value;if(!e.entityInterfaceFederationDataByTypeName.get(o))return!1;n=(0,kc.getOrThrowError)(t.parentDefinitionDataByTypeName,o,Fu.PARENT_DEFINITION_DATA)},leave(){n=void 0}},ObjectTypeDefinition:{enter(a){let o=a.name.value,c=t.operationTypes.get(o),l=c?(0,kc.getOrThrowError)(jD.operationTypeNodeToDefaultType,c,Fu.OPERATION_TO_DEFAULT):o;n=(0,kc.getOrThrowError)(t.parentDefinitionDataByTypeName,o,Fu.PARENT_DEFINITION_DATA),r=n.isRootType,!e.entityInterfaceFederationDataByTypeName.get(o)&&(e.addValidPrimaryKeyTargetsToEntityData(o),i=t.overriddenFieldNamesByParentTypeName.get(l),o!==l&&(n.name=l,t.parentDefinitionDataByTypeName.set(l,n),t.parentDefinitionDataByTypeName.delete(o)))},leave(){n=void 0,r=!1,i=void 0}},ObjectTypeExtension:{enter(a){let o=a.name.value,c=t.operationTypes.get(o),l=c?(0,kc.getOrThrowError)(jD.operationTypeNodeToDefaultType,c,Fu.OPERATION_TO_DEFAULT):o;n=(0,kc.getOrThrowError)(t.parentDefinitionDataByTypeName,o,Fu.PARENT_DEFINITION_DATA),r=n.isRootType,e.addValidPrimaryKeyTargetsToEntityData(o),i=t.overriddenFieldNamesByParentTypeName.get(o),o!==l&&(n.name=l,t.parentDefinitionDataByTypeName.set(l,n),t.parentDefinitionDataByTypeName.delete(o))},leave(){n=void 0,r=!1,i=void 0}}})}});var j1=F((ld,Nf)=>{"use strict";m();T();N();(function(){var e,t="4.17.21",n=200,r="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",i="Expected a function",a="Invalid `variable` option passed into `_.template`",o="__lodash_hash_undefined__",c=500,l="__lodash_placeholder__",d=1,f=2,y=4,I=1,v=2,w=1,U=2,V=4,Y=8,re=16,ne=32,me=64,ue=128,Ae=256,Me=512,nt=30,X="...",_e=800,vt=16,nn=1,rn=2,Fn=3,$t=1/0,En=9007199254740991,kr=17976931348623157e292,Mr=NaN,jn=4294967295,Ht=jn-1,wn=jn>>>1,ae=[["ary",ue],["bind",w],["bindKey",U],["curry",Y],["curryRight",re],["flip",Me],["partial",ne],["partialRight",me],["rearg",Ae]],De="[object Arguments]",Ie="[object Array]",Le="[object AsyncFunction]",St="[object Boolean]",Q="[object Date]",ie="[object DOMException]",xe="[object Error]",Ye="[object Function]",Ut="[object GeneratorFunction]",rt="[object Map]",Ft="[object Number]",ds="[object Null]",Hr="[object Object]",ps="[object Promise]",Hc="[object Proxy]",Ra="[object RegExp]",Ir="[object Set]",ci="[object String]",qt="[object Symbol]",gr="[object Undefined]",Uu="[object WeakMap]",Pa="[object WeakSet]",ku="[object ArrayBuffer]",R="[object DataView]",h="[object Float32Array]",g="[object Float64Array]",C="[object Int8Array]",K="[object Int16Array]",ee="[object Int32Array]",ce="[object Uint8Array]",Tt="[object Uint8ClampedArray]",hn="[object Uint16Array]",cn="[object Uint32Array]",_n=/\b__p \+= '';/g,an=/\b(__p \+=) '' \+/g,_V=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Kb=/&(?:amp|lt|gt|quot|#39);/g,Gb=/[&<>"']/g,vV=RegExp(Kb.source),SV=RegExp(Gb.source),OV=/<%-([\s\S]+?)%>/g,DV=/<%([\s\S]+?)%>/g,$b=/<%=([\s\S]+?)%>/g,bV=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,AV=/^\w*$/,RV=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Vh=/[\\^$.*+?()[\]{}|]/g,PV=RegExp(Vh.source),Kh=/^\s+/,FV=/\s/,wV=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,LV=/\{\n\/\* \[wrapped with (.+)\] \*/,CV=/,? & /,BV=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,UV=/[()=,{}\[\]\/\s]/,kV=/\\(\\)?/g,MV=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Qb=/\w*$/,xV=/^[-+]0x[0-9a-f]+$/i,qV=/^0b[01]+$/i,jV=/^\[object .+?Constructor\]$/,VV=/^0o[0-7]+$/i,KV=/^(?:0|[1-9]\d*)$/,GV=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,xf=/($^)/,$V=/['\n\r\u2028\u2029\\]/g,qf="\\ud800-\\udfff",QV="\\u0300-\\u036f",YV="\\ufe20-\\ufe2f",JV="\\u20d0-\\u20ff",Yb=QV+YV+JV,Jb="\\u2700-\\u27bf",Hb="a-z\\xdf-\\xf6\\xf8-\\xff",HV="\\xac\\xb1\\xd7\\xf7",zV="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",WV="\\u2000-\\u206f",XV=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",zb="A-Z\\xc0-\\xd6\\xd8-\\xde",Wb="\\ufe0e\\ufe0f",Xb=HV+zV+WV+XV,Gh="['\u2019]",ZV="["+qf+"]",Zb="["+Xb+"]",jf="["+Yb+"]",e0="\\d+",eK="["+Jb+"]",t0="["+Hb+"]",n0="[^"+qf+Xb+e0+Jb+Hb+zb+"]",$h="\\ud83c[\\udffb-\\udfff]",tK="(?:"+jf+"|"+$h+")",r0="[^"+qf+"]",Qh="(?:\\ud83c[\\udde6-\\uddff]){2}",Yh="[\\ud800-\\udbff][\\udc00-\\udfff]",zc="["+zb+"]",i0="\\u200d",a0="(?:"+t0+"|"+n0+")",nK="(?:"+zc+"|"+n0+")",s0="(?:"+Gh+"(?:d|ll|m|re|s|t|ve))?",o0="(?:"+Gh+"(?:D|LL|M|RE|S|T|VE))?",u0=tK+"?",c0="["+Wb+"]?",rK="(?:"+i0+"(?:"+[r0,Qh,Yh].join("|")+")"+c0+u0+")*",iK="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",aK="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",l0=c0+u0+rK,sK="(?:"+[eK,Qh,Yh].join("|")+")"+l0,oK="(?:"+[r0+jf+"?",jf,Qh,Yh,ZV].join("|")+")",uK=RegExp(Gh,"g"),cK=RegExp(jf,"g"),Jh=RegExp($h+"(?="+$h+")|"+oK+l0,"g"),lK=RegExp([zc+"?"+t0+"+"+s0+"(?="+[Zb,zc,"$"].join("|")+")",nK+"+"+o0+"(?="+[Zb,zc+a0,"$"].join("|")+")",zc+"?"+a0+"+"+s0,zc+"+"+o0,aK,iK,e0,sK].join("|"),"g"),dK=RegExp("["+i0+qf+Yb+Wb+"]"),pK=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,fK=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],mK=-1,In={};In[h]=In[g]=In[C]=In[K]=In[ee]=In[ce]=In[Tt]=In[hn]=In[cn]=!0,In[De]=In[Ie]=In[ku]=In[St]=In[R]=In[Q]=In[xe]=In[Ye]=In[rt]=In[Ft]=In[Hr]=In[Ra]=In[Ir]=In[ci]=In[Uu]=!1;var yn={};yn[De]=yn[Ie]=yn[ku]=yn[R]=yn[St]=yn[Q]=yn[h]=yn[g]=yn[C]=yn[K]=yn[ee]=yn[rt]=yn[Ft]=yn[Hr]=yn[Ra]=yn[Ir]=yn[ci]=yn[qt]=yn[ce]=yn[Tt]=yn[hn]=yn[cn]=!0,yn[xe]=yn[Ye]=yn[Uu]=!1;var NK={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},TK={"&":"&","<":"<",">":">",'"':""","'":"'"},EK={"&":"&","<":"<",">":">",""":'"',"'":"'"},hK={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},yK=parseFloat,IK=parseInt,d0=typeof global=="object"&&global&&global.Object===Object&&global,gK=typeof self=="object"&&self&&self.Object===Object&&self,dr=d0||gK||Function("return this")(),Hh=typeof ld=="object"&&ld&&!ld.nodeType&&ld,Mu=Hh&&typeof Nf=="object"&&Nf&&!Nf.nodeType&&Nf,p0=Mu&&Mu.exports===Hh,zh=p0&&d0.process,Si=function(){try{var G=Mu&&Mu.require&&Mu.require("util").types;return G||zh&&zh.binding&&zh.binding("util")}catch(se){}}(),f0=Si&&Si.isArrayBuffer,m0=Si&&Si.isDate,N0=Si&&Si.isMap,T0=Si&&Si.isRegExp,E0=Si&&Si.isSet,h0=Si&&Si.isTypedArray;function li(G,se,te){switch(te.length){case 0:return G.call(se);case 1:return G.call(se,te[0]);case 2:return G.call(se,te[0],te[1]);case 3:return G.call(se,te[0],te[1],te[2])}return G.apply(se,te)}function _K(G,se,te,Ce){for(var ct=-1,Qt=G==null?0:G.length;++ct-1}function Wh(G,se,te){for(var Ce=-1,ct=G==null?0:G.length;++Ce-1;);return te}function D0(G,se){for(var te=G.length;te--&&Wc(se,G[te],0)>-1;);return te}function FK(G,se){for(var te=G.length,Ce=0;te--;)G[te]===se&&++Ce;return Ce}var wK=ty(NK),LK=ty(TK);function CK(G){return"\\"+hK[G]}function BK(G,se){return G==null?e:G[se]}function Xc(G){return dK.test(G)}function UK(G){return pK.test(G)}function kK(G){for(var se,te=[];!(se=G.next()).done;)te.push(se.value);return te}function ay(G){var se=-1,te=Array(G.size);return G.forEach(function(Ce,ct){te[++se]=[ct,Ce]}),te}function b0(G,se){return function(te){return G(se(te))}}function Xo(G,se){for(var te=-1,Ce=G.length,ct=0,Qt=[];++te-1}function SG(s,u){var p=this.__data__,E=am(p,s);return E<0?(++this.size,p.push([s,u])):p[E][1]=u,this}fs.prototype.clear=IG,fs.prototype.delete=gG,fs.prototype.get=_G,fs.prototype.has=vG,fs.prototype.set=SG;function ms(s){var u=-1,p=s==null?0:s.length;for(this.clear();++u=u?s:u)),s}function Ai(s,u,p,E,S,L){var k,j=u&d,J=u&f,le=u&y;if(p&&(k=S?p(s,E,S,L):p(s)),k!==e)return k;if(!Dn(s))return s;var de=ft(s);if(de){if(k=A$(s),!j)return zr(s,k)}else{var Te=Sr(s),be=Te==Ye||Te==Ut;if(au(s))return cA(s,j);if(Te==Hr||Te==De||be&&!S){if(k=J||be?{}:AA(s),!j)return J?E$(s,qG(k,s)):T$(s,x0(k,s))}else{if(!yn[Te])return S?s:{};k=R$(s,Te,j)}}L||(L=new aa);var Ve=L.get(s);if(Ve)return Ve;L.set(s,k),rR(s)?s.forEach(function(et){k.add(Ai(et,u,p,et,s,L))}):tR(s)&&s.forEach(function(et,Ot){k.set(Ot,Ai(et,u,p,Ot,s,L))});var Ze=le?J?Fy:Py:J?Xr:pr,yt=de?e:Ze(s);return Oi(yt||s,function(et,Ot){yt&&(Ot=et,et=s[Ot]),Ad(k,Ot,Ai(et,u,p,Ot,s,L))}),k}function jG(s){var u=pr(s);return function(p){return q0(p,s,u)}}function q0(s,u,p){var E=p.length;if(s==null)return!E;for(s=Nn(s);E--;){var S=p[E],L=u[S],k=s[S];if(k===e&&!(S in s)||!L(k))return!1}return!0}function j0(s,u,p){if(typeof s!="function")throw new Di(i);return Bd(function(){s.apply(e,p)},u)}function Rd(s,u,p,E){var S=-1,L=Vf,k=!0,j=s.length,J=[],le=u.length;if(!j)return J;p&&(u=vn(u,di(p))),E?(L=Wh,k=!1):u.length>=n&&(L=_d,k=!1,u=new ju(u));e:for(;++SS?0:S+p),E=E===e||E>S?S:Et(E),E<0&&(E+=S),E=p>E?0:aR(E);p0&&p(j)?u>1?_r(j,u-1,p,E,S):Wo(S,j):E||(S[S.length]=j)}return S}var py=NA(),G0=NA(!0);function Fa(s,u){return s&&py(s,u,pr)}function fy(s,u){return s&&G0(s,u,pr)}function om(s,u){return zo(u,function(p){return ys(s[p])})}function Ku(s,u){u=ru(u,s);for(var p=0,E=u.length;s!=null&&pu}function GG(s,u){return s!=null&&sn.call(s,u)}function $G(s,u){return s!=null&&u in Nn(s)}function QG(s,u,p){return s>=vr(u,p)&&s=120&&de.length>=120)?new ju(k&&de):e}de=s[0];var Te=-1,be=j[0];e:for(;++Te-1;)j!==s&&Xf.call(j,J,1),Xf.call(s,J,1);return s}function tA(s,u){for(var p=s?u.length:0,E=p-1;p--;){var S=u[p];if(p==E||S!==L){var L=S;hs(S)?Xf.call(s,S,1):vy(s,S)}}return s}function Iy(s,u){return s+tm(B0()*(u-s+1))}function a$(s,u,p,E){for(var S=-1,L=tr(em((u-s)/(p||1)),0),k=te(L);L--;)k[E?L:++S]=s,s+=p;return k}function gy(s,u){var p="";if(!s||u<1||u>En)return p;do u%2&&(p+=s),u=tm(u/2),u&&(s+=s);while(u);return p}function gt(s,u){return My(FA(s,u,Zr),s+"")}function s$(s){return M0(ul(s))}function o$(s,u){var p=ul(s);return hm(p,Vu(u,0,p.length))}function wd(s,u,p,E){if(!Dn(s))return s;u=ru(u,s);for(var S=-1,L=u.length,k=L-1,j=s;j!=null&&++SS?0:S+u),p=p>S?S:p,p<0&&(p+=S),S=u>p?0:p-u>>>0,u>>>=0;for(var L=te(S);++E>>1,k=s[L];k!==null&&!fi(k)&&(p?k<=u:k=n){var le=u?null:g$(s);if(le)return Gf(le);k=!1,S=_d,J=new ju}else J=u?[]:j;e:for(;++E=E?s:Ri(s,u,p)}var uA=XK||function(s){return dr.clearTimeout(s)};function cA(s,u){if(u)return s.slice();var p=s.length,E=P0?P0(p):new s.constructor(p);return s.copy(E),E}function by(s){var u=new s.constructor(s.byteLength);return new zf(u).set(new zf(s)),u}function p$(s,u){var p=u?by(s.buffer):s.buffer;return new s.constructor(p,s.byteOffset,s.byteLength)}function f$(s){var u=new s.constructor(s.source,Qb.exec(s));return u.lastIndex=s.lastIndex,u}function m$(s){return bd?Nn(bd.call(s)):{}}function lA(s,u){var p=u?by(s.buffer):s.buffer;return new s.constructor(p,s.byteOffset,s.length)}function dA(s,u){if(s!==u){var p=s!==e,E=s===null,S=s===s,L=fi(s),k=u!==e,j=u===null,J=u===u,le=fi(u);if(!j&&!le&&!L&&s>u||L&&k&&J&&!j&&!le||E&&k&&J||!p&&J||!S)return 1;if(!E&&!L&&!le&&s=j)return J;var le=p[E];return J*(le=="desc"?-1:1)}}return s.index-u.index}function pA(s,u,p,E){for(var S=-1,L=s.length,k=p.length,j=-1,J=u.length,le=tr(L-k,0),de=te(J+le),Te=!E;++j1?p[S-1]:e,k=S>2?p[2]:e;for(L=s.length>3&&typeof L=="function"?(S--,L):e,k&&qr(p[0],p[1],k)&&(L=S<3?e:L,S=1),u=Nn(u);++E-1?S[L?u[k]:k]:e}}function hA(s){return Es(function(u){var p=u.length,E=p,S=bi.prototype.thru;for(s&&u.reverse();E--;){var L=u[E];if(typeof L!="function")throw new Di(i);if(S&&!k&&Tm(L)=="wrapper")var k=new bi([],!0)}for(E=k?E:p;++E1&&wt.reverse(),de&&Jj))return!1;var le=L.get(s),de=L.get(u);if(le&&de)return le==u&&de==s;var Te=-1,be=!0,Ve=p&v?new ju:e;for(L.set(s,u),L.set(u,s);++Te1?"& ":"")+u[E],u=u.join(p>2?", ":" "),s.replace(wV,`{ /* [wrapped with `+u+`] */ -`)}function s$(s){return dt(s)||Uu(s)||!!(f0&&s&&s[f0])}function cs(s,u){var f=typeof s;return u=u==null?mn:u,!!u&&(f=="number"||f!="symbol"&&hj.test(s))&&s>-1&&s%1==0&&s0){if(++u>=Se)return arguments[0]}else u=0;return s.apply(e,arguments)}}function rm(s,u){var f=-1,E=s.length,S=E-1;for(u=u===e?E:u;++f1?s[u-1]:e;return f=typeof f=="function"?(s.pop(),f):e,_A(s,f)});function vA(s){var u=P(s);return u.__chain__=!0,u}function EQ(s,u){return u(s),s}function im(s,u){return u(s)}var hQ=us(function(s){var u=s.length,f=u?s[0]:0,E=this.__wrapped__,S=function(L){return $h(L,s)};return u>1||this.__actions__.length||!(E instanceof Ot)||!cs(f)?this.thru(S):(E=E.slice(f,+f+(u?1:0)),E.__actions__.push({func:im,args:[S],thisArg:e}),new gi(E,this.__chain__).thru(function(L){return u&&!L.length&&L.push(e),L}))});function yQ(){return vA(this)}function IQ(){return new gi(this.value(),this.__chain__)}function gQ(){this.__values__===e&&(this.__values__=kA(this.value()));var s=this.__index__>=this.__values__.length,u=s?e:this.__values__[this.__index__++];return{done:s,value:u}}function _Q(){return this}function vQ(s){for(var u,f=this;f instanceof Kp;){var E=TA(f);E.__index__=0,E.__values__=e,u?S.__wrapped__=E:u=E;var S=E;f=f.__wrapped__}return S.__wrapped__=s,u}function SQ(){var s=this.__wrapped__;if(s instanceof Ot){var u=s;return this.__actions__.length&&(u=new Ot(this)),u=u.reverse(),u.__actions__.push({func:im,args:[yy],thisArg:e}),new gi(u,this.__chain__)}return this.thru(yy)}function OQ(){return x0(this.__wrapped__,this.__actions__)}var DQ=zp(function(s,u,f){rn.call(s,f)?++s[f]:ss(s,f,1)});function bQ(s,u,f){var E=dt(s)?Xb:EG;return f&&Lr(s,u,f)&&(u=e),E(s,We(u,3))}function AQ(s,u){var f=dt(s)?jo:_0;return f(s,We(u,3))}var RQ=z0(EA),PQ=z0(hA);function FQ(s,u){return Tr(am(s,u),1)}function wQ(s,u){return Tr(am(s,u),Qt)}function LQ(s,u,f){return f=f===e?1:Nt(f),Tr(am(s,u),f)}function SA(s,u){var f=dt(s)?yi:Yo;return f(s,We(u,3))}function OA(s,u){var f=dt(s)?Xj:g0;return f(s,We(u,3))}var CQ=zp(function(s,u,f){rn.call(s,f)?s[f].push(u):ss(s,f,[u])});function BQ(s,u,f,E){s=Kr(s)?s:Xc(s),f=f&&!E?Nt(f):0;var S=s.length;return f<0&&(f=zn(S+f,0)),lm(s)?f<=S&&s.indexOf(u,f)>-1:!!S&&Vc(s,u,f)>-1}var UQ=It(function(s,u,f){var E=-1,S=typeof u=="function",L=Kr(s)?ne(s.length):[];return Yo(s,function(M){L[++E]=S?ii(u,M,f):yd(M,u,f)}),L}),kQ=zp(function(s,u,f){ss(s,f,u)});function am(s,u){var f=dt(s)?In:A0;return f(s,We(u,3))}function MQ(s,u,f,E){return s==null?[]:(dt(u)||(u=u==null?[]:[u]),f=E?e:f,dt(f)||(f=f==null?[]:[f]),w0(s,u,f))}var xQ=zp(function(s,u,f){s[f?0:1].push(u)},function(){return[[],[]]});function qQ(s,u,f){var E=dt(s)?wh:n0,S=arguments.length<3;return E(s,We(u,4),f,S,Yo)}function VQ(s,u,f){var E=dt(s)?Zj:n0,S=arguments.length<3;return E(s,We(u,4),f,S,g0)}function jQ(s,u){var f=dt(s)?jo:_0;return f(s,um(We(u,3)))}function KQ(s){var u=dt(s)?E0:BG;return u(s)}function GQ(s,u,f){(f?Lr(s,u,f):u===e)?u=1:u=Nt(u);var E=dt(s)?fG:UG;return E(s,u)}function $Q(s){var u=dt(s)?pG:MG;return u(s)}function QQ(s){if(s==null)return 0;if(Kr(s))return lm(s)?Kc(s):s.length;var u=hr(s);return u==nt||u==mr?s.size:Wh(s).length}function YQ(s,u,f){var E=dt(s)?Lh:xG;return f&&Lr(s,u,f)&&(u=e),E(s,We(u,3))}var JQ=It(function(s,u){if(s==null)return[];var f=u.length;return f>1&&Lr(s,u[0],u[1])?u=[]:f>2&&Lr(u[0],u[1],u[2])&&(u=[u[0]]),w0(s,Tr(u,1),[])}),sm=AK||function(){return ir.Date.now()};function HQ(s,u){if(typeof u!="function")throw new Ii(i);return s=Nt(s),function(){if(--s<1)return u.apply(this,arguments)}}function DA(s,u,f){return u=f?e:u,u=s&&u==null?s.length:u,os(s,de,e,e,e,e,u)}function bA(s,u){var f;if(typeof u!="function")throw new Ii(i);return s=Nt(s),function(){return--s>0&&(f=u.apply(this,arguments)),s<=1&&(u=e),f}}var gy=It(function(s,u,f){var E=F;if(f.length){var S=Go(f,zc(gy));E|=ie}return os(s,E,u,f,S)}),AA=It(function(s,u,f){var E=F|k;if(f.length){var S=Go(f,zc(AA));E|=ie}return os(u,E,s,f,S)});function RA(s,u,f){u=f?e:u;var E=os(s,J,e,e,e,e,e,u);return E.placeholder=RA.placeholder,E}function PA(s,u,f){u=f?e:u;var E=os(s,se,e,e,e,e,e,u);return E.placeholder=PA.placeholder,E}function FA(s,u,f){var E,S,L,M,j,H,pe=0,me=!1,he=!1,Ae=!0;if(typeof s!="function")throw new Ii(i);u=Oi(u)||0,vn(f)&&(me=!!f.leading,he="maxWait"in f,L=he?zn(Oi(f.maxWait)||0,u):L,Ae="trailing"in f?!!f.trailing:Ae);function Ke(xn){var Zi=E,fs=S;return E=S=e,pe=xn,M=s.apply(fs,Zi),M}function Ze(xn){return pe=xn,j=Sd(St,u),me?Ke(xn):M}function Et(xn){var Zi=xn-H,fs=xn-pe,zA=u-Zi;return he?Er(zA,L-fs):zA}function et(xn){var Zi=xn-H,fs=xn-pe;return H===e||Zi>=u||Zi<0||he&&fs>=L}function St(){var xn=sm();if(et(xn))return Pt(xn);j=Sd(St,Et(xn))}function Pt(xn){return j=e,Ae&&E?Ke(xn):(E=S=e,M)}function ui(){j!==e&&V0(j),pe=0,E=H=S=j=e}function Cr(){return j===e?M:Pt(sm())}function ci(){var xn=sm(),Zi=et(xn);if(E=arguments,S=this,H=xn,Zi){if(j===e)return Ze(H);if(he)return V0(j),j=Sd(St,u),Ke(H)}return j===e&&(j=Sd(St,u)),M}return ci.cancel=ui,ci.flush=Cr,ci}var zQ=It(function(s,u){return I0(s,1,u)}),WQ=It(function(s,u,f){return I0(s,Oi(u)||0,f)});function XQ(s){return os(s,xe)}function om(s,u){if(typeof s!="function"||u!=null&&typeof u!="function")throw new Ii(i);var f=function(){var E=arguments,S=u?u.apply(this,E):E[0],L=f.cache;if(L.has(S))return L.get(S);var M=s.apply(this,E);return f.cache=L.set(S,M)||L,M};return f.cache=new(om.Cache||as),f}om.Cache=as;function um(s){if(typeof s!="function")throw new Ii(i);return function(){var u=arguments;switch(u.length){case 0:return!s.call(this);case 1:return!s.call(this,u[0]);case 2:return!s.call(this,u[0],u[1]);case 3:return!s.call(this,u[0],u[1],u[2])}return!s.apply(this,u)}}function ZQ(s){return bA(2,s)}var e2=qG(function(s,u){u=u.length==1&&dt(u[0])?In(u[0],ai(We())):In(Tr(u,1),ai(We()));var f=u.length;return It(function(E){for(var S=-1,L=Er(E.length,f);++S=u}),Uu=O0(function(){return arguments}())?O0:function(s){return Pn(s)&&rn.call(s,"callee")&&!d0.call(s,"callee")},dt=ne.isArray,N2=Qb?ai(Qb):vG;function Kr(s){return s!=null&&cm(s.length)&&!ls(s)}function Mn(s){return Pn(s)&&Kr(s)}function T2(s){return s===!0||s===!1||Pn(s)&&wr(s)==vt}var Wo=PK||Ly,E2=Yb?ai(Yb):SG;function h2(s){return Pn(s)&&s.nodeType===1&&!Od(s)}function y2(s){if(s==null)return!0;if(Kr(s)&&(dt(s)||typeof s=="string"||typeof s.splice=="function"||Wo(s)||Wc(s)||Uu(s)))return!s.length;var u=hr(s);if(u==nt||u==mr)return!s.size;if(vd(s))return!Wh(s).length;for(var f in s)if(rn.call(s,f))return!1;return!0}function I2(s,u){return Id(s,u)}function g2(s,u,f){f=typeof f=="function"?f:e;var E=f?f(s,u):e;return E===e?Id(s,u,e,f):!!E}function vy(s){if(!Pn(s))return!1;var u=wr(s);return u==qe||u==oe||typeof s.message=="string"&&typeof s.name=="string"&&!Od(s)}function _2(s){return typeof s=="number"&&p0(s)}function ls(s){if(!vn(s))return!1;var u=wr(s);return u==Ye||u==Ut||u==Ce||u==xc}function LA(s){return typeof s=="number"&&s==Nt(s)}function cm(s){return typeof s=="number"&&s>-1&&s%1==0&&s<=mn}function vn(s){var u=typeof s;return s!=null&&(u=="object"||u=="function")}function Pn(s){return s!=null&&typeof s=="object"}var CA=Jb?ai(Jb):DG;function v2(s,u){return s===u||zh(s,u,py(u))}function S2(s,u,f){return f=typeof f=="function"?f:e,zh(s,u,py(u),f)}function O2(s){return BA(s)&&s!=+s}function D2(s){if(c$(s))throw new ut(r);return D0(s)}function b2(s){return s===null}function A2(s){return s==null}function BA(s){return typeof s=="number"||Pn(s)&&wr(s)==Rt}function Od(s){if(!Pn(s)||wr(s)!=Vr)return!1;var u=Up(s);if(u===null)return!0;var f=rn.call(u,"constructor")&&u.constructor;return typeof f=="function"&&f instanceof f&&wp.call(f)==SK}var Sy=Hb?ai(Hb):bG;function R2(s){return LA(s)&&s>=-mn&&s<=mn}var UA=zb?ai(zb):AG;function lm(s){return typeof s=="string"||!dt(s)&&Pn(s)&&wr(s)==ri}function oi(s){return typeof s=="symbol"||Pn(s)&&wr(s)==Vt}var Wc=Wb?ai(Wb):RG;function P2(s){return s===e}function F2(s){return Pn(s)&&hr(s)==Du}function w2(s){return Pn(s)&&wr(s)==_a}var L2=em(Xh),C2=em(function(s,u){return s<=u});function kA(s){if(!s)return[];if(Kr(s))return lm(s)?zi(s):jr(s);if(fd&&s[fd])return fK(s[fd]());var u=hr(s),f=u==nt?xh:u==mr?Rp:Xc;return f(s)}function ds(s){if(!s)return s===0?s:0;if(s=Oi(s),s===Qt||s===-Qt){var u=s<0?-1:1;return u*Pr}return s===s?s:0}function Nt(s){var u=ds(s),f=u%1;return u===u?f?u-f:u:0}function MA(s){return s?wu(Nt(s),0,kn):0}function Oi(s){if(typeof s=="number")return s;if(oi(s))return Fr;if(vn(s)){var u=typeof s.valueOf=="function"?s.valueOf():s;s=vn(u)?u+"":u}if(typeof s!="string")return s===0?s:+s;s=r0(s);var f=Nj.test(s);return f||Ej.test(s)?Hj(s.slice(2),f?2:8):mj.test(s)?Fr:+s}function xA(s){return Sa(s,Gr(s))}function B2(s){return s?wu(Nt(s),-mn,mn):s===0?s:0}function Wt(s){return s==null?"":si(s)}var U2=Jc(function(s,u){if(vd(u)||Kr(u)){Sa(u,ar(u),s);return}for(var f in u)rn.call(u,f)&&Ed(s,f,u[f])}),qA=Jc(function(s,u){Sa(u,Gr(u),s)}),dm=Jc(function(s,u,f,E){Sa(u,Gr(u),s,E)}),k2=Jc(function(s,u,f,E){Sa(u,ar(u),s,E)}),M2=us($h);function x2(s,u){var f=Yc(s);return u==null?f:h0(f,u)}var q2=It(function(s,u){s=dn(s);var f=-1,E=u.length,S=E>2?u[2]:e;for(S&&Lr(u[0],u[1],S)&&(E=1);++f1),L}),Sa(s,dy(s),f),E&&(f=_i(f,d|p|y,WG));for(var S=u.length;S--;)ry(f,u[S]);return f});function iY(s,u){return jA(s,um(We(u)))}var aY=us(function(s,u){return s==null?{}:wG(s,u)});function jA(s,u){if(s==null)return{};var f=In(dy(s),function(E){return[E]});return u=We(u),L0(s,f,function(E,S){return u(E,S[0])})}function sY(s,u,f){u=Ho(u,s);var E=-1,S=u.length;for(S||(S=1,s=e);++Eu){var E=s;s=u,u=E}if(f||s%1||u%1){var S=m0();return Er(s+S*(u-s+Jj("1e-"+((S+"").length-1))),u)}return ey(s,u)}var EY=Hc(function(s,u,f){return u=u.toLowerCase(),s+(f?$A(u):u)});function $A(s){return by(Wt(s).toLowerCase())}function QA(s){return s=Wt(s),s&&s.replace(yj,oK).replace(Mj,"")}function hY(s,u,f){s=Wt(s),u=si(u);var E=s.length;f=f===e?E:wu(Nt(f),0,E);var S=f;return f-=u.length,f>=0&&s.slice(f,S)==u}function yY(s){return s=Wt(s),s&&Z1.test(s)?s.replace(vb,uK):s}function IY(s){return s=Wt(s),s&&aj.test(s)?s.replace(_h,"\\$&"):s}var gY=Hc(function(s,u,f){return s+(f?"-":"")+u.toLowerCase()}),_Y=Hc(function(s,u,f){return s+(f?" ":"")+u.toLowerCase()}),vY=H0("toLowerCase");function SY(s,u,f){s=Wt(s),u=Nt(u);var E=u?Kc(s):0;if(!u||E>=u)return s;var S=(u-E)/2;return Zp(qp(S),f)+s+Zp(xp(S),f)}function OY(s,u,f){s=Wt(s),u=Nt(u);var E=u?Kc(s):0;return u&&E>>0,f?(s=Wt(s),s&&(typeof u=="string"||u!=null&&!Sy(u))&&(u=si(u),!u&&jc(s))?zo(zi(s),0,f):s.split(u,f)):[]}var wY=Hc(function(s,u,f){return s+(f?" ":"")+by(u)});function LY(s,u,f){return s=Wt(s),f=f==null?0:wu(Nt(f),0,s.length),u=si(u),s.slice(f,f+u.length)==u}function CY(s,u,f){var E=P.templateSettings;f&&Lr(s,u,f)&&(u=e),s=Wt(s),u=dm({},u,E,nA);var S=dm({},u.imports,E.imports,nA),L=ar(S),M=Mh(S,L),j,H,pe=0,me=u.interpolate||Sp,he="__p += '",Ae=qh((u.escape||Sp).source+"|"+me.source+"|"+(me===Sb?pj:Sp).source+"|"+(u.evaluate||Sp).source+"|$","g"),Ke="//# sourceURL="+(rn.call(u,"sourceURL")?(u.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Kj+"]")+` -`;s.replace(Ae,function(et,St,Pt,ui,Cr,ci){return Pt||(Pt=ui),he+=s.slice(pe,ci).replace(Ij,cK),St&&(j=!0,he+=`' + -__e(`+St+`) + -'`),Cr&&(H=!0,he+=`'; -`+Cr+`; -__p += '`),Pt&&(he+=`' + -((__t = (`+Pt+`)) == null ? '' : __t) + -'`),pe=ci+et.length,et}),he+=`'; -`;var Ze=rn.call(u,"variable")&&u.variable;if(!Ze)he=`with (obj) { -`+he+` +`)}function F$(s){return ft(s)||Qu(s)||!!(L0&&s&&s[L0])}function hs(s,u){var p=typeof s;return u=u==null?En:u,!!u&&(p=="number"||p!="symbol"&&KV.test(s))&&s>-1&&s%1==0&&s0){if(++u>=_e)return arguments[0]}else u=0;return s.apply(e,arguments)}}function hm(s,u){var p=-1,E=s.length,S=E-1;for(u=u===e?E:u;++p1?s[u-1]:e;return p=typeof p=="function"?(s.pop(),p):e,KA(s,p)});function GA(s){var u=P(s);return u.__chain__=!0,u}function VQ(s,u){return u(s),s}function ym(s,u){return u(s)}var KQ=Es(function(s){var u=s.length,p=u?s[0]:0,E=this.__wrapped__,S=function(L){return dy(L,s)};return u>1||this.__actions__.length||!(E instanceof bt)||!hs(p)?this.thru(S):(E=E.slice(p,+p+(u?1:0)),E.__actions__.push({func:ym,args:[S],thisArg:e}),new bi(E,this.__chain__).thru(function(L){return u&&!L.length&&L.push(e),L}))});function GQ(){return GA(this)}function $Q(){return new bi(this.value(),this.__chain__)}function QQ(){this.__values__===e&&(this.__values__=iR(this.value()));var s=this.__index__>=this.__values__.length,u=s?e:this.__values__[this.__index__++];return{done:s,value:u}}function YQ(){return this}function JQ(s){for(var u,p=this;p instanceof im;){var E=kA(p);E.__index__=0,E.__values__=e,u?S.__wrapped__=E:u=E;var S=E;p=p.__wrapped__}return S.__wrapped__=s,u}function HQ(){var s=this.__wrapped__;if(s instanceof bt){var u=s;return this.__actions__.length&&(u=new bt(this)),u=u.reverse(),u.__actions__.push({func:ym,args:[xy],thisArg:e}),new bi(u,this.__chain__)}return this.thru(xy)}function zQ(){return sA(this.__wrapped__,this.__actions__)}var WQ=dm(function(s,u,p){sn.call(s,p)?++s[p]:Ns(s,p,1)});function XQ(s,u,p){var E=ft(s)?y0:VG;return p&&qr(s,u,p)&&(u=e),E(s,We(u,3))}function ZQ(s,u){var p=ft(s)?zo:K0;return p(s,We(u,3))}var e2=EA(MA),t2=EA(xA);function n2(s,u){return _r(Im(s,u),1)}function r2(s,u){return _r(Im(s,u),$t)}function i2(s,u,p){return p=p===e?1:Et(p),_r(Im(s,u),p)}function $A(s,u){var p=ft(s)?Oi:tu;return p(s,We(u,3))}function QA(s,u){var p=ft(s)?vK:V0;return p(s,We(u,3))}var a2=dm(function(s,u,p){sn.call(s,p)?s[p].push(u):Ns(s,p,[u])});function s2(s,u,p,E){s=Wr(s)?s:ul(s),p=p&&!E?Et(p):0;var S=s.length;return p<0&&(p=tr(S+p,0)),Om(s)?p<=S&&s.indexOf(u,p)>-1:!!S&&Wc(s,u,p)>-1}var o2=gt(function(s,u,p){var E=-1,S=typeof u=="function",L=Wr(s)?te(s.length):[];return tu(s,function(k){L[++E]=S?li(u,k,p):Pd(k,u,p)}),L}),u2=dm(function(s,u,p){Ns(s,p,u)});function Im(s,u){var p=ft(s)?vn:H0;return p(s,We(u,3))}function c2(s,u,p,E){return s==null?[]:(ft(u)||(u=u==null?[]:[u]),p=E?e:p,ft(p)||(p=p==null?[]:[p]),Z0(s,u,p))}var l2=dm(function(s,u,p){s[p?0:1].push(u)},function(){return[[],[]]});function d2(s,u,p){var E=ft(s)?Xh:v0,S=arguments.length<3;return E(s,We(u,4),p,S,tu)}function p2(s,u,p){var E=ft(s)?SK:v0,S=arguments.length<3;return E(s,We(u,4),p,S,V0)}function f2(s,u){var p=ft(s)?zo:K0;return p(s,vm(We(u,3)))}function m2(s){var u=ft(s)?M0:s$;return u(s)}function N2(s,u,p){(p?qr(s,u,p):u===e)?u=1:u=Et(u);var E=ft(s)?kG:o$;return E(s,u)}function T2(s){var u=ft(s)?MG:c$;return u(s)}function E2(s){if(s==null)return 0;if(Wr(s))return Om(s)?Zc(s):s.length;var u=Sr(s);return u==rt||u==Ir?s.size:Ey(s).length}function h2(s,u,p){var E=ft(s)?Zh:l$;return p&&qr(s,u,p)&&(u=e),E(s,We(u,3))}var y2=gt(function(s,u){if(s==null)return[];var p=u.length;return p>1&&qr(s,u[0],u[1])?u=[]:p>2&&qr(u[0],u[1],u[2])&&(u=[u[0]]),Z0(s,_r(u,1),[])}),gm=ZK||function(){return dr.Date.now()};function I2(s,u){if(typeof u!="function")throw new Di(i);return s=Et(s),function(){if(--s<1)return u.apply(this,arguments)}}function YA(s,u,p){return u=p?e:u,u=s&&u==null?s.length:u,Ts(s,ue,e,e,e,e,u)}function JA(s,u){var p;if(typeof u!="function")throw new Di(i);return s=Et(s),function(){return--s>0&&(p=u.apply(this,arguments)),s<=1&&(u=e),p}}var jy=gt(function(s,u,p){var E=w;if(p.length){var S=Xo(p,sl(jy));E|=ne}return Ts(s,E,u,p,S)}),HA=gt(function(s,u,p){var E=w|U;if(p.length){var S=Xo(p,sl(HA));E|=ne}return Ts(u,E,s,p,S)});function zA(s,u,p){u=p?e:u;var E=Ts(s,Y,e,e,e,e,e,u);return E.placeholder=zA.placeholder,E}function WA(s,u,p){u=p?e:u;var E=Ts(s,re,e,e,e,e,e,u);return E.placeholder=WA.placeholder,E}function XA(s,u,p){var E,S,L,k,j,J,le=0,de=!1,Te=!1,be=!0;if(typeof s!="function")throw new Di(i);u=Fi(u)||0,Dn(p)&&(de=!!p.leading,Te="maxWait"in p,L=Te?tr(Fi(p.maxWait)||0,u):L,be="trailing"in p?!!p.trailing:be);function Ve(Kn){var oa=E,gs=S;return E=S=e,le=Kn,k=s.apply(gs,oa),k}function Ze(Kn){return le=Kn,j=Bd(Ot,u),de?Ve(Kn):k}function yt(Kn){var oa=Kn-J,gs=Kn-le,ER=u-oa;return Te?vr(ER,L-gs):ER}function et(Kn){var oa=Kn-J,gs=Kn-le;return J===e||oa>=u||oa<0||Te&&gs>=L}function Ot(){var Kn=gm();if(et(Kn))return wt(Kn);j=Bd(Ot,yt(Kn))}function wt(Kn){return j=e,be&&E?Ve(Kn):(E=S=e,k)}function mi(){j!==e&&uA(j),le=0,E=J=S=j=e}function jr(){return j===e?k:wt(gm())}function Ni(){var Kn=gm(),oa=et(Kn);if(E=arguments,S=this,J=Kn,oa){if(j===e)return Ze(J);if(Te)return uA(j),j=Bd(Ot,u),Ve(J)}return j===e&&(j=Bd(Ot,u)),k}return Ni.cancel=mi,Ni.flush=jr,Ni}var g2=gt(function(s,u){return j0(s,1,u)}),_2=gt(function(s,u,p){return j0(s,Fi(u)||0,p)});function v2(s){return Ts(s,Me)}function _m(s,u){if(typeof s!="function"||u!=null&&typeof u!="function")throw new Di(i);var p=function(){var E=arguments,S=u?u.apply(this,E):E[0],L=p.cache;if(L.has(S))return L.get(S);var k=s.apply(this,E);return p.cache=L.set(S,k)||L,k};return p.cache=new(_m.Cache||ms),p}_m.Cache=ms;function vm(s){if(typeof s!="function")throw new Di(i);return function(){var u=arguments;switch(u.length){case 0:return!s.call(this);case 1:return!s.call(this,u[0]);case 2:return!s.call(this,u[0],u[1]);case 3:return!s.call(this,u[0],u[1],u[2])}return!s.apply(this,u)}}function S2(s){return JA(2,s)}var O2=d$(function(s,u){u=u.length==1&&ft(u[0])?vn(u[0],di(We())):vn(_r(u,1),di(We()));var p=u.length;return gt(function(E){for(var S=-1,L=vr(E.length,p);++S=u}),Qu=Q0(function(){return arguments}())?Q0:function(s){return Ln(s)&&sn.call(s,"callee")&&!w0.call(s,"callee")},ft=te.isArray,q2=f0?di(f0):JG;function Wr(s){return s!=null&&Sm(s.length)&&!ys(s)}function Vn(s){return Ln(s)&&Wr(s)}function j2(s){return s===!0||s===!1||Ln(s)&&xr(s)==St}var au=tG||Zy,V2=m0?di(m0):HG;function K2(s){return Ln(s)&&s.nodeType===1&&!Ud(s)}function G2(s){if(s==null)return!0;if(Wr(s)&&(ft(s)||typeof s=="string"||typeof s.splice=="function"||au(s)||ol(s)||Qu(s)))return!s.length;var u=Sr(s);if(u==rt||u==Ir)return!s.size;if(Cd(s))return!Ey(s).length;for(var p in s)if(sn.call(s,p))return!1;return!0}function $2(s,u){return Fd(s,u)}function Q2(s,u,p){p=typeof p=="function"?p:e;var E=p?p(s,u):e;return E===e?Fd(s,u,e,p):!!E}function Ky(s){if(!Ln(s))return!1;var u=xr(s);return u==xe||u==ie||typeof s.message=="string"&&typeof s.name=="string"&&!Ud(s)}function Y2(s){return typeof s=="number"&&C0(s)}function ys(s){if(!Dn(s))return!1;var u=xr(s);return u==Ye||u==Ut||u==Le||u==Hc}function eR(s){return typeof s=="number"&&s==Et(s)}function Sm(s){return typeof s=="number"&&s>-1&&s%1==0&&s<=En}function Dn(s){var u=typeof s;return s!=null&&(u=="object"||u=="function")}function Ln(s){return s!=null&&typeof s=="object"}var tR=N0?di(N0):WG;function J2(s,u){return s===u||Ty(s,u,Ly(u))}function H2(s,u,p){return p=typeof p=="function"?p:e,Ty(s,u,Ly(u),p)}function z2(s){return nR(s)&&s!=+s}function W2(s){if(C$(s))throw new ct(r);return Y0(s)}function X2(s){return s===null}function Z2(s){return s==null}function nR(s){return typeof s=="number"||Ln(s)&&xr(s)==Ft}function Ud(s){if(!Ln(s)||xr(s)!=Hr)return!1;var u=Wf(s);if(u===null)return!0;var p=sn.call(u,"constructor")&&u.constructor;return typeof p=="function"&&p instanceof p&&Yf.call(p)==HK}var Gy=T0?di(T0):XG;function eY(s){return eR(s)&&s>=-En&&s<=En}var rR=E0?di(E0):ZG;function Om(s){return typeof s=="string"||!ft(s)&&Ln(s)&&xr(s)==ci}function fi(s){return typeof s=="symbol"||Ln(s)&&xr(s)==qt}var ol=h0?di(h0):e$;function tY(s){return s===e}function nY(s){return Ln(s)&&Sr(s)==Uu}function rY(s){return Ln(s)&&xr(s)==Pa}var iY=Nm(hy),aY=Nm(function(s,u){return s<=u});function iR(s){if(!s)return[];if(Wr(s))return Om(s)?ia(s):zr(s);if(vd&&s[vd])return kK(s[vd]());var u=Sr(s),p=u==rt?ay:u==Ir?Gf:ul;return p(s)}function Is(s){if(!s)return s===0?s:0;if(s=Fi(s),s===$t||s===-$t){var u=s<0?-1:1;return u*kr}return s===s?s:0}function Et(s){var u=Is(s),p=u%1;return u===u?p?u-p:u:0}function aR(s){return s?Vu(Et(s),0,jn):0}function Fi(s){if(typeof s=="number")return s;if(fi(s))return Mr;if(Dn(s)){var u=typeof s.valueOf=="function"?s.valueOf():s;s=Dn(u)?u+"":u}if(typeof s!="string")return s===0?s:+s;s=S0(s);var p=qV.test(s);return p||VV.test(s)?IK(s.slice(2),p?2:8):xV.test(s)?Mr:+s}function sR(s){return wa(s,Xr(s))}function sY(s){return s?Vu(Et(s),-En,En):s===0?s:0}function zt(s){return s==null?"":pi(s)}var oY=il(function(s,u){if(Cd(u)||Wr(u)){wa(u,pr(u),s);return}for(var p in u)sn.call(u,p)&&Ad(s,p,u[p])}),oR=il(function(s,u){wa(u,Xr(u),s)}),Dm=il(function(s,u,p,E){wa(u,Xr(u),s,E)}),uY=il(function(s,u,p,E){wa(u,pr(u),s,E)}),cY=Es(dy);function lY(s,u){var p=rl(s);return u==null?p:x0(p,u)}var dY=gt(function(s,u){s=Nn(s);var p=-1,E=u.length,S=E>2?u[2]:e;for(S&&qr(u[0],u[1],S)&&(E=1);++p1),L}),wa(s,Fy(s),p),E&&(p=Ai(p,d|f|y,_$));for(var S=u.length;S--;)vy(p,u[S]);return p});function RY(s,u){return cR(s,vm(We(u)))}var PY=Es(function(s,u){return s==null?{}:r$(s,u)});function cR(s,u){if(s==null)return{};var p=vn(Fy(s),function(E){return[E]});return u=We(u),eA(s,p,function(E,S){return u(E,S[0])})}function FY(s,u,p){u=ru(u,s);var E=-1,S=u.length;for(S||(S=1,s=e);++Eu){var E=s;s=u,u=E}if(p||s%1||u%1){var S=B0();return vr(s+S*(u-s+yK("1e-"+((S+"").length-1))),u)}return Iy(s,u)}var VY=al(function(s,u,p){return u=u.toLowerCase(),s+(p?pR(u):u)});function pR(s){return Yy(zt(s).toLowerCase())}function fR(s){return s=zt(s),s&&s.replace(GV,wK).replace(cK,"")}function KY(s,u,p){s=zt(s),u=pi(u);var E=s.length;p=p===e?E:Vu(Et(p),0,E);var S=p;return p-=u.length,p>=0&&s.slice(p,S)==u}function GY(s){return s=zt(s),s&&SV.test(s)?s.replace(Gb,LK):s}function $Y(s){return s=zt(s),s&&PV.test(s)?s.replace(Vh,"\\$&"):s}var QY=al(function(s,u,p){return s+(p?"-":"")+u.toLowerCase()}),YY=al(function(s,u,p){return s+(p?" ":"")+u.toLowerCase()}),JY=TA("toLowerCase");function HY(s,u,p){s=zt(s),u=Et(u);var E=u?Zc(s):0;if(!u||E>=u)return s;var S=(u-E)/2;return mm(tm(S),p)+s+mm(em(S),p)}function zY(s,u,p){s=zt(s),u=Et(u);var E=u?Zc(s):0;return u&&E>>0,p?(s=zt(s),s&&(typeof u=="string"||u!=null&&!Gy(u))&&(u=pi(u),!u&&Xc(s))?iu(ia(s),0,p):s.split(u,p)):[]}var rJ=al(function(s,u,p){return s+(p?" ":"")+Yy(u)});function iJ(s,u,p){return s=zt(s),p=p==null?0:Vu(Et(p),0,s.length),u=pi(u),s.slice(p,p+u.length)==u}function aJ(s,u,p){var E=P.templateSettings;p&&qr(s,u,p)&&(u=e),s=zt(s),u=Dm({},u,E,vA);var S=Dm({},u.imports,E.imports,vA),L=pr(S),k=iy(S,L),j,J,le=0,de=u.interpolate||xf,Te="__p += '",be=sy((u.escape||xf).source+"|"+de.source+"|"+(de===$b?MV:xf).source+"|"+(u.evaluate||xf).source+"|$","g"),Ve="//# sourceURL="+(sn.call(u,"sourceURL")?(u.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++mK+"]")+` +`;s.replace(be,function(et,Ot,wt,mi,jr,Ni){return wt||(wt=mi),Te+=s.slice(le,Ni).replace($V,CK),Ot&&(j=!0,Te+=`' + +__e(`+Ot+`) + +'`),jr&&(J=!0,Te+=`'; +`+jr+`; +__p += '`),wt&&(Te+=`' + +((__t = (`+wt+`)) == null ? '' : __t) + +'`),le=Ni+et.length,et}),Te+=`'; +`;var Ze=sn.call(u,"variable")&&u.variable;if(!Ze)Te=`with (obj) { +`+Te+` } -`;else if(dj.test(Ze))throw new ut(a);he=(H?he.replace(yn,""):he).replace(nn,"$1").replace(W1,"$1;"),he="function("+(Ze||"obj")+`) { +`;else if(UV.test(Ze))throw new ct(a);Te=(J?Te.replace(_n,""):Te).replace(an,"$1").replace(_V,"$1;"),Te="function("+(Ze||"obj")+`) { `+(Ze?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(j?", __e = _.escape":"")+(H?`, __j = Array.prototype.join; +`)+"var __t, __p = ''"+(j?", __e = _.escape":"")+(J?`, __j = Array.prototype.join; function print() { __p += __j.call(arguments, '') } `:`; -`)+he+`return __p -}`;var Et=JA(function(){return Yt(L,Ke+"return "+he).apply(e,M)});if(Et.source=he,vy(Et))throw Et;return Et}function BY(s){return Wt(s).toLowerCase()}function UY(s){return Wt(s).toUpperCase()}function kY(s,u,f){if(s=Wt(s),s&&(f||u===e))return r0(s);if(!s||!(u=si(u)))return s;var E=zi(s),S=zi(u),L=i0(E,S),M=a0(E,S)+1;return zo(E,L,M).join("")}function MY(s,u,f){if(s=Wt(s),s&&(f||u===e))return s.slice(0,o0(s)+1);if(!s||!(u=si(u)))return s;var E=zi(s),S=a0(E,zi(u))+1;return zo(E,0,S).join("")}function xY(s,u,f){if(s=Wt(s),s&&(f||u===e))return s.replace(vh,"");if(!s||!(u=si(u)))return s;var E=zi(s),S=i0(E,zi(u));return zo(E,S).join("")}function qY(s,u){var f=tt,E=ee;if(vn(u)){var S="separator"in u?u.separator:S;f="length"in u?Nt(u.length):f,E="omission"in u?si(u.omission):E}s=Wt(s);var L=s.length;if(jc(s)){var M=zi(s);L=M.length}if(f>=L)return s;var j=f-Kc(E);if(j<1)return E;var H=M?zo(M,0,j).join(""):s.slice(0,j);if(S===e)return H+E;if(M&&(j+=H.length-j),Sy(S)){if(s.slice(j).search(S)){var pe,me=H;for(S.global||(S=qh(S.source,Wt(Ob.exec(S))+"g")),S.lastIndex=0;pe=S.exec(me);)var he=pe.index;H=H.slice(0,he===e?j:he)}}else if(s.indexOf(si(S),j)!=j){var Ae=H.lastIndexOf(S);Ae>-1&&(H=H.slice(0,Ae))}return H+E}function VY(s){return s=Wt(s),s&&X1.test(s)?s.replace(_b,TK):s}var jY=Hc(function(s,u,f){return s+(f?" ":"")+u.toUpperCase()}),by=H0("toUpperCase");function YA(s,u,f){return s=Wt(s),u=f?e:u,u===e?dK(s)?yK(s):nK(s):s.match(u)||[]}var JA=It(function(s,u){try{return ii(s,e,u)}catch(f){return vy(f)?f:new ut(f)}}),KY=us(function(s,u){return yi(u,function(f){f=Oa(f),ss(s,f,gy(s[f],s))}),s});function GY(s){var u=s==null?0:s.length,f=We();return s=u?In(s,function(E){if(typeof E[1]!="function")throw new Ii(i);return[f(E[0]),E[1]]}):[],It(function(E){for(var S=-1;++Smn)return[];var f=kn,E=Er(s,kn);u=We(u),s-=kn;for(var S=kh(E,u);++f0||u<0)?new Ot(f):(s<0?f=f.takeRight(-s):s&&(f=f.drop(s)),u!==e&&(u=Nt(u),f=u<0?f.dropRight(-u):f.take(u-s)),f)},Ot.prototype.takeRightWhile=function(s){return this.reverse().takeWhile(s).reverse()},Ot.prototype.toArray=function(){return this.take(kn)},va(Ot.prototype,function(s,u){var f=/^(?:filter|find|map|reject)|While$/.test(u),E=/^(?:head|last)$/.test(u),S=P[E?"take"+(u=="last"?"Right":""):u],L=E||/^find/.test(u);S&&(P.prototype[u]=function(){var M=this.__wrapped__,j=E?[1]:arguments,H=M instanceof Ot,pe=j[0],me=H||dt(M),he=function(St){var Pt=S.apply(P,Ko([St],j));return E&&Ae?Pt[0]:Pt};me&&f&&typeof pe=="function"&&pe.length!=1&&(H=me=!1);var Ae=this.__chain__,Ke=!!this.__actions__.length,Ze=L&&!Ae,Et=H&&!Ke;if(!L&&me){M=Et?M:new Ot(this);var et=s.apply(M,j);return et.__actions__.push({func:im,args:[he],thisArg:e}),new gi(et,Ae)}return Ze&&Et?s.apply(this,j):(et=this.thru(he),Ze?E?et.value()[0]:et.value():et)})}),yi(["pop","push","shift","sort","splice","unshift"],function(s){var u=Pp[s],f=/^(?:push|sort|unshift)$/.test(s)?"tap":"thru",E=/^(?:pop|shift)$/.test(s);P.prototype[s]=function(){var S=arguments;if(E&&!this.__chain__){var L=this.value();return u.apply(dt(L)?L:[],S)}return this[f](function(M){return u.apply(dt(M)?M:[],S)})}}),va(Ot.prototype,function(s,u){var f=P[u];if(f){var E=f.name+"";rn.call(Qc,E)||(Qc[E]=[]),Qc[E].push({name:u,func:f})}}),Qc[Wp(e,k).name]=[{name:"wrapper",func:e}],Ot.prototype.clone=VK,Ot.prototype.reverse=jK,Ot.prototype.value=KK,P.prototype.at=hQ,P.prototype.chain=yQ,P.prototype.commit=IQ,P.prototype.next=gQ,P.prototype.plant=vQ,P.prototype.reverse=SQ,P.prototype.toJSON=P.prototype.valueOf=P.prototype.value=OQ,P.prototype.first=P.prototype.head,fd&&(P.prototype[fd]=_Q),P},$o=IK();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(ir._=$o,define(function(){return $o})):Au?((Au.exports=$o)._=$o,Rh._=$o):ir._=$o}).call(Zl)});var vV=w(Pc=>{"use strict";m();T();N();Object.defineProperty(Pc,"__esModule",{value:!0});Pc.FederationFactory=void 0;Pc.federateSubgraphs=cde;Pc.federateSubgraphsWithContracts=lde;Pc.federateSubgraphsContract=dde;var Pe=De(),yV=du(),Mr=Hr(),Fe=Mi(),Rc=VN(),IV=Yl(),xr=Hf(),GE=iE(),Bt=Ss(),ade=yD(),sde=zf(),gV=Df(),Ie=Sl(),ode=_D(),_V=hV(),ed=KE(),_e=vr(),$E=gl(),Ee=Sr(),ude=Wf(),QE=class{constructor({authorizationDataByParentTypeName:t,concreteTypeNamesByAbstractTypeName:n,disableResolvabilityValidation:r,entityDataByTypeName:i,entityInterfaceFederationDataByTypeName:a,fieldCoordsByNamedTypeName:o,internalGraph:c,internalSubgraphBySubgraphName:l,warnings:d}){_(this,"authorizationDataByParentTypeName");_(this,"coordsByNamedTypeName",new Map);_(this,"disableResolvabilityValidation",!1);_(this,"clientDefinitions",[Bt.DEPRECATED_DEFINITION]);_(this,"currentSubgraphName","");_(this,"concreteTypeNamesByAbstractTypeName");_(this,"subgraphNamesByNamedTypeNameByFieldCoords",new Map);_(this,"entityDataByTypeName");_(this,"entityInterfaceFederationDataByTypeName");_(this,"errors",[]);_(this,"fieldConfigurationByFieldCoords",new Map);_(this,"fieldCoordsByNamedTypeName");_(this,"inaccessibleCoords",new Set);_(this,"inaccessibleRequiredInputValueErrorByCoords",new Map);_(this,"internalGraph");_(this,"internalSubgraphBySubgraphName");_(this,"invalidORScopesCoords",new Set);_(this,"isMaxDepth",!1);_(this,"isVersionTwo",!1);_(this,"namedInputValueTypeNames",new Set);_(this,"namedOutputTypeNames",new Set);_(this,"parentDefinitionDataByTypeName",new Map);_(this,"parentTagDataByTypeName",new Map);_(this,"persistedDirectiveDefinitionByDirectiveName",new Map([[_e.AUTHENTICATED,Bt.AUTHENTICATED_DEFINITION],[_e.DEPRECATED,Bt.DEPRECATED_DEFINITION],[_e.INACCESSIBLE,Bt.INACCESSIBLE_DEFINITION],[_e.ONE_OF,Bt.ONE_OF_DEFINITION],[_e.REQUIRES_SCOPES,Bt.REQUIRES_SCOPES_DEFINITION],[_e.SEMANTIC_NON_NULL,Bt.SEMANTIC_NON_NULL_DEFINITION],[_e.TAG,Bt.TAG_DEFINITION]]));_(this,"persistedDirectiveDefinitions",new Set([_e.AUTHENTICATED,_e.DEPRECATED,_e.INACCESSIBLE,_e.TAG,_e.REQUIRES_SCOPES]));_(this,"potentialPersistedDirectiveDefinitionDataByDirectiveName",new Map);_(this,"referencedPersistedDirectiveNames",new Set);_(this,"routerDefinitions",[Bt.DEPRECATED_DEFINITION,Bt.TAG_DEFINITION]);_(this,"subscriptionFilterDataByFieldPath",new Map);_(this,"tagNamesByCoords",new Map);_(this,"warnings");this.authorizationDataByParentTypeName=t,this.concreteTypeNamesByAbstractTypeName=n,this.disableResolvabilityValidation=r!=null?r:!1,this.entityDataByTypeName=i,this.entityInterfaceFederationDataByTypeName=a,this.fieldCoordsByNamedTypeName=o,this.internalGraph=c,this.internalSubgraphBySubgraphName=l,this.warnings=d}getValidImplementedInterfaces(t){var o;let n=[];if(t.implementedInterfaceTypeNames.size<1)return n;let r=(0,Ie.isNodeDataInaccessible)(t),i=new Map,a=new Map;for(let c of t.implementedInterfaceTypeNames){n.push((0,Mr.stringToNamedTypeNode)(c));let l=(0,Ee.getOrThrowError)(this.parentDefinitionDataByTypeName,c,_e.PARENT_DEFINITION_DATA);if(l.kind!==Pe.Kind.INTERFACE_TYPE_DEFINITION){a.set(l.name,(0,Ee.kindToNodeType)(l.kind));continue}let d={invalidFieldImplementations:new Map,unimplementedFields:[]},p=!1;for(let[y,I]of l.fieldDataByName){let v=!1,F=t.fieldDataByName.get(y);if(!F){p=!0,d.unimplementedFields.push(y);continue}let k={invalidAdditionalArguments:new Set,invalidImplementedArguments:[],isInaccessible:!1,originalResponseType:(0,GE.printTypeNode)(I.node.type),unimplementedArguments:new Set};(0,Ie.isTypeValidImplementation)(I.node.type,F.node.type,this.concreteTypeNamesByAbstractTypeName)||(p=!0,v=!0,k.implementedResponseType=(0,GE.printTypeNode)(F.node.type));let K=new Set;for(let[J,se]of I.argumentDataByName){let ie=se.node;K.add(J);let Te=(o=F.argumentDataByName.get(J))==null?void 0:o.node;if(!Te){p=!0,v=!0,k.unimplementedArguments.add(J);continue}let de=(0,GE.printTypeNode)(Te.type),Re=(0,GE.printTypeNode)(ie.type);Re!==de&&(p=!0,v=!0,k.invalidImplementedArguments.push({actualType:de,argumentName:J,expectedType:Re}))}for(let[J,se]of F.argumentDataByName){let ie=se.node;K.has(J)||ie.type.kind===Pe.Kind.NON_NULL_TYPE&&(p=!0,v=!0,k.invalidAdditionalArguments.add(J))}!r&&F.isInaccessible&&!I.isInaccessible&&(p=!0,v=!0,k.isInaccessible=!0),v&&d.invalidFieldImplementations.set(y,k)}p&&i.set(c,d)}return a.size>0&&this.errors.push((0,Fe.invalidImplementedTypeError)(t.name,a)),i.size>0&&this.errors.push((0,Fe.invalidInterfaceImplementationError)(t.node.name.value,(0,Ee.kindToNodeType)(t.kind),i)),n}addValidPrimaryKeyTargetsToEntityData(t){var p;let n=this.entityDataByTypeName.get(t);if(!n)return;let r=(0,Ee.getOrThrowError)(this.internalSubgraphBySubgraphName,this.currentSubgraphName,"internalSubgraphBySubgraphName"),i=r.parentDefinitionDataByTypeName,a=i.get(n.typeName);if(!a||a.kind!==Pe.Kind.OBJECT_TYPE_DEFINITION)throw(0,Fe.incompatibleParentKindFatalError)(n.typeName,Pe.Kind.OBJECT_TYPE_DEFINITION,(a==null?void 0:a.kind)||Pe.Kind.NULL);let o=r.configurationDataByTypeName.get(n.typeName);if(!o)return;let c=[],l=this.internalGraph.nodeByNodeName.get(`${this.currentSubgraphName}.${n.typeName}`);(0,Rc.validateImplicitFieldSets)({conditionalFieldDataByCoords:r.conditionalFieldDataByCoordinates,currentSubgraphName:this.currentSubgraphName,entityData:n,implicitKeys:c,objectData:a,parentDefinitionDataByTypeName:i,graphNode:l});for(let[y,I]of this.entityInterfaceFederationDataByTypeName){if(!((p=I.concreteTypeNames)!=null&&p.has(n.typeName)))continue;let v=this.entityDataByTypeName.get(y);v&&(0,Rc.validateImplicitFieldSets)({conditionalFieldDataByCoords:r.conditionalFieldDataByCoordinates,currentSubgraphName:this.currentSubgraphName,entityData:v,implicitKeys:c,objectData:a,parentDefinitionDataByTypeName:i,graphNode:l})}if(c.length<1)return;if(!o.keys||o.keys.length<1){o.isRootNode=!0,o.keys=c;return}let d=new Set(o.keys.map(y=>y.selectionSet));for(let y of c)d.has(y.selectionSet)||(o.keys.push(y),d.add(y.selectionSet))}addValidPrimaryKeyTargetsFromInterfaceObject(t,n,r,i){let a=t.parentDefinitionDataByTypeName,o=a.get(n);if(!o||!(0,Ie.isParentDataCompositeOutputType)(o))throw(0,Fe.incompatibleParentKindFatalError)(n,Pe.Kind.INTERFACE_TYPE_DEFINITION,(o==null?void 0:o.kind)||Pe.Kind.NULL);let c=(0,Ee.getOrThrowError)(t.configurationDataByTypeName,r.typeName,"internalSubgraph.configurationDataByTypeName"),l=[];if((0,Rc.validateImplicitFieldSets)({conditionalFieldDataByCoords:t.conditionalFieldDataByCoordinates,currentSubgraphName:t.name,entityData:r,implicitKeys:l,objectData:o,parentDefinitionDataByTypeName:a,graphNode:i}),l.length<1)return;if(!c.keys||c.keys.length<1){c.isRootNode=!0,c.keys=l;return}let d=new Set(c.keys.map(p=>p.selectionSet));for(let p of l)d.has(p.selectionSet)||(c.keys.push(p),d.add(p.selectionSet))}getEnumValueMergeMethod(t){return this.namedInputValueTypeNames.has(t)?this.namedOutputTypeNames.has(t)?Ie.MergeMethod.CONSISTENT:Ie.MergeMethod.INTERSECTION:Ie.MergeMethod.UNION}generateTagData(){for(let[t,n]of this.tagNamesByCoords){let r=t.split(_e.PERIOD);if(r.length<1)continue;let i=(0,Ee.getValueOrDefault)(this.parentTagDataByTypeName,r[0],()=>(0,Rc.newParentTagData)(r[0]));switch(r.length){case 1:for(let l of n)i.tagNames.add(l);break;case 2:let a=(0,Ee.getValueOrDefault)(i.childTagDataByChildName,r[1],()=>(0,Rc.newChildTagData)(r[1]));for(let l of n)a.tagNames.add(l);break;case 3:let o=(0,Ee.getValueOrDefault)(i.childTagDataByChildName,r[1],()=>(0,Rc.newChildTagData)(r[1])),c=(0,Ee.getValueOrDefault)(o.tagNamesByArgumentName,r[2],()=>new Set);for(let l of n)c.add(l);break;default:break}}}upsertEnumValueData(t,n,r){let i=t.get(n.name),a=i||this.copyEnumValueData(n);(0,Ie.extractPersistedDirectives)(a.persistedDirectivesData,n.directivesByDirectiveName,this.persistedDirectiveDefinitionByDirectiveName);let o=(0,Ie.isNodeDataInaccessible)(n);if((r||o)&&this.inaccessibleCoords.add(a.federatedCoords),this.recordTagNamesByCoords(a,a.federatedCoords),!i){t.set(a.name,a);return}a.appearances+=1,(0,Ee.addNewObjectValueMapEntries)(n.configureDescriptionDataBySubgraphName,a.configureDescriptionDataBySubgraphName),(0,Ie.setLongestDescription)(a,n),(0,Ee.addIterableValuesToSet)(n.subgraphNames,a.subgraphNames)}upsertInputValueData(t,n,r,i){let a=t.get(n.name),o=a||this.copyInputValueData(n);if((0,Ie.extractPersistedDirectives)(o.persistedDirectivesData,n.directivesByDirectiveName,this.persistedDirectiveDefinitionByDirectiveName),this.recordTagNamesByCoords(o,`${r}.${o.name}`),this.namedInputValueTypeNames.add(o.namedTypeName),(0,Ee.getValueOrDefault)(this.coordsByNamedTypeName,o.namedTypeName,()=>new Set).add(o.federatedCoords),!a){t.set(o.name,o);return}(0,Ee.addNewObjectValueMapEntries)(n.configureDescriptionDataBySubgraphName,o.configureDescriptionDataBySubgraphName),(0,Ie.setLongestDescription)(o,n),(0,Ee.addIterableValuesToSet)(n.requiredSubgraphNames,o.requiredSubgraphNames),(0,Ee.addIterableValuesToSet)(n.subgraphNames,o.subgraphNames),this.handleInputValueInaccessibility(i,o,r);let c=(0,ed.getMostRestrictiveMergedTypeNode)(o.type,n.type,o.originalCoords,this.errors);c.success?o.type=c.typeNode:this.errors.push((0,Fe.incompatibleMergedTypesError)({actualType:c.actualType,isArgument:a.isArgument,coords:a.federatedCoords,expectedType:c.expectedType})),(0,Ie.compareAndValidateInputValueDefaultValues)(o,n,this.errors)}handleInputValueInaccessibility(t,n,r){if(t){this.inaccessibleRequiredInputValueErrorByCoords.delete(n.federatedCoords),this.inaccessibleCoords.add(n.federatedCoords);return}if((0,Ie.isNodeDataInaccessible)(n)){if((0,Ie.isTypeRequired)(n.type)){this.inaccessibleRequiredInputValueErrorByCoords.set(n.federatedCoords,(0,Fe.inaccessibleRequiredInputValueError)(n,r));return}this.inaccessibleCoords.add(n.federatedCoords)}}handleSubscriptionFilterDirective(t,n){let r=t.directivesByDirectiveName.get(_e.SUBSCRIPTION_FILTER);if(!r)return;let i=(0,Ee.getFirstEntry)(t.subgraphNames);if(i===void 0){this.errors.push((0,Fe.unknownFieldSubgraphNameError)(t.federatedCoords));return}this.subscriptionFilterDataByFieldPath.set(t.federatedCoords,{directive:r[0],fieldData:n||t,directiveSubgraphName:i})}federateOutputType({current:t,other:n,coords:r,mostRestrictive:i}){n=(0,yV.getMutableTypeNode)(n,r,this.errors);let a={kind:t.kind},o=ed.DivergentType.NONE,c=a;for(let l=0;l<$E.MAXIMUM_TYPE_NESTING;l++){if(t.kind===n.kind)switch(t.kind){case Pe.Kind.NAMED_TYPE:return c.kind=t.kind,c.name=t.name,{success:!0,typeNode:a};case Pe.Kind.LIST_TYPE:c.kind=t.kind,c.type={kind:t.type.kind},c=c.type,t=t.type,n=n.type;continue;case Pe.Kind.NON_NULL_TYPE:c.kind=t.kind,c.type={kind:t.type.kind},c=c.type,t=t.type,n=n.type;continue}if(t.kind===Pe.Kind.NON_NULL_TYPE){if(o===ed.DivergentType.OTHER)return this.errors.push((0,Fe.incompatibleMergedTypesError)({actualType:n.kind,coords:r,expectedType:t.kind})),{success:!1};o=ed.DivergentType.CURRENT,i&&(c.kind=t.kind,c.type={kind:t.type.kind},c=c.type),t=t.type;continue}if(n.kind===Pe.Kind.NON_NULL_TYPE){if(o===ed.DivergentType.CURRENT)return this.errors.push((0,Fe.incompatibleMergedTypesError)({actualType:n.kind,coords:r,expectedType:t.kind})),{success:!1};o=ed.DivergentType.OTHER,i&&(c.kind=n.kind,c.type={kind:n.type.kind},c=c.type),n=n.type;continue}return this.errors.push((0,Fe.incompatibleMergedTypesError)({actualType:n.kind,coords:r,expectedType:t.kind})),{success:!1}}return this.errors.push((0,Fe.maximumTypeNestingExceededError)(r)),{success:!1}}addSubgraphNameToExistingFieldNamedTypeDisparity(t){let n=this.subgraphNamesByNamedTypeNameByFieldCoords.get(t.federatedCoords);n&&(0,Ee.addIterableValuesToSet)(t.subgraphNames,(0,Ee.getValueOrDefault)(n,t.namedTypeName,()=>new Set))}upsertFieldData(t,n,r){n.directivesByDirectiveName.has(_e.SEMANTIC_NON_NULL)&&this.referencedPersistedDirectiveNames.add(_e.SEMANTIC_NON_NULL);let i=t.get(n.name),a=i||this.copyFieldData(n,r||(0,Ie.isNodeDataInaccessible)(n));(0,Ee.getValueOrDefault)(this.coordsByNamedTypeName,n.namedTypeName,()=>new Set).add(a.federatedCoords),this.namedOutputTypeNames.add(n.namedTypeName),this.handleSubscriptionFilterDirective(n,a),(0,Ie.extractPersistedDirectives)(a.persistedDirectivesData,n.directivesByDirectiveName,this.persistedDirectiveDefinitionByDirectiveName);let o=r||(0,Ie.isNodeDataInaccessible)(a);if(o&&this.inaccessibleCoords.add(a.federatedCoords),this.recordTagNamesByCoords(a,a.federatedCoords),!i){t.set(a.name,a);return}let c=this.federateOutputType({current:a.type,other:n.type,coords:a.federatedCoords,mostRestrictive:!1});if(c.success)if(a.type=c.typeNode,a.namedTypeName!==n.namedTypeName){let l=(0,Ee.getValueOrDefault)(this.subgraphNamesByNamedTypeNameByFieldCoords,a.federatedCoords,()=>new Map),d=(0,Ee.getValueOrDefault)(l,a.namedTypeName,()=>new Set);if(d.size<1)for(let p of a.subgraphNames)n.subgraphNames.has(p)||d.add(p);(0,Ee.addIterableValuesToSet)(n.subgraphNames,(0,Ee.getValueOrDefault)(l,n.namedTypeName,()=>new Set))}else this.addSubgraphNameToExistingFieldNamedTypeDisparity(n);for(let l of n.argumentDataByName.values())this.upsertInputValueData(a.argumentDataByName,l,a.federatedCoords,o);(0,Ee.addNewObjectValueMapEntries)(n.configureDescriptionDataBySubgraphName,i.configureDescriptionDataBySubgraphName),(0,Ie.setLongestDescription)(a,n),a.isInaccessible||(a.isInaccessible=n.isInaccessible),(0,Ee.addNewObjectValueMapEntries)(n.externalFieldDataBySubgraphName,a.externalFieldDataBySubgraphName),(0,Ee.addMapEntries)(n.isShareableBySubgraphName,a.isShareableBySubgraphName),(0,Ee.addMapEntries)(n.nullLevelsBySubgraphName,a.nullLevelsBySubgraphName),(0,Ee.addIterableValuesToSet)(n.subgraphNames,a.subgraphNames)}getClientSchemaUnionMembers(t){let n=[];for(let[r,i]of t.memberByMemberTypeName)this.inaccessibleCoords.has(r)||n.push(i);return n}recordTagNamesByCoords(t,n){let r=n||t.name;if(t.persistedDirectivesData.tagDirectiveByName.size<1)return;let i=(0,Ee.getValueOrDefault)(this.tagNamesByCoords,r,()=>new Set);for(let a of t.persistedDirectivesData.tagDirectiveByName.keys())i.add(a)}copyMutualParentDefinitionData(t){return{configureDescriptionDataBySubgraphName:(0,Ee.copyObjectValueMap)(t.configureDescriptionDataBySubgraphName),directivesByDirectiveName:(0,Ee.copyArrayValueMap)(t.directivesByDirectiveName),extensionType:t.extensionType,name:t.name,persistedDirectivesData:(0,Ie.extractPersistedDirectives)((0,Ie.newPersistedDirectivesData)(),t.directivesByDirectiveName,this.persistedDirectiveDefinitionByDirectiveName),description:(0,Ie.getInitialFederatedDescription)(t)}}copyEnumValueData(t){return{appearances:t.appearances,configureDescriptionDataBySubgraphName:(0,Ee.copyObjectValueMap)(t.configureDescriptionDataBySubgraphName),federatedCoords:t.federatedCoords,directivesByDirectiveName:(0,Ee.copyArrayValueMap)(t.directivesByDirectiveName),kind:t.kind,name:t.name,node:{directives:[],kind:t.kind,name:(0,Mr.stringToNameNode)(t.name)},parentTypeName:t.parentTypeName,persistedDirectivesData:(0,Ie.extractPersistedDirectives)((0,Ie.newPersistedDirectivesData)(),t.directivesByDirectiveName,this.persistedDirectiveDefinitionByDirectiveName),subgraphNames:new Set(t.subgraphNames),description:(0,Ie.getInitialFederatedDescription)(t)}}copyInputValueData(t){return{configureDescriptionDataBySubgraphName:(0,Ee.copyObjectValueMap)(t.configureDescriptionDataBySubgraphName),directivesByDirectiveName:(0,Ee.copyArrayValueMap)(t.directivesByDirectiveName),federatedCoords:t.federatedCoords,fieldName:t.fieldName,includeDefaultValue:t.includeDefaultValue,isArgument:t.isArgument,kind:t.kind,name:t.name,namedTypeKind:t.namedTypeKind,namedTypeName:t.namedTypeName,node:{directives:[],kind:Pe.Kind.INPUT_VALUE_DEFINITION,name:(0,Mr.stringToNameNode)(t.name),type:t.type},originalCoords:t.originalCoords,originalParentTypeName:t.originalParentTypeName,persistedDirectivesData:(0,Ie.extractPersistedDirectives)((0,Ie.newPersistedDirectivesData)(),t.directivesByDirectiveName,this.persistedDirectiveDefinitionByDirectiveName),renamedParentTypeName:t.renamedParentTypeName,requiredSubgraphNames:new Set(t.requiredSubgraphNames),subgraphNames:new Set(t.subgraphNames),type:t.type,defaultValue:t.defaultValue,description:(0,Ie.getInitialFederatedDescription)(t)}}copyInputValueDataByValueName(t,n,r){let i=new Map;for(let[a,o]of t){let c=this.copyInputValueData(o);this.handleInputValueInaccessibility(n,c,r),(0,Ee.getValueOrDefault)(this.coordsByNamedTypeName,c.namedTypeName,()=>new Set).add(c.federatedCoords),this.namedInputValueTypeNames.add(c.namedTypeName),this.recordTagNamesByCoords(c,`${r}.${o.name}`),i.set(a,c)}return i}copyFieldData(t,n){return t.directivesByDirectiveName.has(_e.SEMANTIC_NON_NULL)&&this.referencedPersistedDirectiveNames.add(_e.SEMANTIC_NON_NULL),{argumentDataByName:this.copyInputValueDataByValueName(t.argumentDataByName,n,t.federatedCoords),configureDescriptionDataBySubgraphName:(0,Ee.copyObjectValueMap)(t.configureDescriptionDataBySubgraphName),directivesByDirectiveName:(0,Ee.copyArrayValueMap)(t.directivesByDirectiveName),externalFieldDataBySubgraphName:(0,Ee.copyObjectValueMap)(t.externalFieldDataBySubgraphName),federatedCoords:t.federatedCoords,inheritedDirectiveNames:new Set,isInaccessible:t.isInaccessible,isShareableBySubgraphName:new Map(t.isShareableBySubgraphName),kind:t.kind,name:t.name,namedTypeKind:t.namedTypeKind,namedTypeName:t.namedTypeName,node:{arguments:[],directives:[],kind:t.kind,name:(0,Mr.stringToNameNode)(t.name),type:t.type},nullLevelsBySubgraphName:t.nullLevelsBySubgraphName,originalParentTypeName:t.originalParentTypeName,persistedDirectivesData:(0,Ie.extractPersistedDirectives)((0,Ie.newPersistedDirectivesData)(),t.directivesByDirectiveName,this.persistedDirectiveDefinitionByDirectiveName),renamedParentTypeName:t.renamedParentTypeName,subgraphNames:new Set(t.subgraphNames),type:t.type,description:(0,Ie.getInitialFederatedDescription)(t)}}copyEnumValueDataByName(t,n){let r=new Map;for(let[i,a]of t){let o=this.copyEnumValueData(a);this.recordTagNamesByCoords(o,o.federatedCoords),(n||(0,Ie.isNodeDataInaccessible)(o))&&this.inaccessibleCoords.add(o.federatedCoords),r.set(i,o)}return r}copyFieldDataByName(t,n){let r=new Map;for(let[i,a]of t){let o=n||(0,Ie.isNodeDataInaccessible)(a),c=this.copyFieldData(a,o);this.handleSubscriptionFilterDirective(c),(0,Ee.getValueOrDefault)(this.coordsByNamedTypeName,c.namedTypeName,()=>new Set).add(c.federatedCoords),this.namedOutputTypeNames.add(c.namedTypeName),this.recordTagNamesByCoords(c,c.federatedCoords),o&&this.inaccessibleCoords.add(c.federatedCoords),r.set(i,c)}return r}copyParentDefinitionData(t){let n=this.copyMutualParentDefinitionData(t);switch(t.kind){case Pe.Kind.ENUM_TYPE_DEFINITION:return Q(x({},n),{appearances:t.appearances,enumValueDataByName:this.copyEnumValueDataByName(t.enumValueDataByName,t.isInaccessible),isInaccessible:t.isInaccessible,kind:t.kind,node:{kind:t.kind,name:(0,Mr.stringToNameNode)(t.name)},subgraphNames:new Set(t.subgraphNames)});case Pe.Kind.INPUT_OBJECT_TYPE_DEFINITION:return Q(x({},n),{inputValueDataByName:this.copyInputValueDataByValueName(t.inputValueDataByName,t.isInaccessible,t.name),isInaccessible:t.isInaccessible,kind:t.kind,node:{kind:t.kind,name:(0,Mr.stringToNameNode)(t.name)},subgraphNames:new Set(t.subgraphNames)});case Pe.Kind.INTERFACE_TYPE_DEFINITION:return Q(x({},n),{fieldDataByName:this.copyFieldDataByName(t.fieldDataByName,t.isInaccessible),implementedInterfaceTypeNames:new Set(t.implementedInterfaceTypeNames),isEntity:t.isEntity,isInaccessible:t.isInaccessible,kind:t.kind,node:{kind:t.kind,name:(0,Mr.stringToNameNode)(t.name)},requireFetchReasonsFieldNames:new Set,subgraphNames:new Set(t.subgraphNames)});case Pe.Kind.OBJECT_TYPE_DEFINITION:return Q(x({},n),{fieldDataByName:this.copyFieldDataByName(t.fieldDataByName,t.isInaccessible),implementedInterfaceTypeNames:new Set(t.implementedInterfaceTypeNames),isEntity:t.isEntity,isInaccessible:t.isInaccessible,isRootType:t.isRootType,kind:t.kind,node:{kind:t.kind,name:(0,Mr.stringToNameNode)(t.renamedTypeName||t.name)},requireFetchReasonsFieldNames:new Set,renamedTypeName:t.renamedTypeName,subgraphNames:new Set(t.subgraphNames)});case Pe.Kind.SCALAR_TYPE_DEFINITION:return Q(x({},n),{kind:t.kind,node:{kind:t.kind,name:(0,Mr.stringToNameNode)(t.name)},subgraphNames:new Set(t.subgraphNames)});case Pe.Kind.UNION_TYPE_DEFINITION:return Q(x({},n),{kind:t.kind,node:{kind:t.kind,name:(0,Mr.stringToNameNode)(t.name)},memberByMemberTypeName:new Map(t.memberByMemberTypeName),subgraphNames:new Set(t.subgraphNames)})}}getParentTargetData({existingData:t,incomingData:n}){if(!t){let r=this.copyParentDefinitionData(n);return(0,Ie.isParentDataRootType)(r)&&(r.extensionType=gV.ExtensionType.NONE),r}return(0,Ie.extractPersistedDirectives)(t.persistedDirectivesData,n.directivesByDirectiveName,this.persistedDirectiveDefinitionByDirectiveName),t}upsertParentDefinitionData(t,n){let r=this.entityInterfaceFederationDataByTypeName.get(t.name),i=this.parentDefinitionDataByTypeName.get(t.name),a=this.getParentTargetData({existingData:i,incomingData:t});this.recordTagNamesByCoords(a);let o=(0,Ie.isNodeDataInaccessible)(a);if(o&&this.inaccessibleCoords.add(a.name),r&&r.interfaceObjectSubgraphNames.has(n)){if(i&&i.kind!==Pe.Kind.INTERFACE_TYPE_DEFINITION){this.errors.push((0,Fe.incompatibleParentTypeMergeError)({existingData:i,incomingSubgraphName:n}));return}a.kind=Pe.Kind.INTERFACE_TYPE_DEFINITION,a.node.kind=Pe.Kind.INTERFACE_TYPE_DEFINITION}if(!i){this.parentDefinitionDataByTypeName.set(a.name,a);return}if(a.kind!==t.kind&&(!r||!r.interfaceObjectSubgraphNames.has(n)||a.kind!==Pe.Kind.INTERFACE_TYPE_DEFINITION||t.kind!==Pe.Kind.OBJECT_TYPE_DEFINITION)){this.errors.push((0,Fe.incompatibleParentTypeMergeError)({existingData:a,incomingNodeType:(0,Ee.kindToNodeType)(t.kind),incomingSubgraphName:n}));return}switch((0,Ee.addNewObjectValueMapEntries)(t.configureDescriptionDataBySubgraphName,a.configureDescriptionDataBySubgraphName),(0,Ie.setLongestDescription)(a,t),(0,Ie.setParentDataExtensionType)(a,t),a.kind){case Pe.Kind.ENUM_TYPE_DEFINITION:if(!(0,Ie.areKindsEqual)(a,t))return;a.appearances+=1,a.isInaccessible||(a.isInaccessible=o),(0,Ee.addIterableValuesToSet)(t.subgraphNames,a.subgraphNames);for(let l of t.enumValueDataByName.values())this.upsertEnumValueData(a.enumValueDataByName,l,o);return;case Pe.Kind.INPUT_OBJECT_TYPE_DEFINITION:if(!(0,Ie.areKindsEqual)(a,t))return;o&&!a.isInaccessible&&this.propagateInaccessibilityToExistingChildren(a),a.isInaccessible||(a.isInaccessible=o),(0,Ee.addIterableValuesToSet)(t.subgraphNames,a.subgraphNames);for(let l of t.inputValueDataByName.values())this.upsertInputValueData(a.inputValueDataByName,l,a.name,a.isInaccessible);return;case Pe.Kind.INTERFACE_TYPE_DEFINITION:case Pe.Kind.OBJECT_TYPE_DEFINITION:let c=t;o&&!a.isInaccessible&&this.propagateInaccessibilityToExistingChildren(a),a.isInaccessible||(a.isInaccessible=o),(0,Ee.addIterableValuesToSet)(c.implementedInterfaceTypeNames,a.implementedInterfaceTypeNames),(0,Ee.addIterableValuesToSet)(c.subgraphNames,a.subgraphNames);for(let l of c.fieldDataByName.values())this.upsertFieldData(a.fieldDataByName,l,a.isInaccessible);return;case Pe.Kind.UNION_TYPE_DEFINITION:if(!(0,Ie.areKindsEqual)(a,t))return;(0,Ee.addMapEntries)(t.memberByMemberTypeName,a.memberByMemberTypeName),(0,Ee.addIterableValuesToSet)(t.subgraphNames,a.subgraphNames);return;default:(0,Ee.addIterableValuesToSet)(t.subgraphNames,a.subgraphNames);return}}propagateInaccessibilityToExistingChildren(t){switch(t.kind){case Pe.Kind.INPUT_OBJECT_TYPE_DEFINITION:for(let n of t.inputValueDataByName.values())this.inaccessibleCoords.add(n.federatedCoords);break;default:for(let n of t.fieldDataByName.values()){this.inaccessibleCoords.add(n.federatedCoords);for(let r of n.argumentDataByName.values())this.inaccessibleCoords.add(r.federatedCoords)}}}upsertPersistedDirectiveDefinitionData(t,n){let r=t.name,i=this.potentialPersistedDirectiveDefinitionDataByDirectiveName.get(r);if(!i){if(n>1)return;let a=new Map;for(let o of t.argumentDataByName.values())this.namedInputValueTypeNames.add(o.namedTypeName),this.upsertInputValueData(a,o,`@${t.name}`,!1);this.potentialPersistedDirectiveDefinitionDataByDirectiveName.set(r,{argumentDataByName:a,executableLocations:new Set(t.executableLocations),name:r,repeatable:t.repeatable,subgraphNames:new Set(t.subgraphNames),description:t.description});return}if(i.subgraphNames.size+1!==n){this.potentialPersistedDirectiveDefinitionDataByDirectiveName.delete(r);return}if((0,Ie.setMutualExecutableLocations)(i,t.executableLocations),i.executableLocations.size<1){this.potentialPersistedDirectiveDefinitionDataByDirectiveName.delete(r);return}for(let a of t.argumentDataByName.values())this.namedInputValueTypeNames.add((0,yV.getTypeNodeNamedTypeName)(a.type)),this.upsertInputValueData(i.argumentDataByName,a,`@${i.name}`,!1);(0,Ie.setLongestDescription)(i,t),i.repeatable&&(i.repeatable=t.repeatable),(0,Ee.addIterableValuesToSet)(t.subgraphNames,i.subgraphNames)}shouldUpdateFederatedFieldAbstractNamedType(t,n){if(!t)return!1;let r=this.concreteTypeNamesByAbstractTypeName.get(t);if(!r||r.size<1)return!1;for(let i of n)if(!r.has(i))return!1;return!0}updateTypeNodeNamedType(t,n){let r=t;for(let i=0;i<$E.MAXIMUM_TYPE_NESTING;i++){if(r.kind===Pe.Kind.NAMED_TYPE){r.name=(0,Mr.stringToNameNode)(n);return}r=r.type}}handleDisparateFieldNamedTypes(){for(let[t,n]of this.subgraphNamesByNamedTypeNameByFieldCoords){let r=t.split(_e.PERIOD);if(r.length!==2)continue;let i=this.parentDefinitionDataByTypeName.get(r[0]);if(!i){this.errors.push((0,Fe.undefinedTypeError)(r[0]));continue}if(i.kind!==Pe.Kind.INTERFACE_TYPE_DEFINITION&&i.kind!==Pe.Kind.OBJECT_TYPE_DEFINITION){this.errors.push((0,Fe.unexpectedNonCompositeOutputTypeError)(r[0],(0,Ee.kindToNodeType)(i.kind)));continue}let a=i.fieldDataByName.get(r[1]);if(!a){this.errors.push((0,Fe.unknownFieldDataError)(t));continue}let o=new Map,c=new Set,l="";for(let p of n.keys()){if(Bt.BASE_SCALARS.has(p)){this.errors.push((0,Fe.incompatibleFederatedFieldNamedTypeError)(t,n));break}let y=this.parentDefinitionDataByTypeName.get(p);if(!y){this.errors.push((0,Fe.unknownNamedTypeError)(t,p));break}switch(y.kind){case Pe.Kind.INTERFACE_TYPE_DEFINITION:{o.set(y.name,y);break}case Pe.Kind.OBJECT_TYPE_DEFINITION:{if(c.add(y.name),c.size>1){this.errors.push((0,Fe.incompatibleFederatedFieldNamedTypeError)(t,n));continue}break}case Pe.Kind.UNION_TYPE_DEFINITION:{if(l){this.errors.push((0,Fe.incompatibleFederatedFieldNamedTypeError)(t,n));continue}l=p;break}default:{this.errors.push((0,Fe.incompatibleFederatedFieldNamedTypeError)(t,n));break}}}if(o.size<1&&!l){this.errors.push((0,Fe.incompatibleFederatedFieldNamedTypeError)(t,n));continue}let d=l;if(o.size>0){if(l){this.errors.push((0,Fe.incompatibleFederatedFieldNamedTypeError)(t,n));continue}for(let p of o.keys()){d=p;for(let[y,I]of o)if(p!==y&&!I.implementedInterfaceTypeNames.has(p)){d="";break}if(d)break}}if(!this.shouldUpdateFederatedFieldAbstractNamedType(d,c)){this.errors.push((0,Fe.incompatibleFederatedFieldNamedTypeError)(t,n));continue}a.namedTypeName=d,this.updateTypeNodeNamedType(a.type,d)}}federateInternalSubgraphData(){let t=0,n=!1;for(let r of this.internalSubgraphBySubgraphName.values()){t+=1,this.currentSubgraphName=r.name,this.isVersionTwo||(this.isVersionTwo=r.isVersionTwo),(0,ode.renameRootTypes)(this,r);for(let i of r.parentDefinitionDataByTypeName.values())this.upsertParentDefinitionData(i,r.name);if(!n){if(!r.persistedDirectiveDefinitionDataByDirectiveName.size){n=!0;continue}for(let i of r.persistedDirectiveDefinitionDataByDirectiveName.values())this.upsertPersistedDirectiveDefinitionData(i,t);this.potentialPersistedDirectiveDefinitionDataByDirectiveName.size<1&&(n=!0)}}this.handleDisparateFieldNamedTypes()}handleInterfaceObjectForInternalGraph({entityData:t,internalSubgraph:n,interfaceObjectData:r,interfaceObjectNode:i,resolvableKeyFieldSets:a,subgraphName:o}){let c=this.internalGraph.addOrUpdateNode(t.typeName),l=this.internalGraph.addEntityDataNode(t.typeName);for(let p of i.satisfiedFieldSets)c.satisfiedFieldSets.add(p),a.has(p)&&l.addTargetSubgraphByFieldSet(p,o);let d=r.fieldDatasBySubgraphName.get(o);for(let{name:p,namedTypeName:y}of d||[])this.internalGraph.addEdge(c,this.internalGraph.addOrUpdateNode(y),p);this.internalGraph.addEdge(i,c,t.typeName,!0),this.addValidPrimaryKeyTargetsFromInterfaceObject(n,i.typeName,t,c)}handleEntityInterfaces(){var t;for(let[n,r]of this.entityInterfaceFederationDataByTypeName){let i=(0,Ee.getOrThrowError)(this.parentDefinitionDataByTypeName,n,_e.PARENT_DEFINITION_DATA);if(i.kind===Pe.Kind.INTERFACE_TYPE_DEFINITION)for(let a of r.interfaceObjectSubgraphNames){let o=(0,Ee.getOrThrowError)(this.internalSubgraphBySubgraphName,a,"internalSubgraphBySubgraphName"),c=o.configurationDataByTypeName,l=this.concreteTypeNamesByAbstractTypeName.get(n);if(!l)continue;let d=(0,Ee.getOrThrowError)(c,n,"configurationDataByTypeName"),p=d.keys;if(!p)continue;d.entityInterfaceConcreteTypeNames=new Set(r.concreteTypeNames),this.internalGraph.setSubgraphName(a);let y=this.internalGraph.addOrUpdateNode(n,{isAbstract:!0});for(let I of l){let v=(0,Ee.getOrThrowError)(this.parentDefinitionDataByTypeName,I,_e.PARENT_DEFINITION_DATA);if(!(0,xr.isObjectDefinitionData)(v))continue;let F=(0,Ee.getOrThrowError)(this.entityDataByTypeName,I,"entityDataByTypeName");F.subgraphNames.add(a);let k=c.get(I);if(k)if((0,Ee.addIterableValuesToSet)(d.fieldNames,k.fieldNames),!k.keys)k.keys=[...p];else e:for(let ie of p){for(let{selectionSet:Te}of k.keys)if(ie.selectionSet===Te)continue e;k.keys.push(ie)}else c.set(I,{fieldNames:new Set(d.fieldNames),isRootNode:!0,keys:[...p],typeName:I});let K=new Set;for(let ie of p.filter(Te=>!Te.disableEntityResolver))K.add(ie.selectionSet);let J=this.authorizationDataByParentTypeName.get(n),se=(0,Ee.getOrThrowError)(o.parentDefinitionDataByTypeName,n,"internalSubgraph.parentDefinitionDataByTypeName");if((0,xr.isObjectDefinitionData)(se)){for(let[ie,Te]of se.fieldDataByName){let de=`${I}.${ie}`;(0,Ee.getValueOrDefault)(this.fieldCoordsByNamedTypeName,Te.namedTypeName,()=>new Set).add(de);let Re=J==null?void 0:J.fieldAuthDataByFieldName.get(ie);if(Re){let ee=(0,Ee.getValueOrDefault)(this.authorizationDataByParentTypeName,I,()=>(0,xr.newAuthorizationData)(I));(0,xr.upsertFieldAuthorizationData)(ee.fieldAuthDataByFieldName,Re)||this.invalidORScopesCoords.add(de)}let xe=v.fieldDataByName.get(ie);if(xe){let ee=(t=Te.isShareableBySubgraphName.get(a))!=null?t:!1;xe.isShareableBySubgraphName.set(a,ee),xe.subgraphNames.add(a);let Se=Te.externalFieldDataBySubgraphName.get(a);if(!Se)continue;xe.externalFieldDataBySubgraphName.set(a,x({},Se));continue}let tt=i.isInaccessible||v.isInaccessible||Te.isInaccessible;v.fieldDataByName.set(ie,this.copyFieldData(Te,tt))}this.handleInterfaceObjectForInternalGraph({internalSubgraph:o,subgraphName:a,interfaceObjectData:r,interfaceObjectNode:y,resolvableKeyFieldSets:K,entityData:F})}}}}}fieldDataToGraphFieldData(t){var n;return{name:t.name,namedTypeName:t.namedTypeName,isLeaf:(0,xr.isNodeLeaf)((n=this.parentDefinitionDataByTypeName.get(t.namedTypeName))==null?void 0:n.kind),subgraphNames:t.subgraphNames}}getValidFlattenedPersistedDirectiveNodeArray(t){var i;let n=(0,xr.getNodeCoords)(t),r=[];for(let[a,o]of t.persistedDirectivesData.directivesByDirectiveName){if(a===_e.SEMANTIC_NON_NULL&&(0,Ie.isFieldData)(t)){r.push((0,Ee.generateSemanticNonNullDirective)((i=(0,Ee.getFirstEntry)(t.nullLevelsBySubgraphName))!=null?i:new Set([0])));continue}let c=this.persistedDirectiveDefinitionByDirectiveName.get(a);if(c){if(o.length<2){r.push(...o);continue}if(!c.repeatable){this.errors.push((0,Fe.invalidRepeatedFederatedDirectiveErrorMessage)(a,n));continue}r.push(...o)}}return r}getRouterPersistedDirectiveNodes(t){let n=[...t.persistedDirectivesData.tagDirectiveByName.values()];return t.persistedDirectivesData.isDeprecated&&n.push((0,Ie.generateDeprecatedDirective)(t.persistedDirectivesData.deprecatedReason)),n.push(...this.getValidFlattenedPersistedDirectiveNodeArray(t)),n}getFederatedGraphNodeDescription(t){if(t.configureDescriptionDataBySubgraphName.size<1)return t.description;let n=[],r="";for(let[i,{propagate:a,description:o}]of t.configureDescriptionDataBySubgraphName)a&&(n.push(i),r=o);if(n.length===1)return(0,Rc.getDescriptionFromString)(r);if(n.length<1)return t.description;this.errors.push((0,Fe.configureDescriptionPropagationError)((0,Ie.getDefinitionDataCoords)(t,!0),n))}getNodeForRouterSchemaByData(t){return t.node.name=(0,Mr.stringToNameNode)(t.name),t.node.description=this.getFederatedGraphNodeDescription(t),t.node.directives=this.getRouterPersistedDirectiveNodes(t),t.node}getNodeWithPersistedDirectivesByInputValueData(t){return t.node.name=(0,Mr.stringToNameNode)(t.name),t.node.type=t.type,t.node.description=this.getFederatedGraphNodeDescription(t),t.node.directives=this.getRouterPersistedDirectiveNodes(t),t.includeDefaultValue&&(t.node.defaultValue=t.defaultValue),t.node}getValidFieldArgumentNodes(t){let n=[],r=[],i=[],a=`${t.renamedParentTypeName}.${t.name}`;for(let[o,c]of t.argumentDataByName)t.subgraphNames.size===c.subgraphNames.size?(r.push(o),n.push(this.getNodeWithPersistedDirectivesByInputValueData(c))):(0,Ie.isTypeRequired)(c.type)&&i.push({inputValueName:o,missingSubgraphs:(0,Ee.getEntriesNotInHashSet)(t.subgraphNames,c.subgraphNames),requiredSubgraphs:[...c.requiredSubgraphNames]});return i.length>0?this.errors.push((0,Fe.invalidRequiredInputValueError)(_e.FIELD,a,i)):r.length>0&&((0,Ee.getValueOrDefault)(this.fieldConfigurationByFieldCoords,a,()=>({argumentNames:r,fieldName:t.name,typeName:t.renamedParentTypeName})).argumentNames=r),n}getNodeWithPersistedDirectivesByFieldData(t,n){return t.node.arguments=n,t.node.name=(0,Mr.stringToNameNode)(t.name),t.node.type=t.type,t.node.description=this.getFederatedGraphNodeDescription(t),t.node.directives=this.getRouterPersistedDirectiveNodes(t),t.node}validateSemanticNonNull(t){let n;for(let r of t.nullLevelsBySubgraphName.values()){if(!n){n=r;continue}if(n.size!==r.size){this.errors.push((0,Fe.semanticNonNullInconsistentLevelsError)(t));return}for(let i of r)if(!n.has(i)){this.errors.push((0,Fe.semanticNonNullInconsistentLevelsError)(t));return}}}validateOneOfDirective({data:t,inputValueNodes:n,requiredFieldNames:r}){return t.directivesByDirectiveName.has(_e.ONE_OF)?r.size>0?(this.errors.push((0,Fe.oneOfRequiredFieldsError)({requiredFieldNames:Array.from(r),typeName:t.name})),!1):(n.length===1&&this.warnings.push((0,ude.singleFederatedInputFieldOneOfWarning)({fieldName:n[0].name.value,typeName:t.name})),!0):!0}pushParentDefinitionDataToDocumentDefinitions(t){for(let[n,r]of this.parentDefinitionDataByTypeName)switch(r.extensionType!==gV.ExtensionType.NONE&&this.errors.push((0,Fe.noBaseDefinitionForExtensionError)((0,Ee.kindToNodeType)(r.kind),n)),r.kind){case Pe.Kind.ENUM_TYPE_DEFINITION:{let i=[],a=[],o=this.getEnumValueMergeMethod(n);(0,Ie.propagateAuthDirectives)(r,this.authorizationDataByParentTypeName.get(n));for(let c of r.enumValueDataByName.values()){let l=(0,Ie.getNodeForRouterSchemaByData)(c,this.persistedDirectiveDefinitionByDirectiveName,this.errors),d=(0,Ie.isNodeDataInaccessible)(c),p=Q(x({},c.node),{directives:(0,Ie.getClientPersistedDirectiveNodes)(c)});switch(o){case Ie.MergeMethod.CONSISTENT:!d&&r.appearances>c.appearances&&this.errors.push((0,Fe.incompatibleSharedEnumError)(n)),i.push(l),d||a.push(p);break;case Ie.MergeMethod.INTERSECTION:r.appearances===c.appearances&&(i.push(l),d||a.push(p));break;default:i.push(l),d||a.push(p);break}}if(r.node.values=i,this.routerDefinitions.push(this.getNodeForRouterSchemaByData(r)),(0,Ie.isNodeDataInaccessible)(r)){this.validateReferencesOfInaccessibleType(r),this.internalGraph.setNodeInaccessible(r.name);break}if(a.length<1){this.errors.push((0,Fe.allChildDefinitionsAreInaccessibleError)((0,Ee.kindToNodeType)(r.kind),n,_e.ENUM_VALUE));break}this.clientDefinitions.push(Q(x({},r.node),{directives:(0,Ie.getClientPersistedDirectiveNodes)(r),values:a}));break}case Pe.Kind.INPUT_OBJECT_TYPE_DEFINITION:{let i=new Array,a=new Array,o=new Array,c=new Set;for(let[l,d]of r.inputValueDataByName)if((0,Ie.isTypeRequired)(d.type)&&c.add(l),r.subgraphNames.size===d.subgraphNames.size){if(a.push(this.getNodeWithPersistedDirectivesByInputValueData(d)),(0,Ie.isNodeDataInaccessible)(d))continue;o.push(Q(x({},d.node),{directives:(0,Ie.getClientPersistedDirectiveNodes)(d)}))}else(0,Ie.isTypeRequired)(d.type)&&i.push({inputValueName:l,missingSubgraphs:(0,Ee.getEntriesNotInHashSet)(r.subgraphNames,d.subgraphNames),requiredSubgraphs:[...d.requiredSubgraphNames]});if(i.length>0){this.errors.push((0,Fe.invalidRequiredInputValueError)(_e.INPUT_OBJECT,n,i,!1));break}if(!this.validateOneOfDirective({data:r,inputValueNodes:a,requiredFieldNames:c}))break;if(r.node.fields=a,this.routerDefinitions.push(this.getNodeForRouterSchemaByData(r)),(0,Ie.isNodeDataInaccessible)(r)){this.validateReferencesOfInaccessibleType(r);break}if(o.length<1){this.errors.push((0,Fe.allChildDefinitionsAreInaccessibleError)((0,Ee.kindToNodeType)(r.kind),n,"Input field"));break}this.clientDefinitions.push(Q(x({},r.node),{directives:(0,Ie.getClientPersistedDirectiveNodes)(r),fields:o}));break}case Pe.Kind.INTERFACE_TYPE_DEFINITION:case Pe.Kind.OBJECT_TYPE_DEFINITION:{let i=[],a=[],o=new Map,c=(0,Ie.newInvalidFieldNames)(),l=r.kind===Pe.Kind.OBJECT_TYPE_DEFINITION,d=this.authorizationDataByParentTypeName.get(n);(0,Ie.propagateAuthDirectives)(r,d);for(let[y,I]of r.fieldDataByName){(0,Ie.propagateFieldAuthDirectives)(I,d);let v=this.getValidFieldArgumentNodes(I);l&&(0,Ie.validateExternalAndShareable)(I,c),this.validateSemanticNonNull(I),i.push(this.getNodeWithPersistedDirectivesByFieldData(I,v)),!(0,Ie.isNodeDataInaccessible)(I)&&(a.push((0,Ie.getClientSchemaFieldNodeByFieldData)(I)),o.set(y,this.fieldDataToGraphFieldData(I)))}if(l&&(c.byShareable.size>0&&this.errors.push((0,Fe.invalidFieldShareabilityError)(r,c.byShareable)),c.subgraphNamesByExternalFieldName.size>0&&this.errors.push((0,Fe.allExternalFieldInstancesError)(n,c.subgraphNamesByExternalFieldName))),r.node.fields=i,this.internalGraph.initializeNode(n,o),r.implementedInterfaceTypeNames.size>0){t.push({data:r,clientSchemaFieldNodes:a});break}this.routerDefinitions.push(this.getNodeForRouterSchemaByData(r));let p=(0,sde.isNodeQuery)(n);if((0,Ie.isNodeDataInaccessible)(r)){if(p){this.errors.push(Fe.inaccessibleQueryRootTypeError);break}this.validateReferencesOfInaccessibleType(r),this.internalGraph.setNodeInaccessible(r.name);break}if(a.length<1){let y=p?(0,Fe.noQueryRootTypeError)(!1):(0,Fe.allChildDefinitionsAreInaccessibleError)((0,Ee.kindToNodeType)(r.kind),n,_e.FIELD);this.errors.push(y);break}this.clientDefinitions.push(Q(x({},r.node),{directives:(0,Ie.getClientPersistedDirectiveNodes)(r),fields:a}));break}case Pe.Kind.SCALAR_TYPE_DEFINITION:{if(Bt.BASE_SCALARS.has(n))break;if((0,Ie.propagateAuthDirectives)(r,this.authorizationDataByParentTypeName.get(n)),this.routerDefinitions.push(this.getNodeForRouterSchemaByData(r)),(0,Ie.isNodeDataInaccessible)(r)){this.validateReferencesOfInaccessibleType(r),this.internalGraph.setNodeInaccessible(r.name);break}this.clientDefinitions.push(Q(x({},r.node),{directives:(0,Ie.getClientPersistedDirectiveNodes)(r)}));break}case Pe.Kind.UNION_TYPE_DEFINITION:{if(r.node.types=(0,xr.mapToArrayOfValues)(r.memberByMemberTypeName),this.routerDefinitions.push(this.getNodeForRouterSchemaByData(r)),(0,Ie.isNodeDataInaccessible)(r)){this.validateReferencesOfInaccessibleType(r),this.internalGraph.setNodeInaccessible(r.name);break}let i=this.getClientSchemaUnionMembers(r);if(i.length<1){this.errors.push((0,Fe.allChildDefinitionsAreInaccessibleError)(_e.UNION,n,"union member type"));break}this.clientDefinitions.push(Q(x({},r.node),{directives:(0,Ie.getClientPersistedDirectiveNodes)(r),types:i}));break}}}pushNamedTypeAuthDataToFields(){var t;for(let[n,r]of this.authorizationDataByParentTypeName){if(!r.requiresAuthentication&&r.requiredScopes.length<1)continue;let i=this.fieldCoordsByNamedTypeName.get(n);if(i)for(let a of i){let o=a.split(_e.PERIOD);switch(o.length){case 2:{let c=(0,Ee.getValueOrDefault)(this.authorizationDataByParentTypeName,o[0],()=>(0,xr.newAuthorizationData)(o[0])),l=(0,Ee.getValueOrDefault)(c.fieldAuthDataByFieldName,o[1],()=>(0,xr.newFieldAuthorizationData)(o[1]));(t=l.inheritedData).requiresAuthentication||(t.requiresAuthentication=r.requiresAuthentication),l.inheritedData.requiredScopes.length*r.requiredScopes.length>Bt.MAX_OR_SCOPES?this.invalidORScopesCoords.add(a):(l.inheritedData.requiredScopesByOR=(0,xr.mergeRequiredScopesByAND)(l.inheritedData.requiredScopesByOR,r.requiredScopesByOR),l.inheritedData.requiredScopes=(0,xr.mergeRequiredScopesByAND)(l.inheritedData.requiredScopes,r.requiredScopes));break}default:break}}}}federateSubgraphData(){this.federateInternalSubgraphData(),this.handleEntityInterfaces(),this.generateTagData(),this.pushVersionTwoDirectiveDefinitionsToDocumentDefinitions(),this.pushNamedTypeAuthDataToFields()}validateInterfaceImplementationsAndPushToDocumentDefinitions(t){for(let{data:n,clientSchemaFieldNodes:r}of t){if(n.node.interfaces=this.getValidImplementedInterfaces(n),this.routerDefinitions.push((0,Ie.getNodeForRouterSchemaByData)(n,this.persistedDirectiveDefinitionByDirectiveName,this.errors)),(0,Ie.isNodeDataInaccessible)(n)){this.validateReferencesOfInaccessibleType(n),this.internalGraph.setNodeInaccessible(n.name);continue}let i=[];for(let a of n.implementedInterfaceTypeNames)this.inaccessibleCoords.has(a)||i.push((0,Mr.stringToNamedTypeNode)(a));this.clientDefinitions.push(Q(x({},n.node),{directives:(0,Ie.getClientPersistedDirectiveNodes)(n),fields:r,interfaces:i}))}}pushVersionTwoDirectiveDefinitionsToDocumentDefinitions(){if(!this.isVersionTwo){this.referencedPersistedDirectiveNames.has(_e.SEMANTIC_NON_NULL)&&(this.clientDefinitions.push(Bt.SEMANTIC_NON_NULL_DEFINITION),this.routerDefinitions=[Bt.DEPRECATED_DEFINITION,Bt.SEMANTIC_NON_NULL_DEFINITION,Bt.TAG_DEFINITION]);return}if(this.referencedPersistedDirectiveNames.has(_e.SEMANTIC_NON_NULL)){this.clientDefinitions.push(Bt.SEMANTIC_NON_NULL_DEFINITION),this.routerDefinitions=[Bt.AUTHENTICATED_DEFINITION,Bt.DEPRECATED_DEFINITION,Bt.INACCESSIBLE_DEFINITION,Bt.REQUIRES_SCOPES_DEFINITION,Bt.SEMANTIC_NON_NULL_DEFINITION,Bt.TAG_DEFINITION,Bt.SCOPE_SCALAR_DEFINITION];return}this.routerDefinitions=[Bt.AUTHENTICATED_DEFINITION,Bt.DEPRECATED_DEFINITION,Bt.INACCESSIBLE_DEFINITION,Bt.REQUIRES_SCOPES_DEFINITION,Bt.TAG_DEFINITION,Bt.SCOPE_SCALAR_DEFINITION]}validatePathSegmentInaccessibility(t){if(!t)return!1;let r=t.split(_e.LEFT_PARENTHESIS)[0].split(_e.PERIOD),i=r[0];for(let a=0;a0&&this.errors.push((0,Fe.invalidReferencesOfInaccessibleTypeError)((0,Ee.kindToNodeType)(t.kind),t.name,r))}validateQueryRootType(){let t=this.parentDefinitionDataByTypeName.get(_e.QUERY);if(!t||t.kind!==Pe.Kind.OBJECT_TYPE_DEFINITION||t.fieldDataByName.size<1){this.errors.push((0,Fe.noQueryRootTypeError)());return}for(let n of t.fieldDataByName.values())if(!(0,Ie.isNodeDataInaccessible)(n))return;this.errors.push((0,Fe.noQueryRootTypeError)())}validateSubscriptionFieldConditionFieldPath(t,n,r,i,a){let o=t.split(_e.PERIOD);if(o.length<1)return a.push((0,Fe.invalidSubscriptionFieldConditionFieldPathErrorMessage)(r,t)),[];let c=n;if(this.inaccessibleCoords.has(c.renamedTypeName))return a.push((0,Fe.inaccessibleSubscriptionFieldConditionFieldPathFieldErrorMessage)(r,t,o[0],c.renamedTypeName)),[];let l="";for(let d=0;d0?`.${p}`:p,c.kind!==Pe.Kind.OBJECT_TYPE_DEFINITION)return a.push((0,Fe.invalidSubscriptionFieldConditionFieldPathParentErrorMessage)(r,t,l)),[];let y=c.fieldDataByName.get(p);if(!y)return a.push((0,Fe.undefinedSubscriptionFieldConditionFieldPathFieldErrorMessage)(r,t,l,p,c.renamedTypeName)),[];let I=`${c.renamedTypeName}.${p}`;if(!y.subgraphNames.has(i))return a.push((0,Fe.invalidSubscriptionFieldConditionFieldPathFieldErrorMessage)(r,t,l,I,i)),[];if(this.inaccessibleCoords.has(I))return a.push((0,Fe.inaccessibleSubscriptionFieldConditionFieldPathFieldErrorMessage)(r,t,l,I)),[];if(Bt.BASE_SCALARS.has(y.namedTypeName)){c={kind:Pe.Kind.SCALAR_TYPE_DEFINITION,name:y.namedTypeName};continue}c=(0,Ee.getOrThrowError)(this.parentDefinitionDataByTypeName,y.namedTypeName,_e.PARENT_DEFINITION_DATA)}return(0,Ie.isLeafKind)(c.kind)?o:(a.push((0,Fe.nonLeafSubscriptionFieldConditionFieldPathFinalFieldErrorMessage)(r,t,o[o.length-1],(0,Ee.kindToNodeType)(c.kind),c.name)),[])}validateSubscriptionFieldCondition(t,n,r,i,a,o,c){if(i>$E.MAX_SUBSCRIPTION_FILTER_DEPTH||this.isMaxDepth)return c.push((0,Fe.subscriptionFilterConditionDepthExceededErrorMessage)(a)),this.isMaxDepth=!0,!1;let l=!1,d=new Set([_e.FIELD_PATH,_e.VALUES]),p=new Set,y=new Set,I=[];for(let v of t.fields){let F=v.name.value,k=a+`.${F}`;switch(F){case _e.FIELD_PATH:{if(d.has(_e.FIELD_PATH))d.delete(_e.FIELD_PATH);else{l=!0,p.add(_e.FIELD_PATH);break}if(v.value.kind!==Pe.Kind.STRING){I.push((0,Fe.invalidInputFieldTypeErrorMessage)(k,_e.STRING,(0,Ee.kindToNodeType)(v.value.kind))),l=!0;break}let K=this.validateSubscriptionFieldConditionFieldPath(v.value.value,r,k,o,I);if(K.length<1){l=!0;break}n.fieldPath=K;break}case _e.VALUES:{if(d.has(_e.VALUES))d.delete(_e.VALUES);else{l=!0,p.add(_e.VALUES);break}let K=v.value.kind;if(K==Pe.Kind.NULL||K==Pe.Kind.OBJECT){I.push((0,Fe.invalidInputFieldTypeErrorMessage)(k,_e.LIST,(0,Ee.kindToNodeType)(v.value.kind))),l=!0;break}if(K!==Pe.Kind.LIST){n.values=[(0,Ie.getSubscriptionFilterValue)(v.value)];break}let J=new Set,se=[];for(let ie=0;ie0){I.push((0,Fe.subscriptionFieldConditionInvalidValuesArrayErrorMessage)(k,se));continue}if(J.size<1){l=!0,I.push((0,Fe.subscriptionFieldConditionEmptyValuesArrayErrorMessage)(k));continue}n.values=[...J];break}default:l=!0,y.add(F)}}return l?(c.push((0,Fe.subscriptionFieldConditionInvalidInputFieldErrorMessage)(a,[...d],[...p],[...y],I)),!1):!0}validateSubscriptionFilterCondition(t,n,r,i,a,o,c){if(i>$E.MAX_SUBSCRIPTION_FILTER_DEPTH||this.isMaxDepth)return c.push((0,Fe.subscriptionFilterConditionDepthExceededErrorMessage)(a)),this.isMaxDepth=!0,!1;if(i+=1,t.fields.length!==1)return c.push((0,Fe.subscriptionFilterConditionInvalidInputFieldNumberErrorMessage)(a,t.fields.length)),!1;let l=t.fields[0],d=l.name.value;if(!IV.SUBSCRIPTION_FILTER_INPUT_NAMES.has(d))return c.push((0,Fe.subscriptionFilterConditionInvalidInputFieldErrorMessage)(a,d)),!1;let p=a+`.${d}`;switch(l.value.kind){case Pe.Kind.OBJECT:switch(d){case _e.IN_UPPER:return n.in={fieldPath:[],values:[]},this.validateSubscriptionFieldCondition(l.value,n.in,r,i,a+".IN",o,c);case _e.NOT_UPPER:return n.not={},this.validateSubscriptionFilterCondition(l.value,n.not,r,i,a+".NOT",o,c);default:return c.push((0,Fe.subscriptionFilterConditionInvalidInputFieldTypeErrorMessage)(p,_e.LIST,_e.OBJECT)),!1}case Pe.Kind.LIST:{let y=[];switch(d){case _e.AND_UPPER:{n.and=y;break}case _e.OR_UPPER:{n.or=y;break}default:return c.push((0,Fe.subscriptionFilterConditionInvalidInputFieldTypeErrorMessage)(p,_e.OBJECT,_e.LIST)),!1}let I=l.value.values.length;if(I<1||I>5)return c.push((0,Fe.subscriptionFilterArrayConditionInvalidLengthErrorMessage)(p,I)),!1;let v=!0,F=[];for(let k=0;k0?(c.push((0,Fe.subscriptionFilterArrayConditionInvalidItemTypeErrorMessage)(p,F)),!1):v}default:{let y=IV.SUBSCRIPTION_FILTER_LIST_INPUT_NAMES.has(d)?_e.LIST:_e.OBJECT;return c.push((0,Fe.subscriptionFilterConditionInvalidInputFieldTypeErrorMessage)(p,y,(0,Ee.kindToNodeType)(l.value.kind))),!1}}}validateSubscriptionFilterAndGenerateConfiguration(t,n,r,i,a,o){if(!t.arguments||t.arguments.length!==1)return;let c=t.arguments[0];if(c.value.kind!==Pe.Kind.OBJECT){this.errors.push((0,Fe.invalidSubscriptionFilterDirectiveError)(r,[(0,Fe.subscriptionFilterConditionInvalidInputFieldTypeErrorMessage)(_e.CONDITION,_e.OBJECT,(0,Ee.kindToNodeType)(c.value.kind))]));return}let l={},d=[];if(!this.validateSubscriptionFilterCondition(c.value,l,n,0,_e.CONDITION,o,d)){this.errors.push((0,Fe.invalidSubscriptionFilterDirectiveError)(r,d)),this.isMaxDepth=!1;return}(0,Ee.getValueOrDefault)(this.fieldConfigurationByFieldCoords,r,()=>({argumentNames:[],fieldName:i,typeName:a})).subscriptionFilterCondition=l}validateSubscriptionFiltersAndGenerateConfiguration(){for(let[t,n]of this.subscriptionFilterDataByFieldPath){if(this.inaccessibleCoords.has(t))continue;let r=this.parentDefinitionDataByTypeName.get(n.fieldData.namedTypeName);if(!r){this.errors.push((0,Fe.invalidSubscriptionFilterDirectiveError)(t,[(0,Fe.subscriptionFilterNamedTypeErrorMessage)(n.fieldData.namedTypeName)]));continue}(0,Ie.isNodeDataInaccessible)(r)||r.kind===Pe.Kind.OBJECT_TYPE_DEFINITION&&this.validateSubscriptionFilterAndGenerateConfiguration(n.directive,r,t,n.fieldData.name,n.fieldData.renamedParentTypeName,n.directiveSubgraphName)}}buildFederationResult(){this.subscriptionFilterDataByFieldPath.size>0&&this.validateSubscriptionFiltersAndGenerateConfiguration(),this.invalidORScopesCoords.size>0&&this.errors.push((0,Fe.orScopesLimitError)(Bt.MAX_OR_SCOPES,[...this.invalidORScopesCoords]));for(let a of this.potentialPersistedDirectiveDefinitionDataByDirectiveName.values())(0,Ie.addValidPersistedDirectiveDefinitionNodeByData)(this.routerDefinitions,a,this.persistedDirectiveDefinitionByDirectiveName,this.errors);let t=[];this.pushParentDefinitionDataToDocumentDefinitions(t),this.validateInterfaceImplementationsAndPushToDocumentDefinitions(t),this.validateQueryRootType();for(let a of this.inaccessibleRequiredInputValueErrorByCoords.values())this.errors.push(a);if(this.errors.length>0)return{errors:this.errors,success:!1,warnings:this.warnings};if(!this.disableResolvabilityValidation&&this.internalSubgraphBySubgraphName.size>1){let a=this.internalGraph.validate();if(!a.success)return{errors:a.errors,success:!1,warnings:this.warnings}}let n={kind:Pe.Kind.DOCUMENT,definitions:this.routerDefinitions},r=(0,Pe.buildASTSchema)({kind:Pe.Kind.DOCUMENT,definitions:this.clientDefinitions},{assumeValid:!0,assumeValidSDL:!0}),i=new Map;for(let a of this.internalSubgraphBySubgraphName.values())i.set(a.name,{configurationDataByTypeName:a.configurationDataByTypeName,directiveDefinitionByDirectiveName:a.directiveDefinitionByDirectiveName,isVersionTwo:a.isVersionTwo,parentDefinitionDataByTypeName:a.parentDefinitionDataByTypeName,schema:a.schema});for(let a of this.authorizationDataByParentTypeName.values())(0,xr.upsertAuthorizationConfiguration)(this.fieldConfigurationByFieldCoords,a);return x({fieldConfigurations:Array.from(this.fieldConfigurationByFieldCoords.values()),subgraphConfigBySubgraphName:i,federatedGraphAST:n,federatedGraphSchema:(0,Pe.buildASTSchema)(n,{assumeValid:!0,assumeValidSDL:!0}),federatedGraphClientSchema:r,parentDefinitionDataByTypeName:this.parentDefinitionDataByTypeName,success:!0,warnings:this.warnings},this.getClientSchemaObjectBoolean())}getClientSchemaObjectBoolean(){return this.inaccessibleCoords.size<1&&this.tagNamesByCoords.size<1?{}:{shouldIncludeClientSchema:!0}}handleChildTagExclusions(t,n,r,i){let a=n.size;for(let[o,c]of r){let l=(0,Ee.getOrThrowError)(n,o,`${t.name}.childDataByChildName`);if((0,Ie.isNodeDataInaccessible)(l)){a-=1;continue}i.isDisjointFrom(c.tagNames)||((0,Ee.getValueOrDefault)(l.persistedDirectivesData.directivesByDirectiveName,_e.INACCESSIBLE,()=>[(0,Ee.generateSimpleDirective)(_e.INACCESSIBLE)]),this.inaccessibleCoords.add(`${t.name}.${o}`),a-=1)}a<1&&(t.persistedDirectivesData.directivesByDirectiveName.set(_e.INACCESSIBLE,[(0,Ee.generateSimpleDirective)(_e.INACCESSIBLE)]),this.inaccessibleCoords.add(t.name))}handleChildTagInclusions(t,n,r,i){let a=n.size;for(let[o,c]of n){if((0,Ie.isNodeDataInaccessible)(c)){a-=1;continue}let l=r.get(o);(!l||i.isDisjointFrom(l.tagNames))&&((0,Ee.getValueOrDefault)(c.persistedDirectivesData.directivesByDirectiveName,_e.INACCESSIBLE,()=>[(0,Ee.generateSimpleDirective)(_e.INACCESSIBLE)]),this.inaccessibleCoords.add(`${t.name}.${o}`),a-=1)}a<1&&(t.persistedDirectivesData.directivesByDirectiveName.set(_e.INACCESSIBLE,[(0,Ee.generateSimpleDirective)(_e.INACCESSIBLE)]),this.inaccessibleCoords.add(t.name))}buildFederationContractResult(t){if(this.isVersionTwo||this.routerDefinitions.push(Bt.INACCESSIBLE_DEFINITION),t.tagNamesToExclude.size>0)for(let[o,c]of this.parentTagDataByTypeName){let l=(0,Ee.getOrThrowError)(this.parentDefinitionDataByTypeName,o,_e.PARENT_DEFINITION_DATA);if(!(0,Ie.isNodeDataInaccessible)(l)){if(!t.tagNamesToExclude.isDisjointFrom(c.tagNames)){l.persistedDirectivesData.directivesByDirectiveName.set(_e.INACCESSIBLE,[(0,Ee.generateSimpleDirective)(_e.INACCESSIBLE)]),this.inaccessibleCoords.add(o);continue}if(!(c.childTagDataByChildName.size<1))switch(l.kind){case Pe.Kind.SCALAR_TYPE_DEFINITION:case Pe.Kind.UNION_TYPE_DEFINITION:break;case Pe.Kind.ENUM_TYPE_DEFINITION:{this.handleChildTagExclusions(l,l.enumValueDataByName,c.childTagDataByChildName,t.tagNamesToExclude);break}case Pe.Kind.INPUT_OBJECT_TYPE_DEFINITION:{this.handleChildTagExclusions(l,l.inputValueDataByName,c.childTagDataByChildName,t.tagNamesToExclude);break}default:{let d=l.fieldDataByName.size;for(let[p,y]of c.childTagDataByChildName){let I=(0,Ee.getOrThrowError)(l.fieldDataByName,p,`${o}.fieldDataByFieldName`);if((0,Ie.isNodeDataInaccessible)(I)){d-=1;continue}if(!t.tagNamesToExclude.isDisjointFrom(y.tagNames)){(0,Ee.getValueOrDefault)(I.persistedDirectivesData.directivesByDirectiveName,_e.INACCESSIBLE,()=>[(0,Ee.generateSimpleDirective)(_e.INACCESSIBLE)]),this.inaccessibleCoords.add(I.federatedCoords),d-=1;continue}for(let[v,F]of y.tagNamesByArgumentName){let k=(0,Ee.getOrThrowError)(I.argumentDataByName,v,`${p}.argumentDataByArgumentName`);(0,Ie.isNodeDataInaccessible)(k)||t.tagNamesToExclude.isDisjointFrom(F)||((0,Ee.getValueOrDefault)(k.persistedDirectivesData.directivesByDirectiveName,_e.INACCESSIBLE,()=>[(0,Ee.generateSimpleDirective)(_e.INACCESSIBLE)]),this.inaccessibleCoords.add(k.federatedCoords))}}d<1&&(l.persistedDirectivesData.directivesByDirectiveName.set(_e.INACCESSIBLE,[(0,Ee.generateSimpleDirective)(_e.INACCESSIBLE)]),this.inaccessibleCoords.add(o))}}}}else if(t.tagNamesToInclude.size>0)for(let[o,c]of this.parentDefinitionDataByTypeName){if((0,Ie.isNodeDataInaccessible)(c))continue;let l=this.parentTagDataByTypeName.get(o);if(!l){c.persistedDirectivesData.directivesByDirectiveName.set(_e.INACCESSIBLE,[(0,Ee.generateSimpleDirective)(_e.INACCESSIBLE)]),this.inaccessibleCoords.add(o);continue}if(t.tagNamesToInclude.isDisjointFrom(l.tagNames)){if(l.childTagDataByChildName.size<1){c.persistedDirectivesData.directivesByDirectiveName.set(_e.INACCESSIBLE,[(0,Ee.generateSimpleDirective)(_e.INACCESSIBLE)]),this.inaccessibleCoords.add(o);continue}switch(c.kind){case Pe.Kind.SCALAR_TYPE_DEFINITION:case Pe.Kind.UNION_TYPE_DEFINITION:continue;case Pe.Kind.ENUM_TYPE_DEFINITION:this.handleChildTagInclusions(c,c.enumValueDataByName,l.childTagDataByChildName,t.tagNamesToInclude);break;case Pe.Kind.INPUT_OBJECT_TYPE_DEFINITION:this.handleChildTagInclusions(c,c.inputValueDataByName,l.childTagDataByChildName,t.tagNamesToInclude);break;default:let d=c.fieldDataByName.size;for(let[p,y]of c.fieldDataByName){if((0,Ie.isNodeDataInaccessible)(y)){d-=1;continue}let I=l.childTagDataByChildName.get(p);(!I||t.tagNamesToInclude.isDisjointFrom(I.tagNames))&&((0,Ee.getValueOrDefault)(y.persistedDirectivesData.directivesByDirectiveName,_e.INACCESSIBLE,()=>[(0,Ee.generateSimpleDirective)(_e.INACCESSIBLE)]),this.inaccessibleCoords.add(y.federatedCoords),d-=1)}d<1&&(c.persistedDirectivesData.directivesByDirectiveName.set(_e.INACCESSIBLE,[(0,Ee.generateSimpleDirective)(_e.INACCESSIBLE)]),this.inaccessibleCoords.add(o))}}}this.subscriptionFilterDataByFieldPath.size>0&&this.validateSubscriptionFiltersAndGenerateConfiguration();for(let o of this.potentialPersistedDirectiveDefinitionDataByDirectiveName.values())(0,Ie.addValidPersistedDirectiveDefinitionNodeByData)(this.routerDefinitions,o,this.persistedDirectiveDefinitionByDirectiveName,this.errors);let n=[];if(this.pushParentDefinitionDataToDocumentDefinitions(n),this.validateInterfaceImplementationsAndPushToDocumentDefinitions(n),this.validateQueryRootType(),this.errors.length>0)return{errors:this.errors,success:!1,warnings:this.warnings};let r={kind:Pe.Kind.DOCUMENT,definitions:this.routerDefinitions},i=(0,Pe.buildASTSchema)({kind:Pe.Kind.DOCUMENT,definitions:this.clientDefinitions},{assumeValid:!0,assumeValidSDL:!0}),a=new Map;for(let o of this.internalSubgraphBySubgraphName.values())a.set(o.name,{configurationDataByTypeName:o.configurationDataByTypeName,directiveDefinitionByDirectiveName:o.directiveDefinitionByDirectiveName,isVersionTwo:o.isVersionTwo,parentDefinitionDataByTypeName:o.parentDefinitionDataByTypeName,schema:o.schema});for(let o of this.authorizationDataByParentTypeName.values())(0,xr.upsertAuthorizationConfiguration)(this.fieldConfigurationByFieldCoords,o);return x({fieldConfigurations:Array.from(this.fieldConfigurationByFieldCoords.values()),subgraphConfigBySubgraphName:a,federatedGraphAST:r,federatedGraphSchema:(0,Pe.buildASTSchema)(r,{assumeValid:!0,assumeValidSDL:!0}),federatedGraphClientSchema:i,parentDefinitionDataByTypeName:this.parentDefinitionDataByTypeName,success:!0,warnings:this.warnings},this.getClientSchemaObjectBoolean())}federateSubgraphsInternal(){return this.federateSubgraphData(),this.buildFederationResult()}};Pc.FederationFactory=QE;function vD({disableResolvabilityValidation:e,subgraphs:t}){if(t.length<1)return{errors:[Fe.minimumSubgraphRequirementError],success:!1,warnings:[]};let n=(0,ade.batchNormalize)(t);if(!n.success)return{errors:n.errors,success:!1,warnings:n.warnings};let r=new Map,i=new Map;for(let[c,l]of n.internalSubgraphBySubgraphName)for(let[d,p]of l.entityInterfaces){let y=r.get(d);if(!y){r.set(d,(0,xr.newEntityInterfaceFederationData)(p,c));continue}(0,xr.upsertEntityInterfaceFederationData)(y,p,c)}let a=new Array,o=new Map;for(let[c,l]of r){let d=l.concreteTypeNames.size;for(let[p,y]of l.subgraphDataByTypeName){let I=(0,Ee.getValueOrDefault)(o,p,()=>new Set);if((0,Ee.addIterableValuesToSet)(y.concreteTypeNames,I),!y.isInterfaceObject){y.resolvable&&y.concreteTypeNames.size!==d&&(0,Ee.getValueOrDefault)(i,c,()=>new Array).push({subgraphName:p,definedConcreteTypeNames:new Set(y.concreteTypeNames),requiredConcreteTypeNames:new Set(l.concreteTypeNames)});continue}(0,Ee.addIterableValuesToSet)(l.concreteTypeNames,I);let{parentDefinitionDataByTypeName:v}=(0,Ee.getOrThrowError)(n.internalSubgraphBySubgraphName,p,"internalSubgraphBySubgraphName"),F=[];for(let k of l.concreteTypeNames)v.has(k)&&F.push(k);F.length>0&&a.push((0,Fe.invalidInterfaceObjectImplementationDefinitionsError)(c,p,F))}}for(let[c,l]of i){let d=new Array;for(let p of l){let y=o.get(p.subgraphName);if(!y){d.push(p);continue}let I=p.requiredConcreteTypeNames.intersection(y);p.requiredConcreteTypeNames.size!==I.size&&(p.definedConcreteTypeNames=I,d.push(p))}if(d.length>0){i.set(c,d);continue}i.delete(c)}return i.size>0&&a.push((0,Fe.undefinedEntityInterfaceImplementationsError)(i,r)),a.length>0?{errors:a,success:!1,warnings:n.warnings}:{federationFactory:new QE({authorizationDataByParentTypeName:n.authorizationDataByParentTypeName,concreteTypeNamesByAbstractTypeName:n.concreteTypeNamesByAbstractTypeName,disableResolvabilityValidation:e,entityDataByTypeName:n.entityDataByTypeName,entityInterfaceFederationDataByTypeName:r,fieldCoordsByNamedTypeName:n.fieldCoordsByNamedTypeName,internalSubgraphBySubgraphName:n.internalSubgraphBySubgraphName,internalGraph:n.internalGraph,warnings:n.warnings}),success:!0,warnings:n.warnings}}function cde({disableResolvabilityValidation:e,subgraphs:t}){let n=vD({subgraphs:t,disableResolvabilityValidation:e});return n.success?n.federationFactory.federateSubgraphsInternal():{errors:n.errors,success:!1,warnings:n.warnings}}function lde({subgraphs:e,tagOptionsByContractName:t,disableResolvabilityValidation:n}){let r=vD({subgraphs:e,disableResolvabilityValidation:n});if(!r.success)return{errors:r.errors,success:!1,warnings:r.warnings};r.federationFactory.federateSubgraphData();let i=[(0,_V.cloneDeep)(r.federationFactory)],a=r.federationFactory.buildFederationResult();if(!a.success)return{errors:a.errors,success:!1,warnings:a.warnings};let o=t.size-1,c=new Map,l=0;for(let[d,p]of t){l!==o&&i.push((0,_V.cloneDeep)(i[l]));let y=i[l].buildFederationContractResult(p);c.set(d,y),l++}return Q(x({},a),{federationResultByContractName:c})}function dde({contractTagOptions:e,disableResolvabilityValidation:t,subgraphs:n}){let r=vD({subgraphs:n,disableResolvabilityValidation:t});return r.success?(r.federationFactory.federateSubgraphData(),r.federationFactory.buildFederationContractResult(e)):{errors:r.errors,success:!1,warnings:r.warnings}}});var YE=w(As=>{"use strict";m();T();N();Object.defineProperty(As,"__esModule",{value:!0});As.LATEST_ROUTER_COMPATIBILITY_VERSION=As.ROUTER_COMPATIBILITY_VERSIONS=As.ROUTER_COMPATIBILITY_VERSION_ONE=void 0;As.ROUTER_COMPATIBILITY_VERSION_ONE="1";As.ROUTER_COMPATIBILITY_VERSIONS=new Set([As.ROUTER_COMPATIBILITY_VERSION_ONE]);As.LATEST_ROUTER_COMPATIBILITY_VERSION="1"});var SV=w(np=>{"use strict";m();T();N();Object.defineProperty(np,"__esModule",{value:!0});np.federateSubgraphs=fde;np.federateSubgraphsWithContracts=pde;np.federateSubgraphsContract=mde;var SD=vV(),OD=YE();function fde({disableResolvabilityValidation:e,subgraphs:t,version:n=OD.ROUTER_COMPATIBILITY_VERSION_ONE}){switch(n){default:return(0,SD.federateSubgraphs)({disableResolvabilityValidation:e,subgraphs:t})}}function pde({disableResolvabilityValidation:e,subgraphs:t,tagOptionsByContractName:n,version:r=OD.ROUTER_COMPATIBILITY_VERSION_ONE}){switch(r){default:return(0,SD.federateSubgraphsWithContracts)({disableResolvabilityValidation:e,subgraphs:t,tagOptionsByContractName:n})}}function mde({contractTagOptions:e,disableResolvabilityValidation:t,subgraphs:n,version:r=OD.ROUTER_COMPATIBILITY_VERSION_ONE}){switch(r){default:return(0,SD.federateSubgraphsContract)({disableResolvabilityValidation:t,subgraphs:n,contractTagOptions:e})}}});var DV=w(OV=>{"use strict";m();T();N();Object.defineProperty(OV,"__esModule",{value:!0})});var bV=w(rp=>{"use strict";m();T();N();Object.defineProperty(rp,"__esModule",{value:!0});rp.normalizeSubgraphFromString=Nde;rp.normalizeSubgraph=Tde;rp.batchNormalize=Ede;var DD=yD(),bD=YE();function Nde(e,t=!0,n=bD.ROUTER_COMPATIBILITY_VERSION_ONE){switch(n){default:return(0,DD.normalizeSubgraphFromString)(e,t)}}function Tde(e,t,n,r=bD.ROUTER_COMPATIBILITY_VERSION_ONE){switch(r){default:return(0,DD.normalizeSubgraph)(e,t,n)}}function Ede(e,t=bD.ROUTER_COMPATIBILITY_VERSION_ONE){switch(t){default:return(0,DD.batchNormalize)(e)}}});var RV=w(AV=>{"use strict";m();T();N();Object.defineProperty(AV,"__esModule",{value:!0})});var FV=w(PV=>{"use strict";m();T();N();Object.defineProperty(PV,"__esModule",{value:!0})});var LV=w(wV=>{"use strict";m();T();N();Object.defineProperty(wV,"__esModule",{value:!0})});var BV=w(CV=>{"use strict";m();T();N();Object.defineProperty(CV,"__esModule",{value:!0})});var kV=w(UV=>{"use strict";m();T();N();Object.defineProperty(UV,"__esModule",{value:!0})});var xV=w(MV=>{"use strict";m();T();N();Object.defineProperty(MV,"__esModule",{value:!0})});var qV=w(JE=>{"use strict";m();T();N();Object.defineProperty(JE,"__esModule",{value:!0});JE.COMPOSITION_VERSION=void 0;JE.COMPOSITION_VERSION="{{$COMPOSITION__VERSION}}"});var jV=w(VV=>{"use strict";m();T();N();Object.defineProperty(VV,"__esModule",{value:!0})});var GV=w(KV=>{"use strict";m();T();N();Object.defineProperty(KV,"__esModule",{value:!0})});var QV=w($V=>{"use strict";m();T();N();Object.defineProperty($V,"__esModule",{value:!0})});var HE=w(ot=>{"use strict";m();T();N();var hde=ot&&ot.__createBinding||(Object.create?function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]}),yt=ot&&ot.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&hde(t,e,n)};Object.defineProperty(ot,"__esModule",{value:!0});yt(Hr(),ot);yt(bv(),ot);yt(Mi(),ot);yt(Zk(),ot);yt(SV(),ot);yt(DV(),ot);yt(bV(),ot);yt(RV(),ot);yt(TD(),ot);yt(aD(),ot);yt(CE(),ot);yt(FV(),ot);yt(LV(),ot);yt(lD(),ot);yt(YE(),ot);yt(BV(),ot);yt(ED(),ot);yt(du(),ot);yt(Df(),ot);yt(Sl(),ot);yt(kV(),ot);yt(xV(),ot);yt(qV(),ot);yt(vr(),ot);yt(jV(),ot);yt(Sr(),ot);yt(WO(),ot);yt(VN(),ot);yt(_D(),ot);yt(GV(),ot);yt(QO(),ot);yt(zf(),ot);yt(QV(),ot);yt(eD(),ot);yt(KE(),ot);yt(HO(),ot);yt(Ss(),ot);yt(Hf(),ot);yt(Yl(),ot);yt(Wf(),ot)});var dfe={};fm(dfe,{buildRouterConfiguration:()=>lfe,federateSubgraphs:()=>cfe});m();T();N();var kc=ps(HE());m();T();N();m();T();N();function AD(e){if(!e)return e;if(!URL.canParse(e))throw new Error("Invalid URL");let t=e.indexOf("?"),n=e.indexOf("#"),r=e;return t>0?r=r.slice(0,n>0?Math.min(t,n):t):n>0&&(r=r.slice(0,n)),r}m();T();N();m();T();N();var YV={};m();T();N();function JV(e){return e!=null}m();T();N();m();T();N();var ZV=ps(De(),1);m();T();N();var HV;if(typeof AggregateError=="undefined"){class e extends Error{constructor(n,r=""){super(r),this.errors=n,this.name="AggregateError",Error.captureStackTrace(this,e)}}HV=function(t,n){return new e(t,n)}}else HV=AggregateError;function zV(e){return"errors"in e&&Array.isArray(e.errors)}var e1=3;function t1(e){return zE(e,[])}function zE(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return yde(e,t);default:return String(e)}}function WV(e){return e instanceof ZV.GraphQLError?e.toString():`${e.name}: ${e.message}; - ${e.stack}`}function yde(e,t){if(e===null)return"null";if(e instanceof Error)return zV(e)?WV(e)+` -`+XV(e.errors,t):WV(e);if(t.includes(e))return"[Circular]";let n=[...t,e];if(Ide(e)){let r=e.toJSON();if(r!==e)return typeof r=="string"?r:zE(r,n)}else if(Array.isArray(e))return XV(e,n);return gde(e,n)}function Ide(e){return typeof e.toJSON=="function"}function gde(e,t){let n=Object.entries(e);return n.length===0?"{}":t.length>e1?"["+_de(e)+"]":"{ "+n.map(([i,a])=>i+": "+zE(a,t)).join(", ")+" }"}function XV(e,t){if(e.length===0)return"[]";if(t.length>e1)return"[Array]";let n=e.length,r=[];for(let i=0;in==null?n:n[r],e==null?void 0:e.extensions)}m();T();N();var we=ps(De(),1);m();T();N();var Xa=ps(De(),1);function Za(e){if((0,Xa.isNonNullType)(e)){let t=Za(e.ofType);if(t.kind===Xa.Kind.NON_NULL_TYPE)throw new Error(`Invalid type node ${t1(e)}. Inner type of non-null type cannot be a non-null type.`);return{kind:Xa.Kind.NON_NULL_TYPE,type:t}}else if((0,Xa.isListType)(e))return{kind:Xa.Kind.LIST_TYPE,type:Za(e.ofType)};return{kind:Xa.Kind.NAMED_TYPE,name:{kind:Xa.Kind.NAME,value:e.name}}}m();T();N();var es=ps(De(),1);function XE(e){if(e===null)return{kind:es.Kind.NULL};if(e===void 0)return null;if(Array.isArray(e)){let t=[];for(let n of e){let r=XE(n);r!=null&&t.push(r)}return{kind:es.Kind.LIST,values:t}}if(typeof e=="object"){let t=[];for(let n in e){let r=e[n],i=XE(r);i&&t.push({kind:es.Kind.OBJECT_FIELD,name:{kind:es.Kind.NAME,value:n},value:i})}return{kind:es.Kind.OBJECT,fields:t}}if(typeof e=="boolean")return{kind:es.Kind.BOOLEAN,value:e};if(typeof e=="number"&&isFinite(e)){let t=String(e);return vde.test(t)?{kind:es.Kind.INT,value:t}:{kind:es.Kind.FLOAT,value:t}}if(typeof e=="string")return{kind:es.Kind.STRING,value:e};throw new TypeError(`Cannot convert value to AST: ${e}.`)}var vde=/^-?(?:0|[1-9][0-9]*)$/;m();T();N();m();T();N();function ZE(e){let t=new WeakMap;return function(r){let i=t.get(r);if(i===void 0){let a=e(r);return t.set(r,a),a}return i}}var NMe=ZE(function(t){let n=Sde(t);return new Set([...n].map(r=>r.name))}),Sde=ZE(function(t){let n=RD(t);return new Set(n.values())}),RD=ZE(function(t){let n=new Map,r=t.getQueryType();r&&n.set("query",r);let i=t.getMutationType();i&&n.set("mutation",i);let a=t.getSubscriptionType();return a&&n.set("subscription",a),n});function Ode(e,t={}){let n=t.pathToDirectivesInExtensions,r=e.getTypeMap(),i=Dde(e,n),a=i!=null?[i]:[],o=e.getDirectives();for(let c of o)(0,we.isSpecifiedDirective)(c)||a.push(bde(c,e,n));for(let c in r){let l=r[c],d=(0,we.isSpecifiedScalarType)(l),p=(0,we.isIntrospectionType)(l);if(!(d||p))if((0,we.isObjectType)(l))a.push(Ade(l,e,n));else if((0,we.isInterfaceType)(l))a.push(Rde(l,e,n));else if((0,we.isUnionType)(l))a.push(Pde(l,e,n));else if((0,we.isInputObjectType)(l))a.push(Fde(l,e,n));else if((0,we.isEnumType)(l))a.push(wde(l,e,n));else if((0,we.isScalarType)(l))a.push(Lde(l,e,n));else throw new Error(`Unknown type ${l}.`)}return{kind:we.Kind.DOCUMENT,definitions:a}}function n1(e,t={}){let n=Ode(e,t);return(0,we.print)(n)}function Dde(e,t){var n,r;let i=new Map([["query",void 0],["mutation",void 0],["subscription",void 0]]),a=[];if(e.astNode!=null&&a.push(e.astNode),e.extensionASTNodes!=null)for(let p of e.extensionASTNodes)a.push(p);for(let p of a)if(p.operationTypes)for(let y of p.operationTypes)i.set(y.operation,y);let o=RD(e);for(let[p,y]of i){let I=o.get(p);if(I!=null){let v=Za(I);y!=null?y.type=v:i.set(p,{kind:we.Kind.OPERATION_TYPE_DEFINITION,operation:p,type:v})}}let c=[...i.values()].filter(JV),l=td(e,e,t);if(!c.length&&!l.length)return null;let d={kind:c!=null?we.Kind.SCHEMA_DEFINITION:we.Kind.SCHEMA_EXTENSION,operationTypes:c,directives:l};return d.description=((r=(n=e.astNode)===null||n===void 0?void 0:n.description)!==null&&r!==void 0?r:e.description!=null)?{kind:we.Kind.STRING,value:e.description,block:!0}:void 0,d}function bde(e,t,n){var r,i,a,o;return{kind:we.Kind.DIRECTIVE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:we.Kind.STRING,value:e.description}:void 0,name:{kind:we.Kind.NAME,value:e.name},arguments:(a=e.args)===null||a===void 0?void 0:a.map(c=>r1(c,t,n)),repeatable:e.isRepeatable,locations:((o=e.locations)===null||o===void 0?void 0:o.map(c=>({kind:we.Kind.NAME,value:c})))||[]}}function td(e,t,n){let r=WE(e,n),i=[];e.astNode!=null&&i.push(e.astNode),"extensionASTNodes"in e&&e.extensionASTNodes!=null&&(i=i.concat(e.extensionASTNodes));let a;if(r!=null)a=PD(t,r);else{a=[];for(let o of i)o.directives&&a.push(...o.directives)}return a}function th(e,t,n){var r,i;let a=[],o=null,c=WE(e,n),l;return c!=null?l=PD(t,c):l=(r=e.astNode)===null||r===void 0?void 0:r.directives,l!=null&&(a=l.filter(d=>d.name.value!=="deprecated"),e.deprecationReason!=null&&(o=(i=l.filter(d=>d.name.value==="deprecated"))===null||i===void 0?void 0:i[0])),e.deprecationReason!=null&&o==null&&(o=Ude(e.deprecationReason)),o==null?a:[o].concat(a)}function r1(e,t,n){var r,i,a;return{kind:we.Kind.INPUT_VALUE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:we.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:we.Kind.NAME,value:e.name},type:Za(e.type),defaultValue:e.defaultValue!==void 0&&(a=(0,we.astFromValue)(e.defaultValue,e.type))!==null&&a!==void 0?a:void 0,directives:th(e,t,n)}}function Ade(e,t,n){var r,i;return{kind:we.Kind.OBJECT_TYPE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:we.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:we.Kind.NAME,value:e.name},fields:Object.values(e.getFields()).map(a=>i1(a,t,n)),interfaces:Object.values(e.getInterfaces()).map(a=>Za(a)),directives:td(e,t,n)}}function Rde(e,t,n){var r,i;let a={kind:we.Kind.INTERFACE_TYPE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:we.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:we.Kind.NAME,value:e.name},fields:Object.values(e.getFields()).map(o=>i1(o,t,n)),directives:td(e,t,n)};return"getInterfaces"in e&&(a.interfaces=Object.values(e.getInterfaces()).map(o=>Za(o))),a}function Pde(e,t,n){var r,i;return{kind:we.Kind.UNION_TYPE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:we.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:we.Kind.NAME,value:e.name},directives:td(e,t,n),types:e.getTypes().map(a=>Za(a))}}function Fde(e,t,n){var r,i;return{kind:we.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:we.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:we.Kind.NAME,value:e.name},fields:Object.values(e.getFields()).map(a=>Cde(a,t,n)),directives:td(e,t,n)}}function wde(e,t,n){var r,i;return{kind:we.Kind.ENUM_TYPE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:we.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:we.Kind.NAME,value:e.name},values:Object.values(e.getValues()).map(a=>Bde(a,t,n)),directives:td(e,t,n)}}function Lde(e,t,n){var r,i,a;let o=WE(e,n),c=o?PD(t,o):((r=e.astNode)===null||r===void 0?void 0:r.directives)||[],l=e.specifiedByUrl||e.specifiedByURL;if(l&&!c.some(d=>d.name.value==="specifiedBy")){let d={url:l};c.push(eh("specifiedBy",d))}return{kind:we.Kind.SCALAR_TYPE_DEFINITION,description:(a=(i=e.astNode)===null||i===void 0?void 0:i.description)!==null&&a!==void 0?a:e.description?{kind:we.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:we.Kind.NAME,value:e.name},directives:c}}function i1(e,t,n){var r,i;return{kind:we.Kind.FIELD_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:we.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:we.Kind.NAME,value:e.name},arguments:e.args.map(a=>r1(a,t,n)),type:Za(e.type),directives:th(e,t,n)}}function Cde(e,t,n){var r,i,a;return{kind:we.Kind.INPUT_VALUE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:we.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:we.Kind.NAME,value:e.name},type:Za(e.type),directives:th(e,t,n),defaultValue:(a=(0,we.astFromValue)(e.defaultValue,e.type))!==null&&a!==void 0?a:void 0}}function Bde(e,t,n){var r,i;return{kind:we.Kind.ENUM_VALUE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:we.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:we.Kind.NAME,value:e.name},directives:th(e,t,n)}}function Ude(e){return eh("deprecated",{reason:e},we.GraphQLDeprecatedDirective)}function eh(e,t,n){let r=[];if(n!=null)for(let i of n.args){let a=i.name,o=t[a];if(o!==void 0){let c=(0,we.astFromValue)(o,i.type);c&&r.push({kind:we.Kind.ARGUMENT,name:{kind:we.Kind.NAME,value:a},value:c})}}else for(let i in t){let a=t[i],o=XE(a);o&&r.push({kind:we.Kind.ARGUMENT,name:{kind:we.Kind.NAME,value:i},value:o})}return{kind:we.Kind.DIRECTIVE,name:{kind:we.Kind.NAME,value:e},arguments:r}}function PD(e,t){let n=[];for(let r in t){let i=t[r],a=e==null?void 0:e.getDirective(r);if(Array.isArray(i))for(let o of i)n.push(eh(r,o,a));else n.push(eh(r,i,a))}return n}var ld=ps(HE(),1);m();T();N();m();T();N();m();T();N();m();T();N();m();T();N();m();T();N();function ln(e,t){if(!e)throw new Error(t)}var kde=34028234663852886e22,Mde=-34028234663852886e22,xde=4294967295,qde=2147483647,Vde=-2147483648;function nd(e){if(typeof e!="number")throw new Error("invalid int 32: "+typeof e);if(!Number.isInteger(e)||e>qde||exde||e<0)throw new Error("invalid uint 32: "+e)}function nh(e){if(typeof e!="number")throw new Error("invalid float 32: "+typeof e);if(Number.isFinite(e)&&(e>kde||e({no:i.no,name:i.name,localName:e[i.no]})),r)}function wD(e,t,n){let r=Object.create(null),i=Object.create(null),a=[];for(let o of t){let c=u1(o);a.push(c),r[o.name]=c,i[o.no]=c}return{typeName:e,values:a,findName(o){return r[o]},findNumber(o){return i[o]}}}function o1(e,t,n){let r={};for(let i of t){let a=u1(i);r[a.localName]=a.no,r[a.no]=a.localName}return FD(r,e,t,n),r}function u1(e){return"localName"in e?e:Object.assign(Object.assign({},e),{localName:e.name})}m();T();N();m();T();N();var Le=class{equals(t){return this.getType().runtime.util.equals(this.getType(),this,t)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(t,n){let r=this.getType(),i=r.runtime.bin,a=i.makeReadOptions(n);return i.readMessage(this,a.readerFactory(t),t.byteLength,a),this}fromJson(t,n){let r=this.getType(),i=r.runtime.json,a=i.makeReadOptions(n);return i.readMessage(r,t,a,this),this}fromJsonString(t,n){let r;try{r=JSON.parse(t)}catch(i){throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${i instanceof Error?i.message:String(i)}`)}return this.fromJson(r,n)}toBinary(t){let n=this.getType(),r=n.runtime.bin,i=r.makeWriteOptions(t),a=i.writerFactory();return r.writeMessage(this,a,i),a.finish()}toJson(t){let n=this.getType(),r=n.runtime.json,i=r.makeWriteOptions(t);return r.writeMessage(this,i)}toJsonString(t){var n;let r=this.toJson(t);return JSON.stringify(r,null,(n=t==null?void 0:t.prettySpaces)!==null&&n!==void 0?n:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}};function c1(e,t,n,r){var i;let a=(i=r==null?void 0:r.localName)!==null&&i!==void 0?i:t.substring(t.lastIndexOf(".")+1),o={[a]:function(c){e.util.initFields(this),e.util.initPartial(c,this)}}[a];return Object.setPrototypeOf(o.prototype,new Le),Object.assign(o,{runtime:e,typeName:t,fields:e.util.newFieldList(n),fromBinary(c,l){return new o().fromBinary(c,l)},fromJson(c,l){return new o().fromJson(c,l)},fromJsonString(c,l){return new o().fromJsonString(c,l)},equals(c,l){return e.util.equals(o,c,l)}}),o}m();T();N();m();T();N();m();T();N();m();T();N();function d1(){let e=0,t=0;for(let r=0;r<28;r+=7){let i=this.buf[this.pos++];if(e|=(i&127)<>4,!(n&128))return this.assertBounds(),[e,t];for(let r=3;r<=31;r+=7){let i=this.buf[this.pos++];if(t|=(i&127)<>>a,c=!(!(o>>>7)&&t==0),l=(c?o|128:o)&255;if(n.push(l),!c)return}let r=e>>>28&15|(t&7)<<4,i=!!(t>>3);if(n.push((i?r|128:r)&255),!!i){for(let a=3;a<31;a=a+7){let o=t>>>a,c=!!(o>>>7),l=(c?o|128:o)&255;if(n.push(l),!c)return}n.push(t>>>31&1)}}var rh=4294967296;function LD(e){let t=e[0]==="-";t&&(e=e.slice(1));let n=1e6,r=0,i=0;function a(o,c){let l=Number(e.slice(o,c));i*=n,r=r*n+l,r>=rh&&(i=i+(r/rh|0),r=r%rh)}return a(-24,-18),a(-18,-12),a(-12,-6),a(-6),t?p1(r,i):BD(r,i)}function f1(e,t){let n=BD(e,t),r=n.hi&2147483648;r&&(n=p1(n.lo,n.hi));let i=CD(n.lo,n.hi);return r?"-"+i:i}function CD(e,t){if({lo:e,hi:t}=jde(e,t),t<=2097151)return String(rh*t+e);let n=e&16777215,r=(e>>>24|t<<8)&16777215,i=t>>16&65535,a=n+r*6777216+i*6710656,o=r+i*8147497,c=i*2,l=1e7;return a>=l&&(o+=Math.floor(a/l),a%=l),o>=l&&(c+=Math.floor(o/l),o%=l),c.toString()+l1(o)+l1(a)}function jde(e,t){return{lo:e>>>0,hi:t>>>0}}function BD(e,t){return{lo:e|0,hi:t|0}}function p1(e,t){return t=~t,e?e=~e+1:t+=1,BD(e,t)}var l1=e=>{let t=String(e);return"0000000".slice(t.length)+t};function UD(e,t){if(e>=0){for(;e>127;)t.push(e&127|128),e=e>>>7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e=e>>7;t.push(1)}}function m1(){let e=this.buf[this.pos++],t=e&127;if(!(e&128))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<7,!(e&128))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<14,!(e&128))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<21,!(e&128))return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let n=5;e&128&&n<10;n++)e=this.buf[this.pos++];if(e&128)throw new Error("invalid varint");return this.assertBounds(),t>>>0}function Kde(){let e=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof e.getBigInt64=="function"&&typeof e.getBigUint64=="function"&&typeof e.setBigInt64=="function"&&typeof e.setBigUint64=="function"&&(typeof O!="object"||typeof O.env!="object"||O.env.BUF_BIGINT_DISABLE!=="1")){let i=BigInt("-9223372036854775808"),a=BigInt("9223372036854775807"),o=BigInt("0"),c=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(l){let d=typeof l=="bigint"?l:BigInt(l);if(d>a||dc||dln(/^-?[0-9]+$/.test(i),`int64 invalid: ${i}`),r=i=>ln(/^[0-9]+$/.test(i),`uint64 invalid: ${i}`);return{zero:"0",supported:!1,parse(i){return typeof i!="string"&&(i=i.toString()),n(i),i},uParse(i){return typeof i!="string"&&(i=i.toString()),r(i),i},enc(i){return typeof i!="string"&&(i=i.toString()),n(i),LD(i)},uEnc(i){return typeof i!="string"&&(i=i.toString()),r(i),LD(i)},dec(i,a){return f1(i,a)},uDec(i,a){return CD(i,a)}}}var $n=Kde();m();T();N();var Ne;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(Ne||(Ne={}));var ha;(function(e){e[e.BIGINT=0]="BIGINT",e[e.STRING=1]="STRING"})(ha||(ha={}));function Rs(e,t,n){if(t===n)return!0;if(e==Ne.BYTES){if(!(t instanceof Uint8Array)||!(n instanceof Uint8Array)||t.length!==n.length)return!1;for(let r=0;r>>0)}raw(t){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(t),this}uint32(t){for(ip(t);t>127;)this.buf.push(t&127|128),t=t>>>7;return this.buf.push(t),this}int32(t){return nd(t),UD(t,this.buf),this}bool(t){return this.buf.push(t?1:0),this}bytes(t){return this.uint32(t.byteLength),this.raw(t)}string(t){let n=this.textEncoder.encode(t);return this.uint32(n.byteLength),this.raw(n)}float(t){nh(t);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,t,!0),this.raw(n)}double(t){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,t,!0),this.raw(n)}fixed32(t){ip(t);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,t,!0),this.raw(n)}sfixed32(t){nd(t);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,t,!0),this.raw(n)}sint32(t){return nd(t),t=(t<<1^t>>31)>>>0,UD(t,this.buf),this}sfixed64(t){let n=new Uint8Array(8),r=new DataView(n.buffer),i=$n.enc(t);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(n)}fixed64(t){let n=new Uint8Array(8),r=new DataView(n.buffer),i=$n.uEnc(t);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(n)}int64(t){let n=$n.enc(t);return ih(n.lo,n.hi,this.buf),this}sint64(t){let n=$n.enc(t),r=n.hi>>31,i=n.lo<<1^r,a=(n.hi<<1|n.lo>>>31)^r;return ih(i,a,this.buf),this}uint64(t){let n=$n.uEnc(t);return ih(n.lo,n.hi,this.buf),this}},oh=class{constructor(t,n){this.varint64=d1,this.uint32=m1,this.buf=t,this.len=t.length,this.pos=0,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength),this.textDecoder=n!=null?n:new TextDecoder}tag(){let t=this.uint32(),n=t>>>3,r=t&7;if(n<=0||r<0||r>5)throw new Error("illegal tag: field no "+n+" wire type "+r);return[n,r]}skip(t){let n=this.pos;switch(t){case Un.Varint:for(;this.buf[this.pos++]&128;);break;case Un.Bit64:this.pos+=4;case Un.Bit32:this.pos+=4;break;case Un.LengthDelimited:let r=this.uint32();this.pos+=r;break;case Un.StartGroup:let i;for(;(i=this.tag()[1])!==Un.EndGroup;)this.skip(i);break;default:throw new Error("cant skip wire type "+t)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)}int64(){return $n.dec(...this.varint64())}uint64(){return $n.uDec(...this.varint64())}sint64(){let[t,n]=this.varint64(),r=-(t&1);return t=(t>>>1|(n&1)<<31)^r,n=n>>>1^r,$n.dec(t,n)}bool(){let[t,n]=this.varint64();return t!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return $n.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return $n.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let t=this.uint32(),n=this.pos;return this.pos+=t,this.assertBounds(),this.buf.subarray(n,n+t)}string(){return this.textDecoder.decode(this.bytes())}};function N1(e,t,n,r){let i;return{typeName:t,extendee:n,get field(){if(!i){let a=typeof r=="function"?r():r;a.name=t.split(".").pop(),a.jsonName=`[${t}]`,i=e.util.newFieldList([a]).list()[0]}return i},runtime:e}}function uh(e){let t=e.field.localName,n=Object.create(null);return n[t]=Gde(e),[n,()=>n[t]]}function Gde(e){let t=e.field;if(t.repeated)return[];if(t.default!==void 0)return t.default;switch(t.kind){case"enum":return t.T.values[0].no;case"scalar":return ya(t.T,t.L);case"message":let n=t.T,r=new n;return n.fieldWrapper?n.fieldWrapper.unwrapField(r):r;case"map":throw"map fields are not allowed to be extensions"}}function T1(e,t){if(!t.repeated&&(t.kind=="enum"||t.kind=="scalar")){for(let n=e.length-1;n>=0;--n)if(e[n].no==t.no)return[e[n]];return[]}return e.filter(n=>n.no===t.no)}m();T();N();m();T();N();var Ps="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),ch=[];for(let e=0;e>4,o=a,i=2;break;case 2:n[r++]=(o&15)<<4|(a&60)>>2,o=a,i=3;break;case 3:n[r++]=(o&3)<<6|a,i=0;break}}if(i==1)throw Error("invalid base64 string.");return n.subarray(0,r)},enc(e){let t="",n=0,r,i=0;for(let a=0;a>2],i=(r&3)<<4,n=1;break;case 1:t+=Ps[i|r>>4],i=(r&15)<<2,n=2;break;case 2:t+=Ps[i|r>>6],t+=Ps[r&63],n=0;break}return n&&(t+=Ps[i],t+="=",n==1&&(t+="=")),t}};m();T();N();function E1(e,t,n){y1(t,e);let r=t.runtime.bin.makeReadOptions(n),i=T1(e.getType().runtime.bin.listUnknownFields(e),t.field),[a,o]=uh(t);for(let c of i)t.runtime.bin.readField(a,r.readerFactory(c.data),t.field,c.wireType,r);return o()}function h1(e,t,n,r){y1(t,e);let i=t.runtime.bin.makeReadOptions(r),a=t.runtime.bin.makeWriteOptions(r);if(MD(e,t)){let d=e.getType().runtime.bin.listUnknownFields(e).filter(p=>p.no!=t.field.no);e.getType().runtime.bin.discardUnknownFields(e);for(let p of d)e.getType().runtime.bin.onUnknownField(e,p.no,p.wireType,p.data)}let o=a.writerFactory(),c=t.field;!c.opt&&!c.repeated&&(c.kind=="enum"||c.kind=="scalar")&&(c=Object.assign(Object.assign({},t.field),{opt:!0})),t.runtime.bin.writeField(c,n,o,a);let l=i.readerFactory(o.finish());for(;l.posr.no==t.field.no)}function y1(e,t){ln(e.extendee.typeName==t.getType().typeName,`extension ${e.typeName} can only be applied to message ${e.extendee.typeName}`)}m();T();N();function lh(e,t){let n=e.localName;if(e.repeated)return t[n].length>0;if(e.oneof)return t[e.oneof.localName].case===n;switch(e.kind){case"enum":case"scalar":return e.opt||e.req?t[n]!==void 0:e.kind=="enum"?t[n]!==e.T.values[0].no:!ah(e.T,t[n]);case"message":return t[n]!==void 0;case"map":return Object.keys(t[n]).length>0}}function xD(e,t){let n=e.localName,r=!e.opt&&!e.req;if(e.repeated)t[n]=[];else if(e.oneof)t[e.oneof.localName]={case:void 0};else switch(e.kind){case"map":t[n]={};break;case"enum":t[n]=r?e.T.values[0].no:void 0;break;case"scalar":t[n]=r?ya(e.T,e.L):void 0;break;case"message":t[n]=void 0;break}}m();T();N();m();T();N();function Ia(e,t){if(e===null||typeof e!="object"||!Object.getOwnPropertyNames(Le.prototype).every(r=>r in e&&typeof e[r]=="function"))return!1;let n=e.getType();return n===null||typeof n!="function"||!("typeName"in n)||typeof n.typeName!="string"?!1:t===void 0?!0:n.typeName==t.typeName}function dh(e,t){return Ia(t)||!e.fieldWrapper?t:e.fieldWrapper.wrapField(t)}var Jxe={"google.protobuf.DoubleValue":Ne.DOUBLE,"google.protobuf.FloatValue":Ne.FLOAT,"google.protobuf.Int64Value":Ne.INT64,"google.protobuf.UInt64Value":Ne.UINT64,"google.protobuf.Int32Value":Ne.INT32,"google.protobuf.UInt32Value":Ne.UINT32,"google.protobuf.BoolValue":Ne.BOOL,"google.protobuf.StringValue":Ne.STRING,"google.protobuf.BytesValue":Ne.BYTES};var I1={ignoreUnknownFields:!1},g1={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function $de(e){return e?Object.assign(Object.assign({},I1),e):I1}function Qde(e){return e?Object.assign(Object.assign({},g1),e):g1}var mh=Symbol(),fh=Symbol();function S1(){return{makeReadOptions:$de,makeWriteOptions:Qde,readMessage(e,t,n,r){if(t==null||Array.isArray(t)||typeof t!="object")throw new Error(`cannot decode message ${e.typeName} from JSON: ${ts(t)}`);r=r!=null?r:new e;let i=new Map,a=n.typeRegistry;for(let[o,c]of Object.entries(t)){let l=e.fields.findJsonName(o);if(l){if(l.oneof){if(c===null&&l.kind=="scalar")continue;let d=i.get(l.oneof);if(d!==void 0)throw new Error(`cannot decode message ${e.typeName} from JSON: multiple keys for oneof "${l.oneof.name}" present: "${d}", "${o}"`);i.set(l.oneof,o)}_1(r,c,l,n,e)}else{let d=!1;if(a!=null&&a.findExtension&&o.startsWith("[")&&o.endsWith("]")){let p=a.findExtension(o.substring(1,o.length-1));if(p&&p.extendee.typeName==e.typeName){d=!0;let[y,I]=uh(p);_1(y,c,p.field,n,p),h1(r,p,I(),n)}}if(!d&&!n.ignoreUnknownFields)throw new Error(`cannot decode message ${e.typeName} from JSON: key "${o}" is unknown`)}}return r},writeMessage(e,t){let n=e.getType(),r={},i;try{for(i of n.fields.byNumber()){if(!lh(i,e)){if(i.req)throw"required field not set";if(!t.emitDefaultValues||!Jde(i))continue}let o=i.oneof?e[i.oneof.localName].value:e[i.localName],c=v1(i,o,t);c!==void 0&&(r[t.useProtoFieldName?i.name:i.jsonName]=c)}let a=t.typeRegistry;if(a!=null&&a.findExtensionFor)for(let o of n.runtime.bin.listUnknownFields(e)){let c=a.findExtensionFor(n.typeName,o.no);if(c&&MD(e,c)){let l=E1(e,c,t),d=v1(c.field,l,t);d!==void 0&&(r[c.field.jsonName]=d)}}}catch(a){let o=i?`cannot encode field ${n.typeName}.${i.name} to JSON`:`cannot encode message ${n.typeName} to JSON`,c=a instanceof Error?a.message:String(a);throw new Error(o+(c.length>0?`: ${c}`:""))}return r},readScalar(e,t,n){return ap(e,t,n!=null?n:ha.BIGINT,!0)},writeScalar(e,t,n){if(t!==void 0&&(n||ah(e,t)))return ph(e,t)},debug:ts}}function ts(e){if(e===null)return"null";switch(typeof e){case"object":return Array.isArray(e)?"array":"object";case"string":return e.length>100?"string":`"${e.split('"').join('\\"')}"`;default:return String(e)}}function _1(e,t,n,r,i){let a=n.localName;if(n.repeated){if(ln(n.kind!="map"),t===null)return;if(!Array.isArray(t))throw new Error(`cannot decode field ${i.typeName}.${n.name} from JSON: ${ts(t)}`);let o=e[a];for(let c of t){if(c===null)throw new Error(`cannot decode field ${i.typeName}.${n.name} from JSON: ${ts(c)}`);switch(n.kind){case"message":o.push(n.T.fromJson(c,r));break;case"enum":let l=qD(n.T,c,r.ignoreUnknownFields,!0);l!==fh&&o.push(l);break;case"scalar":try{o.push(ap(n.T,c,n.L,!0))}catch(d){let p=`cannot decode field ${i.typeName}.${n.name} from JSON: ${ts(c)}`;throw d instanceof Error&&d.message.length>0&&(p+=`: ${d.message}`),new Error(p)}break}}}else if(n.kind=="map"){if(t===null)return;if(typeof t!="object"||Array.isArray(t))throw new Error(`cannot decode field ${i.typeName}.${n.name} from JSON: ${ts(t)}`);let o=e[a];for(let[c,l]of Object.entries(t)){if(l===null)throw new Error(`cannot decode field ${i.typeName}.${n.name} from JSON: map value null`);let d;try{d=Yde(n.K,c)}catch(p){let y=`cannot decode map key for field ${i.typeName}.${n.name} from JSON: ${ts(t)}`;throw p instanceof Error&&p.message.length>0&&(y+=`: ${p.message}`),new Error(y)}switch(n.V.kind){case"message":o[d]=n.V.T.fromJson(l,r);break;case"enum":let p=qD(n.V.T,l,r.ignoreUnknownFields,!0);p!==fh&&(o[d]=p);break;case"scalar":try{o[d]=ap(n.V.T,l,ha.BIGINT,!0)}catch(y){let I=`cannot decode map value for field ${i.typeName}.${n.name} from JSON: ${ts(t)}`;throw y instanceof Error&&y.message.length>0&&(I+=`: ${y.message}`),new Error(I)}break}}}else switch(n.oneof&&(e=e[n.oneof.localName]={case:a},a="value"),n.kind){case"message":let o=n.T;if(t===null&&o.typeName!="google.protobuf.Value")return;let c=e[a];Ia(c)?c.fromJson(t,r):(e[a]=c=o.fromJson(t,r),o.fieldWrapper&&!n.oneof&&(e[a]=o.fieldWrapper.unwrapField(c)));break;case"enum":let l=qD(n.T,t,r.ignoreUnknownFields,!1);switch(l){case mh:xD(n,e);break;case fh:break;default:e[a]=l;break}break;case"scalar":try{let d=ap(n.T,t,n.L,!1);switch(d){case mh:xD(n,e);break;default:e[a]=d;break}}catch(d){let p=`cannot decode field ${i.typeName}.${n.name} from JSON: ${ts(t)}`;throw d instanceof Error&&d.message.length>0&&(p+=`: ${d.message}`),new Error(p)}break}}function Yde(e,t){if(e===Ne.BOOL)switch(t){case"true":t=!0;break;case"false":t=!1;break}return ap(e,t,ha.BIGINT,!0).toString()}function ap(e,t,n,r){if(t===null)return r?ya(e,n):mh;switch(e){case Ne.DOUBLE:case Ne.FLOAT:if(t==="NaN")return Number.NaN;if(t==="Infinity")return Number.POSITIVE_INFINITY;if(t==="-Infinity")return Number.NEGATIVE_INFINITY;if(t===""||typeof t=="string"&&t.trim().length!==t.length||typeof t!="string"&&typeof t!="number")break;let i=Number(t);if(Number.isNaN(i)||!Number.isFinite(i))break;return e==Ne.FLOAT&&nh(i),i;case Ne.INT32:case Ne.FIXED32:case Ne.SFIXED32:case Ne.SINT32:case Ne.UINT32:let a;if(typeof t=="number"?a=t:typeof t=="string"&&t.length>0&&t.trim().length===t.length&&(a=Number(t)),a===void 0)break;return e==Ne.UINT32||e==Ne.FIXED32?ip(a):nd(a),a;case Ne.INT64:case Ne.SFIXED64:case Ne.SINT64:if(typeof t!="number"&&typeof t!="string")break;let o=$n.parse(t);return n?o.toString():o;case Ne.FIXED64:case Ne.UINT64:if(typeof t!="number"&&typeof t!="string")break;let c=$n.uParse(t);return n?c.toString():c;case Ne.BOOL:if(typeof t!="boolean")break;return t;case Ne.STRING:if(typeof t!="string")break;try{encodeURIComponent(t)}catch(l){throw new Error("invalid UTF8")}return t;case Ne.BYTES:if(t==="")return new Uint8Array(0);if(typeof t!="string")break;return kD.dec(t)}throw new Error}function qD(e,t,n,r){if(t===null)return e.typeName=="google.protobuf.NullValue"?0:r?e.values[0].no:mh;switch(typeof t){case"number":if(Number.isInteger(t))return t;break;case"string":let i=e.findName(t);if(i!==void 0)return i.no;if(n)return fh;break}throw new Error(`cannot decode enum ${e.typeName} from JSON: ${ts(t)}`)}function Jde(e){return e.repeated||e.kind=="map"?!0:!(e.oneof||e.kind=="message"||e.opt||e.req)}function v1(e,t,n){if(e.kind=="map"){ln(typeof t=="object"&&t!=null);let r={},i=Object.entries(t);switch(e.V.kind){case"scalar":for(let[o,c]of i)r[o.toString()]=ph(e.V.T,c);break;case"message":for(let[o,c]of i)r[o.toString()]=c.toJson(n);break;case"enum":let a=e.V.T;for(let[o,c]of i)r[o.toString()]=VD(a,c,n.enumAsInteger);break}return n.emitDefaultValues||i.length>0?r:void 0}if(e.repeated){ln(Array.isArray(t));let r=[];switch(e.kind){case"scalar":for(let i=0;i0?r:void 0}switch(e.kind){case"scalar":return ph(e.T,t);case"enum":return VD(e.T,t,n.enumAsInteger);case"message":return dh(e.T,t).toJson(n)}}function VD(e,t,n){var r;if(ln(typeof t=="number"),e.typeName=="google.protobuf.NullValue")return null;if(n)return t;let i=e.findNumber(t);return(r=i==null?void 0:i.name)!==null&&r!==void 0?r:t}function ph(e,t){switch(e){case Ne.INT32:case Ne.SFIXED32:case Ne.SINT32:case Ne.FIXED32:case Ne.UINT32:return ln(typeof t=="number"),t;case Ne.FLOAT:case Ne.DOUBLE:return ln(typeof t=="number"),Number.isNaN(t)?"NaN":t===Number.POSITIVE_INFINITY?"Infinity":t===Number.NEGATIVE_INFINITY?"-Infinity":t;case Ne.STRING:return ln(typeof t=="string"),t;case Ne.BOOL:return ln(typeof t=="boolean"),t;case Ne.UINT64:case Ne.FIXED64:case Ne.INT64:case Ne.SFIXED64:case Ne.SINT64:return ln(typeof t=="bigint"||typeof t=="string"||typeof t=="number"),t.toString();case Ne.BYTES:return ln(t instanceof Uint8Array),kD.enc(t)}}m();T();N();var rd=Symbol("@bufbuild/protobuf/unknown-fields"),O1={readUnknownFields:!0,readerFactory:e=>new oh(e)},D1={writeUnknownFields:!0,writerFactory:()=>new sh};function Hde(e){return e?Object.assign(Object.assign({},O1),e):O1}function zde(e){return e?Object.assign(Object.assign({},D1),e):D1}function P1(){return{makeReadOptions:Hde,makeWriteOptions:zde,listUnknownFields(e){var t;return(t=e[rd])!==null&&t!==void 0?t:[]},discardUnknownFields(e){delete e[rd]},writeUnknownFields(e,t){let r=e[rd];if(r)for(let i of r)t.tag(i.no,i.wireType).raw(i.data)},onUnknownField(e,t,n,r){let i=e;Array.isArray(i[rd])||(i[rd]=[]),i[rd].push({no:t,wireType:n,data:r})},readMessage(e,t,n,r,i){let a=e.getType(),o=i?t.len:t.pos+n,c,l;for(;t.pos0&&(l=Xde),a){let I=e[o];if(r==Un.LengthDelimited&&c!=Ne.STRING&&c!=Ne.BYTES){let F=t.uint32()+t.pos;for(;t.posIa(I,y)?I:new y(I));else{let I=o[i];y.fieldWrapper?y.typeName==="google.protobuf.BytesValue"?a[i]=op(I):a[i]=I:a[i]=Ia(I,y)?I:new y(I)}break}}},equals(e,t,n){return t===n?!0:!t||!n?!1:e.fields.byMember().every(r=>{let i=t[r.localName],a=n[r.localName];if(r.repeated){if(i.length!==a.length)return!1;switch(r.kind){case"message":return i.every((o,c)=>r.T.equals(o,a[c]));case"scalar":return i.every((o,c)=>Rs(r.T,o,a[c]));case"enum":return i.every((o,c)=>Rs(Ne.INT32,o,a[c]))}throw new Error(`repeated cannot contain ${r.kind}`)}switch(r.kind){case"message":return r.T.equals(i,a);case"enum":return Rs(Ne.INT32,i,a);case"scalar":return Rs(r.T,i,a);case"oneof":if(i.case!==a.case)return!1;let o=r.findField(i.case);if(o===void 0)return!0;switch(o.kind){case"message":return o.T.equals(i.value,a.value);case"enum":return Rs(Ne.INT32,i.value,a.value);case"scalar":return Rs(o.T,i.value,a.value)}throw new Error(`oneof cannot contain ${o.kind}`);case"map":let c=Object.keys(i).concat(Object.keys(a));switch(r.V.kind){case"message":let l=r.V.T;return c.every(p=>l.equals(i[p],a[p]));case"enum":return c.every(p=>Rs(Ne.INT32,i[p],a[p]));case"scalar":let d=r.V.T;return c.every(p=>Rs(d,i[p],a[p]))}break}})},clone(e){let t=e.getType(),n=new t,r=n;for(let i of t.fields.byMember()){let a=e[i.localName],o;if(i.repeated)o=a.map(Eh);else if(i.kind=="map"){o=r[i.localName];for(let[c,l]of Object.entries(a))o[c]=Eh(l)}else i.kind=="oneof"?o=i.findField(a.case)?{case:a.case,value:Eh(a.value)}:{case:void 0}:o=Eh(a);r[i.localName]=o}for(let i of t.runtime.bin.listUnknownFields(e))t.runtime.bin.onUnknownField(r,i.no,i.wireType,i.data);return n}}}function Eh(e){if(e===void 0)return e;if(Ia(e))return e.clone();if(e instanceof Uint8Array){let t=new Uint8Array(e.byteLength);return t.set(e),t}return e}function op(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function L1(e,t,n){return{syntax:e,json:S1(),bin:P1(),util:Object.assign(Object.assign({},w1()),{newFieldList:t,initFields:n}),makeMessageType(r,i,a){return c1(this,r,i,a)},makeEnum:o1,makeEnumType:wD,getEnumType:s1,makeExtension(r,i,a){return N1(this,r,i,a)}}}m();T();N();var hh=class{constructor(t,n){this._fields=t,this._normalizer=n}findJsonName(t){if(!this.jsonNames){let n={};for(let r of this.list())n[r.jsonName]=n[r.name]=r;this.jsonNames=n}return this.jsonNames[t]}find(t){if(!this.numbers){let n={};for(let r of this.list())n[r.no]=r;this.numbers=n}return this.numbers[t]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((t,n)=>t.no-n.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let t=this.members,n;for(let r of this.list())r.oneof?r.oneof!==n&&(n=r.oneof,t.push(n)):t.push(r)}return this.members}};m();T();N();m();T();N();m();T();N();function jD(e,t){let n=U1(e);return t?n:ife(rfe(n))}function C1(e){return jD(e,!1)}var B1=U1;function U1(e){let t=!1,n=[];for(let r=0;r`${e}$`,rfe=e=>nfe.has(e)?k1(e):e,ife=e=>tfe.has(e)?k1(e):e;var yh=class{constructor(t){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.req=!1,this.default=void 0,this.fields=[],this.name=t,this.localName=C1(t)}addField(t){ln(t.oneof===this,`field ${t.name} not one of ${this.name}`),this.fields.push(t)}findField(t){if(!this._lookup){this._lookup=Object.create(null);for(let n=0;nnew hh(e,t=>M1(t,!0)),e=>{for(let t of e.getType().fields.byMember()){if(t.opt)continue;let n=t.localName,r=e;if(t.repeated){r[n]=[];continue}switch(t.kind){case"oneof":r[n]={case:void 0};break;case"enum":r[n]=0;break;case"map":r[n]={};break;case"scalar":r[n]=ya(t.T,t.L);break;case"message":break}}});var id;(function(e){e[e.OK=0]="OK",e[e.ERR=1]="ERR",e[e.ERR_NOT_FOUND=2]="ERR_NOT_FOUND",e[e.ERR_ALREADY_EXISTS=3]="ERR_ALREADY_EXISTS",e[e.ERR_INVALID_SUBGRAPH_SCHEMA=4]="ERR_INVALID_SUBGRAPH_SCHEMA",e[e.ERR_SUBGRAPH_COMPOSITION_FAILED=5]="ERR_SUBGRAPH_COMPOSITION_FAILED",e[e.ERR_SUBGRAPH_CHECK_FAILED=6]="ERR_SUBGRAPH_CHECK_FAILED",e[e.ERR_INVALID_LABELS=7]="ERR_INVALID_LABELS",e[e.ERR_ANALYTICS_DISABLED=8]="ERR_ANALYTICS_DISABLED",e[e.ERROR_NOT_AUTHENTICATED=9]="ERROR_NOT_AUTHENTICATED",e[e.ERR_OPENAI_DISABLED=10]="ERR_OPENAI_DISABLED",e[e.ERR_FREE_TRIAL_EXPIRED=11]="ERR_FREE_TRIAL_EXPIRED",e[e.ERROR_NOT_AUTHORIZED=12]="ERROR_NOT_AUTHORIZED",e[e.ERR_LIMIT_REACHED=13]="ERR_LIMIT_REACHED",e[e.ERR_DEPLOYMENT_FAILED=14]="ERR_DEPLOYMENT_FAILED",e[e.ERR_INVALID_NAME=15]="ERR_INVALID_NAME",e[e.ERR_UPGRADE_PLAN=16]="ERR_UPGRADE_PLAN",e[e.ERR_BAD_REQUEST=17]="ERR_BAD_REQUEST",e[e.ERR_SCHEMA_MISMATCH_WITH_APPROVED_PROPOSAL=18]="ERR_SCHEMA_MISMATCH_WITH_APPROVED_PROPOSAL"})(id||(id={}));B.util.setEnumType(id,"wg.cosmo.common.EnumStatusCode",[{no:0,name:"OK"},{no:1,name:"ERR"},{no:2,name:"ERR_NOT_FOUND"},{no:3,name:"ERR_ALREADY_EXISTS"},{no:4,name:"ERR_INVALID_SUBGRAPH_SCHEMA"},{no:5,name:"ERR_SUBGRAPH_COMPOSITION_FAILED"},{no:6,name:"ERR_SUBGRAPH_CHECK_FAILED"},{no:7,name:"ERR_INVALID_LABELS"},{no:8,name:"ERR_ANALYTICS_DISABLED"},{no:9,name:"ERROR_NOT_AUTHENTICATED"},{no:10,name:"ERR_OPENAI_DISABLED"},{no:11,name:"ERR_FREE_TRIAL_EXPIRED"},{no:12,name:"ERROR_NOT_AUTHORIZED"},{no:13,name:"ERR_LIMIT_REACHED"},{no:14,name:"ERR_DEPLOYMENT_FAILED"},{no:15,name:"ERR_INVALID_NAME"},{no:16,name:"ERR_UPGRADE_PLAN"},{no:17,name:"ERR_BAD_REQUEST"},{no:18,name:"ERR_SCHEMA_MISMATCH_WITH_APPROVED_PROPOSAL"}]);var Fs;(function(e){e[e.GRAPHQL_SUBSCRIPTION_PROTOCOL_WS=0]="GRAPHQL_SUBSCRIPTION_PROTOCOL_WS",e[e.GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE=1]="GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE",e[e.GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE_POST=2]="GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE_POST"})(Fs||(Fs={}));B.util.setEnumType(Fs,"wg.cosmo.common.GraphQLSubscriptionProtocol",[{no:0,name:"GRAPHQL_SUBSCRIPTION_PROTOCOL_WS"},{no:1,name:"GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE"},{no:2,name:"GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE_POST"}]);var ws;(function(e){e[e.GRAPHQL_WEBSOCKET_SUBPROTOCOL_AUTO=0]="GRAPHQL_WEBSOCKET_SUBPROTOCOL_AUTO",e[e.GRAPHQL_WEBSOCKET_SUBPROTOCOL_WS=1]="GRAPHQL_WEBSOCKET_SUBPROTOCOL_WS",e[e.GRAPHQL_WEBSOCKET_SUBPROTOCOL_TRANSPORT_WS=2]="GRAPHQL_WEBSOCKET_SUBPROTOCOL_TRANSPORT_WS"})(ws||(ws={}));B.util.setEnumType(ws,"wg.cosmo.common.GraphQLWebsocketSubprotocol",[{no:0,name:"GRAPHQL_WEBSOCKET_SUBPROTOCOL_AUTO"},{no:1,name:"GRAPHQL_WEBSOCKET_SUBPROTOCOL_WS"},{no:2,name:"GRAPHQL_WEBSOCKET_SUBPROTOCOL_TRANSPORT_WS"}]);var J1=ps(De(),1);m();T();N();var KD;(function(e){e[e.RENDER_ARGUMENT_DEFAULT=0]="RENDER_ARGUMENT_DEFAULT",e[e.RENDER_ARGUMENT_AS_GRAPHQL_VALUE=1]="RENDER_ARGUMENT_AS_GRAPHQL_VALUE",e[e.RENDER_ARGUMENT_AS_ARRAY_CSV=2]="RENDER_ARGUMENT_AS_ARRAY_CSV"})(KD||(KD={}));B.util.setEnumType(KD,"wg.cosmo.node.v1.ArgumentRenderConfiguration",[{no:0,name:"RENDER_ARGUMENT_DEFAULT"},{no:1,name:"RENDER_ARGUMENT_AS_GRAPHQL_VALUE"},{no:2,name:"RENDER_ARGUMENT_AS_ARRAY_CSV"}]);var wc;(function(e){e[e.OBJECT_FIELD=0]="OBJECT_FIELD",e[e.FIELD_ARGUMENT=1]="FIELD_ARGUMENT"})(wc||(wc={}));B.util.setEnumType(wc,"wg.cosmo.node.v1.ArgumentSource",[{no:0,name:"OBJECT_FIELD"},{no:1,name:"FIELD_ARGUMENT"}]);var vu;(function(e){e[e.STATIC=0]="STATIC",e[e.GRAPHQL=1]="GRAPHQL",e[e.PUBSUB=2]="PUBSUB"})(vu||(vu={}));B.util.setEnumType(vu,"wg.cosmo.node.v1.DataSourceKind",[{no:0,name:"STATIC"},{no:1,name:"GRAPHQL"},{no:2,name:"PUBSUB"}]);var up;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.QUERY=1]="QUERY",e[e.MUTATION=2]="MUTATION",e[e.SUBSCRIPTION=3]="SUBSCRIPTION"})(up||(up={}));B.util.setEnumType(up,"wg.cosmo.node.v1.OperationType",[{no:0,name:"OPERATION_TYPE_UNSPECIFIED"},{no:1,name:"OPERATION_TYPE_QUERY"},{no:2,name:"OPERATION_TYPE_MUTATION"},{no:3,name:"OPERATION_TYPE_SUBSCRIPTION"}]);var qo;(function(e){e[e.PUBLISH=0]="PUBLISH",e[e.REQUEST=1]="REQUEST",e[e.SUBSCRIBE=2]="SUBSCRIBE"})(qo||(qo={}));B.util.setEnumType(qo,"wg.cosmo.node.v1.EventType",[{no:0,name:"PUBLISH"},{no:1,name:"REQUEST"},{no:2,name:"SUBSCRIBE"}]);var Su;(function(e){e[e.STATIC_CONFIGURATION_VARIABLE=0]="STATIC_CONFIGURATION_VARIABLE",e[e.ENV_CONFIGURATION_VARIABLE=1]="ENV_CONFIGURATION_VARIABLE",e[e.PLACEHOLDER_CONFIGURATION_VARIABLE=2]="PLACEHOLDER_CONFIGURATION_VARIABLE"})(Su||(Su={}));B.util.setEnumType(Su,"wg.cosmo.node.v1.ConfigurationVariableKind",[{no:0,name:"STATIC_CONFIGURATION_VARIABLE"},{no:1,name:"ENV_CONFIGURATION_VARIABLE"},{no:2,name:"PLACEHOLDER_CONFIGURATION_VARIABLE"}]);var Lc;(function(e){e[e.GET=0]="GET",e[e.POST=1]="POST",e[e.PUT=2]="PUT",e[e.DELETE=3]="DELETE",e[e.OPTIONS=4]="OPTIONS"})(Lc||(Lc={}));B.util.setEnumType(Lc,"wg.cosmo.node.v1.HTTPMethod",[{no:0,name:"GET"},{no:1,name:"POST"},{no:2,name:"PUT"},{no:3,name:"DELETE"},{no:4,name:"OPTIONS"}]);var Ls=class Ls extends Le{constructor(n){super();_(this,"id","");_(this,"name","");_(this,"routingUrl","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Ls().fromBinary(n,r)}static fromJson(n,r){return new Ls().fromJson(n,r)}static fromJsonString(n,r){return new Ls().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ls,n,r)}};_(Ls,"runtime",B),_(Ls,"typeName","wg.cosmo.node.v1.Subgraph"),_(Ls,"fields",B.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"routing_url",kind:"scalar",T:9}]));var Ih=Ls,Cs=class Cs extends Le{constructor(n){super();_(this,"configByFeatureFlagName",{});B.util.initPartial(n,this)}static fromBinary(n,r){return new Cs().fromBinary(n,r)}static fromJson(n,r){return new Cs().fromJson(n,r)}static fromJsonString(n,r){return new Cs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Cs,n,r)}};_(Cs,"runtime",B),_(Cs,"typeName","wg.cosmo.node.v1.FeatureFlagRouterExecutionConfigs"),_(Cs,"fields",B.util.newFieldList(()=>[{no:1,name:"config_by_feature_flag_name",kind:"map",K:9,V:{kind:"message",T:$D}}]));var GD=Cs,Bs=class Bs extends Le{constructor(n){super();_(this,"engineConfig");_(this,"version","");_(this,"subgraphs",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Bs().fromBinary(n,r)}static fromJson(n,r){return new Bs().fromJson(n,r)}static fromJsonString(n,r){return new Bs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Bs,n,r)}};_(Bs,"runtime",B),_(Bs,"typeName","wg.cosmo.node.v1.FeatureFlagRouterExecutionConfig"),_(Bs,"fields",B.util.newFieldList(()=>[{no:1,name:"engine_config",kind:"message",T:ad},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"subgraphs",kind:"message",T:Ih,repeated:!0}]));var $D=Bs,Us=class Us extends Le{constructor(n){super();_(this,"engineConfig");_(this,"version","");_(this,"subgraphs",[]);_(this,"featureFlagConfigs");_(this,"compatibilityVersion","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Us().fromBinary(n,r)}static fromJson(n,r){return new Us().fromJson(n,r)}static fromJsonString(n,r){return new Us().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Us,n,r)}};_(Us,"runtime",B),_(Us,"typeName","wg.cosmo.node.v1.RouterConfig"),_(Us,"fields",B.util.newFieldList(()=>[{no:1,name:"engine_config",kind:"message",T:ad},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"subgraphs",kind:"message",T:Ih,repeated:!0},{no:4,name:"feature_flag_configs",kind:"message",T:GD,opt:!0},{no:5,name:"compatibility_version",kind:"scalar",T:9}]));var cp=Us,ks=class ks extends Le{constructor(n){super();_(this,"code",id.OK);_(this,"details");B.util.initPartial(n,this)}static fromBinary(n,r){return new ks().fromBinary(n,r)}static fromJson(n,r){return new ks().fromJson(n,r)}static fromJsonString(n,r){return new ks().fromJsonString(n,r)}static equals(n,r){return B.util.equals(ks,n,r)}};_(ks,"runtime",B),_(ks,"typeName","wg.cosmo.node.v1.Response"),_(ks,"fields",B.util.newFieldList(()=>[{no:1,name:"code",kind:"enum",T:B.getEnumType(id)},{no:2,name:"details",kind:"scalar",T:9,opt:!0}]));var QD=ks,Ms=class Ms extends Le{constructor(n){super();_(this,"code",0);_(this,"message","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Ms().fromBinary(n,r)}static fromJson(n,r){return new Ms().fromJson(n,r)}static fromJsonString(n,r){return new Ms().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ms,n,r)}};_(Ms,"runtime",B),_(Ms,"typeName","wg.cosmo.node.v1.ResponseStatus"),_(Ms,"fields",B.util.newFieldList(()=>[{no:1,name:"code",kind:"scalar",T:5},{no:2,name:"message",kind:"scalar",T:9}]));var x1=Ms,xs=class xs extends Le{constructor(n){super();_(this,"accountLimits");_(this,"graphPublicKey","");B.util.initPartial(n,this)}static fromBinary(n,r){return new xs().fromBinary(n,r)}static fromJson(n,r){return new xs().fromJson(n,r)}static fromJsonString(n,r){return new xs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(xs,n,r)}};_(xs,"runtime",B),_(xs,"typeName","wg.cosmo.node.v1.RegistrationInfo"),_(xs,"fields",B.util.newFieldList(()=>[{no:1,name:"account_limits",kind:"message",T:JD},{no:2,name:"graph_public_key",kind:"scalar",T:9}]));var YD=xs,qs=class qs extends Le{constructor(n){super();_(this,"traceSamplingRate",0);B.util.initPartial(n,this)}static fromBinary(n,r){return new qs().fromBinary(n,r)}static fromJson(n,r){return new qs().fromJson(n,r)}static fromJsonString(n,r){return new qs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(qs,n,r)}};_(qs,"runtime",B),_(qs,"typeName","wg.cosmo.node.v1.AccountLimits"),_(qs,"fields",B.util.newFieldList(()=>[{no:1,name:"trace_sampling_rate",kind:"scalar",T:2}]));var JD=qs,Vs=class Vs extends Le{constructor(t){super(),B.util.initPartial(t,this)}static fromBinary(t,n){return new Vs().fromBinary(t,n)}static fromJson(t,n){return new Vs().fromJson(t,n)}static fromJsonString(t,n){return new Vs().fromJsonString(t,n)}static equals(t,n){return B.util.equals(Vs,t,n)}};_(Vs,"runtime",B),_(Vs,"typeName","wg.cosmo.node.v1.SelfRegisterRequest"),_(Vs,"fields",B.util.newFieldList(()=>[]));var q1=Vs,js=class js extends Le{constructor(n){super();_(this,"response");_(this,"registrationInfo");B.util.initPartial(n,this)}static fromBinary(n,r){return new js().fromBinary(n,r)}static fromJson(n,r){return new js().fromJson(n,r)}static fromJsonString(n,r){return new js().fromJsonString(n,r)}static equals(n,r){return B.util.equals(js,n,r)}};_(js,"runtime",B),_(js,"typeName","wg.cosmo.node.v1.SelfRegisterResponse"),_(js,"fields",B.util.newFieldList(()=>[{no:1,name:"response",kind:"message",T:QD},{no:2,name:"registrationInfo",kind:"message",T:YD,opt:!0}]));var V1=js,Ks=class Ks extends Le{constructor(n){super();_(this,"defaultFlushInterval",$n.zero);_(this,"datasourceConfigurations",[]);_(this,"fieldConfigurations",[]);_(this,"graphqlSchema","");_(this,"typeConfigurations",[]);_(this,"stringStorage",{});_(this,"graphqlClientSchema");B.util.initPartial(n,this)}static fromBinary(n,r){return new Ks().fromBinary(n,r)}static fromJson(n,r){return new Ks().fromJson(n,r)}static fromJsonString(n,r){return new Ks().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ks,n,r)}};_(Ks,"runtime",B),_(Ks,"typeName","wg.cosmo.node.v1.EngineConfiguration"),_(Ks,"fields",B.util.newFieldList(()=>[{no:1,name:"defaultFlushInterval",kind:"scalar",T:3},{no:2,name:"datasource_configurations",kind:"message",T:lp,repeated:!0},{no:3,name:"field_configurations",kind:"message",T:pp,repeated:!0},{no:4,name:"graphqlSchema",kind:"scalar",T:9},{no:5,name:"type_configurations",kind:"message",T:HD,repeated:!0},{no:6,name:"string_storage",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:7,name:"graphql_client_schema",kind:"scalar",T:9,opt:!0}]));var ad=Ks,Gs=class Gs extends Le{constructor(n){super();_(this,"kind",vu.STATIC);_(this,"rootNodes",[]);_(this,"childNodes",[]);_(this,"overrideFieldPathFromAlias",!1);_(this,"customGraphql");_(this,"customStatic");_(this,"directives",[]);_(this,"requestTimeoutSeconds",$n.zero);_(this,"id","");_(this,"keys",[]);_(this,"provides",[]);_(this,"requires",[]);_(this,"customEvents");_(this,"entityInterfaces",[]);_(this,"interfaceObjects",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Gs().fromBinary(n,r)}static fromJson(n,r){return new Gs().fromJson(n,r)}static fromJsonString(n,r){return new Gs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Gs,n,r)}};_(Gs,"runtime",B),_(Gs,"typeName","wg.cosmo.node.v1.DataSourceConfiguration"),_(Gs,"fields",B.util.newFieldList(()=>[{no:1,name:"kind",kind:"enum",T:B.getEnumType(vu)},{no:2,name:"root_nodes",kind:"message",T:sd,repeated:!0},{no:3,name:"child_nodes",kind:"message",T:sd,repeated:!0},{no:4,name:"override_field_path_from_alias",kind:"scalar",T:8},{no:5,name:"custom_graphql",kind:"message",T:Tp},{no:6,name:"custom_static",kind:"message",T:sb},{no:7,name:"directives",kind:"message",T:ob,repeated:!0},{no:8,name:"request_timeout_seconds",kind:"scalar",T:3},{no:9,name:"id",kind:"scalar",T:9},{no:10,name:"keys",kind:"message",T:Fc,repeated:!0},{no:11,name:"provides",kind:"message",T:Fc,repeated:!0},{no:12,name:"requires",kind:"message",T:Fc,repeated:!0},{no:13,name:"custom_events",kind:"message",T:Bc},{no:14,name:"entity_interfaces",kind:"message",T:od,repeated:!0},{no:15,name:"interface_objects",kind:"message",T:od,repeated:!0}]));var lp=Gs,$s=class $s extends Le{constructor(n){super();_(this,"name","");_(this,"sourceType",wc.OBJECT_FIELD);B.util.initPartial(n,this)}static fromBinary(n,r){return new $s().fromBinary(n,r)}static fromJson(n,r){return new $s().fromJson(n,r)}static fromJsonString(n,r){return new $s().fromJsonString(n,r)}static equals(n,r){return B.util.equals($s,n,r)}};_($s,"runtime",B),_($s,"typeName","wg.cosmo.node.v1.ArgumentConfiguration"),_($s,"fields",B.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"source_type",kind:"enum",T:B.getEnumType(wc)}]));var dp=$s,Qs=class Qs extends Le{constructor(n){super();_(this,"requiredAndScopes",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Qs().fromBinary(n,r)}static fromJson(n,r){return new Qs().fromJson(n,r)}static fromJsonString(n,r){return new Qs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Qs,n,r)}};_(Qs,"runtime",B),_(Qs,"typeName","wg.cosmo.node.v1.Scopes"),_(Qs,"fields",B.util.newFieldList(()=>[{no:1,name:"required_and_scopes",kind:"scalar",T:9,repeated:!0}]));var Cc=Qs,Ys=class Ys extends Le{constructor(n){super();_(this,"requiresAuthentication",!1);_(this,"requiredOrScopes",[]);_(this,"requiredOrScopesByOr",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Ys().fromBinary(n,r)}static fromJson(n,r){return new Ys().fromJson(n,r)}static fromJsonString(n,r){return new Ys().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ys,n,r)}};_(Ys,"runtime",B),_(Ys,"typeName","wg.cosmo.node.v1.AuthorizationConfiguration"),_(Ys,"fields",B.util.newFieldList(()=>[{no:1,name:"requires_authentication",kind:"scalar",T:8},{no:2,name:"required_or_scopes",kind:"message",T:Cc,repeated:!0},{no:3,name:"required_or_scopes_by_or",kind:"message",T:Cc,repeated:!0}]));var fp=Ys,Js=class Js extends Le{constructor(n){super();_(this,"typeName","");_(this,"fieldName","");_(this,"argumentsConfiguration",[]);_(this,"authorizationConfiguration");_(this,"subscriptionFilterCondition");B.util.initPartial(n,this)}static fromBinary(n,r){return new Js().fromBinary(n,r)}static fromJson(n,r){return new Js().fromJson(n,r)}static fromJsonString(n,r){return new Js().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Js,n,r)}};_(Js,"runtime",B),_(Js,"typeName","wg.cosmo.node.v1.FieldConfiguration"),_(Js,"fields",B.util.newFieldList(()=>[{no:1,name:"type_name",kind:"scalar",T:9},{no:2,name:"field_name",kind:"scalar",T:9},{no:3,name:"arguments_configuration",kind:"message",T:dp,repeated:!0},{no:4,name:"authorization_configuration",kind:"message",T:fp},{no:5,name:"subscription_filter_condition",kind:"message",T:Ou,opt:!0}]));var pp=Js,Hs=class Hs extends Le{constructor(n){super();_(this,"typeName","");_(this,"renameTo","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Hs().fromBinary(n,r)}static fromJson(n,r){return new Hs().fromJson(n,r)}static fromJsonString(n,r){return new Hs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Hs,n,r)}};_(Hs,"runtime",B),_(Hs,"typeName","wg.cosmo.node.v1.TypeConfiguration"),_(Hs,"fields",B.util.newFieldList(()=>[{no:1,name:"type_name",kind:"scalar",T:9},{no:2,name:"rename_to",kind:"scalar",T:9}]));var HD=Hs,zs=class zs extends Le{constructor(n){super();_(this,"typeName","");_(this,"fieldNames",[]);_(this,"externalFieldNames",[]);_(this,"requireFetchReasonsFieldNames",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new zs().fromBinary(n,r)}static fromJson(n,r){return new zs().fromJson(n,r)}static fromJsonString(n,r){return new zs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(zs,n,r)}};_(zs,"runtime",B),_(zs,"typeName","wg.cosmo.node.v1.TypeField"),_(zs,"fields",B.util.newFieldList(()=>[{no:1,name:"type_name",kind:"scalar",T:9},{no:2,name:"field_names",kind:"scalar",T:9,repeated:!0},{no:3,name:"external_field_names",kind:"scalar",T:9,repeated:!0},{no:4,name:"require_fetch_reasons_field_names",kind:"scalar",T:9,repeated:!0}]));var sd=zs,Ws=class Ws extends Le{constructor(n){super();_(this,"fieldName","");_(this,"typeName","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Ws().fromBinary(n,r)}static fromJson(n,r){return new Ws().fromJson(n,r)}static fromJsonString(n,r){return new Ws().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ws,n,r)}};_(Ws,"runtime",B),_(Ws,"typeName","wg.cosmo.node.v1.FieldCoordinates"),_(Ws,"fields",B.util.newFieldList(()=>[{no:1,name:"field_name",kind:"scalar",T:9},{no:2,name:"type_name",kind:"scalar",T:9}]));var mp=Ws,Xs=class Xs extends Le{constructor(n){super();_(this,"fieldCoordinatesPath",[]);_(this,"fieldPath",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Xs().fromBinary(n,r)}static fromJson(n,r){return new Xs().fromJson(n,r)}static fromJsonString(n,r){return new Xs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Xs,n,r)}};_(Xs,"runtime",B),_(Xs,"typeName","wg.cosmo.node.v1.FieldSetCondition"),_(Xs,"fields",B.util.newFieldList(()=>[{no:1,name:"field_coordinates_path",kind:"message",T:mp,repeated:!0},{no:2,name:"field_path",kind:"scalar",T:9,repeated:!0}]));var Np=Xs,Zs=class Zs extends Le{constructor(n){super();_(this,"typeName","");_(this,"fieldName","");_(this,"selectionSet","");_(this,"disableEntityResolver",!1);_(this,"conditions",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Zs().fromBinary(n,r)}static fromJson(n,r){return new Zs().fromJson(n,r)}static fromJsonString(n,r){return new Zs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Zs,n,r)}};_(Zs,"runtime",B),_(Zs,"typeName","wg.cosmo.node.v1.RequiredField"),_(Zs,"fields",B.util.newFieldList(()=>[{no:1,name:"type_name",kind:"scalar",T:9},{no:2,name:"field_name",kind:"scalar",T:9},{no:3,name:"selection_set",kind:"scalar",T:9},{no:4,name:"disable_entity_resolver",kind:"scalar",T:8},{no:5,name:"conditions",kind:"message",T:Np,repeated:!0}]));var Fc=Zs,eo=class eo extends Le{constructor(n){super();_(this,"interfaceTypeName","");_(this,"concreteTypeNames",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new eo().fromBinary(n,r)}static fromJson(n,r){return new eo().fromJson(n,r)}static fromJsonString(n,r){return new eo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(eo,n,r)}};_(eo,"runtime",B),_(eo,"typeName","wg.cosmo.node.v1.EntityInterfaceConfiguration"),_(eo,"fields",B.util.newFieldList(()=>[{no:1,name:"interface_type_name",kind:"scalar",T:9},{no:2,name:"concrete_type_names",kind:"scalar",T:9,repeated:!0}]));var od=eo,to=class to extends Le{constructor(n){super();_(this,"url");_(this,"method",Lc.GET);_(this,"header",{});_(this,"body");_(this,"query",[]);_(this,"urlEncodeBody",!1);_(this,"mtls");_(this,"baseUrl");_(this,"path");_(this,"httpProxyUrl");B.util.initPartial(n,this)}static fromBinary(n,r){return new to().fromBinary(n,r)}static fromJson(n,r){return new to().fromJson(n,r)}static fromJsonString(n,r){return new to().fromJsonString(n,r)}static equals(n,r){return B.util.equals(to,n,r)}};_(to,"runtime",B),_(to,"typeName","wg.cosmo.node.v1.FetchConfiguration"),_(to,"fields",B.util.newFieldList(()=>[{no:1,name:"url",kind:"message",T:qr},{no:2,name:"method",kind:"enum",T:B.getEnumType(Lc)},{no:3,name:"header",kind:"map",K:9,V:{kind:"message",T:cb}},{no:4,name:"body",kind:"message",T:qr},{no:5,name:"query",kind:"message",T:ub,repeated:!0},{no:7,name:"url_encode_body",kind:"scalar",T:8},{no:8,name:"mtls",kind:"message",T:lb},{no:9,name:"base_url",kind:"message",T:qr},{no:10,name:"path",kind:"message",T:qr},{no:11,name:"http_proxy_url",kind:"message",T:qr,opt:!0}]));var zD=to,no=class no extends Le{constructor(n){super();_(this,"statusCode",$n.zero);_(this,"typeName","");_(this,"injectStatusCodeIntoBody",!1);B.util.initPartial(n,this)}static fromBinary(n,r){return new no().fromBinary(n,r)}static fromJson(n,r){return new no().fromJson(n,r)}static fromJsonString(n,r){return new no().fromJsonString(n,r)}static equals(n,r){return B.util.equals(no,n,r)}};_(no,"runtime",B),_(no,"typeName","wg.cosmo.node.v1.StatusCodeTypeMapping"),_(no,"fields",B.util.newFieldList(()=>[{no:1,name:"status_code",kind:"scalar",T:3},{no:2,name:"type_name",kind:"scalar",T:9},{no:3,name:"inject_status_code_into_body",kind:"scalar",T:8}]));var j1=no,ro=class ro extends Le{constructor(n){super();_(this,"fetch");_(this,"subscription");_(this,"federation");_(this,"upstreamSchema");_(this,"customScalarTypeFields",[]);_(this,"grpc");B.util.initPartial(n,this)}static fromBinary(n,r){return new ro().fromBinary(n,r)}static fromJson(n,r){return new ro().fromJson(n,r)}static fromJsonString(n,r){return new ro().fromJsonString(n,r)}static equals(n,r){return B.util.equals(ro,n,r)}};_(ro,"runtime",B),_(ro,"typeName","wg.cosmo.node.v1.DataSourceCustom_GraphQL"),_(ro,"fields",B.util.newFieldList(()=>[{no:1,name:"fetch",kind:"message",T:zD},{no:2,name:"subscription",kind:"message",T:db},{no:3,name:"federation",kind:"message",T:fb},{no:4,name:"upstream_schema",kind:"message",T:_p},{no:6,name:"custom_scalar_type_fields",kind:"message",T:pb,repeated:!0},{no:7,name:"grpc",kind:"message",T:ud}]));var Tp=ro,io=class io extends Le{constructor(n){super();_(this,"mapping");_(this,"protoSchema","");_(this,"plugin");B.util.initPartial(n,this)}static fromBinary(n,r){return new io().fromBinary(n,r)}static fromJson(n,r){return new io().fromJson(n,r)}static fromJsonString(n,r){return new io().fromJsonString(n,r)}static equals(n,r){return B.util.equals(io,n,r)}};_(io,"runtime",B),_(io,"typeName","wg.cosmo.node.v1.GRPCConfiguration"),_(io,"fields",B.util.newFieldList(()=>[{no:1,name:"mapping",kind:"message",T:XD},{no:2,name:"proto_schema",kind:"scalar",T:9},{no:3,name:"plugin",kind:"message",T:Ep}]));var ud=io,ao=class ao extends Le{constructor(n){super();_(this,"repository","");_(this,"reference","");B.util.initPartial(n,this)}static fromBinary(n,r){return new ao().fromBinary(n,r)}static fromJson(n,r){return new ao().fromJson(n,r)}static fromJsonString(n,r){return new ao().fromJsonString(n,r)}static equals(n,r){return B.util.equals(ao,n,r)}};_(ao,"runtime",B),_(ao,"typeName","wg.cosmo.node.v1.ImageReference"),_(ao,"fields",B.util.newFieldList(()=>[{no:1,name:"repository",kind:"scalar",T:9},{no:2,name:"reference",kind:"scalar",T:9}]));var WD=ao,so=class so extends Le{constructor(n){super();_(this,"name","");_(this,"version","");_(this,"imageReference");B.util.initPartial(n,this)}static fromBinary(n,r){return new so().fromBinary(n,r)}static fromJson(n,r){return new so().fromJson(n,r)}static fromJsonString(n,r){return new so().fromJsonString(n,r)}static equals(n,r){return B.util.equals(so,n,r)}};_(so,"runtime",B),_(so,"typeName","wg.cosmo.node.v1.PluginConfiguration"),_(so,"fields",B.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"image_reference",kind:"message",T:WD,opt:!0}]));var Ep=so,oo=class oo extends Le{constructor(n){super();_(this,"enabled",!1);B.util.initPartial(n,this)}static fromBinary(n,r){return new oo().fromBinary(n,r)}static fromJson(n,r){return new oo().fromJson(n,r)}static fromJsonString(n,r){return new oo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(oo,n,r)}};_(oo,"runtime",B),_(oo,"typeName","wg.cosmo.node.v1.SSLConfiguration"),_(oo,"fields",B.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8}]));var K1=oo,uo=class uo extends Le{constructor(n){super();_(this,"version",0);_(this,"service","");_(this,"operationMappings",[]);_(this,"entityMappings",[]);_(this,"typeFieldMappings",[]);_(this,"enumMappings",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new uo().fromBinary(n,r)}static fromJson(n,r){return new uo().fromJson(n,r)}static fromJsonString(n,r){return new uo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(uo,n,r)}};_(uo,"runtime",B),_(uo,"typeName","wg.cosmo.node.v1.GRPCMapping"),_(uo,"fields",B.util.newFieldList(()=>[{no:1,name:"version",kind:"scalar",T:5},{no:2,name:"service",kind:"scalar",T:9},{no:3,name:"operation_mappings",kind:"message",T:ZD,repeated:!0},{no:4,name:"entity_mappings",kind:"message",T:eb,repeated:!0},{no:5,name:"type_field_mappings",kind:"message",T:tb,repeated:!0},{no:6,name:"enum_mappings",kind:"message",T:ib,repeated:!0}]));var XD=uo,co=class co extends Le{constructor(n){super();_(this,"type",up.UNSPECIFIED);_(this,"original","");_(this,"mapped","");_(this,"request","");_(this,"response","");B.util.initPartial(n,this)}static fromBinary(n,r){return new co().fromBinary(n,r)}static fromJson(n,r){return new co().fromJson(n,r)}static fromJsonString(n,r){return new co().fromJsonString(n,r)}static equals(n,r){return B.util.equals(co,n,r)}};_(co,"runtime",B),_(co,"typeName","wg.cosmo.node.v1.OperationMapping"),_(co,"fields",B.util.newFieldList(()=>[{no:1,name:"type",kind:"enum",T:B.getEnumType(up)},{no:2,name:"original",kind:"scalar",T:9},{no:3,name:"mapped",kind:"scalar",T:9},{no:4,name:"request",kind:"scalar",T:9},{no:5,name:"response",kind:"scalar",T:9}]));var ZD=co,lo=class lo extends Le{constructor(n){super();_(this,"typeName","");_(this,"kind","");_(this,"key","");_(this,"rpc","");_(this,"request","");_(this,"response","");B.util.initPartial(n,this)}static fromBinary(n,r){return new lo().fromBinary(n,r)}static fromJson(n,r){return new lo().fromJson(n,r)}static fromJsonString(n,r){return new lo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(lo,n,r)}};_(lo,"runtime",B),_(lo,"typeName","wg.cosmo.node.v1.EntityMapping"),_(lo,"fields",B.util.newFieldList(()=>[{no:1,name:"type_name",kind:"scalar",T:9},{no:2,name:"kind",kind:"scalar",T:9},{no:3,name:"key",kind:"scalar",T:9},{no:4,name:"rpc",kind:"scalar",T:9},{no:5,name:"request",kind:"scalar",T:9},{no:6,name:"response",kind:"scalar",T:9}]));var eb=lo,fo=class fo extends Le{constructor(n){super();_(this,"type","");_(this,"fieldMappings",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new fo().fromBinary(n,r)}static fromJson(n,r){return new fo().fromJson(n,r)}static fromJsonString(n,r){return new fo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(fo,n,r)}};_(fo,"runtime",B),_(fo,"typeName","wg.cosmo.node.v1.TypeFieldMapping"),_(fo,"fields",B.util.newFieldList(()=>[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"field_mappings",kind:"message",T:nb,repeated:!0}]));var tb=fo,po=class po extends Le{constructor(n){super();_(this,"original","");_(this,"mapped","");_(this,"argumentMappings",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new po().fromBinary(n,r)}static fromJson(n,r){return new po().fromJson(n,r)}static fromJsonString(n,r){return new po().fromJsonString(n,r)}static equals(n,r){return B.util.equals(po,n,r)}};_(po,"runtime",B),_(po,"typeName","wg.cosmo.node.v1.FieldMapping"),_(po,"fields",B.util.newFieldList(()=>[{no:1,name:"original",kind:"scalar",T:9},{no:2,name:"mapped",kind:"scalar",T:9},{no:3,name:"argument_mappings",kind:"message",T:rb,repeated:!0}]));var nb=po,mo=class mo extends Le{constructor(n){super();_(this,"original","");_(this,"mapped","");B.util.initPartial(n,this)}static fromBinary(n,r){return new mo().fromBinary(n,r)}static fromJson(n,r){return new mo().fromJson(n,r)}static fromJsonString(n,r){return new mo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(mo,n,r)}};_(mo,"runtime",B),_(mo,"typeName","wg.cosmo.node.v1.ArgumentMapping"),_(mo,"fields",B.util.newFieldList(()=>[{no:1,name:"original",kind:"scalar",T:9},{no:2,name:"mapped",kind:"scalar",T:9}]));var rb=mo,No=class No extends Le{constructor(n){super();_(this,"type","");_(this,"values",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new No().fromBinary(n,r)}static fromJson(n,r){return new No().fromJson(n,r)}static fromJsonString(n,r){return new No().fromJsonString(n,r)}static equals(n,r){return B.util.equals(No,n,r)}};_(No,"runtime",B),_(No,"typeName","wg.cosmo.node.v1.EnumMapping"),_(No,"fields",B.util.newFieldList(()=>[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"values",kind:"message",T:ab,repeated:!0}]));var ib=No,To=class To extends Le{constructor(n){super();_(this,"original","");_(this,"mapped","");B.util.initPartial(n,this)}static fromBinary(n,r){return new To().fromBinary(n,r)}static fromJson(n,r){return new To().fromJson(n,r)}static fromJsonString(n,r){return new To().fromJsonString(n,r)}static equals(n,r){return B.util.equals(To,n,r)}};_(To,"runtime",B),_(To,"typeName","wg.cosmo.node.v1.EnumValueMapping"),_(To,"fields",B.util.newFieldList(()=>[{no:1,name:"original",kind:"scalar",T:9},{no:2,name:"mapped",kind:"scalar",T:9}]));var ab=To,Eo=class Eo extends Le{constructor(n){super();_(this,"consumerName","");_(this,"streamName","");_(this,"consumerInactiveThreshold",0);B.util.initPartial(n,this)}static fromBinary(n,r){return new Eo().fromBinary(n,r)}static fromJson(n,r){return new Eo().fromJson(n,r)}static fromJsonString(n,r){return new Eo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Eo,n,r)}};_(Eo,"runtime",B),_(Eo,"typeName","wg.cosmo.node.v1.NatsStreamConfiguration"),_(Eo,"fields",B.util.newFieldList(()=>[{no:1,name:"consumer_name",kind:"scalar",T:9},{no:2,name:"stream_name",kind:"scalar",T:9},{no:3,name:"consumer_inactive_threshold",kind:"scalar",T:5}]));var hp=Eo,ho=class ho extends Le{constructor(n){super();_(this,"engineEventConfiguration");_(this,"subjects",[]);_(this,"streamConfiguration");B.util.initPartial(n,this)}static fromBinary(n,r){return new ho().fromBinary(n,r)}static fromJson(n,r){return new ho().fromJson(n,r)}static fromJsonString(n,r){return new ho().fromJsonString(n,r)}static equals(n,r){return B.util.equals(ho,n,r)}};_(ho,"runtime",B),_(ho,"typeName","wg.cosmo.node.v1.NatsEventConfiguration"),_(ho,"fields",B.util.newFieldList(()=>[{no:1,name:"engine_event_configuration",kind:"message",T:Vo},{no:2,name:"subjects",kind:"scalar",T:9,repeated:!0},{no:3,name:"stream_configuration",kind:"message",T:hp}]));var yp=ho,yo=class yo extends Le{constructor(n){super();_(this,"engineEventConfiguration");_(this,"topics",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new yo().fromBinary(n,r)}static fromJson(n,r){return new yo().fromJson(n,r)}static fromJsonString(n,r){return new yo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(yo,n,r)}};_(yo,"runtime",B),_(yo,"typeName","wg.cosmo.node.v1.KafkaEventConfiguration"),_(yo,"fields",B.util.newFieldList(()=>[{no:1,name:"engine_event_configuration",kind:"message",T:Vo},{no:2,name:"topics",kind:"scalar",T:9,repeated:!0}]));var Ip=yo,Io=class Io extends Le{constructor(n){super();_(this,"engineEventConfiguration");_(this,"channels",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Io().fromBinary(n,r)}static fromJson(n,r){return new Io().fromJson(n,r)}static fromJsonString(n,r){return new Io().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Io,n,r)}};_(Io,"runtime",B),_(Io,"typeName","wg.cosmo.node.v1.RedisEventConfiguration"),_(Io,"fields",B.util.newFieldList(()=>[{no:1,name:"engine_event_configuration",kind:"message",T:Vo},{no:2,name:"channels",kind:"scalar",T:9,repeated:!0}]));var gp=Io,go=class go extends Le{constructor(n){super();_(this,"providerId","");_(this,"type",qo.PUBLISH);_(this,"typeName","");_(this,"fieldName","");B.util.initPartial(n,this)}static fromBinary(n,r){return new go().fromBinary(n,r)}static fromJson(n,r){return new go().fromJson(n,r)}static fromJsonString(n,r){return new go().fromJsonString(n,r)}static equals(n,r){return B.util.equals(go,n,r)}};_(go,"runtime",B),_(go,"typeName","wg.cosmo.node.v1.EngineEventConfiguration"),_(go,"fields",B.util.newFieldList(()=>[{no:1,name:"provider_id",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:B.getEnumType(qo)},{no:3,name:"type_name",kind:"scalar",T:9},{no:4,name:"field_name",kind:"scalar",T:9}]));var Vo=go,_o=class _o extends Le{constructor(n){super();_(this,"nats",[]);_(this,"kafka",[]);_(this,"redis",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new _o().fromBinary(n,r)}static fromJson(n,r){return new _o().fromJson(n,r)}static fromJsonString(n,r){return new _o().fromJsonString(n,r)}static equals(n,r){return B.util.equals(_o,n,r)}};_(_o,"runtime",B),_(_o,"typeName","wg.cosmo.node.v1.DataSourceCustomEvents"),_(_o,"fields",B.util.newFieldList(()=>[{no:1,name:"nats",kind:"message",T:yp,repeated:!0},{no:2,name:"kafka",kind:"message",T:Ip,repeated:!0},{no:3,name:"redis",kind:"message",T:gp,repeated:!0}]));var Bc=_o,vo=class vo extends Le{constructor(n){super();_(this,"data");B.util.initPartial(n,this)}static fromBinary(n,r){return new vo().fromBinary(n,r)}static fromJson(n,r){return new vo().fromJson(n,r)}static fromJsonString(n,r){return new vo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(vo,n,r)}};_(vo,"runtime",B),_(vo,"typeName","wg.cosmo.node.v1.DataSourceCustom_Static"),_(vo,"fields",B.util.newFieldList(()=>[{no:1,name:"data",kind:"message",T:qr}]));var sb=vo,So=class So extends Le{constructor(n){super();_(this,"kind",Su.STATIC_CONFIGURATION_VARIABLE);_(this,"staticVariableContent","");_(this,"environmentVariableName","");_(this,"environmentVariableDefaultValue","");_(this,"placeholderVariableName","");B.util.initPartial(n,this)}static fromBinary(n,r){return new So().fromBinary(n,r)}static fromJson(n,r){return new So().fromJson(n,r)}static fromJsonString(n,r){return new So().fromJsonString(n,r)}static equals(n,r){return B.util.equals(So,n,r)}};_(So,"runtime",B),_(So,"typeName","wg.cosmo.node.v1.ConfigurationVariable"),_(So,"fields",B.util.newFieldList(()=>[{no:1,name:"kind",kind:"enum",T:B.getEnumType(Su)},{no:2,name:"static_variable_content",kind:"scalar",T:9},{no:3,name:"environment_variable_name",kind:"scalar",T:9},{no:4,name:"environment_variable_default_value",kind:"scalar",T:9},{no:5,name:"placeholder_variable_name",kind:"scalar",T:9}]));var qr=So,Oo=class Oo extends Le{constructor(n){super();_(this,"directiveName","");_(this,"renameTo","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Oo().fromBinary(n,r)}static fromJson(n,r){return new Oo().fromJson(n,r)}static fromJsonString(n,r){return new Oo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Oo,n,r)}};_(Oo,"runtime",B),_(Oo,"typeName","wg.cosmo.node.v1.DirectiveConfiguration"),_(Oo,"fields",B.util.newFieldList(()=>[{no:1,name:"directive_name",kind:"scalar",T:9},{no:2,name:"rename_to",kind:"scalar",T:9}]));var ob=Oo,Do=class Do extends Le{constructor(n){super();_(this,"name","");_(this,"value","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Do().fromBinary(n,r)}static fromJson(n,r){return new Do().fromJson(n,r)}static fromJsonString(n,r){return new Do().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Do,n,r)}};_(Do,"runtime",B),_(Do,"typeName","wg.cosmo.node.v1.URLQueryConfiguration"),_(Do,"fields",B.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:9}]));var ub=Do,bo=class bo extends Le{constructor(n){super();_(this,"values",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new bo().fromBinary(n,r)}static fromJson(n,r){return new bo().fromJson(n,r)}static fromJsonString(n,r){return new bo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(bo,n,r)}};_(bo,"runtime",B),_(bo,"typeName","wg.cosmo.node.v1.HTTPHeader"),_(bo,"fields",B.util.newFieldList(()=>[{no:1,name:"values",kind:"message",T:qr,repeated:!0}]));var cb=bo,Ao=class Ao extends Le{constructor(n){super();_(this,"key");_(this,"cert");_(this,"insecureSkipVerify",!1);B.util.initPartial(n,this)}static fromBinary(n,r){return new Ao().fromBinary(n,r)}static fromJson(n,r){return new Ao().fromJson(n,r)}static fromJsonString(n,r){return new Ao().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ao,n,r)}};_(Ao,"runtime",B),_(Ao,"typeName","wg.cosmo.node.v1.MTLSConfiguration"),_(Ao,"fields",B.util.newFieldList(()=>[{no:1,name:"key",kind:"message",T:qr},{no:2,name:"cert",kind:"message",T:qr},{no:3,name:"insecureSkipVerify",kind:"scalar",T:8}]));var lb=Ao,Ro=class Ro extends Le{constructor(n){super();_(this,"enabled",!1);_(this,"url");_(this,"useSSE");_(this,"protocol");_(this,"websocketSubprotocol");B.util.initPartial(n,this)}static fromBinary(n,r){return new Ro().fromBinary(n,r)}static fromJson(n,r){return new Ro().fromJson(n,r)}static fromJsonString(n,r){return new Ro().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ro,n,r)}};_(Ro,"runtime",B),_(Ro,"typeName","wg.cosmo.node.v1.GraphQLSubscriptionConfiguration"),_(Ro,"fields",B.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"url",kind:"message",T:qr},{no:3,name:"useSSE",kind:"scalar",T:8,opt:!0},{no:4,name:"protocol",kind:"enum",T:B.getEnumType(Fs),opt:!0},{no:5,name:"websocketSubprotocol",kind:"enum",T:B.getEnumType(ws),opt:!0}]));var db=Ro,Po=class Po extends Le{constructor(n){super();_(this,"enabled",!1);_(this,"serviceSdl","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Po().fromBinary(n,r)}static fromJson(n,r){return new Po().fromJson(n,r)}static fromJsonString(n,r){return new Po().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Po,n,r)}};_(Po,"runtime",B),_(Po,"typeName","wg.cosmo.node.v1.GraphQLFederationConfiguration"),_(Po,"fields",B.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"serviceSdl",kind:"scalar",T:9}]));var fb=Po,Fo=class Fo extends Le{constructor(n){super();_(this,"key","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Fo().fromBinary(n,r)}static fromJson(n,r){return new Fo().fromJson(n,r)}static fromJsonString(n,r){return new Fo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Fo,n,r)}};_(Fo,"runtime",B),_(Fo,"typeName","wg.cosmo.node.v1.InternedString"),_(Fo,"fields",B.util.newFieldList(()=>[{no:1,name:"key",kind:"scalar",T:9}]));var _p=Fo,wo=class wo extends Le{constructor(n){super();_(this,"typeName","");_(this,"fieldName","");B.util.initPartial(n,this)}static fromBinary(n,r){return new wo().fromBinary(n,r)}static fromJson(n,r){return new wo().fromJson(n,r)}static fromJsonString(n,r){return new wo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(wo,n,r)}};_(wo,"runtime",B),_(wo,"typeName","wg.cosmo.node.v1.SingleTypeField"),_(wo,"fields",B.util.newFieldList(()=>[{no:1,name:"type_name",kind:"scalar",T:9},{no:2,name:"field_name",kind:"scalar",T:9}]));var pb=wo,Lo=class Lo extends Le{constructor(n){super();_(this,"fieldPath",[]);_(this,"json","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Lo().fromBinary(n,r)}static fromJson(n,r){return new Lo().fromJson(n,r)}static fromJsonString(n,r){return new Lo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Lo,n,r)}};_(Lo,"runtime",B),_(Lo,"typeName","wg.cosmo.node.v1.SubscriptionFieldCondition"),_(Lo,"fields",B.util.newFieldList(()=>[{no:1,name:"field_path",kind:"scalar",T:9,repeated:!0},{no:2,name:"json",kind:"scalar",T:9}]));var vp=Lo,Hi=class Hi extends Le{constructor(n){super();_(this,"and",[]);_(this,"in");_(this,"not");_(this,"or",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Hi().fromBinary(n,r)}static fromJson(n,r){return new Hi().fromJson(n,r)}static fromJsonString(n,r){return new Hi().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Hi,n,r)}};_(Hi,"runtime",B),_(Hi,"typeName","wg.cosmo.node.v1.SubscriptionFilterCondition"),_(Hi,"fields",B.util.newFieldList(()=>[{no:1,name:"and",kind:"message",T:Hi,repeated:!0},{no:2,name:"in",kind:"message",T:vp,opt:!0},{no:3,name:"not",kind:"message",T:Hi,opt:!0},{no:4,name:"or",kind:"message",T:Hi,repeated:!0}]));var Ou=Hi,Co=class Co extends Le{constructor(n){super();_(this,"operations",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Co().fromBinary(n,r)}static fromJson(n,r){return new Co().fromJson(n,r)}static fromJsonString(n,r){return new Co().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Co,n,r)}};_(Co,"runtime",B),_(Co,"typeName","wg.cosmo.node.v1.CacheWarmerOperations"),_(Co,"fields",B.util.newFieldList(()=>[{no:1,name:"operations",kind:"message",T:mb,repeated:!0}]));var G1=Co,Bo=class Bo extends Le{constructor(n){super();_(this,"request");_(this,"client");B.util.initPartial(n,this)}static fromBinary(n,r){return new Bo().fromBinary(n,r)}static fromJson(n,r){return new Bo().fromJson(n,r)}static fromJsonString(n,r){return new Bo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Bo,n,r)}};_(Bo,"runtime",B),_(Bo,"typeName","wg.cosmo.node.v1.Operation"),_(Bo,"fields",B.util.newFieldList(()=>[{no:1,name:"request",kind:"message",T:Nb},{no:2,name:"client",kind:"message",T:hb}]));var mb=Bo,Uo=class Uo extends Le{constructor(n){super();_(this,"operationName","");_(this,"query","");_(this,"extensions");B.util.initPartial(n,this)}static fromBinary(n,r){return new Uo().fromBinary(n,r)}static fromJson(n,r){return new Uo().fromJson(n,r)}static fromJsonString(n,r){return new Uo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Uo,n,r)}};_(Uo,"runtime",B),_(Uo,"typeName","wg.cosmo.node.v1.OperationRequest"),_(Uo,"fields",B.util.newFieldList(()=>[{no:1,name:"operation_name",kind:"scalar",T:9},{no:2,name:"query",kind:"scalar",T:9},{no:3,name:"extensions",kind:"message",T:Tb}]));var Nb=Uo,ko=class ko extends Le{constructor(n){super();_(this,"persistedQuery");B.util.initPartial(n,this)}static fromBinary(n,r){return new ko().fromBinary(n,r)}static fromJson(n,r){return new ko().fromJson(n,r)}static fromJsonString(n,r){return new ko().fromJsonString(n,r)}static equals(n,r){return B.util.equals(ko,n,r)}};_(ko,"runtime",B),_(ko,"typeName","wg.cosmo.node.v1.Extension"),_(ko,"fields",B.util.newFieldList(()=>[{no:1,name:"persisted_query",kind:"message",T:Eb}]));var Tb=ko,Mo=class Mo extends Le{constructor(n){super();_(this,"sha256Hash","");_(this,"version",0);B.util.initPartial(n,this)}static fromBinary(n,r){return new Mo().fromBinary(n,r)}static fromJson(n,r){return new Mo().fromJson(n,r)}static fromJsonString(n,r){return new Mo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Mo,n,r)}};_(Mo,"runtime",B),_(Mo,"typeName","wg.cosmo.node.v1.PersistedQuery"),_(Mo,"fields",B.util.newFieldList(()=>[{no:1,name:"sha256_hash",kind:"scalar",T:9},{no:2,name:"version",kind:"scalar",T:5}]));var Eb=Mo,xo=class xo extends Le{constructor(n){super();_(this,"name","");_(this,"version","");B.util.initPartial(n,this)}static fromBinary(n,r){return new xo().fromBinary(n,r)}static fromJson(n,r){return new xo().fromJson(n,r)}static fromJsonString(n,r){return new xo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(xo,n,r)}};_(xo,"runtime",B),_(xo,"typeName","wg.cosmo.node.v1.ClientInfo"),_(xo,"fields",B.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"version",kind:"scalar",T:9}]));var hb=xo;m();T();N();function yb(e){return new Error(`Normalization failed to return a ${e}.`)}function $1(e){return new Error(`Invalid router compatibility version "${e}".`)}m();T();N();var cd=ps(HE(),1);function afe(e){if(!e.conditions)return;let t=[];for(let n of e.conditions){let r=[];for(let i of n.fieldCoordinatesPath){let a=i.split(".");if(a.length!==2)throw new Error(`fatal: malformed conditional field coordinates "${i}" for field set "${e.selectionSet}".`);r.push(new mp({fieldName:a[1],typeName:a[0]}))}t.push(new Np({fieldCoordinatesPath:r,fieldPath:n.fieldPath}))}return t}function Ib(e,t,n){if(e)for(let r of e){let i=afe(r);t.push(new Fc(x(x({typeName:n,fieldName:r.fieldName,selectionSet:r.selectionSet},r.disableEntityResolver?{disableEntityResolver:!0}:{}),i?{conditions:i}:{})))}}function gb(e){switch(e){case"publish":return qo.PUBLISH;case"request":return qo.REQUEST;case"subscribe":return qo.SUBSCRIBE}}function Q1(e){var n;let t={rootNodes:[],childNodes:[],keys:[],provides:[],events:new Bc({nats:[],kafka:[],redis:[]}),requires:[],entityInterfaces:[],interfaceObjects:[]};for(let r of e.values()){let i=r.typeName,a=[...r.fieldNames],o=new sd({fieldNames:a,typeName:i});if(r.externalFieldNames&&r.externalFieldNames.size>0&&(o.externalFieldNames=[...r.externalFieldNames]),r.requireFetchReasonsFieldNames&&r.requireFetchReasonsFieldNames.length>0&&(o.requireFetchReasonsFieldNames=[...r.requireFetchReasonsFieldNames]),r.isRootNode?t.rootNodes.push(o):t.childNodes.push(o),r.entityInterfaceConcreteTypeNames){let p=new od({interfaceTypeName:i,concreteTypeNames:[...r.entityInterfaceConcreteTypeNames]});r.isInterfaceObject?t.interfaceObjects.push(p):t.entityInterfaces.push(p)}Ib(r.keys,t.keys,i),Ib(r.provides,t.provides,i),Ib(r.requires,t.requires,i);let c=[],l=[],d=[];for(let p of(n=r.events)!=null?n:[])switch(p.providerType){case cd.PROVIDER_TYPE_KAFKA:{l.push(new Ip({engineEventConfiguration:new Vo({fieldName:p.fieldName,providerId:p.providerId,type:gb(p.type),typeName:i}),topics:p.topics}));break}case cd.PROVIDER_TYPE_NATS:{c.push(new yp(x({engineEventConfiguration:new Vo({fieldName:p.fieldName,providerId:p.providerId,type:gb(p.type),typeName:i}),subjects:p.subjects},p.streamConfiguration?{streamConfiguration:new hp({consumerInactiveThreshold:p.streamConfiguration.consumerInactiveThreshold,consumerName:p.streamConfiguration.consumerName,streamName:p.streamConfiguration.streamName})}:{})));break}case cd.PROVIDER_TYPE_REDIS:{d.push(new gp({engineEventConfiguration:new Vo({fieldName:p.fieldName,providerId:p.providerId,type:gb(p.type),typeName:i}),channels:p.channels}));break}default:throw new Error("Fatal: Unknown event provider.")}t.events.nats.push(...c),t.events.kafka.push(...l),t.events.redis.push(...d)}return t}function Y1(e){var n,r;let t=[];for(let i of e){let a=i.argumentNames.map(p=>new dp({name:p,sourceType:wc.FIELD_ARGUMENT})),o=new pp({argumentsConfiguration:a,fieldName:i.fieldName,typeName:i.typeName}),c=((n=i.requiredScopes)==null?void 0:n.map(p=>new Cc({requiredAndScopes:p})))||[],l=((r=i.requiredScopesByOR)==null?void 0:r.map(p=>new Cc({requiredAndScopes:p})))||[],d=c.length>0;if((i.requiresAuthentication||d)&&(o.authorizationConfiguration=new fp({requiresAuthentication:i.requiresAuthentication||d,requiredOrScopes:c,requiredOrScopesByOr:l})),i.subscriptionFilterCondition){let p=new Ou;gh(p,i.subscriptionFilterCondition),o.subscriptionFilterCondition=p}t.push(o)}return t}function gh(e,t){if(t.and!==void 0){let n=[];for(let r of t.and){let i=new Ou;gh(i,r),n.push(i)}e.and=n;return}if(t.in!==void 0){e.in=new vp({fieldPath:t.in.fieldPath,json:JSON.stringify(t.in.values)});return}if(t.not!==void 0){e.not=new Ou,gh(e.not,t.not);return}if(t.or!==void 0){let n=[];for(let r of t.or){let i=new Ou;gh(i,r),n.push(i)}e.or=n;return}throw new Error("Fatal: Incoming SubscriptionCondition object was malformed.")}var Uc;(function(e){e[e.Plugin=0]="Plugin",e[e.Standard=1]="Standard",e[e.GRPC=2]="GRPC"})(Uc||(Uc={}));var sfe=(e,t)=>{let n=stringHash(t);return e.stringStorage[n]=t,new _p({key:n})},ofe=e=>{switch(e){case"ws":return Fs.GRAPHQL_SUBSCRIPTION_PROTOCOL_WS;case"sse":return Fs.GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE;case"sse_post":return Fs.GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE_POST}},ufe=e=>{switch(e){case"auto":return ws.GRAPHQL_WEBSOCKET_SUBPROTOCOL_AUTO;case"graphql-ws":return ws.GRAPHQL_WEBSOCKET_SUBPROTOCOL_WS;case"graphql-transport-ws":return ws.GRAPHQL_WEBSOCKET_SUBPROTOCOL_TRANSPORT_WS}},H1=function(e){if(!ld.ROUTER_COMPATIBILITY_VERSIONS.has(e.routerCompatibilityVersion))throw $1(e.routerCompatibilityVersion);let t=new ad({defaultFlushInterval:BigInt(500),datasourceConfigurations:[],fieldConfigurations:[],graphqlSchema:"",stringStorage:{},typeConfigurations:[]});for(let n of e.subgraphs){if(!n.configurationDataByTypeName)throw yb("ConfigurationDataByTypeName");if(!n.schema)throw yb("GraphQLSchema");let r={enabled:!0},i=sfe(t,n1((0,J1.lexicographicSortSchema)(n.schema))),{childNodes:a,entityInterfaces:o,events:c,interfaceObjects:l,keys:d,provides:p,requires:y,rootNodes:I}=Q1(n.configurationDataByTypeName),v;switch(n.kind){case Uc.Standard:{r.enabled=!0,r.protocol=ofe(n.subscriptionProtocol||"ws"),r.websocketSubprotocol=ufe(n.websocketSubprotocol||"auto"),r.url=new qr({kind:Su.STATIC_CONFIGURATION_VARIABLE,staticVariableContent:n.subscriptionUrl||n.url});break}case Uc.Plugin:{v=new ud({mapping:n.mapping,protoSchema:n.protoSchema,plugin:new Ep({name:n.name,version:n.version,imageReference:n.imageReference})});break}case Uc.GRPC:{v=new ud({mapping:n.mapping,protoSchema:n.protoSchema});break}}let F,k,K;if(c.kafka.length>0||c.nats.length>0||c.redis.length>0){F=vu.PUBSUB,K=new Bc({kafka:c.kafka,nats:c.nats,redis:c.redis});let se=de=>ld.ROOT_TYPE_NAMES.has(de.typeName),ie=0,Te=0;for(;ie({id:n.id,name:n.name,routingUrl:n.url})),compatibilityVersion:`${e.routerCompatibilityVersion}:${ld.COMPOSITION_VERSION}`})};m();T();N();var Mc=ps(De());function z1(e){let t;try{t=(0,Mc.parse)(e.schema)}catch(n){throw new Error(`could not parse schema for Graph ${e.name}: ${n}`)}return{definitions:t,name:e.name,url:e.url}}function cfe(e){let t=(0,kc.federateSubgraphs)({subgraphs:e.map(z1),version:kc.LATEST_ROUTER_COMPATIBILITY_VERSION});if(!t.success)throw new Error(`could not federate schema: ${t.errors.map(n=>n.message).join(", ")}`);return{fieldConfigurations:t.fieldConfigurations,sdl:(0,Mc.print)(t.federatedGraphAST)}}function lfe(e){let t=(0,kc.federateSubgraphs)({subgraphs:e.map(z1),version:kc.LATEST_ROUTER_COMPATIBILITY_VERSION});if(!t.success)throw new Error(`could not federate schema: ${t.errors.map(r=>r.message).join(", ")}`);return H1({federatedClientSDL:(0,Mc.printSchema)(t.federatedGraphClientSchema),federatedSDL:(0,Mc.printSchema)(t.federatedGraphSchema),fieldConfigurations:t.fieldConfigurations,routerCompatibilityVersion:kc.LATEST_ROUTER_COMPATIBILITY_VERSION,schemaVersionId:"",subgraphs:e.map((r,i)=>{var l,d;let a=t.subgraphConfigBySubgraphName.get(r.name),o=a==null?void 0:a.schema,c=a==null?void 0:a.configurationDataByTypeName;return{kind:Uc.Standard,id:`${i}`,name:r.name,url:AD(r.url),sdl:r.schema,subscriptionUrl:AD((l=r.subscription_url)!=null?l:r.url),subscriptionProtocol:(d=r.subscription_protocol)!=null?d:"ws",websocketSubprotocol:r.subscription_protocol==="ws"?r.websocketSubprotocol||"auto":void 0,schema:o,configurationDataByTypeName:c}})}).toJsonString()}return pm(dfe);})(); +`)+Te+`return __p +}`;var yt=NR(function(){return Qt(L,Ve+"return "+Te).apply(e,k)});if(yt.source=Te,Ky(yt))throw yt;return yt}function sJ(s){return zt(s).toLowerCase()}function oJ(s){return zt(s).toUpperCase()}function uJ(s,u,p){if(s=zt(s),s&&(p||u===e))return S0(s);if(!s||!(u=pi(u)))return s;var E=ia(s),S=ia(u),L=O0(E,S),k=D0(E,S)+1;return iu(E,L,k).join("")}function cJ(s,u,p){if(s=zt(s),s&&(p||u===e))return s.slice(0,A0(s)+1);if(!s||!(u=pi(u)))return s;var E=ia(s),S=D0(E,ia(u))+1;return iu(E,0,S).join("")}function lJ(s,u,p){if(s=zt(s),s&&(p||u===e))return s.replace(Kh,"");if(!s||!(u=pi(u)))return s;var E=ia(s),S=O0(E,ia(u));return iu(E,S).join("")}function dJ(s,u){var p=nt,E=X;if(Dn(u)){var S="separator"in u?u.separator:S;p="length"in u?Et(u.length):p,E="omission"in u?pi(u.omission):E}s=zt(s);var L=s.length;if(Xc(s)){var k=ia(s);L=k.length}if(p>=L)return s;var j=p-Zc(E);if(j<1)return E;var J=k?iu(k,0,j).join(""):s.slice(0,j);if(S===e)return J+E;if(k&&(j+=J.length-j),Gy(S)){if(s.slice(j).search(S)){var le,de=J;for(S.global||(S=sy(S.source,zt(Qb.exec(S))+"g")),S.lastIndex=0;le=S.exec(de);)var Te=le.index;J=J.slice(0,Te===e?j:Te)}}else if(s.indexOf(pi(S),j)!=j){var be=J.lastIndexOf(S);be>-1&&(J=J.slice(0,be))}return J+E}function pJ(s){return s=zt(s),s&&vV.test(s)?s.replace(Kb,jK):s}var fJ=al(function(s,u,p){return s+(p?" ":"")+u.toUpperCase()}),Yy=TA("toUpperCase");function mR(s,u,p){return s=zt(s),u=p?e:u,u===e?UK(s)?GK(s):bK(s):s.match(u)||[]}var NR=gt(function(s,u){try{return li(s,e,u)}catch(p){return Ky(p)?p:new ct(p)}}),mJ=Es(function(s,u){return Oi(u,function(p){p=La(p),Ns(s,p,jy(s[p],s))}),s});function NJ(s){var u=s==null?0:s.length,p=We();return s=u?vn(s,function(E){if(typeof E[1]!="function")throw new Di(i);return[p(E[0]),E[1]]}):[],gt(function(E){for(var S=-1;++SEn)return[];var p=jn,E=vr(s,jn);u=We(u),s-=jn;for(var S=ry(E,u);++p0||u<0)?new bt(p):(s<0?p=p.takeRight(-s):s&&(p=p.drop(s)),u!==e&&(u=Et(u),p=u<0?p.dropRight(-u):p.take(u-s)),p)},bt.prototype.takeRightWhile=function(s){return this.reverse().takeWhile(s).reverse()},bt.prototype.toArray=function(){return this.take(jn)},Fa(bt.prototype,function(s,u){var p=/^(?:filter|find|map|reject)|While$/.test(u),E=/^(?:head|last)$/.test(u),S=P[E?"take"+(u=="last"?"Right":""):u],L=E||/^find/.test(u);S&&(P.prototype[u]=function(){var k=this.__wrapped__,j=E?[1]:arguments,J=k instanceof bt,le=j[0],de=J||ft(k),Te=function(Ot){var wt=S.apply(P,Wo([Ot],j));return E&&be?wt[0]:wt};de&&p&&typeof le=="function"&&le.length!=1&&(J=de=!1);var be=this.__chain__,Ve=!!this.__actions__.length,Ze=L&&!be,yt=J&&!Ve;if(!L&&de){k=yt?k:new bt(this);var et=s.apply(k,j);return et.__actions__.push({func:ym,args:[Te],thisArg:e}),new bi(et,be)}return Ze&&yt?s.apply(this,j):(et=this.thru(Te),Ze?E?et.value()[0]:et.value():et)})}),Oi(["pop","push","shift","sort","splice","unshift"],function(s){var u=$f[s],p=/^(?:push|sort|unshift)$/.test(s)?"tap":"thru",E=/^(?:pop|shift)$/.test(s);P.prototype[s]=function(){var S=arguments;if(E&&!this.__chain__){var L=this.value();return u.apply(ft(L)?L:[],S)}return this[p](function(k){return u.apply(ft(k)?k:[],S)})}}),Fa(bt.prototype,function(s,u){var p=P[u];if(p){var E=p.name+"";sn.call(nl,E)||(nl[E]=[]),nl[E].push({name:u,func:p})}}),nl[pm(e,U).name]=[{name:"wrapper",func:e}],bt.prototype.clone=pG,bt.prototype.reverse=fG,bt.prototype.value=mG,P.prototype.at=KQ,P.prototype.chain=GQ,P.prototype.commit=$Q,P.prototype.next=QQ,P.prototype.plant=JQ,P.prototype.reverse=HQ,P.prototype.toJSON=P.prototype.valueOf=P.prototype.value=zQ,P.prototype.first=P.prototype.head,vd&&(P.prototype[vd]=YQ),P},Zo=$K();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(dr._=Zo,define(function(){return Zo})):Mu?((Mu.exports=Zo)._=Zo,Hh._=Zo):dr._=Zo}).call(ld)});var Q1=F(qc=>{"use strict";m();T();N();Object.defineProperty(qc,"__esModule",{value:!0});qc.FederationFactory=void 0;qc.federateSubgraphs=Bde;qc.federateSubgraphsWithContracts=Ude;qc.federateSubgraphsContract=kde;var Re=Se(),V1=yu(),Qr=Rr(),Pe=Gi(),Mc=rT(),xc=id(),Yr=uf(),ch=IE(),Tf=Iu(),Fde=qD(),wde=cf(),K1=Up(),ge=Bl(),Lde=KD(),G1=j1(),dd=uh(),ve=sr(),lh=wl(),Ne=Pr(),Cde=lf(),wu=kp(),ph,$1,dh=class{constructor({authorizationDataByParentTypeName:t,concreteTypeNamesByAbstractTypeName:n,disableResolvabilityValidation:r,entityDataByTypeName:i,entityInterfaceFederationDataByTypeName:a,fieldCoordsByNamedTypeName:o,internalGraph:c,internalSubgraphBySubgraphName:l,warnings:d}){cl(this,ph);_(this,"authorizationDataByParentTypeName");_(this,"coordsByNamedTypeName",new Map);_(this,"disableResolvabilityValidation",!1);_(this,"clientDefinitions",[]);_(this,"currentSubgraphName","");_(this,"concreteTypeNamesByAbstractTypeName");_(this,"subgraphNamesByNamedTypeNameByFieldCoords",new Map);_(this,"entityDataByTypeName");_(this,"entityInterfaceFederationDataByTypeName");_(this,"errors",[]);_(this,"fieldConfigurationByFieldCoords",new Map);_(this,"fieldCoordsByNamedTypeName");_(this,"inaccessibleCoords",new Set);_(this,"inaccessibleRequiredInputValueErrorByCoords",new Map);_(this,"internalGraph");_(this,"internalSubgraphBySubgraphName");_(this,"invalidORScopesCoords",new Set);_(this,"isMaxDepth",!1);_(this,"isVersionTwo",!1);_(this,"namedInputValueTypeNames",new Set);_(this,"namedOutputTypeNames",new Set);_(this,"parentDefinitionDataByTypeName",new Map);_(this,"parentTagDataByTypeName",new Map);_(this,"persistedDirectiveDefinitionByDirectiveName",new Map([[ve.AUTHENTICATED,wu.AUTHENTICATED_DEFINITION],[ve.DEPRECATED,wu.DEPRECATED_DEFINITION],[ve.INACCESSIBLE,wu.INACCESSIBLE_DEFINITION],[ve.ONE_OF,wu.ONE_OF_DEFINITION],[ve.REQUIRES_SCOPES,wu.REQUIRES_SCOPES_DEFINITION],[ve.SEMANTIC_NON_NULL,wu.SEMANTIC_NON_NULL_DEFINITION],[ve.TAG,wu.TAG_DEFINITION]]));_(this,"potentialPersistedDirectiveDefinitionDataByDirectiveName",new Map);_(this,"referencedPersistedDirectiveNames",new Set);_(this,"routerDefinitions",[]);_(this,"subscriptionFilterDataByFieldPath",new Map);_(this,"tagNamesByCoords",new Map);_(this,"warnings");this.authorizationDataByParentTypeName=t,this.concreteTypeNamesByAbstractTypeName=n,this.disableResolvabilityValidation=r!=null?r:!1,this.entityDataByTypeName=i,this.entityInterfaceFederationDataByTypeName=a,this.fieldCoordsByNamedTypeName=o,this.internalGraph=c,this.internalSubgraphBySubgraphName=l,this.warnings=d}extractPersistedDirectives({data:t,directivesByName:n}){for(let[r,i]of n)if(this.persistedDirectiveDefinitionByDirectiveName.get(r)&&(this.referencedPersistedDirectiveNames.add(r),!(ve.AUTHORIZATION_DIRECTIVES.has(r)||i.length<1)))switch(r){case ve.DEPRECATED:{t.isDeprecated=!0,(0,ge.upsertDeprecatedDirective)(t,i[0]);break}case ve.TAG:{(0,ge.upsertTagDirectives)(t,i);break}default:{let o=t.directivesByDirectiveName.get(r);if(!o){t.directivesByDirectiveName.set(r,[...i]);break}if(ve.NON_REPEATABLE_PERSISTED_DIRECTIVES.has(r))break;o.push(...i)}}return t}getValidImplementedInterfaces(t){var o;let n=[];if(t.implementedInterfaceTypeNames.size<1)return n;let r=(0,ge.isNodeDataInaccessible)(t),i=new Map,a=new Map;for(let c of t.implementedInterfaceTypeNames){n.push((0,Qr.stringToNamedTypeNode)(c));let l=(0,Ne.getOrThrowError)(this.parentDefinitionDataByTypeName,c,ve.PARENT_DEFINITION_DATA);if(l.kind!==Re.Kind.INTERFACE_TYPE_DEFINITION){a.set(l.name,(0,Ne.kindToNodeType)(l.kind));continue}let d={invalidFieldImplementations:new Map,unimplementedFields:[]},f=!1;for(let[y,I]of l.fieldDataByName){let v=!1,w=t.fieldDataByName.get(y);if(!w){f=!0,d.unimplementedFields.push(y);continue}let U={invalidAdditionalArguments:new Set,invalidImplementedArguments:[],isInaccessible:!1,originalResponseType:(0,ch.printTypeNode)(I.node.type),unimplementedArguments:new Set};(0,ge.isTypeValidImplementation)(I.node.type,w.node.type,this.concreteTypeNamesByAbstractTypeName)||(f=!0,v=!0,U.implementedResponseType=(0,ch.printTypeNode)(w.node.type));let V=new Set;for(let[Y,re]of I.argumentDataByName){let ne=re.node;V.add(Y);let me=(o=w.argumentDataByName.get(Y))==null?void 0:o.node;if(!me){f=!0,v=!0,U.unimplementedArguments.add(Y);continue}let ue=(0,ch.printTypeNode)(me.type),Ae=(0,ch.printTypeNode)(ne.type);Ae!==ue&&(f=!0,v=!0,U.invalidImplementedArguments.push({actualType:ue,argumentName:Y,expectedType:Ae}))}for(let[Y,re]of w.argumentDataByName){let ne=re.node;V.has(Y)||ne.type.kind===Re.Kind.NON_NULL_TYPE&&(f=!0,v=!0,U.invalidAdditionalArguments.add(Y))}!r&&w.isInaccessible&&!I.isInaccessible&&(f=!0,v=!0,U.isInaccessible=!0),v&&d.invalidFieldImplementations.set(y,U)}f&&i.set(c,d)}return a.size>0&&this.errors.push((0,Pe.invalidImplementedTypeError)(t.name,a)),i.size>0&&this.errors.push((0,Pe.invalidInterfaceImplementationError)(t.node.name.value,(0,Ne.kindToNodeType)(t.kind),i)),n}addValidPrimaryKeyTargetsToEntityData(t){var f;let n=this.entityDataByTypeName.get(t);if(!n)return;let r=(0,Ne.getOrThrowError)(this.internalSubgraphBySubgraphName,this.currentSubgraphName,"internalSubgraphBySubgraphName"),i=r.parentDefinitionDataByTypeName,a=i.get(n.typeName);if(!a||a.kind!==Re.Kind.OBJECT_TYPE_DEFINITION)throw(0,Pe.incompatibleParentKindFatalError)(n.typeName,Re.Kind.OBJECT_TYPE_DEFINITION,(a==null?void 0:a.kind)||Re.Kind.NULL);let o=r.configurationDataByTypeName.get(n.typeName);if(!o)return;let c=[],l=this.internalGraph.nodeByNodeName.get(`${this.currentSubgraphName}.${n.typeName}`);(0,Mc.validateImplicitFieldSets)({conditionalFieldDataByCoords:r.conditionalFieldDataByCoordinates,currentSubgraphName:this.currentSubgraphName,entityData:n,implicitKeys:c,objectData:a,parentDefinitionDataByTypeName:i,graphNode:l});for(let[y,I]of this.entityInterfaceFederationDataByTypeName){if(!((f=I.concreteTypeNames)!=null&&f.has(n.typeName)))continue;let v=this.entityDataByTypeName.get(y);v&&(0,Mc.validateImplicitFieldSets)({conditionalFieldDataByCoords:r.conditionalFieldDataByCoordinates,currentSubgraphName:this.currentSubgraphName,entityData:v,implicitKeys:c,objectData:a,parentDefinitionDataByTypeName:i,graphNode:l})}if(c.length<1)return;if(!o.keys||o.keys.length<1){o.isRootNode=!0,o.keys=c;return}let d=new Set(o.keys.map(y=>y.selectionSet));for(let y of c)d.has(y.selectionSet)||(o.keys.push(y),d.add(y.selectionSet))}addValidPrimaryKeyTargetsFromInterfaceObject(t,n,r,i){let a=t.parentDefinitionDataByTypeName,o=a.get(n);if(!o||!(0,ge.isParentDataCompositeOutputType)(o))throw(0,Pe.incompatibleParentKindFatalError)(n,Re.Kind.INTERFACE_TYPE_DEFINITION,(o==null?void 0:o.kind)||Re.Kind.NULL);let c=(0,Ne.getOrThrowError)(t.configurationDataByTypeName,r.typeName,"internalSubgraph.configurationDataByTypeName"),l=[];if((0,Mc.validateImplicitFieldSets)({conditionalFieldDataByCoords:t.conditionalFieldDataByCoordinates,currentSubgraphName:t.name,entityData:r,implicitKeys:l,objectData:o,parentDefinitionDataByTypeName:a,graphNode:i}),l.length<1)return;if(!c.keys||c.keys.length<1){c.isRootNode=!0,c.keys=l;return}let d=new Set(c.keys.map(f=>f.selectionSet));for(let f of l)d.has(f.selectionSet)||(c.keys.push(f),d.add(f.selectionSet))}getEnumValueMergeMethod(t){return this.namedInputValueTypeNames.has(t)?this.namedOutputTypeNames.has(t)?ge.MergeMethod.CONSISTENT:ge.MergeMethod.INTERSECTION:ge.MergeMethod.UNION}generateTagData(){for(let[t,n]of this.tagNamesByCoords){let r=t.split(ve.PERIOD);if(r.length<1)continue;let i=(0,Ne.getValueOrDefault)(this.parentTagDataByTypeName,r[0],()=>(0,Mc.newParentTagData)(r[0]));switch(r.length){case 1:for(let l of n)i.tagNames.add(l);break;case 2:let a=(0,Ne.getValueOrDefault)(i.childTagDataByChildName,r[1],()=>(0,Mc.newChildTagData)(r[1]));for(let l of n)a.tagNames.add(l);break;case 3:let o=(0,Ne.getValueOrDefault)(i.childTagDataByChildName,r[1],()=>(0,Mc.newChildTagData)(r[1])),c=(0,Ne.getValueOrDefault)(o.tagNamesByArgumentName,r[2],()=>new Set);for(let l of n)c.add(l);break;default:break}}}upsertEnumValueData(t,n,r){let i=t.get(n.name),a=i||this.copyEnumValueData(n);this.extractPersistedDirectives({data:a.persistedDirectivesData,directivesByName:n.directivesByDirectiveName});let o=(0,ge.isNodeDataInaccessible)(n);if((r||o)&&this.inaccessibleCoords.add(a.federatedCoords),this.recordTagNamesByCoords(a,a.federatedCoords),!i){t.set(a.name,a);return}a.appearances+=1,(0,Ne.addNewObjectValueMapEntries)(n.configureDescriptionDataBySubgraphName,a.configureDescriptionDataBySubgraphName),(0,ge.setLongestDescription)(a,n),(0,Ne.addIterableToSet)({source:n.subgraphNames,target:a.subgraphNames})}upsertInputValueData(t,n,r,i){let a=t.get(n.name),o=a||this.copyInputValueData(n);if(this.extractPersistedDirectives({data:o.persistedDirectivesData,directivesByName:n.directivesByDirectiveName}),this.recordTagNamesByCoords(o,`${r}.${o.name}`),this.namedInputValueTypeNames.add(o.namedTypeName),(0,Ne.getValueOrDefault)(this.coordsByNamedTypeName,o.namedTypeName,()=>new Set).add(o.federatedCoords),!a){t.set(o.name,o);return}(0,Ne.addNewObjectValueMapEntries)(n.configureDescriptionDataBySubgraphName,o.configureDescriptionDataBySubgraphName),(0,ge.setLongestDescription)(o,n),(0,Ne.addIterableToSet)({source:n.requiredSubgraphNames,target:o.requiredSubgraphNames}),(0,Ne.addIterableToSet)({source:n.subgraphNames,target:o.subgraphNames}),this.handleInputValueInaccessibility(i,o,r);let c=(0,dd.getMostRestrictiveMergedTypeNode)(o.type,n.type,o.originalCoords,this.errors);c.success?o.type=c.typeNode:this.errors.push((0,Pe.incompatibleMergedTypesError)({actualType:c.actualType,isArgument:a.isArgument,coords:a.federatedCoords,expectedType:c.expectedType})),(0,ge.compareAndValidateInputValueDefaultValues)(o,n,this.errors)}handleInputValueInaccessibility(t,n,r){if(t){this.inaccessibleRequiredInputValueErrorByCoords.delete(n.federatedCoords),this.inaccessibleCoords.add(n.federatedCoords);return}if((0,ge.isNodeDataInaccessible)(n)){if((0,ge.isTypeRequired)(n.type)){this.inaccessibleRequiredInputValueErrorByCoords.set(n.federatedCoords,(0,Pe.inaccessibleRequiredInputValueError)(n,r));return}this.inaccessibleCoords.add(n.federatedCoords)}}handleSubscriptionFilterDirective(t,n){let r=t.directivesByDirectiveName.get(ve.SUBSCRIPTION_FILTER);if(!r)return;let i=(0,Ne.getFirstEntry)(t.subgraphNames);if(i===void 0){this.errors.push((0,Pe.unknownFieldSubgraphNameError)(t.federatedCoords));return}this.subscriptionFilterDataByFieldPath.set(t.federatedCoords,{directive:r[0],fieldData:n||t,directiveSubgraphName:i})}federateOutputType({current:t,other:n,coords:r,mostRestrictive:i}){n=(0,V1.getMutableTypeNode)(n,r,this.errors);let a={kind:t.kind},o=dd.DivergentType.NONE,c=a;for(let l=0;lnew Set)})}upsertFieldData(t,n,r){let i=t.get(n.name),a=i||this.copyFieldData(n,r||(0,ge.isNodeDataInaccessible)(n));(0,Ne.getValueOrDefault)(this.coordsByNamedTypeName,n.namedTypeName,()=>new Set).add(a.federatedCoords),this.namedOutputTypeNames.add(n.namedTypeName),this.handleSubscriptionFilterDirective(n,a),this.extractPersistedDirectives({data:a.persistedDirectivesData,directivesByName:n.directivesByDirectiveName});let o=r||(0,ge.isNodeDataInaccessible)(a);if(o&&this.inaccessibleCoords.add(a.federatedCoords),this.recordTagNamesByCoords(a,a.federatedCoords),!i){t.set(a.name,a);return}let c=this.federateOutputType({current:a.type,other:n.type,coords:a.federatedCoords,mostRestrictive:!1});if(c.success)if(a.type=c.typeNode,a.namedTypeName!==n.namedTypeName){let l=(0,Ne.getValueOrDefault)(this.subgraphNamesByNamedTypeNameByFieldCoords,a.federatedCoords,()=>new Map),d=(0,Ne.getValueOrDefault)(l,a.namedTypeName,()=>new Set);if(d.size<1)for(let f of a.subgraphNames)n.subgraphNames.has(f)||d.add(f);(0,Ne.addIterableToSet)({source:n.subgraphNames,target:(0,Ne.getValueOrDefault)(l,n.namedTypeName,()=>new Set)})}else this.addSubgraphNameToExistingFieldNamedTypeDisparity(n);for(let l of n.argumentDataByName.values())this.upsertInputValueData(a.argumentDataByName,l,a.federatedCoords,o);(0,Ne.addNewObjectValueMapEntries)(n.configureDescriptionDataBySubgraphName,i.configureDescriptionDataBySubgraphName),(0,ge.setLongestDescription)(a,n),a.isInaccessible||(a.isInaccessible=n.isInaccessible),(0,Ne.addNewObjectValueMapEntries)(n.externalFieldDataBySubgraphName,a.externalFieldDataBySubgraphName),(0,Ne.addMapEntries)({source:n.isShareableBySubgraphName,target:a.isShareableBySubgraphName}),(0,Ne.addMapEntries)({source:n.nullLevelsBySubgraphName,target:a.nullLevelsBySubgraphName}),(0,Ne.addIterableToSet)({source:n.subgraphNames,target:a.subgraphNames})}getClientSchemaUnionMembers(t){let n=[];for(let[r,i]of t.memberByMemberTypeName)this.inaccessibleCoords.has(r)||n.push(i);return n}recordTagNamesByCoords(t,n){let r=n||t.name;if(t.persistedDirectivesData.tagDirectiveByName.size<1)return;let i=(0,Ne.getValueOrDefault)(this.tagNamesByCoords,r,()=>new Set);for(let a of t.persistedDirectivesData.tagDirectiveByName.keys())i.add(a)}copyMutualParentDefinitionData(t){return{configureDescriptionDataBySubgraphName:(0,Ne.copyObjectValueMap)(t.configureDescriptionDataBySubgraphName),directivesByDirectiveName:(0,Ne.copyArrayValueMap)(t.directivesByDirectiveName),extensionType:t.extensionType,name:t.name,persistedDirectivesData:this.extractPersistedDirectives({data:(0,ge.newPersistedDirectivesData)(),directivesByName:t.directivesByDirectiveName}),description:(0,ge.getInitialFederatedDescription)(t)}}copyEnumValueData(t){return{appearances:t.appearances,configureDescriptionDataBySubgraphName:(0,Ne.copyObjectValueMap)(t.configureDescriptionDataBySubgraphName),federatedCoords:t.federatedCoords,directivesByDirectiveName:(0,Ne.copyArrayValueMap)(t.directivesByDirectiveName),kind:t.kind,name:t.name,node:{directives:[],kind:t.kind,name:(0,Qr.stringToNameNode)(t.name)},parentTypeName:t.parentTypeName,persistedDirectivesData:this.extractPersistedDirectives({data:(0,ge.newPersistedDirectivesData)(),directivesByName:t.directivesByDirectiveName}),subgraphNames:new Set(t.subgraphNames),description:(0,ge.getInitialFederatedDescription)(t)}}copyInputValueData(t){return{configureDescriptionDataBySubgraphName:(0,Ne.copyObjectValueMap)(t.configureDescriptionDataBySubgraphName),directivesByDirectiveName:(0,Ne.copyArrayValueMap)(t.directivesByDirectiveName),federatedCoords:t.federatedCoords,fieldName:t.fieldName,includeDefaultValue:t.includeDefaultValue,isArgument:t.isArgument,kind:t.kind,name:t.name,namedTypeKind:t.namedTypeKind,namedTypeName:t.namedTypeName,node:{directives:[],kind:Re.Kind.INPUT_VALUE_DEFINITION,name:(0,Qr.stringToNameNode)(t.name),type:t.type},originalCoords:t.originalCoords,originalParentTypeName:t.originalParentTypeName,persistedDirectivesData:this.extractPersistedDirectives({data:(0,ge.newPersistedDirectivesData)(),directivesByName:t.directivesByDirectiveName}),renamedParentTypeName:t.renamedParentTypeName,requiredSubgraphNames:new Set(t.requiredSubgraphNames),subgraphNames:new Set(t.subgraphNames),type:t.type,defaultValue:t.defaultValue,description:(0,ge.getInitialFederatedDescription)(t)}}copyInputValueDataByValueName(t,n,r){let i=new Map;for(let[a,o]of t){let c=this.copyInputValueData(o);this.handleInputValueInaccessibility(n,c,r),(0,Ne.getValueOrDefault)(this.coordsByNamedTypeName,c.namedTypeName,()=>new Set).add(c.federatedCoords),this.namedInputValueTypeNames.add(c.namedTypeName),this.recordTagNamesByCoords(c,`${r}.${o.name}`),i.set(a,c)}return i}copyFieldData(t,n){return{argumentDataByName:this.copyInputValueDataByValueName(t.argumentDataByName,n,t.federatedCoords),configureDescriptionDataBySubgraphName:(0,Ne.copyObjectValueMap)(t.configureDescriptionDataBySubgraphName),directivesByDirectiveName:(0,Ne.copyArrayValueMap)(t.directivesByDirectiveName),externalFieldDataBySubgraphName:(0,Ne.copyObjectValueMap)(t.externalFieldDataBySubgraphName),federatedCoords:t.federatedCoords,inheritedDirectiveNames:new Set,isInaccessible:t.isInaccessible,isShareableBySubgraphName:new Map(t.isShareableBySubgraphName),kind:t.kind,name:t.name,namedTypeKind:t.namedTypeKind,namedTypeName:t.namedTypeName,node:{arguments:[],directives:[],kind:t.kind,name:(0,Qr.stringToNameNode)(t.name),type:t.type},nullLevelsBySubgraphName:t.nullLevelsBySubgraphName,originalParentTypeName:t.originalParentTypeName,persistedDirectivesData:this.extractPersistedDirectives({data:(0,ge.newPersistedDirectivesData)(),directivesByName:t.directivesByDirectiveName}),renamedParentTypeName:t.renamedParentTypeName,subgraphNames:new Set(t.subgraphNames),type:t.type,description:(0,ge.getInitialFederatedDescription)(t)}}copyEnumValueDataByName(t,n){let r=new Map;for(let[i,a]of t){let o=this.copyEnumValueData(a);this.recordTagNamesByCoords(o,o.federatedCoords),(n||(0,ge.isNodeDataInaccessible)(o))&&this.inaccessibleCoords.add(o.federatedCoords),r.set(i,o)}return r}copyFieldDataByName(t,n){let r=new Map;for(let[i,a]of t){let o=n||(0,ge.isNodeDataInaccessible)(a),c=this.copyFieldData(a,o);this.handleSubscriptionFilterDirective(c),(0,Ne.getValueOrDefault)(this.coordsByNamedTypeName,c.namedTypeName,()=>new Set).add(c.federatedCoords),this.namedOutputTypeNames.add(c.namedTypeName),this.recordTagNamesByCoords(c,c.federatedCoords),o&&this.inaccessibleCoords.add(c.federatedCoords),r.set(i,c)}return r}copyParentDefinitionData(t){let n=this.copyMutualParentDefinitionData(t);switch(t.kind){case Re.Kind.ENUM_TYPE_DEFINITION:return $(M({},n),{appearances:t.appearances,enumValueDataByName:this.copyEnumValueDataByName(t.enumValueDataByName,t.isInaccessible),isInaccessible:t.isInaccessible,kind:t.kind,node:{kind:t.kind,name:(0,Qr.stringToNameNode)(t.name)},subgraphNames:new Set(t.subgraphNames)});case Re.Kind.INPUT_OBJECT_TYPE_DEFINITION:return $(M({},n),{inputValueDataByName:this.copyInputValueDataByValueName(t.inputValueDataByName,t.isInaccessible,t.name),isInaccessible:t.isInaccessible,kind:t.kind,node:{kind:t.kind,name:(0,Qr.stringToNameNode)(t.name)},subgraphNames:new Set(t.subgraphNames)});case Re.Kind.INTERFACE_TYPE_DEFINITION:return $(M({},n),{fieldDataByName:this.copyFieldDataByName(t.fieldDataByName,t.isInaccessible),implementedInterfaceTypeNames:new Set(t.implementedInterfaceTypeNames),isEntity:t.isEntity,isInaccessible:t.isInaccessible,kind:t.kind,node:{kind:t.kind,name:(0,Qr.stringToNameNode)(t.name)},requireFetchReasonsFieldNames:new Set,subgraphNames:new Set(t.subgraphNames)});case Re.Kind.OBJECT_TYPE_DEFINITION:return $(M({},n),{fieldDataByName:this.copyFieldDataByName(t.fieldDataByName,t.isInaccessible),implementedInterfaceTypeNames:new Set(t.implementedInterfaceTypeNames),isEntity:t.isEntity,isInaccessible:t.isInaccessible,isRootType:t.isRootType,kind:t.kind,node:{kind:t.kind,name:(0,Qr.stringToNameNode)(t.renamedTypeName||t.name)},requireFetchReasonsFieldNames:new Set,renamedTypeName:t.renamedTypeName,subgraphNames:new Set(t.subgraphNames)});case Re.Kind.SCALAR_TYPE_DEFINITION:return $(M({},n),{kind:t.kind,node:{kind:t.kind,name:(0,Qr.stringToNameNode)(t.name)},subgraphNames:new Set(t.subgraphNames)});case Re.Kind.UNION_TYPE_DEFINITION:return $(M({},n),{kind:t.kind,node:{kind:t.kind,name:(0,Qr.stringToNameNode)(t.name)},memberByMemberTypeName:new Map(t.memberByMemberTypeName),subgraphNames:new Set(t.subgraphNames)})}}getParentTargetData({existingData:t,incomingData:n}){if(!t){let r=this.copyParentDefinitionData(n);return(0,ge.isParentDataRootType)(r)&&(r.extensionType=K1.ExtensionType.NONE),r}return this.extractPersistedDirectives({data:t.persistedDirectivesData,directivesByName:n.directivesByDirectiveName}),t}upsertParentDefinitionData(t,n){let r=this.entityInterfaceFederationDataByTypeName.get(t.name),i=this.parentDefinitionDataByTypeName.get(t.name),a=this.getParentTargetData({existingData:i,incomingData:t});this.recordTagNamesByCoords(a);let o=(0,ge.isNodeDataInaccessible)(a);if(o&&this.inaccessibleCoords.add(a.name),r&&r.interfaceObjectSubgraphNames.has(n)){if(i&&i.kind!==Re.Kind.INTERFACE_TYPE_DEFINITION){this.errors.push((0,Pe.incompatibleParentTypeMergeError)({existingData:i,incomingSubgraphName:n}));return}a.kind=Re.Kind.INTERFACE_TYPE_DEFINITION,a.node.kind=Re.Kind.INTERFACE_TYPE_DEFINITION}if(!i){this.parentDefinitionDataByTypeName.set(a.name,a);return}if(a.kind!==t.kind&&(!r||!r.interfaceObjectSubgraphNames.has(n)||a.kind!==Re.Kind.INTERFACE_TYPE_DEFINITION||t.kind!==Re.Kind.OBJECT_TYPE_DEFINITION)){this.errors.push((0,Pe.incompatibleParentTypeMergeError)({existingData:a,incomingNodeType:(0,Ne.kindToNodeType)(t.kind),incomingSubgraphName:n}));return}switch((0,Ne.addNewObjectValueMapEntries)(t.configureDescriptionDataBySubgraphName,a.configureDescriptionDataBySubgraphName),(0,ge.setLongestDescription)(a,t),(0,ge.setParentDataExtensionType)(a,t),a.kind){case Re.Kind.ENUM_TYPE_DEFINITION:if(!(0,ge.areKindsEqual)(a,t))return;a.appearances+=1,a.isInaccessible||(a.isInaccessible=o),(0,Ne.addIterableToSet)({source:t.subgraphNames,target:a.subgraphNames});for(let l of t.enumValueDataByName.values())this.upsertEnumValueData(a.enumValueDataByName,l,o);return;case Re.Kind.INPUT_OBJECT_TYPE_DEFINITION:if(!(0,ge.areKindsEqual)(a,t))return;o&&!a.isInaccessible&&this.propagateInaccessibilityToExistingChildren(a),a.isInaccessible||(a.isInaccessible=o),(0,Ne.addIterableToSet)({source:t.subgraphNames,target:a.subgraphNames});for(let l of t.inputValueDataByName.values())this.upsertInputValueData(a.inputValueDataByName,l,a.name,a.isInaccessible);return;case Re.Kind.INTERFACE_TYPE_DEFINITION:case Re.Kind.OBJECT_TYPE_DEFINITION:let c=t;o&&!a.isInaccessible&&this.propagateInaccessibilityToExistingChildren(a),a.isInaccessible||(a.isInaccessible=o),(0,Ne.addIterableToSet)({source:c.implementedInterfaceTypeNames,target:a.implementedInterfaceTypeNames}),(0,Ne.addIterableToSet)({source:c.subgraphNames,target:a.subgraphNames});for(let l of c.fieldDataByName.values())this.upsertFieldData(a.fieldDataByName,l,a.isInaccessible);return;case Re.Kind.UNION_TYPE_DEFINITION:if(!(0,ge.areKindsEqual)(a,t))return;(0,Ne.addMapEntries)({source:t.memberByMemberTypeName,target:a.memberByMemberTypeName}),(0,Ne.addIterableToSet)({source:t.subgraphNames,target:a.subgraphNames});return;default:(0,Ne.addIterableToSet)({source:t.subgraphNames,target:a.subgraphNames});return}}propagateInaccessibilityToExistingChildren(t){switch(t.kind){case Re.Kind.INPUT_OBJECT_TYPE_DEFINITION:for(let n of t.inputValueDataByName.values())this.inaccessibleCoords.add(n.federatedCoords);break;default:for(let n of t.fieldDataByName.values()){this.inaccessibleCoords.add(n.federatedCoords);for(let r of n.argumentDataByName.values())this.inaccessibleCoords.add(r.federatedCoords)}}}upsertPersistedDirectiveDefinitionData(t,n){let r=t.name,i=this.potentialPersistedDirectiveDefinitionDataByDirectiveName.get(r);if(!i){if(n>1)return;let a=new Map;for(let o of t.argumentDataByName.values())this.namedInputValueTypeNames.add(o.namedTypeName),this.upsertInputValueData(a,o,`@${t.name}`,!1);this.potentialPersistedDirectiveDefinitionDataByDirectiveName.set(r,{argumentDataByName:a,executableLocations:new Set(t.executableLocations),name:r,repeatable:t.repeatable,subgraphNames:new Set(t.subgraphNames),description:t.description});return}if(i.subgraphNames.size+1!==n){this.potentialPersistedDirectiveDefinitionDataByDirectiveName.delete(r);return}if((0,ge.setMutualExecutableLocations)(i,t.executableLocations),i.executableLocations.size<1){this.potentialPersistedDirectiveDefinitionDataByDirectiveName.delete(r);return}for(let a of t.argumentDataByName.values())this.namedInputValueTypeNames.add((0,V1.getTypeNodeNamedTypeName)(a.type)),this.upsertInputValueData(i.argumentDataByName,a,`@${i.name}`,!1);(0,ge.setLongestDescription)(i,t),i.repeatable&&(i.repeatable=t.repeatable),(0,Ne.addIterableToSet)({source:t.subgraphNames,target:i.subgraphNames})}shouldUpdateFederatedFieldAbstractNamedType(t,n){if(!t)return!1;let r=this.concreteTypeNamesByAbstractTypeName.get(t);if(!r||r.size<1)return!1;for(let i of n)if(!r.has(i))return!1;return!0}updateTypeNodeNamedType(t,n){let r=t;for(let i=0;i1){this.errors.push((0,Pe.incompatibleFederatedFieldNamedTypeError)(t,n));continue}break}case Re.Kind.UNION_TYPE_DEFINITION:{if(l){this.errors.push((0,Pe.incompatibleFederatedFieldNamedTypeError)(t,n));continue}l=f;break}default:{this.errors.push((0,Pe.incompatibleFederatedFieldNamedTypeError)(t,n));break}}}if(o.size<1&&!l){this.errors.push((0,Pe.incompatibleFederatedFieldNamedTypeError)(t,n));continue}let d=l;if(o.size>0){if(l){this.errors.push((0,Pe.incompatibleFederatedFieldNamedTypeError)(t,n));continue}for(let f of o.keys()){d=f;for(let[y,I]of o)if(f!==y&&!I.implementedInterfaceTypeNames.has(f)){d="";break}if(d)break}}if(!this.shouldUpdateFederatedFieldAbstractNamedType(d,c)){this.errors.push((0,Pe.incompatibleFederatedFieldNamedTypeError)(t,n));continue}a.namedTypeName=d,this.updateTypeNodeNamedType(a.type,d)}}federateInternalSubgraphData(){let t=0,n=!1;for(let r of this.internalSubgraphBySubgraphName.values()){t+=1,this.currentSubgraphName=r.name,this.isVersionTwo||(this.isVersionTwo=r.isVersionTwo),(0,Lde.renameRootTypes)(this,r);for(let i of r.parentDefinitionDataByTypeName.values())this.upsertParentDefinitionData(i,r.name);if(!n){if(!r.persistedDirectiveDefinitionDataByDirectiveName.size){n=!0;continue}for(let i of r.persistedDirectiveDefinitionDataByDirectiveName.values())this.upsertPersistedDirectiveDefinitionData(i,t);this.potentialPersistedDirectiveDefinitionDataByDirectiveName.size<1&&(n=!0)}}this.handleDisparateFieldNamedTypes()}handleInterfaceObjectForInternalGraph({entityData:t,internalSubgraph:n,interfaceObjectData:r,interfaceObjectNode:i,resolvableKeyFieldSets:a,subgraphName:o}){let c=this.internalGraph.addOrUpdateNode(t.typeName),l=this.internalGraph.addEntityDataNode(t.typeName);for(let f of i.satisfiedFieldSets)c.satisfiedFieldSets.add(f),a.has(f)&&l.addTargetSubgraphByFieldSet(f,o);let d=r.fieldDatasBySubgraphName.get(o);for(let{name:f,namedTypeName:y}of d||[])this.internalGraph.addEdge(c,this.internalGraph.addOrUpdateNode(y),f);this.internalGraph.addEdge(i,c,t.typeName,!0),this.addValidPrimaryKeyTargetsFromInterfaceObject(n,i.typeName,t,c)}handleEntityInterfaces(){var t;for(let[n,r]of this.entityInterfaceFederationDataByTypeName){let i=(0,Ne.getOrThrowError)(this.parentDefinitionDataByTypeName,n,ve.PARENT_DEFINITION_DATA);if(i.kind===Re.Kind.INTERFACE_TYPE_DEFINITION)for(let a of r.interfaceObjectSubgraphNames){let o=(0,Ne.getOrThrowError)(this.internalSubgraphBySubgraphName,a,"internalSubgraphBySubgraphName"),c=o.configurationDataByTypeName,l=this.concreteTypeNamesByAbstractTypeName.get(n);if(!l)continue;let d=(0,Ne.getOrThrowError)(c,n,"configurationDataByTypeName"),f=d.keys;if(!f)continue;d.entityInterfaceConcreteTypeNames=new Set(r.concreteTypeNames),this.internalGraph.setSubgraphName(a);let y=this.internalGraph.addOrUpdateNode(n,{isAbstract:!0});for(let I of l){let v=(0,Ne.getOrThrowError)(this.parentDefinitionDataByTypeName,I,ve.PARENT_DEFINITION_DATA);if(!(0,Yr.isObjectDefinitionData)(v))continue;let w=(0,Ne.getOrThrowError)(this.entityDataByTypeName,I,"entityDataByTypeName");w.subgraphNames.add(a);let U=c.get(I);if(U)if((0,Ne.addIterableToSet)({source:d.fieldNames,target:U.fieldNames}),!U.keys)U.keys=[...f];else e:for(let ne of f){for(let{selectionSet:me}of U.keys)if(ne.selectionSet===me)continue e;U.keys.push(ne)}else c.set(I,{fieldNames:new Set(d.fieldNames),isRootNode:!0,keys:[...f],typeName:I});let V=new Set;for(let ne of f.filter(me=>!me.disableEntityResolver))V.add(ne.selectionSet);let Y=this.authorizationDataByParentTypeName.get(n),re=(0,Ne.getOrThrowError)(o.parentDefinitionDataByTypeName,n,"internalSubgraph.parentDefinitionDataByTypeName");if((0,Yr.isObjectDefinitionData)(re)){for(let[ne,me]of re.fieldDataByName){let ue=`${I}.${ne}`;(0,Ne.getValueOrDefault)(this.fieldCoordsByNamedTypeName,me.namedTypeName,()=>new Set).add(ue);let Ae=Y==null?void 0:Y.fieldAuthDataByFieldName.get(ne);if(Ae){let X=(0,Ne.getValueOrDefault)(this.authorizationDataByParentTypeName,I,()=>(0,Yr.newAuthorizationData)(I));(0,Yr.upsertFieldAuthorizationData)(X.fieldAuthDataByFieldName,Ae)||this.invalidORScopesCoords.add(ue)}let Me=v.fieldDataByName.get(ne);if(Me){let X=(t=me.isShareableBySubgraphName.get(a))!=null?t:!1;Me.isShareableBySubgraphName.set(a,X),Me.subgraphNames.add(a);let _e=me.externalFieldDataBySubgraphName.get(a);if(!_e)continue;Me.externalFieldDataBySubgraphName.set(a,M({},_e));continue}let nt=i.isInaccessible||v.isInaccessible||me.isInaccessible;v.fieldDataByName.set(ne,this.copyFieldData(me,nt))}this.handleInterfaceObjectForInternalGraph({internalSubgraph:o,subgraphName:a,interfaceObjectData:r,interfaceObjectNode:y,resolvableKeyFieldSets:V,entityData:w})}}}}}fieldDataToGraphFieldData(t){var n;return{name:t.name,namedTypeName:t.namedTypeName,isLeaf:(0,Yr.isNodeLeaf)((n=this.parentDefinitionDataByTypeName.get(t.namedTypeName))==null?void 0:n.kind),subgraphNames:t.subgraphNames}}getValidFlattenedPersistedDirectiveNodeArray(t){var i;let n=(0,Yr.getNodeCoords)(t),r=[];for(let[a,o]of t.persistedDirectivesData.directivesByDirectiveName){if(a===ve.SEMANTIC_NON_NULL&&(0,ge.isFieldData)(t)){r.push((0,Ne.generateSemanticNonNullDirective)((i=(0,Ne.getFirstEntry)(t.nullLevelsBySubgraphName))!=null?i:new Set([0])));continue}let c=this.persistedDirectiveDefinitionByDirectiveName.get(a);if(c){if(o.length<2){r.push(...o);continue}if(!c.repeatable){this.errors.push((0,Pe.invalidRepeatedFederatedDirectiveErrorMessage)(a,n));continue}r.push(...o)}}return r}getRouterPersistedDirectiveNodes(t){let n=[...t.persistedDirectivesData.tagDirectiveByName.values()];return t.persistedDirectivesData.isDeprecated&&n.push((0,ge.generateDeprecatedDirective)(t.persistedDirectivesData.deprecatedReason)),n.push(...this.getValidFlattenedPersistedDirectiveNodeArray(t)),n}getFederatedGraphNodeDescription(t){if(t.configureDescriptionDataBySubgraphName.size<1)return t.description;let n=[],r="";for(let[i,{propagate:a,description:o}]of t.configureDescriptionDataBySubgraphName)a&&(n.push(i),r=o);if(n.length===1)return(0,Mc.getDescriptionFromString)(r);if(n.length<1)return t.description;this.errors.push((0,Pe.configureDescriptionPropagationError)((0,ge.getDefinitionDataCoords)(t,!0),n))}getNodeForRouterSchemaByData(t){return t.node.name=(0,Qr.stringToNameNode)(t.name),t.node.description=this.getFederatedGraphNodeDescription(t),t.node.directives=this.getRouterPersistedDirectiveNodes(t),t.node}getNodeWithPersistedDirectivesByInputValueData(t){return t.node.name=(0,Qr.stringToNameNode)(t.name),t.node.type=t.type,t.node.description=this.getFederatedGraphNodeDescription(t),t.node.directives=this.getRouterPersistedDirectiveNodes(t),t.includeDefaultValue&&(t.node.defaultValue=t.defaultValue),t.node}getValidFieldArgumentNodes(t){let n=[],r=[],i=[],a=`${t.renamedParentTypeName}.${t.name}`;for(let[o,c]of t.argumentDataByName)t.subgraphNames.size===c.subgraphNames.size?(r.push(o),n.push(this.getNodeWithPersistedDirectivesByInputValueData(c))):(0,ge.isTypeRequired)(c.type)&&i.push({inputValueName:o,missingSubgraphs:(0,Ne.getEntriesNotInHashSet)(t.subgraphNames,c.subgraphNames),requiredSubgraphs:[...c.requiredSubgraphNames]});return i.length>0?this.errors.push((0,Pe.invalidRequiredInputValueError)(ve.FIELD,a,i)):r.length>0&&((0,Ne.getValueOrDefault)(this.fieldConfigurationByFieldCoords,a,()=>({argumentNames:r,fieldName:t.name,typeName:t.renamedParentTypeName})).argumentNames=r),n}getNodeWithPersistedDirectivesByFieldData(t,n){return t.node.arguments=n,t.node.name=(0,Qr.stringToNameNode)(t.name),t.node.type=t.type,t.node.description=this.getFederatedGraphNodeDescription(t),t.node.directives=this.getRouterPersistedDirectiveNodes(t),t.node}validateSemanticNonNull(t){let n;for(let r of t.nullLevelsBySubgraphName.values()){if(!n){n=r;continue}if(n.size!==r.size){this.errors.push((0,Pe.semanticNonNullInconsistentLevelsError)(t));return}for(let i of r)if(!n.has(i)){this.errors.push((0,Pe.semanticNonNullInconsistentLevelsError)(t));return}}}validateOneOfDirective({data:t,inputValueNodes:n,requiredFieldNames:r}){return t.directivesByDirectiveName.has(ve.ONE_OF)?r.size>0?(this.errors.push((0,Pe.oneOfRequiredFieldsError)({requiredFieldNames:Array.from(r),typeName:t.name})),!1):(n.length===1&&this.warnings.push((0,Cde.singleFederatedInputFieldOneOfWarning)({fieldName:n[0].name.value,typeName:t.name})),!0):!0}pushParentDefinitionDataToDocumentDefinitions(t){for(let[n,r]of this.parentDefinitionDataByTypeName)switch(r.extensionType!==K1.ExtensionType.NONE&&this.errors.push((0,Pe.noBaseDefinitionForExtensionError)((0,Ne.kindToNodeType)(r.kind),n)),r.kind){case Re.Kind.ENUM_TYPE_DEFINITION:{if(xc.IGNORED_FEDERATED_TYPE_NAMES.has(n))break;let i=[],a=[],o=this.getEnumValueMergeMethod(n);(0,ge.propagateAuthDirectives)(r,this.authorizationDataByParentTypeName.get(n));for(let c of r.enumValueDataByName.values()){let l=this.getNodeForRouterSchemaByData(c),d=(0,ge.isNodeDataInaccessible)(c),f=$(M({},c.node),{directives:(0,ge.getClientPersistedDirectiveNodes)(c)});switch(o){case ge.MergeMethod.CONSISTENT:!d&&r.appearances>c.appearances&&this.errors.push((0,Pe.incompatibleSharedEnumError)(n)),i.push(l),d||a.push(f);break;case ge.MergeMethod.INTERSECTION:r.appearances===c.appearances&&(i.push(l),d||a.push(f));break;default:i.push(l),d||a.push(f);break}}if(r.node.values=i,this.routerDefinitions.push(this.getNodeForRouterSchemaByData(r)),(0,ge.isNodeDataInaccessible)(r)){this.validateReferencesOfInaccessibleType(r),this.internalGraph.setNodeInaccessible(r.name);break}if(a.length<1){this.errors.push((0,Pe.allChildDefinitionsAreInaccessibleError)((0,Ne.kindToNodeType)(r.kind),n,ve.ENUM_VALUE));break}this.clientDefinitions.push($(M({},r.node),{directives:(0,ge.getClientPersistedDirectiveNodes)(r),values:a}));break}case Re.Kind.INPUT_OBJECT_TYPE_DEFINITION:{if(xc.IGNORED_FEDERATED_TYPE_NAMES.has(n))break;let i=new Array,a=new Array,o=new Array,c=new Set;for(let[l,d]of r.inputValueDataByName)if((0,ge.isTypeRequired)(d.type)&&c.add(l),r.subgraphNames.size===d.subgraphNames.size){if(a.push(this.getNodeWithPersistedDirectivesByInputValueData(d)),(0,ge.isNodeDataInaccessible)(d))continue;o.push($(M({},d.node),{directives:(0,ge.getClientPersistedDirectiveNodes)(d)}))}else(0,ge.isTypeRequired)(d.type)&&i.push({inputValueName:l,missingSubgraphs:(0,Ne.getEntriesNotInHashSet)(r.subgraphNames,d.subgraphNames),requiredSubgraphs:[...d.requiredSubgraphNames]});if(i.length>0){this.errors.push((0,Pe.invalidRequiredInputValueError)(ve.INPUT_OBJECT,n,i,!1));break}if(!this.validateOneOfDirective({data:r,inputValueNodes:a,requiredFieldNames:c}))break;if(r.node.fields=a,this.routerDefinitions.push(this.getNodeForRouterSchemaByData(r)),(0,ge.isNodeDataInaccessible)(r)){this.validateReferencesOfInaccessibleType(r);break}if(o.length<1){this.errors.push((0,Pe.allChildDefinitionsAreInaccessibleError)((0,Ne.kindToNodeType)(r.kind),n,"Input field"));break}this.clientDefinitions.push($(M({},r.node),{directives:(0,ge.getClientPersistedDirectiveNodes)(r),fields:o}));break}case Re.Kind.INTERFACE_TYPE_DEFINITION:case Re.Kind.OBJECT_TYPE_DEFINITION:{let i=[],a=[],o=new Map,c=(0,ge.newInvalidFieldNames)(),l=r.kind===Re.Kind.OBJECT_TYPE_DEFINITION,d=this.authorizationDataByParentTypeName.get(n);(0,ge.propagateAuthDirectives)(r,d);for(let[y,I]of r.fieldDataByName){(0,ge.propagateFieldAuthDirectives)(I,d);let v=this.getValidFieldArgumentNodes(I);l&&(0,ge.validateExternalAndShareable)(I,c),this.validateSemanticNonNull(I),i.push(this.getNodeWithPersistedDirectivesByFieldData(I,v)),!(0,ge.isNodeDataInaccessible)(I)&&(a.push((0,ge.getClientSchemaFieldNodeByFieldData)(I)),o.set(y,this.fieldDataToGraphFieldData(I)))}if(l&&(c.byShareable.size>0&&this.errors.push((0,Pe.invalidFieldShareabilityError)(r,c.byShareable)),c.subgraphNamesByExternalFieldName.size>0&&this.errors.push((0,Pe.allExternalFieldInstancesError)(n,c.subgraphNamesByExternalFieldName))),r.node.fields=i,this.internalGraph.initializeNode(n,o),r.implementedInterfaceTypeNames.size>0){t.push({data:r,clientSchemaFieldNodes:a});break}this.routerDefinitions.push(this.getNodeForRouterSchemaByData(r));let f=(0,wde.isNodeQuery)(n);if((0,ge.isNodeDataInaccessible)(r)){if(f){this.errors.push(Pe.inaccessibleQueryRootTypeError);break}this.validateReferencesOfInaccessibleType(r),this.internalGraph.setNodeInaccessible(r.name);break}if(a.length<1){let y=f?(0,Pe.noQueryRootTypeError)(!1):(0,Pe.allChildDefinitionsAreInaccessibleError)((0,Ne.kindToNodeType)(r.kind),n,ve.FIELD);this.errors.push(y);break}this.clientDefinitions.push($(M({},r.node),{directives:(0,ge.getClientPersistedDirectiveNodes)(r),fields:a}));break}case Re.Kind.SCALAR_TYPE_DEFINITION:{if(xc.IGNORED_FEDERATED_TYPE_NAMES.has(n))break;if((0,ge.propagateAuthDirectives)(r,this.authorizationDataByParentTypeName.get(n)),this.routerDefinitions.push(this.getNodeForRouterSchemaByData(r)),(0,ge.isNodeDataInaccessible)(r)){this.validateReferencesOfInaccessibleType(r),this.internalGraph.setNodeInaccessible(r.name);break}this.clientDefinitions.push($(M({},r.node),{directives:(0,ge.getClientPersistedDirectiveNodes)(r)}));break}case Re.Kind.UNION_TYPE_DEFINITION:{if(r.node.types=(0,Yr.mapToArrayOfValues)(r.memberByMemberTypeName),this.routerDefinitions.push(this.getNodeForRouterSchemaByData(r)),(0,ge.isNodeDataInaccessible)(r)){this.validateReferencesOfInaccessibleType(r),this.internalGraph.setNodeInaccessible(r.name);break}let i=this.getClientSchemaUnionMembers(r);if(i.length<1){this.errors.push((0,Pe.allChildDefinitionsAreInaccessibleError)(ve.UNION,n,"union member type"));break}this.clientDefinitions.push($(M({},r.node),{directives:(0,ge.getClientPersistedDirectiveNodes)(r),types:i}));break}}}pushNamedTypeAuthDataToFields(){var t;for(let[n,r]of this.authorizationDataByParentTypeName){if(!r.requiresAuthentication&&r.requiredScopes.length<1)continue;let i=this.fieldCoordsByNamedTypeName.get(n);if(i)for(let a of i){let o=a.split(ve.PERIOD);switch(o.length){case 2:{let c=(0,Ne.getValueOrDefault)(this.authorizationDataByParentTypeName,o[0],()=>(0,Yr.newAuthorizationData)(o[0])),l=(0,Ne.getValueOrDefault)(c.fieldAuthDataByFieldName,o[1],()=>(0,Yr.newFieldAuthorizationData)(o[1]));(t=l.inheritedData).requiresAuthentication||(t.requiresAuthentication=r.requiresAuthentication),l.inheritedData.requiredScopes.length*r.requiredScopes.length>Tf.MAX_OR_SCOPES?this.invalidORScopesCoords.add(a):(l.inheritedData.requiredScopesByOR=(0,Yr.mergeRequiredScopesByAND)(l.inheritedData.requiredScopesByOR,r.requiredScopesByOR),l.inheritedData.requiredScopes=(0,Yr.mergeRequiredScopesByAND)(l.inheritedData.requiredScopes,r.requiredScopes));break}default:break}}}}federateSubgraphData(){this.federateInternalSubgraphData(),this.handleEntityInterfaces(),this.generateTagData(),Rm(this,ph,$1).call(this),this.pushNamedTypeAuthDataToFields()}validateInterfaceImplementationsAndPushToDocumentDefinitions(t){for(let{data:n,clientSchemaFieldNodes:r}of t){if(n.node.interfaces=this.getValidImplementedInterfaces(n),this.routerDefinitions.push(this.getNodeForRouterSchemaByData(n)),(0,ge.isNodeDataInaccessible)(n)){this.validateReferencesOfInaccessibleType(n),this.internalGraph.setNodeInaccessible(n.name);continue}let i=[];for(let a of n.implementedInterfaceTypeNames)this.inaccessibleCoords.has(a)||i.push((0,Qr.stringToNamedTypeNode)(a));this.clientDefinitions.push($(M({},n.node),{directives:(0,ge.getClientPersistedDirectiveNodes)(n),fields:r,interfaces:i}))}}validatePathSegmentInaccessibility(t){if(!t)return!1;let r=t.split(ve.LEFT_PARENTHESIS)[0].split(ve.PERIOD),i=r[0];for(let a=0;a0&&this.errors.push((0,Pe.invalidReferencesOfInaccessibleTypeError)((0,Ne.kindToNodeType)(t.kind),t.name,r))}validateQueryRootType(){let t=this.parentDefinitionDataByTypeName.get(ve.QUERY);if(!t||t.kind!==Re.Kind.OBJECT_TYPE_DEFINITION||t.fieldDataByName.size<1){this.errors.push((0,Pe.noQueryRootTypeError)());return}for(let n of t.fieldDataByName.values())if(!(0,ge.isNodeDataInaccessible)(n))return;this.errors.push((0,Pe.noQueryRootTypeError)())}validateSubscriptionFieldConditionFieldPath(t,n,r,i,a){let o=t.split(ve.PERIOD);if(o.length<1)return a.push((0,Pe.invalidSubscriptionFieldConditionFieldPathErrorMessage)(r,t)),[];let c=n;if(this.inaccessibleCoords.has(c.renamedTypeName))return a.push((0,Pe.inaccessibleSubscriptionFieldConditionFieldPathFieldErrorMessage)(r,t,o[0],c.renamedTypeName)),[];let l="";for(let d=0;d0?`.${f}`:f,c.kind!==Re.Kind.OBJECT_TYPE_DEFINITION)return a.push((0,Pe.invalidSubscriptionFieldConditionFieldPathParentErrorMessage)(r,t,l)),[];let y=c.fieldDataByName.get(f);if(!y)return a.push((0,Pe.undefinedSubscriptionFieldConditionFieldPathFieldErrorMessage)(r,t,l,f,c.renamedTypeName)),[];let I=`${c.renamedTypeName}.${f}`;if(!y.subgraphNames.has(i))return a.push((0,Pe.invalidSubscriptionFieldConditionFieldPathFieldErrorMessage)(r,t,l,I,i)),[];if(this.inaccessibleCoords.has(I))return a.push((0,Pe.inaccessibleSubscriptionFieldConditionFieldPathFieldErrorMessage)(r,t,l,I)),[];if(Tf.BASE_SCALARS.has(y.namedTypeName)){c={kind:Re.Kind.SCALAR_TYPE_DEFINITION,name:y.namedTypeName};continue}c=(0,Ne.getOrThrowError)(this.parentDefinitionDataByTypeName,y.namedTypeName,ve.PARENT_DEFINITION_DATA)}return(0,ge.isLeafKind)(c.kind)?o:(a.push((0,Pe.nonLeafSubscriptionFieldConditionFieldPathFinalFieldErrorMessage)(r,t,o[o.length-1],(0,Ne.kindToNodeType)(c.kind),c.name)),[])}validateSubscriptionFieldCondition(t,n,r,i,a,o,c){if(i>lh.MAX_SUBSCRIPTION_FILTER_DEPTH||this.isMaxDepth)return c.push((0,Pe.subscriptionFilterConditionDepthExceededErrorMessage)(a)),this.isMaxDepth=!0,!1;let l=!1,d=new Set([ve.FIELD_PATH,ve.VALUES]),f=new Set,y=new Set,I=[];for(let v of t.fields){let w=v.name.value,U=a+`.${w}`;switch(w){case ve.FIELD_PATH:{if(d.has(ve.FIELD_PATH))d.delete(ve.FIELD_PATH);else{l=!0,f.add(ve.FIELD_PATH);break}if(v.value.kind!==Re.Kind.STRING){I.push((0,Pe.invalidInputFieldTypeErrorMessage)(U,ve.STRING,(0,Ne.kindToNodeType)(v.value.kind))),l=!0;break}let V=this.validateSubscriptionFieldConditionFieldPath(v.value.value,r,U,o,I);if(V.length<1){l=!0;break}n.fieldPath=V;break}case ve.VALUES:{if(d.has(ve.VALUES))d.delete(ve.VALUES);else{l=!0,f.add(ve.VALUES);break}let V=v.value.kind;if(V==Re.Kind.NULL||V==Re.Kind.OBJECT){I.push((0,Pe.invalidInputFieldTypeErrorMessage)(U,ve.LIST,(0,Ne.kindToNodeType)(v.value.kind))),l=!0;break}if(V!==Re.Kind.LIST){n.values=[(0,ge.getSubscriptionFilterValue)(v.value)];break}let Y=new Set,re=[];for(let ne=0;ne0){I.push((0,Pe.subscriptionFieldConditionInvalidValuesArrayErrorMessage)(U,re));continue}if(Y.size<1){l=!0,I.push((0,Pe.subscriptionFieldConditionEmptyValuesArrayErrorMessage)(U));continue}n.values=[...Y];break}default:l=!0,y.add(w)}}return l?(c.push((0,Pe.subscriptionFieldConditionInvalidInputFieldErrorMessage)(a,[...d],[...f],[...y],I)),!1):!0}validateSubscriptionFilterCondition(t,n,r,i,a,o,c){if(i>lh.MAX_SUBSCRIPTION_FILTER_DEPTH||this.isMaxDepth)return c.push((0,Pe.subscriptionFilterConditionDepthExceededErrorMessage)(a)),this.isMaxDepth=!0,!1;if(i+=1,t.fields.length!==1)return c.push((0,Pe.subscriptionFilterConditionInvalidInputFieldNumberErrorMessage)(a,t.fields.length)),!1;let l=t.fields[0],d=l.name.value;if(!xc.SUBSCRIPTION_FILTER_INPUT_NAMES.has(d))return c.push((0,Pe.subscriptionFilterConditionInvalidInputFieldErrorMessage)(a,d)),!1;let f=a+`.${d}`;switch(l.value.kind){case Re.Kind.OBJECT:switch(d){case ve.IN_UPPER:return n.in={fieldPath:[],values:[]},this.validateSubscriptionFieldCondition(l.value,n.in,r,i,a+".IN",o,c);case ve.NOT_UPPER:return n.not={},this.validateSubscriptionFilterCondition(l.value,n.not,r,i,a+".NOT",o,c);default:return c.push((0,Pe.subscriptionFilterConditionInvalidInputFieldTypeErrorMessage)(f,ve.LIST,ve.OBJECT)),!1}case Re.Kind.LIST:{let y=[];switch(d){case ve.AND_UPPER:{n.and=y;break}case ve.OR_UPPER:{n.or=y;break}default:return c.push((0,Pe.subscriptionFilterConditionInvalidInputFieldTypeErrorMessage)(f,ve.OBJECT,ve.LIST)),!1}let I=l.value.values.length;if(I<1||I>5)return c.push((0,Pe.subscriptionFilterArrayConditionInvalidLengthErrorMessage)(f,I)),!1;let v=!0,w=[];for(let U=0;U0?(c.push((0,Pe.subscriptionFilterArrayConditionInvalidItemTypeErrorMessage)(f,w)),!1):v}default:{let y=xc.SUBSCRIPTION_FILTER_LIST_INPUT_NAMES.has(d)?ve.LIST:ve.OBJECT;return c.push((0,Pe.subscriptionFilterConditionInvalidInputFieldTypeErrorMessage)(f,y,(0,Ne.kindToNodeType)(l.value.kind))),!1}}}validateSubscriptionFilterAndGenerateConfiguration(t,n,r,i,a,o){if(!t.arguments||t.arguments.length!==1)return;let c=t.arguments[0];if(c.value.kind!==Re.Kind.OBJECT){this.errors.push((0,Pe.invalidSubscriptionFilterDirectiveError)(r,[(0,Pe.subscriptionFilterConditionInvalidInputFieldTypeErrorMessage)(ve.CONDITION,ve.OBJECT,(0,Ne.kindToNodeType)(c.value.kind))]));return}let l={},d=[];if(!this.validateSubscriptionFilterCondition(c.value,l,n,0,ve.CONDITION,o,d)){this.errors.push((0,Pe.invalidSubscriptionFilterDirectiveError)(r,d)),this.isMaxDepth=!1;return}(0,Ne.getValueOrDefault)(this.fieldConfigurationByFieldCoords,r,()=>({argumentNames:[],fieldName:i,typeName:a})).subscriptionFilterCondition=l}validateSubscriptionFiltersAndGenerateConfiguration(){for(let[t,n]of this.subscriptionFilterDataByFieldPath){if(this.inaccessibleCoords.has(t))continue;let r=this.parentDefinitionDataByTypeName.get(n.fieldData.namedTypeName);if(!r){this.errors.push((0,Pe.invalidSubscriptionFilterDirectiveError)(t,[(0,Pe.subscriptionFilterNamedTypeErrorMessage)(n.fieldData.namedTypeName)]));continue}(0,ge.isNodeDataInaccessible)(r)||r.kind===Re.Kind.OBJECT_TYPE_DEFINITION&&this.validateSubscriptionFilterAndGenerateConfiguration(n.directive,r,t,n.fieldData.name,n.fieldData.renamedParentTypeName,n.directiveSubgraphName)}}buildFederationResult(){this.subscriptionFilterDataByFieldPath.size>0&&this.validateSubscriptionFiltersAndGenerateConfiguration(),this.invalidORScopesCoords.size>0&&this.errors.push((0,Pe.orScopesLimitError)(Tf.MAX_OR_SCOPES,[...this.invalidORScopesCoords]));for(let a of this.potentialPersistedDirectiveDefinitionDataByDirectiveName.values())(0,ge.addValidPersistedDirectiveDefinitionNodeByData)(this.routerDefinitions,a,this.persistedDirectiveDefinitionByDirectiveName,this.errors);let t=[];this.pushParentDefinitionDataToDocumentDefinitions(t),this.validateInterfaceImplementationsAndPushToDocumentDefinitions(t),this.validateQueryRootType();for(let a of this.inaccessibleRequiredInputValueErrorByCoords.values())this.errors.push(a);if(this.errors.length>0)return{errors:this.errors,success:!1,warnings:this.warnings};if(!this.disableResolvabilityValidation&&this.internalSubgraphBySubgraphName.size>1){let a=this.internalGraph.validate();if(!a.success)return{errors:a.errors,success:!1,warnings:this.warnings}}let n={kind:Re.Kind.DOCUMENT,definitions:this.routerDefinitions},r=(0,Re.buildASTSchema)({kind:Re.Kind.DOCUMENT,definitions:this.clientDefinitions},{assumeValid:!0,assumeValidSDL:!0}),i=new Map;for(let a of this.internalSubgraphBySubgraphName.values())i.set(a.name,{configurationDataByTypeName:a.configurationDataByTypeName,directiveDefinitionByName:a.directiveDefinitionByName,isVersionTwo:a.isVersionTwo,parentDefinitionDataByTypeName:a.parentDefinitionDataByTypeName,schema:a.schema});for(let a of this.authorizationDataByParentTypeName.values())(0,Yr.upsertAuthorizationConfiguration)(this.fieldConfigurationByFieldCoords,a);return M({fieldConfigurations:Array.from(this.fieldConfigurationByFieldCoords.values()),subgraphConfigBySubgraphName:i,federatedGraphAST:n,federatedGraphSchema:(0,Re.buildASTSchema)(n,{assumeValid:!0,assumeValidSDL:!0}),federatedGraphClientSchema:r,parentDefinitionDataByTypeName:this.parentDefinitionDataByTypeName,success:!0,warnings:this.warnings},this.getClientSchemaObjectBoolean())}getClientSchemaObjectBoolean(){return this.inaccessibleCoords.size<1&&this.tagNamesByCoords.size<1?{}:{shouldIncludeClientSchema:!0}}handleChildTagExclusions(t,n,r,i){let a=n.size;for(let[o,c]of r){let l=(0,Ne.getOrThrowError)(n,o,`${t.name}.childDataByChildName`);if((0,ge.isNodeDataInaccessible)(l)){a-=1;continue}i.isDisjointFrom(c.tagNames)||((0,Ne.getValueOrDefault)(l.persistedDirectivesData.directivesByDirectiveName,ve.INACCESSIBLE,()=>[(0,Ne.generateSimpleDirective)(ve.INACCESSIBLE)]),this.inaccessibleCoords.add(`${t.name}.${o}`),a-=1)}a<1&&(t.persistedDirectivesData.directivesByDirectiveName.set(ve.INACCESSIBLE,[(0,Ne.generateSimpleDirective)(ve.INACCESSIBLE)]),this.inaccessibleCoords.add(t.name))}handleChildTagInclusions(t,n,r,i){let a=n.size;for(let[o,c]of n){if((0,ge.isNodeDataInaccessible)(c)){a-=1;continue}let l=r.get(o);(!l||i.isDisjointFrom(l.tagNames))&&((0,Ne.getValueOrDefault)(c.persistedDirectivesData.directivesByDirectiveName,ve.INACCESSIBLE,()=>[(0,Ne.generateSimpleDirective)(ve.INACCESSIBLE)]),this.inaccessibleCoords.add(`${t.name}.${o}`),a-=1)}a<1&&(t.persistedDirectivesData.directivesByDirectiveName.set(ve.INACCESSIBLE,[(0,Ne.generateSimpleDirective)(ve.INACCESSIBLE)]),this.inaccessibleCoords.add(t.name))}buildFederationContractResult(t){if(this.isVersionTwo||this.routerDefinitions.push(wu.INACCESSIBLE_DEFINITION),t.tagNamesToExclude.size>0)for(let[o,c]of this.parentTagDataByTypeName){let l=(0,Ne.getOrThrowError)(this.parentDefinitionDataByTypeName,o,ve.PARENT_DEFINITION_DATA);if(!(0,ge.isNodeDataInaccessible)(l)){if(!t.tagNamesToExclude.isDisjointFrom(c.tagNames)){l.persistedDirectivesData.directivesByDirectiveName.set(ve.INACCESSIBLE,[(0,Ne.generateSimpleDirective)(ve.INACCESSIBLE)]),this.inaccessibleCoords.add(o);continue}if(!(c.childTagDataByChildName.size<1))switch(l.kind){case Re.Kind.SCALAR_TYPE_DEFINITION:case Re.Kind.UNION_TYPE_DEFINITION:break;case Re.Kind.ENUM_TYPE_DEFINITION:{this.handleChildTagExclusions(l,l.enumValueDataByName,c.childTagDataByChildName,t.tagNamesToExclude);break}case Re.Kind.INPUT_OBJECT_TYPE_DEFINITION:{this.handleChildTagExclusions(l,l.inputValueDataByName,c.childTagDataByChildName,t.tagNamesToExclude);break}default:{let d=l.fieldDataByName.size;for(let[f,y]of c.childTagDataByChildName){let I=(0,Ne.getOrThrowError)(l.fieldDataByName,f,`${o}.fieldDataByFieldName`);if((0,ge.isNodeDataInaccessible)(I)){d-=1;continue}if(!t.tagNamesToExclude.isDisjointFrom(y.tagNames)){(0,Ne.getValueOrDefault)(I.persistedDirectivesData.directivesByDirectiveName,ve.INACCESSIBLE,()=>[(0,Ne.generateSimpleDirective)(ve.INACCESSIBLE)]),this.inaccessibleCoords.add(I.federatedCoords),d-=1;continue}for(let[v,w]of y.tagNamesByArgumentName){let U=(0,Ne.getOrThrowError)(I.argumentDataByName,v,`${f}.argumentDataByArgumentName`);(0,ge.isNodeDataInaccessible)(U)||t.tagNamesToExclude.isDisjointFrom(w)||((0,Ne.getValueOrDefault)(U.persistedDirectivesData.directivesByDirectiveName,ve.INACCESSIBLE,()=>[(0,Ne.generateSimpleDirective)(ve.INACCESSIBLE)]),this.inaccessibleCoords.add(U.federatedCoords))}}d<1&&(l.persistedDirectivesData.directivesByDirectiveName.set(ve.INACCESSIBLE,[(0,Ne.generateSimpleDirective)(ve.INACCESSIBLE)]),this.inaccessibleCoords.add(o))}}}}else if(t.tagNamesToInclude.size>0)for(let[o,c]of this.parentDefinitionDataByTypeName){if((0,ge.isNodeDataInaccessible)(c))continue;let l=this.parentTagDataByTypeName.get(o);if(!l){c.persistedDirectivesData.directivesByDirectiveName.set(ve.INACCESSIBLE,[(0,Ne.generateSimpleDirective)(ve.INACCESSIBLE)]),this.inaccessibleCoords.add(o);continue}if(t.tagNamesToInclude.isDisjointFrom(l.tagNames)){if(l.childTagDataByChildName.size<1){c.persistedDirectivesData.directivesByDirectiveName.set(ve.INACCESSIBLE,[(0,Ne.generateSimpleDirective)(ve.INACCESSIBLE)]),this.inaccessibleCoords.add(o);continue}switch(c.kind){case Re.Kind.SCALAR_TYPE_DEFINITION:case Re.Kind.UNION_TYPE_DEFINITION:continue;case Re.Kind.ENUM_TYPE_DEFINITION:this.handleChildTagInclusions(c,c.enumValueDataByName,l.childTagDataByChildName,t.tagNamesToInclude);break;case Re.Kind.INPUT_OBJECT_TYPE_DEFINITION:this.handleChildTagInclusions(c,c.inputValueDataByName,l.childTagDataByChildName,t.tagNamesToInclude);break;default:let d=c.fieldDataByName.size;for(let[f,y]of c.fieldDataByName){if((0,ge.isNodeDataInaccessible)(y)){d-=1;continue}let I=l.childTagDataByChildName.get(f);(!I||t.tagNamesToInclude.isDisjointFrom(I.tagNames))&&((0,Ne.getValueOrDefault)(y.persistedDirectivesData.directivesByDirectiveName,ve.INACCESSIBLE,()=>[(0,Ne.generateSimpleDirective)(ve.INACCESSIBLE)]),this.inaccessibleCoords.add(y.federatedCoords),d-=1)}d<1&&(c.persistedDirectivesData.directivesByDirectiveName.set(ve.INACCESSIBLE,[(0,Ne.generateSimpleDirective)(ve.INACCESSIBLE)]),this.inaccessibleCoords.add(o))}}}this.subscriptionFilterDataByFieldPath.size>0&&this.validateSubscriptionFiltersAndGenerateConfiguration();for(let o of this.potentialPersistedDirectiveDefinitionDataByDirectiveName.values())(0,ge.addValidPersistedDirectiveDefinitionNodeByData)(this.routerDefinitions,o,this.persistedDirectiveDefinitionByDirectiveName,this.errors);let n=[];if(this.pushParentDefinitionDataToDocumentDefinitions(n),this.validateInterfaceImplementationsAndPushToDocumentDefinitions(n),this.validateQueryRootType(),this.errors.length>0)return{errors:this.errors,success:!1,warnings:this.warnings};let r={kind:Re.Kind.DOCUMENT,definitions:this.routerDefinitions},i=(0,Re.buildASTSchema)({kind:Re.Kind.DOCUMENT,definitions:this.clientDefinitions},{assumeValid:!0,assumeValidSDL:!0}),a=new Map;for(let o of this.internalSubgraphBySubgraphName.values())a.set(o.name,{configurationDataByTypeName:o.configurationDataByTypeName,directiveDefinitionByName:o.directiveDefinitionByName,isVersionTwo:o.isVersionTwo,parentDefinitionDataByTypeName:o.parentDefinitionDataByTypeName,schema:o.schema});for(let o of this.authorizationDataByParentTypeName.values())(0,Yr.upsertAuthorizationConfiguration)(this.fieldConfigurationByFieldCoords,o);return M({fieldConfigurations:Array.from(this.fieldConfigurationByFieldCoords.values()),subgraphConfigBySubgraphName:a,federatedGraphAST:r,federatedGraphSchema:(0,Re.buildASTSchema)(r,{assumeValid:!0,assumeValidSDL:!0}),federatedGraphClientSchema:i,parentDefinitionDataByTypeName:this.parentDefinitionDataByTypeName,success:!0,warnings:this.warnings},this.getClientSchemaObjectBoolean())}federateSubgraphsInternal(){return this.federateSubgraphData(),this.buildFederationResult()}};ph=new WeakSet,$1=function(){var r;let t=new Set,n=new Set;for(let i of this.referencedPersistedDirectiveNames){let a=Tf.DIRECTIVE_DEFINITION_BY_NAME.get(i);if(!a)continue;let o=(r=xc.DEPENDENCIES_BY_DIRECTIVE_NAME.get(i))!=null?r:[];xc.CLIENT_PERSISTED_DIRECTIVE_NAMES.has(i)&&(this.clientDefinitions.push(a),(0,Ne.addIterableToSet)({source:o,target:t})),this.routerDefinitions.push(a),(0,Ne.addIterableToSet)({source:o,target:n})}this.clientDefinitions.push(...t),this.routerDefinitions.push(...n)};qc.FederationFactory=dh;function GD({disableResolvabilityValidation:e,subgraphs:t}){if(t.length<1)return{errors:[Pe.minimumSubgraphRequirementError],success:!1,warnings:[]};let n=(0,Fde.batchNormalize)(t);if(!n.success)return{errors:n.errors,success:!1,warnings:n.warnings};let r=new Map,i=new Map;for(let[c,l]of n.internalSubgraphBySubgraphName)for(let[d,f]of l.entityInterfaces){let y=r.get(d);if(!y){r.set(d,(0,Yr.newEntityInterfaceFederationData)(f,c));continue}(0,Yr.upsertEntityInterfaceFederationData)(y,f,c)}let a=new Array,o=new Map;for(let[c,l]of r){let d=l.concreteTypeNames.size;for(let[f,y]of l.subgraphDataByTypeName){let I=(0,Ne.getValueOrDefault)(o,f,()=>new Set);if((0,Ne.addIterableToSet)({source:y.concreteTypeNames,target:I}),!y.isInterfaceObject){y.resolvable&&y.concreteTypeNames.size!==d&&(0,Ne.getValueOrDefault)(i,c,()=>new Array).push({subgraphName:f,definedConcreteTypeNames:new Set(y.concreteTypeNames),requiredConcreteTypeNames:new Set(l.concreteTypeNames)});continue}(0,Ne.addIterableToSet)({source:l.concreteTypeNames,target:I});let{parentDefinitionDataByTypeName:v}=(0,Ne.getOrThrowError)(n.internalSubgraphBySubgraphName,f,"internalSubgraphBySubgraphName"),w=[];for(let U of l.concreteTypeNames)v.has(U)&&w.push(U);w.length>0&&a.push((0,Pe.invalidInterfaceObjectImplementationDefinitionsError)(c,f,w))}}for(let[c,l]of i){let d=new Array;for(let f of l){let y=o.get(f.subgraphName);if(!y){d.push(f);continue}let I=f.requiredConcreteTypeNames.intersection(y);f.requiredConcreteTypeNames.size!==I.size&&(f.definedConcreteTypeNames=I,d.push(f))}if(d.length>0){i.set(c,d);continue}i.delete(c)}return i.size>0&&a.push((0,Pe.undefinedEntityInterfaceImplementationsError)(i,r)),a.length>0?{errors:a,success:!1,warnings:n.warnings}:{federationFactory:new dh({authorizationDataByParentTypeName:n.authorizationDataByParentTypeName,concreteTypeNamesByAbstractTypeName:n.concreteTypeNamesByAbstractTypeName,disableResolvabilityValidation:e,entityDataByTypeName:n.entityDataByTypeName,entityInterfaceFederationDataByTypeName:r,fieldCoordsByNamedTypeName:n.fieldCoordsByNamedTypeName,internalSubgraphBySubgraphName:n.internalSubgraphBySubgraphName,internalGraph:n.internalGraph,warnings:n.warnings}),success:!0,warnings:n.warnings}}function Bde({disableResolvabilityValidation:e,subgraphs:t}){let n=GD({subgraphs:t,disableResolvabilityValidation:e});return n.success?n.federationFactory.federateSubgraphsInternal():{errors:n.errors,success:!1,warnings:n.warnings}}function Ude({subgraphs:e,tagOptionsByContractName:t,disableResolvabilityValidation:n}){let r=GD({subgraphs:e,disableResolvabilityValidation:n});if(!r.success)return{errors:r.errors,success:!1,warnings:r.warnings};r.federationFactory.federateSubgraphData();let i=[(0,G1.cloneDeep)(r.federationFactory)],a=r.federationFactory.buildFederationResult();if(!a.success)return{errors:a.errors,success:!1,warnings:a.warnings};let o=t.size-1,c=new Map,l=0;for(let[d,f]of t){l!==o&&i.push((0,G1.cloneDeep)(i[l]));let y=i[l].buildFederationContractResult(f);c.set(d,y),l++}return $(M({},a),{federationResultByContractName:c})}function kde({contractTagOptions:e,disableResolvabilityValidation:t,subgraphs:n}){let r=GD({subgraphs:n,disableResolvabilityValidation:t});return r.success?(r.federationFactory.federateSubgraphData(),r.federationFactory.buildFederationContractResult(e)):{errors:r.errors,success:!1,warnings:r.warnings}}});var fh=F(Us=>{"use strict";m();T();N();Object.defineProperty(Us,"__esModule",{value:!0});Us.LATEST_ROUTER_COMPATIBILITY_VERSION=Us.ROUTER_COMPATIBILITY_VERSIONS=Us.ROUTER_COMPATIBILITY_VERSION_ONE=void 0;Us.ROUTER_COMPATIBILITY_VERSION_ONE="1";Us.ROUTER_COMPATIBILITY_VERSIONS=new Set([Us.ROUTER_COMPATIBILITY_VERSION_ONE]);Us.LATEST_ROUTER_COMPATIBILITY_VERSION="1"});var Y1=F(Ef=>{"use strict";m();T();N();Object.defineProperty(Ef,"__esModule",{value:!0});Ef.federateSubgraphs=Mde;Ef.federateSubgraphsWithContracts=xde;Ef.federateSubgraphsContract=qde;var $D=Q1(),QD=fh();function Mde({disableResolvabilityValidation:e,subgraphs:t,version:n=QD.ROUTER_COMPATIBILITY_VERSION_ONE}){switch(n){default:return(0,$D.federateSubgraphs)({disableResolvabilityValidation:e,subgraphs:t})}}function xde({disableResolvabilityValidation:e,subgraphs:t,tagOptionsByContractName:n,version:r=QD.ROUTER_COMPATIBILITY_VERSION_ONE}){switch(r){default:return(0,$D.federateSubgraphsWithContracts)({disableResolvabilityValidation:e,subgraphs:t,tagOptionsByContractName:n})}}function qde({contractTagOptions:e,disableResolvabilityValidation:t,subgraphs:n,version:r=QD.ROUTER_COMPATIBILITY_VERSION_ONE}){switch(r){default:return(0,$D.federateSubgraphsContract)({disableResolvabilityValidation:t,subgraphs:n,contractTagOptions:e})}}});var H1=F(J1=>{"use strict";m();T();N();Object.defineProperty(J1,"__esModule",{value:!0})});var z1=F(hf=>{"use strict";m();T();N();Object.defineProperty(hf,"__esModule",{value:!0});hf.normalizeSubgraphFromString=jde;hf.normalizeSubgraph=Vde;hf.batchNormalize=Kde;var YD=qD(),JD=fh();function jde(e,t=!0,n=JD.ROUTER_COMPATIBILITY_VERSION_ONE){switch(n){default:return(0,YD.normalizeSubgraphFromString)(e,t)}}function Vde(e,t,n,r=JD.ROUTER_COMPATIBILITY_VERSION_ONE){switch(r){default:return(0,YD.normalizeSubgraph)(e,t,n)}}function Kde(e,t=JD.ROUTER_COMPATIBILITY_VERSION_ONE){switch(t){default:return(0,YD.batchNormalize)(e)}}});var X1=F(W1=>{"use strict";m();T();N();Object.defineProperty(W1,"__esModule",{value:!0})});var ej=F(Z1=>{"use strict";m();T();N();Object.defineProperty(Z1,"__esModule",{value:!0})});var nj=F(tj=>{"use strict";m();T();N();Object.defineProperty(tj,"__esModule",{value:!0})});var ij=F(rj=>{"use strict";m();T();N();Object.defineProperty(rj,"__esModule",{value:!0})});var sj=F(aj=>{"use strict";m();T();N();Object.defineProperty(aj,"__esModule",{value:!0})});var uj=F(oj=>{"use strict";m();T();N();Object.defineProperty(oj,"__esModule",{value:!0})});var cj=F(mh=>{"use strict";m();T();N();Object.defineProperty(mh,"__esModule",{value:!0});mh.COMPOSITION_VERSION=void 0;mh.COMPOSITION_VERSION="{{$COMPOSITION__VERSION}}"});var dj=F(lj=>{"use strict";m();T();N();Object.defineProperty(lj,"__esModule",{value:!0})});var fj=F(pj=>{"use strict";m();T();N();Object.defineProperty(pj,"__esModule",{value:!0})});var Nj=F(mj=>{"use strict";m();T();N();Object.defineProperty(mj,"__esModule",{value:!0})});var Ej=F(Tj=>{"use strict";m();T();N();Object.defineProperty(Tj,"__esModule",{value:!0})});var Nh=F(Xe=>{"use strict";m();T();N();var Gde=Xe&&Xe.__createBinding||(Object.create?function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]}),ut=Xe&&Xe.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&Gde(t,e,n)};Object.defineProperty(Xe,"__esModule",{value:!0});ut(Rr(),Xe);ut(Jv(),Xe);ut(Gi(),Xe);ut(IM(),Xe);ut(Y1(),Xe);ut(H1(),Xe);ut(z1(),Xe);ut(X1(),Xe);ut(kD(),Xe);ut(DD(),Xe);ut(ZE(),Xe);ut(ej(),Xe);ut(nj(),Xe);ut(FD(),Xe);ut(fh(),Xe);ut(ij(),Xe);ut(MD(),Xe);ut(yu(),Xe);ut(Up(),Xe);ut(Bl(),Xe);ut(sj(),Xe);ut(uj(),Xe);ut(cj(),Xe);ut(dj(),Xe);ut(sr(),Xe);ut(fj(),Xe);ut(Pr(),Xe);ut(ED(),Xe);ut(Iu(),Xe);ut(kp(),Xe);ut(vE(),Xe);ut(SE(),Xe);ut(id(),Xe);ut(nT(),Xe);ut(rT(),Xe);ut(KD(),Xe);ut(Nj(),Xe);ut(pD(),Xe);ut(cf(),Xe);ut(Ej(),Xe);ut(gD(),Xe);ut(uh(),Xe);ut(ND(),Xe);ut(uf(),Xe);ut(lf(),Xe)});var kpe={};bm(kpe,{buildRouterConfiguration:()=>Upe,federateSubgraphs:()=>Bpe});m();T();N();var Yc=_s(Nh());m();T();N();m();T();N();function HD(e){if(!e)return e;if(!URL.canParse(e))throw new Error("Invalid URL");let t=e.indexOf("?"),n=e.indexOf("#"),r=e;return t>0?r=r.slice(0,n>0?Math.min(t,n):t):n>0&&(r=r.slice(0,n)),r}m();T();N();m();T();N();var hj={};m();T();N();function yj(e){return e!=null}m();T();N();m();T();N();var Sj=_s(Se(),1);m();T();N();var Ij;if(typeof AggregateError=="undefined"){class e extends Error{constructor(n,r=""){super(r),this.errors=n,this.name="AggregateError",Error.captureStackTrace(this,e)}}Ij=function(t,n){return new e(t,n)}}else Ij=AggregateError;function gj(e){return"errors"in e&&Array.isArray(e.errors)}var Oj=3;function Dj(e){return Th(e,[])}function Th(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return $de(e,t);default:return String(e)}}function _j(e){return e instanceof Sj.GraphQLError?e.toString():`${e.name}: ${e.message}; + ${e.stack}`}function $de(e,t){if(e===null)return"null";if(e instanceof Error)return gj(e)?_j(e)+` +`+vj(e.errors,t):_j(e);if(t.includes(e))return"[Circular]";let n=[...t,e];if(Qde(e)){let r=e.toJSON();if(r!==e)return typeof r=="string"?r:Th(r,n)}else if(Array.isArray(e))return vj(e,n);return Yde(e,n)}function Qde(e){return typeof e.toJSON=="function"}function Yde(e,t){let n=Object.entries(e);return n.length===0?"{}":t.length>Oj?"["+Jde(e)+"]":"{ "+n.map(([i,a])=>i+": "+Th(a,t)).join(", ")+" }"}function vj(e,t){if(e.length===0)return"[]";if(t.length>Oj)return"[Array]";let n=e.length,r=[];for(let i=0;in==null?n:n[r],e==null?void 0:e.extensions)}m();T();N();var Fe=_s(Se(),1);m();T();N();var os=_s(Se(),1);function us(e){if((0,os.isNonNullType)(e)){let t=us(e.ofType);if(t.kind===os.Kind.NON_NULL_TYPE)throw new Error(`Invalid type node ${Dj(e)}. Inner type of non-null type cannot be a non-null type.`);return{kind:os.Kind.NON_NULL_TYPE,type:t}}else if((0,os.isListType)(e))return{kind:os.Kind.LIST_TYPE,type:us(e.ofType)};return{kind:os.Kind.NAMED_TYPE,name:{kind:os.Kind.NAME,value:e.name}}}m();T();N();var cs=_s(Se(),1);function hh(e){if(e===null)return{kind:cs.Kind.NULL};if(e===void 0)return null;if(Array.isArray(e)){let t=[];for(let n of e){let r=hh(n);r!=null&&t.push(r)}return{kind:cs.Kind.LIST,values:t}}if(typeof e=="object"){let t=[];for(let n in e){let r=e[n],i=hh(r);i&&t.push({kind:cs.Kind.OBJECT_FIELD,name:{kind:cs.Kind.NAME,value:n},value:i})}return{kind:cs.Kind.OBJECT,fields:t}}if(typeof e=="boolean")return{kind:cs.Kind.BOOLEAN,value:e};if(typeof e=="number"&&isFinite(e)){let t=String(e);return Hde.test(t)?{kind:cs.Kind.INT,value:t}:{kind:cs.Kind.FLOAT,value:t}}if(typeof e=="string")return{kind:cs.Kind.STRING,value:e};throw new TypeError(`Cannot convert value to AST: ${e}.`)}var Hde=/^-?(?:0|[1-9][0-9]*)$/;m();T();N();m();T();N();function yh(e){let t=new WeakMap;return function(r){let i=t.get(r);if(i===void 0){let a=e(r);return t.set(r,a),a}return i}}var rxe=yh(function(t){let n=zde(t);return new Set([...n].map(r=>r.name))}),zde=yh(function(t){let n=zD(t);return new Set(n.values())}),zD=yh(function(t){let n=new Map,r=t.getQueryType();r&&n.set("query",r);let i=t.getMutationType();i&&n.set("mutation",i);let a=t.getSubscriptionType();return a&&n.set("subscription",a),n});function Wde(e,t={}){let n=t.pathToDirectivesInExtensions,r=e.getTypeMap(),i=Xde(e,n),a=i!=null?[i]:[],o=e.getDirectives();for(let c of o)(0,Fe.isSpecifiedDirective)(c)||a.push(Zde(c,e,n));for(let c in r){let l=r[c],d=(0,Fe.isSpecifiedScalarType)(l),f=(0,Fe.isIntrospectionType)(l);if(!(d||f))if((0,Fe.isObjectType)(l))a.push(epe(l,e,n));else if((0,Fe.isInterfaceType)(l))a.push(tpe(l,e,n));else if((0,Fe.isUnionType)(l))a.push(npe(l,e,n));else if((0,Fe.isInputObjectType)(l))a.push(rpe(l,e,n));else if((0,Fe.isEnumType)(l))a.push(ipe(l,e,n));else if((0,Fe.isScalarType)(l))a.push(ape(l,e,n));else throw new Error(`Unknown type ${l}.`)}return{kind:Fe.Kind.DOCUMENT,definitions:a}}function bj(e,t={}){let n=Wde(e,t);return(0,Fe.print)(n)}function Xde(e,t){var n,r;let i=new Map([["query",void 0],["mutation",void 0],["subscription",void 0]]),a=[];if(e.astNode!=null&&a.push(e.astNode),e.extensionASTNodes!=null)for(let f of e.extensionASTNodes)a.push(f);for(let f of a)if(f.operationTypes)for(let y of f.operationTypes)i.set(y.operation,y);let o=zD(e);for(let[f,y]of i){let I=o.get(f);if(I!=null){let v=us(I);y!=null?y.type=v:i.set(f,{kind:Fe.Kind.OPERATION_TYPE_DEFINITION,operation:f,type:v})}}let c=[...i.values()].filter(yj),l=pd(e,e,t);if(!c.length&&!l.length)return null;let d={kind:c!=null?Fe.Kind.SCHEMA_DEFINITION:Fe.Kind.SCHEMA_EXTENSION,operationTypes:c,directives:l};return d.description=((r=(n=e.astNode)===null||n===void 0?void 0:n.description)!==null&&r!==void 0?r:e.description!=null)?{kind:Fe.Kind.STRING,value:e.description,block:!0}:void 0,d}function Zde(e,t,n){var r,i,a,o;return{kind:Fe.Kind.DIRECTIVE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:Fe.Kind.STRING,value:e.description}:void 0,name:{kind:Fe.Kind.NAME,value:e.name},arguments:(a=e.args)===null||a===void 0?void 0:a.map(c=>Aj(c,t,n)),repeatable:e.isRepeatable,locations:((o=e.locations)===null||o===void 0?void 0:o.map(c=>({kind:Fe.Kind.NAME,value:c})))||[]}}function pd(e,t,n){let r=Eh(e,n),i=[];e.astNode!=null&&i.push(e.astNode),"extensionASTNodes"in e&&e.extensionASTNodes!=null&&(i=i.concat(e.extensionASTNodes));let a;if(r!=null)a=WD(t,r);else{a=[];for(let o of i)o.directives&&a.push(...o.directives)}return a}function gh(e,t,n){var r,i;let a=[],o=null,c=Eh(e,n),l;return c!=null?l=WD(t,c):l=(r=e.astNode)===null||r===void 0?void 0:r.directives,l!=null&&(a=l.filter(d=>d.name.value!=="deprecated"),e.deprecationReason!=null&&(o=(i=l.filter(d=>d.name.value==="deprecated"))===null||i===void 0?void 0:i[0])),e.deprecationReason!=null&&o==null&&(o=upe(e.deprecationReason)),o==null?a:[o].concat(a)}function Aj(e,t,n){var r,i,a;return{kind:Fe.Kind.INPUT_VALUE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:Fe.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:Fe.Kind.NAME,value:e.name},type:us(e.type),defaultValue:e.defaultValue!==void 0&&(a=(0,Fe.astFromValue)(e.defaultValue,e.type))!==null&&a!==void 0?a:void 0,directives:gh(e,t,n)}}function epe(e,t,n){var r,i;return{kind:Fe.Kind.OBJECT_TYPE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:Fe.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:Fe.Kind.NAME,value:e.name},fields:Object.values(e.getFields()).map(a=>Rj(a,t,n)),interfaces:Object.values(e.getInterfaces()).map(a=>us(a)),directives:pd(e,t,n)}}function tpe(e,t,n){var r,i;let a={kind:Fe.Kind.INTERFACE_TYPE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:Fe.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:Fe.Kind.NAME,value:e.name},fields:Object.values(e.getFields()).map(o=>Rj(o,t,n)),directives:pd(e,t,n)};return"getInterfaces"in e&&(a.interfaces=Object.values(e.getInterfaces()).map(o=>us(o))),a}function npe(e,t,n){var r,i;return{kind:Fe.Kind.UNION_TYPE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:Fe.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:Fe.Kind.NAME,value:e.name},directives:pd(e,t,n),types:e.getTypes().map(a=>us(a))}}function rpe(e,t,n){var r,i;return{kind:Fe.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:Fe.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:Fe.Kind.NAME,value:e.name},fields:Object.values(e.getFields()).map(a=>spe(a,t,n)),directives:pd(e,t,n)}}function ipe(e,t,n){var r,i;return{kind:Fe.Kind.ENUM_TYPE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:Fe.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:Fe.Kind.NAME,value:e.name},values:Object.values(e.getValues()).map(a=>ope(a,t,n)),directives:pd(e,t,n)}}function ape(e,t,n){var r,i,a;let o=Eh(e,n),c=o?WD(t,o):((r=e.astNode)===null||r===void 0?void 0:r.directives)||[],l=e.specifiedByUrl||e.specifiedByURL;if(l&&!c.some(d=>d.name.value==="specifiedBy")){let d={url:l};c.push(Ih("specifiedBy",d))}return{kind:Fe.Kind.SCALAR_TYPE_DEFINITION,description:(a=(i=e.astNode)===null||i===void 0?void 0:i.description)!==null&&a!==void 0?a:e.description?{kind:Fe.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:Fe.Kind.NAME,value:e.name},directives:c}}function Rj(e,t,n){var r,i;return{kind:Fe.Kind.FIELD_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:Fe.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:Fe.Kind.NAME,value:e.name},arguments:e.args.map(a=>Aj(a,t,n)),type:us(e.type),directives:gh(e,t,n)}}function spe(e,t,n){var r,i,a;return{kind:Fe.Kind.INPUT_VALUE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:Fe.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:Fe.Kind.NAME,value:e.name},type:us(e.type),directives:gh(e,t,n),defaultValue:(a=(0,Fe.astFromValue)(e.defaultValue,e.type))!==null&&a!==void 0?a:void 0}}function ope(e,t,n){var r,i;return{kind:Fe.Kind.ENUM_VALUE_DEFINITION,description:(i=(r=e.astNode)===null||r===void 0?void 0:r.description)!==null&&i!==void 0?i:e.description?{kind:Fe.Kind.STRING,value:e.description,block:!0}:void 0,name:{kind:Fe.Kind.NAME,value:e.name},directives:gh(e,t,n)}}function upe(e){return Ih("deprecated",{reason:e},Fe.GraphQLDeprecatedDirective)}function Ih(e,t,n){let r=[];if(n!=null)for(let i of n.args){let a=i.name,o=t[a];if(o!==void 0){let c=(0,Fe.astFromValue)(o,i.type);c&&r.push({kind:Fe.Kind.ARGUMENT,name:{kind:Fe.Kind.NAME,value:a},value:c})}}else for(let i in t){let a=t[i],o=hh(a);o&&r.push({kind:Fe.Kind.ARGUMENT,name:{kind:Fe.Kind.NAME,value:i},value:o})}return{kind:Fe.Kind.DIRECTIVE,name:{kind:Fe.Kind.NAME,value:e},arguments:r}}function WD(e,t){let n=[];for(let r in t){let i=t[r],a=e==null?void 0:e.getDirective(r);if(Array.isArray(i))for(let o of i)n.push(Ih(r,o,a));else n.push(Ih(r,i,a))}return n}var gd=_s(Nh(),1);m();T();N();m();T();N();m();T();N();m();T();N();m();T();N();m();T();N();function mn(e,t){if(!e)throw new Error(t)}var cpe=34028234663852886e22,lpe=-34028234663852886e22,dpe=4294967295,ppe=2147483647,fpe=-2147483648;function fd(e){if(typeof e!="number")throw new Error("invalid int 32: "+typeof e);if(!Number.isInteger(e)||e>ppe||edpe||e<0)throw new Error("invalid uint 32: "+e)}function _h(e){if(typeof e!="number")throw new Error("invalid float 32: "+typeof e);if(Number.isFinite(e)&&(e>cpe||e({no:i.no,name:i.name,localName:e[i.no]})),r)}function ZD(e,t,n){let r=Object.create(null),i=Object.create(null),a=[];for(let o of t){let c=Lj(o);a.push(c),r[o.name]=c,i[o.no]=c}return{typeName:e,values:a,findName(o){return r[o]},findNumber(o){return i[o]}}}function wj(e,t,n){let r={};for(let i of t){let a=Lj(i);r[a.localName]=a.no,r[a.no]=a.localName}return XD(r,e,t,n),r}function Lj(e){return"localName"in e?e:Object.assign(Object.assign({},e),{localName:e.name})}m();T();N();m();T();N();var we=class{equals(t){return this.getType().runtime.util.equals(this.getType(),this,t)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(t,n){let r=this.getType(),i=r.runtime.bin,a=i.makeReadOptions(n);return i.readMessage(this,a.readerFactory(t),t.byteLength,a),this}fromJson(t,n){let r=this.getType(),i=r.runtime.json,a=i.makeReadOptions(n);return i.readMessage(r,t,a,this),this}fromJsonString(t,n){let r;try{r=JSON.parse(t)}catch(i){throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${i instanceof Error?i.message:String(i)}`)}return this.fromJson(r,n)}toBinary(t){let n=this.getType(),r=n.runtime.bin,i=r.makeWriteOptions(t),a=i.writerFactory();return r.writeMessage(this,a,i),a.finish()}toJson(t){let n=this.getType(),r=n.runtime.json,i=r.makeWriteOptions(t);return r.writeMessage(this,i)}toJsonString(t){var n;let r=this.toJson(t);return JSON.stringify(r,null,(n=t==null?void 0:t.prettySpaces)!==null&&n!==void 0?n:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}};function Cj(e,t,n,r){var i;let a=(i=r==null?void 0:r.localName)!==null&&i!==void 0?i:t.substring(t.lastIndexOf(".")+1),o={[a]:function(c){e.util.initFields(this),e.util.initPartial(c,this)}}[a];return Object.setPrototypeOf(o.prototype,new we),Object.assign(o,{runtime:e,typeName:t,fields:e.util.newFieldList(n),fromBinary(c,l){return new o().fromBinary(c,l)},fromJson(c,l){return new o().fromJson(c,l)},fromJsonString(c,l){return new o().fromJsonString(c,l)},equals(c,l){return e.util.equals(o,c,l)}}),o}m();T();N();m();T();N();m();T();N();m();T();N();function Uj(){let e=0,t=0;for(let r=0;r<28;r+=7){let i=this.buf[this.pos++];if(e|=(i&127)<>4,!(n&128))return this.assertBounds(),[e,t];for(let r=3;r<=31;r+=7){let i=this.buf[this.pos++];if(t|=(i&127)<>>a,c=!(!(o>>>7)&&t==0),l=(c?o|128:o)&255;if(n.push(l),!c)return}let r=e>>>28&15|(t&7)<<4,i=!!(t>>3);if(n.push((i?r|128:r)&255),!!i){for(let a=3;a<31;a=a+7){let o=t>>>a,c=!!(o>>>7),l=(c?o|128:o)&255;if(n.push(l),!c)return}n.push(t>>>31&1)}}var vh=4294967296;function eb(e){let t=e[0]==="-";t&&(e=e.slice(1));let n=1e6,r=0,i=0;function a(o,c){let l=Number(e.slice(o,c));i*=n,r=r*n+l,r>=vh&&(i=i+(r/vh|0),r=r%vh)}return a(-24,-18),a(-18,-12),a(-12,-6),a(-6),t?Mj(r,i):nb(r,i)}function kj(e,t){let n=nb(e,t),r=n.hi&2147483648;r&&(n=Mj(n.lo,n.hi));let i=tb(n.lo,n.hi);return r?"-"+i:i}function tb(e,t){if({lo:e,hi:t}=mpe(e,t),t<=2097151)return String(vh*t+e);let n=e&16777215,r=(e>>>24|t<<8)&16777215,i=t>>16&65535,a=n+r*6777216+i*6710656,o=r+i*8147497,c=i*2,l=1e7;return a>=l&&(o+=Math.floor(a/l),a%=l),o>=l&&(c+=Math.floor(o/l),o%=l),c.toString()+Bj(o)+Bj(a)}function mpe(e,t){return{lo:e>>>0,hi:t>>>0}}function nb(e,t){return{lo:e|0,hi:t|0}}function Mj(e,t){return t=~t,e?e=~e+1:t+=1,nb(e,t)}var Bj=e=>{let t=String(e);return"0000000".slice(t.length)+t};function rb(e,t){if(e>=0){for(;e>127;)t.push(e&127|128),e=e>>>7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e=e>>7;t.push(1)}}function xj(){let e=this.buf[this.pos++],t=e&127;if(!(e&128))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<7,!(e&128))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<14,!(e&128))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<21,!(e&128))return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let n=5;e&128&&n<10;n++)e=this.buf[this.pos++];if(e&128)throw new Error("invalid varint");return this.assertBounds(),t>>>0}function Npe(){let e=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof e.getBigInt64=="function"&&typeof e.getBigUint64=="function"&&typeof e.setBigInt64=="function"&&typeof e.setBigUint64=="function"&&(typeof O!="object"||typeof O.env!="object"||O.env.BUF_BIGINT_DISABLE!=="1")){let i=BigInt("-9223372036854775808"),a=BigInt("9223372036854775807"),o=BigInt("0"),c=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(l){let d=typeof l=="bigint"?l:BigInt(l);if(d>a||dc||dmn(/^-?[0-9]+$/.test(i),`int64 invalid: ${i}`),r=i=>mn(/^[0-9]+$/.test(i),`uint64 invalid: ${i}`);return{zero:"0",supported:!1,parse(i){return typeof i!="string"&&(i=i.toString()),n(i),i},uParse(i){return typeof i!="string"&&(i=i.toString()),r(i),i},enc(i){return typeof i!="string"&&(i=i.toString()),n(i),eb(i)},uEnc(i){return typeof i!="string"&&(i=i.toString()),r(i),eb(i)},dec(i,a){return kj(i,a)},uDec(i,a){return tb(i,a)}}}var Hn=Npe();m();T();N();var pe;(function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"})(pe||(pe={}));var Da;(function(e){e[e.BIGINT=0]="BIGINT",e[e.STRING=1]="STRING"})(Da||(Da={}));function ks(e,t,n){if(t===n)return!0;if(e==pe.BYTES){if(!(t instanceof Uint8Array)||!(n instanceof Uint8Array)||t.length!==n.length)return!1;for(let r=0;r>>0)}raw(t){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(t),this}uint32(t){for(yf(t);t>127;)this.buf.push(t&127|128),t=t>>>7;return this.buf.push(t),this}int32(t){return fd(t),rb(t,this.buf),this}bool(t){return this.buf.push(t?1:0),this}bytes(t){return this.uint32(t.byteLength),this.raw(t)}string(t){let n=this.textEncoder.encode(t);return this.uint32(n.byteLength),this.raw(n)}float(t){_h(t);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,t,!0),this.raw(n)}double(t){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,t,!0),this.raw(n)}fixed32(t){yf(t);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,t,!0),this.raw(n)}sfixed32(t){fd(t);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,t,!0),this.raw(n)}sint32(t){return fd(t),t=(t<<1^t>>31)>>>0,rb(t,this.buf),this}sfixed64(t){let n=new Uint8Array(8),r=new DataView(n.buffer),i=Hn.enc(t);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(n)}fixed64(t){let n=new Uint8Array(8),r=new DataView(n.buffer),i=Hn.uEnc(t);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(n)}int64(t){let n=Hn.enc(t);return Sh(n.lo,n.hi,this.buf),this}sint64(t){let n=Hn.enc(t),r=n.hi>>31,i=n.lo<<1^r,a=(n.hi<<1|n.lo>>>31)^r;return Sh(i,a,this.buf),this}uint64(t){let n=Hn.uEnc(t);return Sh(n.lo,n.hi,this.buf),this}},bh=class{constructor(t,n){this.varint64=Uj,this.uint32=xj,this.buf=t,this.len=t.length,this.pos=0,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength),this.textDecoder=n!=null?n:new TextDecoder}tag(){let t=this.uint32(),n=t>>>3,r=t&7;if(n<=0||r<0||r>5)throw new Error("illegal tag: field no "+n+" wire type "+r);return[n,r]}skip(t){let n=this.pos;switch(t){case qn.Varint:for(;this.buf[this.pos++]&128;);break;case qn.Bit64:this.pos+=4;case qn.Bit32:this.pos+=4;break;case qn.LengthDelimited:let r=this.uint32();this.pos+=r;break;case qn.StartGroup:let i;for(;(i=this.tag()[1])!==qn.EndGroup;)this.skip(i);break;default:throw new Error("cant skip wire type "+t)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)}int64(){return Hn.dec(...this.varint64())}uint64(){return Hn.uDec(...this.varint64())}sint64(){let[t,n]=this.varint64(),r=-(t&1);return t=(t>>>1|(n&1)<<31)^r,n=n>>>1^r,Hn.dec(t,n)}bool(){let[t,n]=this.varint64();return t!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return Hn.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return Hn.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let t=this.uint32(),n=this.pos;return this.pos+=t,this.assertBounds(),this.buf.subarray(n,n+t)}string(){return this.textDecoder.decode(this.bytes())}};function qj(e,t,n,r){let i;return{typeName:t,extendee:n,get field(){if(!i){let a=typeof r=="function"?r():r;a.name=t.split(".").pop(),a.jsonName=`[${t}]`,i=e.util.newFieldList([a]).list()[0]}return i},runtime:e}}function Ah(e){let t=e.field.localName,n=Object.create(null);return n[t]=Tpe(e),[n,()=>n[t]]}function Tpe(e){let t=e.field;if(t.repeated)return[];if(t.default!==void 0)return t.default;switch(t.kind){case"enum":return t.T.values[0].no;case"scalar":return ba(t.T,t.L);case"message":let n=t.T,r=new n;return n.fieldWrapper?n.fieldWrapper.unwrapField(r):r;case"map":throw"map fields are not allowed to be extensions"}}function jj(e,t){if(!t.repeated&&(t.kind=="enum"||t.kind=="scalar")){for(let n=e.length-1;n>=0;--n)if(e[n].no==t.no)return[e[n]];return[]}return e.filter(n=>n.no===t.no)}m();T();N();m();T();N();var Ms="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),Rh=[];for(let e=0;e>4,o=a,i=2;break;case 2:n[r++]=(o&15)<<4|(a&60)>>2,o=a,i=3;break;case 3:n[r++]=(o&3)<<6|a,i=0;break}}if(i==1)throw Error("invalid base64 string.");return n.subarray(0,r)},enc(e){let t="",n=0,r,i=0;for(let a=0;a>2],i=(r&3)<<4,n=1;break;case 1:t+=Ms[i|r>>4],i=(r&15)<<2,n=2;break;case 2:t+=Ms[i|r>>6],t+=Ms[r&63],n=0;break}return n&&(t+=Ms[i],t+="=",n==1&&(t+="=")),t}};m();T();N();function Vj(e,t,n){Gj(t,e);let r=t.runtime.bin.makeReadOptions(n),i=jj(e.getType().runtime.bin.listUnknownFields(e),t.field),[a,o]=Ah(t);for(let c of i)t.runtime.bin.readField(a,r.readerFactory(c.data),t.field,c.wireType,r);return o()}function Kj(e,t,n,r){Gj(t,e);let i=t.runtime.bin.makeReadOptions(r),a=t.runtime.bin.makeWriteOptions(r);if(ab(e,t)){let d=e.getType().runtime.bin.listUnknownFields(e).filter(f=>f.no!=t.field.no);e.getType().runtime.bin.discardUnknownFields(e);for(let f of d)e.getType().runtime.bin.onUnknownField(e,f.no,f.wireType,f.data)}let o=a.writerFactory(),c=t.field;!c.opt&&!c.repeated&&(c.kind=="enum"||c.kind=="scalar")&&(c=Object.assign(Object.assign({},t.field),{opt:!0})),t.runtime.bin.writeField(c,n,o,a);let l=i.readerFactory(o.finish());for(;l.posr.no==t.field.no)}function Gj(e,t){mn(e.extendee.typeName==t.getType().typeName,`extension ${e.typeName} can only be applied to message ${e.extendee.typeName}`)}m();T();N();function Ph(e,t){let n=e.localName;if(e.repeated)return t[n].length>0;if(e.oneof)return t[e.oneof.localName].case===n;switch(e.kind){case"enum":case"scalar":return e.opt||e.req?t[n]!==void 0:e.kind=="enum"?t[n]!==e.T.values[0].no:!Oh(e.T,t[n]);case"message":return t[n]!==void 0;case"map":return Object.keys(t[n]).length>0}}function sb(e,t){let n=e.localName,r=!e.opt&&!e.req;if(e.repeated)t[n]=[];else if(e.oneof)t[e.oneof.localName]={case:void 0};else switch(e.kind){case"map":t[n]={};break;case"enum":t[n]=r?e.T.values[0].no:void 0;break;case"scalar":t[n]=r?ba(e.T,e.L):void 0;break;case"message":t[n]=void 0;break}}m();T();N();m();T();N();function Aa(e,t){if(e===null||typeof e!="object"||!Object.getOwnPropertyNames(we.prototype).every(r=>r in e&&typeof e[r]=="function"))return!1;let n=e.getType();return n===null||typeof n!="function"||!("typeName"in n)||typeof n.typeName!="string"?!1:t===void 0?!0:n.typeName==t.typeName}function Fh(e,t){return Aa(t)||!e.fieldWrapper?t:e.fieldWrapper.wrapField(t)}var Uqe={"google.protobuf.DoubleValue":pe.DOUBLE,"google.protobuf.FloatValue":pe.FLOAT,"google.protobuf.Int64Value":pe.INT64,"google.protobuf.UInt64Value":pe.UINT64,"google.protobuf.Int32Value":pe.INT32,"google.protobuf.UInt32Value":pe.UINT32,"google.protobuf.BoolValue":pe.BOOL,"google.protobuf.StringValue":pe.STRING,"google.protobuf.BytesValue":pe.BYTES};var $j={ignoreUnknownFields:!1},Qj={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function Epe(e){return e?Object.assign(Object.assign({},$j),e):$j}function hpe(e){return e?Object.assign(Object.assign({},Qj),e):Qj}var Ch=Symbol(),wh=Symbol();function Hj(){return{makeReadOptions:Epe,makeWriteOptions:hpe,readMessage(e,t,n,r){if(t==null||Array.isArray(t)||typeof t!="object")throw new Error(`cannot decode message ${e.typeName} from JSON: ${ls(t)}`);r=r!=null?r:new e;let i=new Map,a=n.typeRegistry;for(let[o,c]of Object.entries(t)){let l=e.fields.findJsonName(o);if(l){if(l.oneof){if(c===null&&l.kind=="scalar")continue;let d=i.get(l.oneof);if(d!==void 0)throw new Error(`cannot decode message ${e.typeName} from JSON: multiple keys for oneof "${l.oneof.name}" present: "${d}", "${o}"`);i.set(l.oneof,o)}Yj(r,c,l,n,e)}else{let d=!1;if(a!=null&&a.findExtension&&o.startsWith("[")&&o.endsWith("]")){let f=a.findExtension(o.substring(1,o.length-1));if(f&&f.extendee.typeName==e.typeName){d=!0;let[y,I]=Ah(f);Yj(y,c,f.field,n,f),Kj(r,f,I(),n)}}if(!d&&!n.ignoreUnknownFields)throw new Error(`cannot decode message ${e.typeName} from JSON: key "${o}" is unknown`)}}return r},writeMessage(e,t){let n=e.getType(),r={},i;try{for(i of n.fields.byNumber()){if(!Ph(i,e)){if(i.req)throw"required field not set";if(!t.emitDefaultValues||!Ipe(i))continue}let o=i.oneof?e[i.oneof.localName].value:e[i.localName],c=Jj(i,o,t);c!==void 0&&(r[t.useProtoFieldName?i.name:i.jsonName]=c)}let a=t.typeRegistry;if(a!=null&&a.findExtensionFor)for(let o of n.runtime.bin.listUnknownFields(e)){let c=a.findExtensionFor(n.typeName,o.no);if(c&&ab(e,c)){let l=Vj(e,c,t),d=Jj(c.field,l,t);d!==void 0&&(r[c.field.jsonName]=d)}}}catch(a){let o=i?`cannot encode field ${n.typeName}.${i.name} to JSON`:`cannot encode message ${n.typeName} to JSON`,c=a instanceof Error?a.message:String(a);throw new Error(o+(c.length>0?`: ${c}`:""))}return r},readScalar(e,t,n){return If(e,t,n!=null?n:Da.BIGINT,!0)},writeScalar(e,t,n){if(t!==void 0&&(n||Oh(e,t)))return Lh(e,t)},debug:ls}}function ls(e){if(e===null)return"null";switch(typeof e){case"object":return Array.isArray(e)?"array":"object";case"string":return e.length>100?"string":`"${e.split('"').join('\\"')}"`;default:return String(e)}}function Yj(e,t,n,r,i){let a=n.localName;if(n.repeated){if(mn(n.kind!="map"),t===null)return;if(!Array.isArray(t))throw new Error(`cannot decode field ${i.typeName}.${n.name} from JSON: ${ls(t)}`);let o=e[a];for(let c of t){if(c===null)throw new Error(`cannot decode field ${i.typeName}.${n.name} from JSON: ${ls(c)}`);switch(n.kind){case"message":o.push(n.T.fromJson(c,r));break;case"enum":let l=ob(n.T,c,r.ignoreUnknownFields,!0);l!==wh&&o.push(l);break;case"scalar":try{o.push(If(n.T,c,n.L,!0))}catch(d){let f=`cannot decode field ${i.typeName}.${n.name} from JSON: ${ls(c)}`;throw d instanceof Error&&d.message.length>0&&(f+=`: ${d.message}`),new Error(f)}break}}}else if(n.kind=="map"){if(t===null)return;if(typeof t!="object"||Array.isArray(t))throw new Error(`cannot decode field ${i.typeName}.${n.name} from JSON: ${ls(t)}`);let o=e[a];for(let[c,l]of Object.entries(t)){if(l===null)throw new Error(`cannot decode field ${i.typeName}.${n.name} from JSON: map value null`);let d;try{d=ype(n.K,c)}catch(f){let y=`cannot decode map key for field ${i.typeName}.${n.name} from JSON: ${ls(t)}`;throw f instanceof Error&&f.message.length>0&&(y+=`: ${f.message}`),new Error(y)}switch(n.V.kind){case"message":o[d]=n.V.T.fromJson(l,r);break;case"enum":let f=ob(n.V.T,l,r.ignoreUnknownFields,!0);f!==wh&&(o[d]=f);break;case"scalar":try{o[d]=If(n.V.T,l,Da.BIGINT,!0)}catch(y){let I=`cannot decode map value for field ${i.typeName}.${n.name} from JSON: ${ls(t)}`;throw y instanceof Error&&y.message.length>0&&(I+=`: ${y.message}`),new Error(I)}break}}}else switch(n.oneof&&(e=e[n.oneof.localName]={case:a},a="value"),n.kind){case"message":let o=n.T;if(t===null&&o.typeName!="google.protobuf.Value")return;let c=e[a];Aa(c)?c.fromJson(t,r):(e[a]=c=o.fromJson(t,r),o.fieldWrapper&&!n.oneof&&(e[a]=o.fieldWrapper.unwrapField(c)));break;case"enum":let l=ob(n.T,t,r.ignoreUnknownFields,!1);switch(l){case Ch:sb(n,e);break;case wh:break;default:e[a]=l;break}break;case"scalar":try{let d=If(n.T,t,n.L,!1);switch(d){case Ch:sb(n,e);break;default:e[a]=d;break}}catch(d){let f=`cannot decode field ${i.typeName}.${n.name} from JSON: ${ls(t)}`;throw d instanceof Error&&d.message.length>0&&(f+=`: ${d.message}`),new Error(f)}break}}function ype(e,t){if(e===pe.BOOL)switch(t){case"true":t=!0;break;case"false":t=!1;break}return If(e,t,Da.BIGINT,!0).toString()}function If(e,t,n,r){if(t===null)return r?ba(e,n):Ch;switch(e){case pe.DOUBLE:case pe.FLOAT:if(t==="NaN")return Number.NaN;if(t==="Infinity")return Number.POSITIVE_INFINITY;if(t==="-Infinity")return Number.NEGATIVE_INFINITY;if(t===""||typeof t=="string"&&t.trim().length!==t.length||typeof t!="string"&&typeof t!="number")break;let i=Number(t);if(Number.isNaN(i)||!Number.isFinite(i))break;return e==pe.FLOAT&&_h(i),i;case pe.INT32:case pe.FIXED32:case pe.SFIXED32:case pe.SINT32:case pe.UINT32:let a;if(typeof t=="number"?a=t:typeof t=="string"&&t.length>0&&t.trim().length===t.length&&(a=Number(t)),a===void 0)break;return e==pe.UINT32||e==pe.FIXED32?yf(a):fd(a),a;case pe.INT64:case pe.SFIXED64:case pe.SINT64:if(typeof t!="number"&&typeof t!="string")break;let o=Hn.parse(t);return n?o.toString():o;case pe.FIXED64:case pe.UINT64:if(typeof t!="number"&&typeof t!="string")break;let c=Hn.uParse(t);return n?c.toString():c;case pe.BOOL:if(typeof t!="boolean")break;return t;case pe.STRING:if(typeof t!="string")break;try{encodeURIComponent(t)}catch(l){throw new Error("invalid UTF8")}return t;case pe.BYTES:if(t==="")return new Uint8Array(0);if(typeof t!="string")break;return ib.dec(t)}throw new Error}function ob(e,t,n,r){if(t===null)return e.typeName=="google.protobuf.NullValue"?0:r?e.values[0].no:Ch;switch(typeof t){case"number":if(Number.isInteger(t))return t;break;case"string":let i=e.findName(t);if(i!==void 0)return i.no;if(n)return wh;break}throw new Error(`cannot decode enum ${e.typeName} from JSON: ${ls(t)}`)}function Ipe(e){return e.repeated||e.kind=="map"?!0:!(e.oneof||e.kind=="message"||e.opt||e.req)}function Jj(e,t,n){if(e.kind=="map"){mn(typeof t=="object"&&t!=null);let r={},i=Object.entries(t);switch(e.V.kind){case"scalar":for(let[o,c]of i)r[o.toString()]=Lh(e.V.T,c);break;case"message":for(let[o,c]of i)r[o.toString()]=c.toJson(n);break;case"enum":let a=e.V.T;for(let[o,c]of i)r[o.toString()]=ub(a,c,n.enumAsInteger);break}return n.emitDefaultValues||i.length>0?r:void 0}if(e.repeated){mn(Array.isArray(t));let r=[];switch(e.kind){case"scalar":for(let i=0;i0?r:void 0}switch(e.kind){case"scalar":return Lh(e.T,t);case"enum":return ub(e.T,t,n.enumAsInteger);case"message":return Fh(e.T,t).toJson(n)}}function ub(e,t,n){var r;if(mn(typeof t=="number"),e.typeName=="google.protobuf.NullValue")return null;if(n)return t;let i=e.findNumber(t);return(r=i==null?void 0:i.name)!==null&&r!==void 0?r:t}function Lh(e,t){switch(e){case pe.INT32:case pe.SFIXED32:case pe.SINT32:case pe.FIXED32:case pe.UINT32:return mn(typeof t=="number"),t;case pe.FLOAT:case pe.DOUBLE:return mn(typeof t=="number"),Number.isNaN(t)?"NaN":t===Number.POSITIVE_INFINITY?"Infinity":t===Number.NEGATIVE_INFINITY?"-Infinity":t;case pe.STRING:return mn(typeof t=="string"),t;case pe.BOOL:return mn(typeof t=="boolean"),t;case pe.UINT64:case pe.FIXED64:case pe.INT64:case pe.SFIXED64:case pe.SINT64:return mn(typeof t=="bigint"||typeof t=="string"||typeof t=="number"),t.toString();case pe.BYTES:return mn(t instanceof Uint8Array),ib.enc(t)}}m();T();N();var md=Symbol("@bufbuild/protobuf/unknown-fields"),zj={readUnknownFields:!0,readerFactory:e=>new bh(e)},Wj={writeUnknownFields:!0,writerFactory:()=>new Dh};function gpe(e){return e?Object.assign(Object.assign({},zj),e):zj}function _pe(e){return e?Object.assign(Object.assign({},Wj),e):Wj}function tV(){return{makeReadOptions:gpe,makeWriteOptions:_pe,listUnknownFields(e){var t;return(t=e[md])!==null&&t!==void 0?t:[]},discardUnknownFields(e){delete e[md]},writeUnknownFields(e,t){let r=e[md];if(r)for(let i of r)t.tag(i.no,i.wireType).raw(i.data)},onUnknownField(e,t,n,r){let i=e;Array.isArray(i[md])||(i[md]=[]),i[md].push({no:t,wireType:n,data:r})},readMessage(e,t,n,r,i){let a=e.getType(),o=i?t.len:t.pos+n,c,l;for(;t.pos0&&(l=Spe),a){let I=e[o];if(r==qn.LengthDelimited&&c!=pe.STRING&&c!=pe.BYTES){let w=t.uint32()+t.pos;for(;t.posAa(I,y)?I:new y(I));else{let I=o[i];y.fieldWrapper?y.typeName==="google.protobuf.BytesValue"?a[i]=_f(I):a[i]=I:a[i]=Aa(I,y)?I:new y(I)}break}}},equals(e,t,n){return t===n?!0:!t||!n?!1:e.fields.byMember().every(r=>{let i=t[r.localName],a=n[r.localName];if(r.repeated){if(i.length!==a.length)return!1;switch(r.kind){case"message":return i.every((o,c)=>r.T.equals(o,a[c]));case"scalar":return i.every((o,c)=>ks(r.T,o,a[c]));case"enum":return i.every((o,c)=>ks(pe.INT32,o,a[c]))}throw new Error(`repeated cannot contain ${r.kind}`)}switch(r.kind){case"message":return r.T.equals(i,a);case"enum":return ks(pe.INT32,i,a);case"scalar":return ks(r.T,i,a);case"oneof":if(i.case!==a.case)return!1;let o=r.findField(i.case);if(o===void 0)return!0;switch(o.kind){case"message":return o.T.equals(i.value,a.value);case"enum":return ks(pe.INT32,i.value,a.value);case"scalar":return ks(o.T,i.value,a.value)}throw new Error(`oneof cannot contain ${o.kind}`);case"map":let c=Object.keys(i).concat(Object.keys(a));switch(r.V.kind){case"message":let l=r.V.T;return c.every(f=>l.equals(i[f],a[f]));case"enum":return c.every(f=>ks(pe.INT32,i[f],a[f]));case"scalar":let d=r.V.T;return c.every(f=>ks(d,i[f],a[f]))}break}})},clone(e){let t=e.getType(),n=new t,r=n;for(let i of t.fields.byMember()){let a=e[i.localName],o;if(i.repeated)o=a.map(kh);else if(i.kind=="map"){o=r[i.localName];for(let[c,l]of Object.entries(a))o[c]=kh(l)}else i.kind=="oneof"?o=i.findField(a.case)?{case:a.case,value:kh(a.value)}:{case:void 0}:o=kh(a);r[i.localName]=o}for(let i of t.runtime.bin.listUnknownFields(e))t.runtime.bin.onUnknownField(r,i.no,i.wireType,i.data);return n}}}function kh(e){if(e===void 0)return e;if(Aa(e))return e.clone();if(e instanceof Uint8Array){let t=new Uint8Array(e.byteLength);return t.set(e),t}return e}function _f(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function iV(e,t,n){return{syntax:e,json:Hj(),bin:tV(),util:Object.assign(Object.assign({},rV()),{newFieldList:t,initFields:n}),makeMessageType(r,i,a){return Cj(this,r,i,a)},makeEnum:wj,makeEnumType:ZD,getEnumType:Fj,makeExtension(r,i,a){return qj(this,r,i,a)}}}m();T();N();var Mh=class{constructor(t,n){this._fields=t,this._normalizer=n}findJsonName(t){if(!this.jsonNames){let n={};for(let r of this.list())n[r.jsonName]=n[r.name]=r;this.jsonNames=n}return this.jsonNames[t]}find(t){if(!this.numbers){let n={};for(let r of this.list())n[r.no]=r;this.numbers=n}return this.numbers[t]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((t,n)=>t.no-n.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];let t=this.members,n;for(let r of this.list())r.oneof?r.oneof!==n&&(n=r.oneof,t.push(n)):t.push(r)}return this.members}};m();T();N();m();T();N();m();T();N();function cb(e,t){let n=oV(e);return t?n:Ppe(Rpe(n))}function aV(e){return cb(e,!1)}var sV=oV;function oV(e){let t=!1,n=[];for(let r=0;r`${e}$`,Rpe=e=>Ape.has(e)?uV(e):e,Ppe=e=>bpe.has(e)?uV(e):e;var xh=class{constructor(t){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.req=!1,this.default=void 0,this.fields=[],this.name=t,this.localName=aV(t)}addField(t){mn(t.oneof===this,`field ${t.name} not one of ${this.name}`),this.fields.push(t)}findField(t){if(!this._lookup){this._lookup=Object.create(null);for(let n=0;nnew Mh(e,t=>cV(t,!0)),e=>{for(let t of e.getType().fields.byMember()){if(t.opt)continue;let n=t.localName,r=e;if(t.repeated){r[n]=[];continue}switch(t.kind){case"oneof":r[n]={case:void 0};break;case"enum":r[n]=0;break;case"map":r[n]={};break;case"scalar":r[n]=ba(t.T,t.L);break;case"message":break}}});var Nd;(function(e){e[e.OK=0]="OK",e[e.ERR=1]="ERR",e[e.ERR_NOT_FOUND=2]="ERR_NOT_FOUND",e[e.ERR_ALREADY_EXISTS=3]="ERR_ALREADY_EXISTS",e[e.ERR_INVALID_SUBGRAPH_SCHEMA=4]="ERR_INVALID_SUBGRAPH_SCHEMA",e[e.ERR_SUBGRAPH_COMPOSITION_FAILED=5]="ERR_SUBGRAPH_COMPOSITION_FAILED",e[e.ERR_SUBGRAPH_CHECK_FAILED=6]="ERR_SUBGRAPH_CHECK_FAILED",e[e.ERR_INVALID_LABELS=7]="ERR_INVALID_LABELS",e[e.ERR_ANALYTICS_DISABLED=8]="ERR_ANALYTICS_DISABLED",e[e.ERROR_NOT_AUTHENTICATED=9]="ERROR_NOT_AUTHENTICATED",e[e.ERR_OPENAI_DISABLED=10]="ERR_OPENAI_DISABLED",e[e.ERR_FREE_TRIAL_EXPIRED=11]="ERR_FREE_TRIAL_EXPIRED",e[e.ERROR_NOT_AUTHORIZED=12]="ERROR_NOT_AUTHORIZED",e[e.ERR_LIMIT_REACHED=13]="ERR_LIMIT_REACHED",e[e.ERR_DEPLOYMENT_FAILED=14]="ERR_DEPLOYMENT_FAILED",e[e.ERR_INVALID_NAME=15]="ERR_INVALID_NAME",e[e.ERR_UPGRADE_PLAN=16]="ERR_UPGRADE_PLAN",e[e.ERR_BAD_REQUEST=17]="ERR_BAD_REQUEST",e[e.ERR_SCHEMA_MISMATCH_WITH_APPROVED_PROPOSAL=18]="ERR_SCHEMA_MISMATCH_WITH_APPROVED_PROPOSAL"})(Nd||(Nd={}));B.util.setEnumType(Nd,"wg.cosmo.common.EnumStatusCode",[{no:0,name:"OK"},{no:1,name:"ERR"},{no:2,name:"ERR_NOT_FOUND"},{no:3,name:"ERR_ALREADY_EXISTS"},{no:4,name:"ERR_INVALID_SUBGRAPH_SCHEMA"},{no:5,name:"ERR_SUBGRAPH_COMPOSITION_FAILED"},{no:6,name:"ERR_SUBGRAPH_CHECK_FAILED"},{no:7,name:"ERR_INVALID_LABELS"},{no:8,name:"ERR_ANALYTICS_DISABLED"},{no:9,name:"ERROR_NOT_AUTHENTICATED"},{no:10,name:"ERR_OPENAI_DISABLED"},{no:11,name:"ERR_FREE_TRIAL_EXPIRED"},{no:12,name:"ERROR_NOT_AUTHORIZED"},{no:13,name:"ERR_LIMIT_REACHED"},{no:14,name:"ERR_DEPLOYMENT_FAILED"},{no:15,name:"ERR_INVALID_NAME"},{no:16,name:"ERR_UPGRADE_PLAN"},{no:17,name:"ERR_BAD_REQUEST"},{no:18,name:"ERR_SCHEMA_MISMATCH_WITH_APPROVED_PROPOSAL"}]);var xs;(function(e){e[e.GRAPHQL_SUBSCRIPTION_PROTOCOL_WS=0]="GRAPHQL_SUBSCRIPTION_PROTOCOL_WS",e[e.GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE=1]="GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE",e[e.GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE_POST=2]="GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE_POST"})(xs||(xs={}));B.util.setEnumType(xs,"wg.cosmo.common.GraphQLSubscriptionProtocol",[{no:0,name:"GRAPHQL_SUBSCRIPTION_PROTOCOL_WS"},{no:1,name:"GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE"},{no:2,name:"GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE_POST"}]);var qs;(function(e){e[e.GRAPHQL_WEBSOCKET_SUBPROTOCOL_AUTO=0]="GRAPHQL_WEBSOCKET_SUBPROTOCOL_AUTO",e[e.GRAPHQL_WEBSOCKET_SUBPROTOCOL_WS=1]="GRAPHQL_WEBSOCKET_SUBPROTOCOL_WS",e[e.GRAPHQL_WEBSOCKET_SUBPROTOCOL_TRANSPORT_WS=2]="GRAPHQL_WEBSOCKET_SUBPROTOCOL_TRANSPORT_WS"})(qs||(qs={}));B.util.setEnumType(qs,"wg.cosmo.common.GraphQLWebsocketSubprotocol",[{no:0,name:"GRAPHQL_WEBSOCKET_SUBPROTOCOL_AUTO"},{no:1,name:"GRAPHQL_WEBSOCKET_SUBPROTOCOL_WS"},{no:2,name:"GRAPHQL_WEBSOCKET_SUBPROTOCOL_TRANSPORT_WS"}]);var yV=_s(Se(),1);m();T();N();var lb;(function(e){e[e.RENDER_ARGUMENT_DEFAULT=0]="RENDER_ARGUMENT_DEFAULT",e[e.RENDER_ARGUMENT_AS_GRAPHQL_VALUE=1]="RENDER_ARGUMENT_AS_GRAPHQL_VALUE",e[e.RENDER_ARGUMENT_AS_ARRAY_CSV=2]="RENDER_ARGUMENT_AS_ARRAY_CSV"})(lb||(lb={}));B.util.setEnumType(lb,"wg.cosmo.node.v1.ArgumentRenderConfiguration",[{no:0,name:"RENDER_ARGUMENT_DEFAULT"},{no:1,name:"RENDER_ARGUMENT_AS_GRAPHQL_VALUE"},{no:2,name:"RENDER_ARGUMENT_AS_ARRAY_CSV"}]);var Vc;(function(e){e[e.OBJECT_FIELD=0]="OBJECT_FIELD",e[e.FIELD_ARGUMENT=1]="FIELD_ARGUMENT"})(Vc||(Vc={}));B.util.setEnumType(Vc,"wg.cosmo.node.v1.ArgumentSource",[{no:0,name:"OBJECT_FIELD"},{no:1,name:"FIELD_ARGUMENT"}]);var Lu;(function(e){e[e.STATIC=0]="STATIC",e[e.GRAPHQL=1]="GRAPHQL",e[e.PUBSUB=2]="PUBSUB"})(Lu||(Lu={}));B.util.setEnumType(Lu,"wg.cosmo.node.v1.DataSourceKind",[{no:0,name:"STATIC"},{no:1,name:"GRAPHQL"},{no:2,name:"PUBSUB"}]);var vf;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.QUERY=1]="QUERY",e[e.MUTATION=2]="MUTATION",e[e.SUBSCRIPTION=3]="SUBSCRIPTION"})(vf||(vf={}));B.util.setEnumType(vf,"wg.cosmo.node.v1.OperationType",[{no:0,name:"OPERATION_TYPE_UNSPECIFIED"},{no:1,name:"OPERATION_TYPE_QUERY"},{no:2,name:"OPERATION_TYPE_MUTATION"},{no:3,name:"OPERATION_TYPE_SUBSCRIPTION"}]);var Jo;(function(e){e[e.PUBLISH=0]="PUBLISH",e[e.REQUEST=1]="REQUEST",e[e.SUBSCRIBE=2]="SUBSCRIBE"})(Jo||(Jo={}));B.util.setEnumType(Jo,"wg.cosmo.node.v1.EventType",[{no:0,name:"PUBLISH"},{no:1,name:"REQUEST"},{no:2,name:"SUBSCRIBE"}]);var Cu;(function(e){e[e.STATIC_CONFIGURATION_VARIABLE=0]="STATIC_CONFIGURATION_VARIABLE",e[e.ENV_CONFIGURATION_VARIABLE=1]="ENV_CONFIGURATION_VARIABLE",e[e.PLACEHOLDER_CONFIGURATION_VARIABLE=2]="PLACEHOLDER_CONFIGURATION_VARIABLE"})(Cu||(Cu={}));B.util.setEnumType(Cu,"wg.cosmo.node.v1.ConfigurationVariableKind",[{no:0,name:"STATIC_CONFIGURATION_VARIABLE"},{no:1,name:"ENV_CONFIGURATION_VARIABLE"},{no:2,name:"PLACEHOLDER_CONFIGURATION_VARIABLE"}]);var Kc;(function(e){e[e.GET=0]="GET",e[e.POST=1]="POST",e[e.PUT=2]="PUT",e[e.DELETE=3]="DELETE",e[e.OPTIONS=4]="OPTIONS"})(Kc||(Kc={}));B.util.setEnumType(Kc,"wg.cosmo.node.v1.HTTPMethod",[{no:0,name:"GET"},{no:1,name:"POST"},{no:2,name:"PUT"},{no:3,name:"DELETE"},{no:4,name:"OPTIONS"}]);var js=class js extends we{constructor(n){super();_(this,"id","");_(this,"name","");_(this,"routingUrl","");B.util.initPartial(n,this)}static fromBinary(n,r){return new js().fromBinary(n,r)}static fromJson(n,r){return new js().fromJson(n,r)}static fromJsonString(n,r){return new js().fromJsonString(n,r)}static equals(n,r){return B.util.equals(js,n,r)}};_(js,"runtime",B),_(js,"typeName","wg.cosmo.node.v1.Subgraph"),_(js,"fields",B.util.newFieldList(()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"routing_url",kind:"scalar",T:9}]));var qh=js,Vs=class Vs extends we{constructor(n){super();_(this,"configByFeatureFlagName",{});B.util.initPartial(n,this)}static fromBinary(n,r){return new Vs().fromBinary(n,r)}static fromJson(n,r){return new Vs().fromJson(n,r)}static fromJsonString(n,r){return new Vs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Vs,n,r)}};_(Vs,"runtime",B),_(Vs,"typeName","wg.cosmo.node.v1.FeatureFlagRouterExecutionConfigs"),_(Vs,"fields",B.util.newFieldList(()=>[{no:1,name:"config_by_feature_flag_name",kind:"map",K:9,V:{kind:"message",T:pb}}]));var db=Vs,Ks=class Ks extends we{constructor(n){super();_(this,"engineConfig");_(this,"version","");_(this,"subgraphs",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Ks().fromBinary(n,r)}static fromJson(n,r){return new Ks().fromJson(n,r)}static fromJsonString(n,r){return new Ks().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ks,n,r)}};_(Ks,"runtime",B),_(Ks,"typeName","wg.cosmo.node.v1.FeatureFlagRouterExecutionConfig"),_(Ks,"fields",B.util.newFieldList(()=>[{no:1,name:"engine_config",kind:"message",T:Td},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"subgraphs",kind:"message",T:qh,repeated:!0}]));var pb=Ks,Gs=class Gs extends we{constructor(n){super();_(this,"engineConfig");_(this,"version","");_(this,"subgraphs",[]);_(this,"featureFlagConfigs");_(this,"compatibilityVersion","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Gs().fromBinary(n,r)}static fromJson(n,r){return new Gs().fromJson(n,r)}static fromJsonString(n,r){return new Gs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Gs,n,r)}};_(Gs,"runtime",B),_(Gs,"typeName","wg.cosmo.node.v1.RouterConfig"),_(Gs,"fields",B.util.newFieldList(()=>[{no:1,name:"engine_config",kind:"message",T:Td},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"subgraphs",kind:"message",T:qh,repeated:!0},{no:4,name:"feature_flag_configs",kind:"message",T:db,opt:!0},{no:5,name:"compatibility_version",kind:"scalar",T:9}]));var Sf=Gs,$s=class $s extends we{constructor(n){super();_(this,"code",Nd.OK);_(this,"details");B.util.initPartial(n,this)}static fromBinary(n,r){return new $s().fromBinary(n,r)}static fromJson(n,r){return new $s().fromJson(n,r)}static fromJsonString(n,r){return new $s().fromJsonString(n,r)}static equals(n,r){return B.util.equals($s,n,r)}};_($s,"runtime",B),_($s,"typeName","wg.cosmo.node.v1.Response"),_($s,"fields",B.util.newFieldList(()=>[{no:1,name:"code",kind:"enum",T:B.getEnumType(Nd)},{no:2,name:"details",kind:"scalar",T:9,opt:!0}]));var fb=$s,Qs=class Qs extends we{constructor(n){super();_(this,"code",0);_(this,"message","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Qs().fromBinary(n,r)}static fromJson(n,r){return new Qs().fromJson(n,r)}static fromJsonString(n,r){return new Qs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Qs,n,r)}};_(Qs,"runtime",B),_(Qs,"typeName","wg.cosmo.node.v1.ResponseStatus"),_(Qs,"fields",B.util.newFieldList(()=>[{no:1,name:"code",kind:"scalar",T:5},{no:2,name:"message",kind:"scalar",T:9}]));var lV=Qs,Ys=class Ys extends we{constructor(n){super();_(this,"accountLimits");_(this,"graphPublicKey","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Ys().fromBinary(n,r)}static fromJson(n,r){return new Ys().fromJson(n,r)}static fromJsonString(n,r){return new Ys().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ys,n,r)}};_(Ys,"runtime",B),_(Ys,"typeName","wg.cosmo.node.v1.RegistrationInfo"),_(Ys,"fields",B.util.newFieldList(()=>[{no:1,name:"account_limits",kind:"message",T:Nb},{no:2,name:"graph_public_key",kind:"scalar",T:9}]));var mb=Ys,Js=class Js extends we{constructor(n){super();_(this,"traceSamplingRate",0);B.util.initPartial(n,this)}static fromBinary(n,r){return new Js().fromBinary(n,r)}static fromJson(n,r){return new Js().fromJson(n,r)}static fromJsonString(n,r){return new Js().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Js,n,r)}};_(Js,"runtime",B),_(Js,"typeName","wg.cosmo.node.v1.AccountLimits"),_(Js,"fields",B.util.newFieldList(()=>[{no:1,name:"trace_sampling_rate",kind:"scalar",T:2}]));var Nb=Js,Hs=class Hs extends we{constructor(t){super(),B.util.initPartial(t,this)}static fromBinary(t,n){return new Hs().fromBinary(t,n)}static fromJson(t,n){return new Hs().fromJson(t,n)}static fromJsonString(t,n){return new Hs().fromJsonString(t,n)}static equals(t,n){return B.util.equals(Hs,t,n)}};_(Hs,"runtime",B),_(Hs,"typeName","wg.cosmo.node.v1.SelfRegisterRequest"),_(Hs,"fields",B.util.newFieldList(()=>[]));var dV=Hs,zs=class zs extends we{constructor(n){super();_(this,"response");_(this,"registrationInfo");B.util.initPartial(n,this)}static fromBinary(n,r){return new zs().fromBinary(n,r)}static fromJson(n,r){return new zs().fromJson(n,r)}static fromJsonString(n,r){return new zs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(zs,n,r)}};_(zs,"runtime",B),_(zs,"typeName","wg.cosmo.node.v1.SelfRegisterResponse"),_(zs,"fields",B.util.newFieldList(()=>[{no:1,name:"response",kind:"message",T:fb},{no:2,name:"registrationInfo",kind:"message",T:mb,opt:!0}]));var pV=zs,Ws=class Ws extends we{constructor(n){super();_(this,"defaultFlushInterval",Hn.zero);_(this,"datasourceConfigurations",[]);_(this,"fieldConfigurations",[]);_(this,"graphqlSchema","");_(this,"typeConfigurations",[]);_(this,"stringStorage",{});_(this,"graphqlClientSchema");B.util.initPartial(n,this)}static fromBinary(n,r){return new Ws().fromBinary(n,r)}static fromJson(n,r){return new Ws().fromJson(n,r)}static fromJsonString(n,r){return new Ws().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ws,n,r)}};_(Ws,"runtime",B),_(Ws,"typeName","wg.cosmo.node.v1.EngineConfiguration"),_(Ws,"fields",B.util.newFieldList(()=>[{no:1,name:"defaultFlushInterval",kind:"scalar",T:3},{no:2,name:"datasource_configurations",kind:"message",T:Of,repeated:!0},{no:3,name:"field_configurations",kind:"message",T:Af,repeated:!0},{no:4,name:"graphqlSchema",kind:"scalar",T:9},{no:5,name:"type_configurations",kind:"message",T:Tb,repeated:!0},{no:6,name:"string_storage",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:7,name:"graphql_client_schema",kind:"scalar",T:9,opt:!0}]));var Td=Ws,Xs=class Xs extends we{constructor(n){super();_(this,"kind",Lu.STATIC);_(this,"rootNodes",[]);_(this,"childNodes",[]);_(this,"overrideFieldPathFromAlias",!1);_(this,"customGraphql");_(this,"customStatic");_(this,"directives",[]);_(this,"requestTimeoutSeconds",Hn.zero);_(this,"id","");_(this,"keys",[]);_(this,"provides",[]);_(this,"requires",[]);_(this,"customEvents");_(this,"entityInterfaces",[]);_(this,"interfaceObjects",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Xs().fromBinary(n,r)}static fromJson(n,r){return new Xs().fromJson(n,r)}static fromJsonString(n,r){return new Xs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Xs,n,r)}};_(Xs,"runtime",B),_(Xs,"typeName","wg.cosmo.node.v1.DataSourceConfiguration"),_(Xs,"fields",B.util.newFieldList(()=>[{no:1,name:"kind",kind:"enum",T:B.getEnumType(Lu)},{no:2,name:"root_nodes",kind:"message",T:Ed,repeated:!0},{no:3,name:"child_nodes",kind:"message",T:Ed,repeated:!0},{no:4,name:"override_field_path_from_alias",kind:"scalar",T:8},{no:5,name:"custom_graphql",kind:"message",T:Ff},{no:6,name:"custom_static",kind:"message",T:bb},{no:7,name:"directives",kind:"message",T:Ab,repeated:!0},{no:8,name:"request_timeout_seconds",kind:"scalar",T:3},{no:9,name:"id",kind:"scalar",T:9},{no:10,name:"keys",kind:"message",T:jc,repeated:!0},{no:11,name:"provides",kind:"message",T:jc,repeated:!0},{no:12,name:"requires",kind:"message",T:jc,repeated:!0},{no:13,name:"custom_events",kind:"message",T:$c},{no:14,name:"entity_interfaces",kind:"message",T:hd,repeated:!0},{no:15,name:"interface_objects",kind:"message",T:hd,repeated:!0}]));var Of=Xs,Zs=class Zs extends we{constructor(n){super();_(this,"name","");_(this,"sourceType",Vc.OBJECT_FIELD);B.util.initPartial(n,this)}static fromBinary(n,r){return new Zs().fromBinary(n,r)}static fromJson(n,r){return new Zs().fromJson(n,r)}static fromJsonString(n,r){return new Zs().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Zs,n,r)}};_(Zs,"runtime",B),_(Zs,"typeName","wg.cosmo.node.v1.ArgumentConfiguration"),_(Zs,"fields",B.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"source_type",kind:"enum",T:B.getEnumType(Vc)}]));var Df=Zs,eo=class eo extends we{constructor(n){super();_(this,"requiredAndScopes",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new eo().fromBinary(n,r)}static fromJson(n,r){return new eo().fromJson(n,r)}static fromJsonString(n,r){return new eo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(eo,n,r)}};_(eo,"runtime",B),_(eo,"typeName","wg.cosmo.node.v1.Scopes"),_(eo,"fields",B.util.newFieldList(()=>[{no:1,name:"required_and_scopes",kind:"scalar",T:9,repeated:!0}]));var Gc=eo,to=class to extends we{constructor(n){super();_(this,"requiresAuthentication",!1);_(this,"requiredOrScopes",[]);_(this,"requiredOrScopesByOr",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new to().fromBinary(n,r)}static fromJson(n,r){return new to().fromJson(n,r)}static fromJsonString(n,r){return new to().fromJsonString(n,r)}static equals(n,r){return B.util.equals(to,n,r)}};_(to,"runtime",B),_(to,"typeName","wg.cosmo.node.v1.AuthorizationConfiguration"),_(to,"fields",B.util.newFieldList(()=>[{no:1,name:"requires_authentication",kind:"scalar",T:8},{no:2,name:"required_or_scopes",kind:"message",T:Gc,repeated:!0},{no:3,name:"required_or_scopes_by_or",kind:"message",T:Gc,repeated:!0}]));var bf=to,no=class no extends we{constructor(n){super();_(this,"typeName","");_(this,"fieldName","");_(this,"argumentsConfiguration",[]);_(this,"authorizationConfiguration");_(this,"subscriptionFilterCondition");B.util.initPartial(n,this)}static fromBinary(n,r){return new no().fromBinary(n,r)}static fromJson(n,r){return new no().fromJson(n,r)}static fromJsonString(n,r){return new no().fromJsonString(n,r)}static equals(n,r){return B.util.equals(no,n,r)}};_(no,"runtime",B),_(no,"typeName","wg.cosmo.node.v1.FieldConfiguration"),_(no,"fields",B.util.newFieldList(()=>[{no:1,name:"type_name",kind:"scalar",T:9},{no:2,name:"field_name",kind:"scalar",T:9},{no:3,name:"arguments_configuration",kind:"message",T:Df,repeated:!0},{no:4,name:"authorization_configuration",kind:"message",T:bf},{no:5,name:"subscription_filter_condition",kind:"message",T:Bu,opt:!0}]));var Af=no,ro=class ro extends we{constructor(n){super();_(this,"typeName","");_(this,"renameTo","");B.util.initPartial(n,this)}static fromBinary(n,r){return new ro().fromBinary(n,r)}static fromJson(n,r){return new ro().fromJson(n,r)}static fromJsonString(n,r){return new ro().fromJsonString(n,r)}static equals(n,r){return B.util.equals(ro,n,r)}};_(ro,"runtime",B),_(ro,"typeName","wg.cosmo.node.v1.TypeConfiguration"),_(ro,"fields",B.util.newFieldList(()=>[{no:1,name:"type_name",kind:"scalar",T:9},{no:2,name:"rename_to",kind:"scalar",T:9}]));var Tb=ro,io=class io extends we{constructor(n){super();_(this,"typeName","");_(this,"fieldNames",[]);_(this,"externalFieldNames",[]);_(this,"requireFetchReasonsFieldNames",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new io().fromBinary(n,r)}static fromJson(n,r){return new io().fromJson(n,r)}static fromJsonString(n,r){return new io().fromJsonString(n,r)}static equals(n,r){return B.util.equals(io,n,r)}};_(io,"runtime",B),_(io,"typeName","wg.cosmo.node.v1.TypeField"),_(io,"fields",B.util.newFieldList(()=>[{no:1,name:"type_name",kind:"scalar",T:9},{no:2,name:"field_names",kind:"scalar",T:9,repeated:!0},{no:3,name:"external_field_names",kind:"scalar",T:9,repeated:!0},{no:4,name:"require_fetch_reasons_field_names",kind:"scalar",T:9,repeated:!0}]));var Ed=io,ao=class ao extends we{constructor(n){super();_(this,"fieldName","");_(this,"typeName","");B.util.initPartial(n,this)}static fromBinary(n,r){return new ao().fromBinary(n,r)}static fromJson(n,r){return new ao().fromJson(n,r)}static fromJsonString(n,r){return new ao().fromJsonString(n,r)}static equals(n,r){return B.util.equals(ao,n,r)}};_(ao,"runtime",B),_(ao,"typeName","wg.cosmo.node.v1.FieldCoordinates"),_(ao,"fields",B.util.newFieldList(()=>[{no:1,name:"field_name",kind:"scalar",T:9},{no:2,name:"type_name",kind:"scalar",T:9}]));var Rf=ao,so=class so extends we{constructor(n){super();_(this,"fieldCoordinatesPath",[]);_(this,"fieldPath",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new so().fromBinary(n,r)}static fromJson(n,r){return new so().fromJson(n,r)}static fromJsonString(n,r){return new so().fromJsonString(n,r)}static equals(n,r){return B.util.equals(so,n,r)}};_(so,"runtime",B),_(so,"typeName","wg.cosmo.node.v1.FieldSetCondition"),_(so,"fields",B.util.newFieldList(()=>[{no:1,name:"field_coordinates_path",kind:"message",T:Rf,repeated:!0},{no:2,name:"field_path",kind:"scalar",T:9,repeated:!0}]));var Pf=so,oo=class oo extends we{constructor(n){super();_(this,"typeName","");_(this,"fieldName","");_(this,"selectionSet","");_(this,"disableEntityResolver",!1);_(this,"conditions",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new oo().fromBinary(n,r)}static fromJson(n,r){return new oo().fromJson(n,r)}static fromJsonString(n,r){return new oo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(oo,n,r)}};_(oo,"runtime",B),_(oo,"typeName","wg.cosmo.node.v1.RequiredField"),_(oo,"fields",B.util.newFieldList(()=>[{no:1,name:"type_name",kind:"scalar",T:9},{no:2,name:"field_name",kind:"scalar",T:9},{no:3,name:"selection_set",kind:"scalar",T:9},{no:4,name:"disable_entity_resolver",kind:"scalar",T:8},{no:5,name:"conditions",kind:"message",T:Pf,repeated:!0}]));var jc=oo,uo=class uo extends we{constructor(n){super();_(this,"interfaceTypeName","");_(this,"concreteTypeNames",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new uo().fromBinary(n,r)}static fromJson(n,r){return new uo().fromJson(n,r)}static fromJsonString(n,r){return new uo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(uo,n,r)}};_(uo,"runtime",B),_(uo,"typeName","wg.cosmo.node.v1.EntityInterfaceConfiguration"),_(uo,"fields",B.util.newFieldList(()=>[{no:1,name:"interface_type_name",kind:"scalar",T:9},{no:2,name:"concrete_type_names",kind:"scalar",T:9,repeated:!0}]));var hd=uo,co=class co extends we{constructor(n){super();_(this,"url");_(this,"method",Kc.GET);_(this,"header",{});_(this,"body");_(this,"query",[]);_(this,"urlEncodeBody",!1);_(this,"mtls");_(this,"baseUrl");_(this,"path");_(this,"httpProxyUrl");B.util.initPartial(n,this)}static fromBinary(n,r){return new co().fromBinary(n,r)}static fromJson(n,r){return new co().fromJson(n,r)}static fromJsonString(n,r){return new co().fromJsonString(n,r)}static equals(n,r){return B.util.equals(co,n,r)}};_(co,"runtime",B),_(co,"typeName","wg.cosmo.node.v1.FetchConfiguration"),_(co,"fields",B.util.newFieldList(()=>[{no:1,name:"url",kind:"message",T:Jr},{no:2,name:"method",kind:"enum",T:B.getEnumType(Kc)},{no:3,name:"header",kind:"map",K:9,V:{kind:"message",T:Pb}},{no:4,name:"body",kind:"message",T:Jr},{no:5,name:"query",kind:"message",T:Rb,repeated:!0},{no:7,name:"url_encode_body",kind:"scalar",T:8},{no:8,name:"mtls",kind:"message",T:Fb},{no:9,name:"base_url",kind:"message",T:Jr},{no:10,name:"path",kind:"message",T:Jr},{no:11,name:"http_proxy_url",kind:"message",T:Jr,opt:!0}]));var Eb=co,lo=class lo extends we{constructor(n){super();_(this,"statusCode",Hn.zero);_(this,"typeName","");_(this,"injectStatusCodeIntoBody",!1);B.util.initPartial(n,this)}static fromBinary(n,r){return new lo().fromBinary(n,r)}static fromJson(n,r){return new lo().fromJson(n,r)}static fromJsonString(n,r){return new lo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(lo,n,r)}};_(lo,"runtime",B),_(lo,"typeName","wg.cosmo.node.v1.StatusCodeTypeMapping"),_(lo,"fields",B.util.newFieldList(()=>[{no:1,name:"status_code",kind:"scalar",T:3},{no:2,name:"type_name",kind:"scalar",T:9},{no:3,name:"inject_status_code_into_body",kind:"scalar",T:8}]));var fV=lo,po=class po extends we{constructor(n){super();_(this,"fetch");_(this,"subscription");_(this,"federation");_(this,"upstreamSchema");_(this,"customScalarTypeFields",[]);_(this,"grpc");B.util.initPartial(n,this)}static fromBinary(n,r){return new po().fromBinary(n,r)}static fromJson(n,r){return new po().fromJson(n,r)}static fromJsonString(n,r){return new po().fromJsonString(n,r)}static equals(n,r){return B.util.equals(po,n,r)}};_(po,"runtime",B),_(po,"typeName","wg.cosmo.node.v1.DataSourceCustom_GraphQL"),_(po,"fields",B.util.newFieldList(()=>[{no:1,name:"fetch",kind:"message",T:Eb},{no:2,name:"subscription",kind:"message",T:wb},{no:3,name:"federation",kind:"message",T:Lb},{no:4,name:"upstream_schema",kind:"message",T:kf},{no:6,name:"custom_scalar_type_fields",kind:"message",T:Cb,repeated:!0},{no:7,name:"grpc",kind:"message",T:yd}]));var Ff=po,fo=class fo extends we{constructor(n){super();_(this,"mapping");_(this,"protoSchema","");_(this,"plugin");B.util.initPartial(n,this)}static fromBinary(n,r){return new fo().fromBinary(n,r)}static fromJson(n,r){return new fo().fromJson(n,r)}static fromJsonString(n,r){return new fo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(fo,n,r)}};_(fo,"runtime",B),_(fo,"typeName","wg.cosmo.node.v1.GRPCConfiguration"),_(fo,"fields",B.util.newFieldList(()=>[{no:1,name:"mapping",kind:"message",T:yb},{no:2,name:"proto_schema",kind:"scalar",T:9},{no:3,name:"plugin",kind:"message",T:wf}]));var yd=fo,mo=class mo extends we{constructor(n){super();_(this,"repository","");_(this,"reference","");B.util.initPartial(n,this)}static fromBinary(n,r){return new mo().fromBinary(n,r)}static fromJson(n,r){return new mo().fromJson(n,r)}static fromJsonString(n,r){return new mo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(mo,n,r)}};_(mo,"runtime",B),_(mo,"typeName","wg.cosmo.node.v1.ImageReference"),_(mo,"fields",B.util.newFieldList(()=>[{no:1,name:"repository",kind:"scalar",T:9},{no:2,name:"reference",kind:"scalar",T:9}]));var hb=mo,No=class No extends we{constructor(n){super();_(this,"name","");_(this,"version","");_(this,"imageReference");B.util.initPartial(n,this)}static fromBinary(n,r){return new No().fromBinary(n,r)}static fromJson(n,r){return new No().fromJson(n,r)}static fromJsonString(n,r){return new No().fromJsonString(n,r)}static equals(n,r){return B.util.equals(No,n,r)}};_(No,"runtime",B),_(No,"typeName","wg.cosmo.node.v1.PluginConfiguration"),_(No,"fields",B.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"image_reference",kind:"message",T:hb,opt:!0}]));var wf=No,To=class To extends we{constructor(n){super();_(this,"enabled",!1);B.util.initPartial(n,this)}static fromBinary(n,r){return new To().fromBinary(n,r)}static fromJson(n,r){return new To().fromJson(n,r)}static fromJsonString(n,r){return new To().fromJsonString(n,r)}static equals(n,r){return B.util.equals(To,n,r)}};_(To,"runtime",B),_(To,"typeName","wg.cosmo.node.v1.SSLConfiguration"),_(To,"fields",B.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8}]));var mV=To,Eo=class Eo extends we{constructor(n){super();_(this,"version",0);_(this,"service","");_(this,"operationMappings",[]);_(this,"entityMappings",[]);_(this,"typeFieldMappings",[]);_(this,"enumMappings",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Eo().fromBinary(n,r)}static fromJson(n,r){return new Eo().fromJson(n,r)}static fromJsonString(n,r){return new Eo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Eo,n,r)}};_(Eo,"runtime",B),_(Eo,"typeName","wg.cosmo.node.v1.GRPCMapping"),_(Eo,"fields",B.util.newFieldList(()=>[{no:1,name:"version",kind:"scalar",T:5},{no:2,name:"service",kind:"scalar",T:9},{no:3,name:"operation_mappings",kind:"message",T:Ib,repeated:!0},{no:4,name:"entity_mappings",kind:"message",T:gb,repeated:!0},{no:5,name:"type_field_mappings",kind:"message",T:_b,repeated:!0},{no:6,name:"enum_mappings",kind:"message",T:Ob,repeated:!0}]));var yb=Eo,ho=class ho extends we{constructor(n){super();_(this,"type",vf.UNSPECIFIED);_(this,"original","");_(this,"mapped","");_(this,"request","");_(this,"response","");B.util.initPartial(n,this)}static fromBinary(n,r){return new ho().fromBinary(n,r)}static fromJson(n,r){return new ho().fromJson(n,r)}static fromJsonString(n,r){return new ho().fromJsonString(n,r)}static equals(n,r){return B.util.equals(ho,n,r)}};_(ho,"runtime",B),_(ho,"typeName","wg.cosmo.node.v1.OperationMapping"),_(ho,"fields",B.util.newFieldList(()=>[{no:1,name:"type",kind:"enum",T:B.getEnumType(vf)},{no:2,name:"original",kind:"scalar",T:9},{no:3,name:"mapped",kind:"scalar",T:9},{no:4,name:"request",kind:"scalar",T:9},{no:5,name:"response",kind:"scalar",T:9}]));var Ib=ho,yo=class yo extends we{constructor(n){super();_(this,"typeName","");_(this,"kind","");_(this,"key","");_(this,"rpc","");_(this,"request","");_(this,"response","");B.util.initPartial(n,this)}static fromBinary(n,r){return new yo().fromBinary(n,r)}static fromJson(n,r){return new yo().fromJson(n,r)}static fromJsonString(n,r){return new yo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(yo,n,r)}};_(yo,"runtime",B),_(yo,"typeName","wg.cosmo.node.v1.EntityMapping"),_(yo,"fields",B.util.newFieldList(()=>[{no:1,name:"type_name",kind:"scalar",T:9},{no:2,name:"kind",kind:"scalar",T:9},{no:3,name:"key",kind:"scalar",T:9},{no:4,name:"rpc",kind:"scalar",T:9},{no:5,name:"request",kind:"scalar",T:9},{no:6,name:"response",kind:"scalar",T:9}]));var gb=yo,Io=class Io extends we{constructor(n){super();_(this,"type","");_(this,"fieldMappings",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Io().fromBinary(n,r)}static fromJson(n,r){return new Io().fromJson(n,r)}static fromJsonString(n,r){return new Io().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Io,n,r)}};_(Io,"runtime",B),_(Io,"typeName","wg.cosmo.node.v1.TypeFieldMapping"),_(Io,"fields",B.util.newFieldList(()=>[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"field_mappings",kind:"message",T:vb,repeated:!0}]));var _b=Io,go=class go extends we{constructor(n){super();_(this,"original","");_(this,"mapped","");_(this,"argumentMappings",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new go().fromBinary(n,r)}static fromJson(n,r){return new go().fromJson(n,r)}static fromJsonString(n,r){return new go().fromJsonString(n,r)}static equals(n,r){return B.util.equals(go,n,r)}};_(go,"runtime",B),_(go,"typeName","wg.cosmo.node.v1.FieldMapping"),_(go,"fields",B.util.newFieldList(()=>[{no:1,name:"original",kind:"scalar",T:9},{no:2,name:"mapped",kind:"scalar",T:9},{no:3,name:"argument_mappings",kind:"message",T:Sb,repeated:!0}]));var vb=go,_o=class _o extends we{constructor(n){super();_(this,"original","");_(this,"mapped","");B.util.initPartial(n,this)}static fromBinary(n,r){return new _o().fromBinary(n,r)}static fromJson(n,r){return new _o().fromJson(n,r)}static fromJsonString(n,r){return new _o().fromJsonString(n,r)}static equals(n,r){return B.util.equals(_o,n,r)}};_(_o,"runtime",B),_(_o,"typeName","wg.cosmo.node.v1.ArgumentMapping"),_(_o,"fields",B.util.newFieldList(()=>[{no:1,name:"original",kind:"scalar",T:9},{no:2,name:"mapped",kind:"scalar",T:9}]));var Sb=_o,vo=class vo extends we{constructor(n){super();_(this,"type","");_(this,"values",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new vo().fromBinary(n,r)}static fromJson(n,r){return new vo().fromJson(n,r)}static fromJsonString(n,r){return new vo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(vo,n,r)}};_(vo,"runtime",B),_(vo,"typeName","wg.cosmo.node.v1.EnumMapping"),_(vo,"fields",B.util.newFieldList(()=>[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"values",kind:"message",T:Db,repeated:!0}]));var Ob=vo,So=class So extends we{constructor(n){super();_(this,"original","");_(this,"mapped","");B.util.initPartial(n,this)}static fromBinary(n,r){return new So().fromBinary(n,r)}static fromJson(n,r){return new So().fromJson(n,r)}static fromJsonString(n,r){return new So().fromJsonString(n,r)}static equals(n,r){return B.util.equals(So,n,r)}};_(So,"runtime",B),_(So,"typeName","wg.cosmo.node.v1.EnumValueMapping"),_(So,"fields",B.util.newFieldList(()=>[{no:1,name:"original",kind:"scalar",T:9},{no:2,name:"mapped",kind:"scalar",T:9}]));var Db=So,Oo=class Oo extends we{constructor(n){super();_(this,"consumerName","");_(this,"streamName","");_(this,"consumerInactiveThreshold",0);B.util.initPartial(n,this)}static fromBinary(n,r){return new Oo().fromBinary(n,r)}static fromJson(n,r){return new Oo().fromJson(n,r)}static fromJsonString(n,r){return new Oo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Oo,n,r)}};_(Oo,"runtime",B),_(Oo,"typeName","wg.cosmo.node.v1.NatsStreamConfiguration"),_(Oo,"fields",B.util.newFieldList(()=>[{no:1,name:"consumer_name",kind:"scalar",T:9},{no:2,name:"stream_name",kind:"scalar",T:9},{no:3,name:"consumer_inactive_threshold",kind:"scalar",T:5}]));var Lf=Oo,Do=class Do extends we{constructor(n){super();_(this,"engineEventConfiguration");_(this,"subjects",[]);_(this,"streamConfiguration");B.util.initPartial(n,this)}static fromBinary(n,r){return new Do().fromBinary(n,r)}static fromJson(n,r){return new Do().fromJson(n,r)}static fromJsonString(n,r){return new Do().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Do,n,r)}};_(Do,"runtime",B),_(Do,"typeName","wg.cosmo.node.v1.NatsEventConfiguration"),_(Do,"fields",B.util.newFieldList(()=>[{no:1,name:"engine_event_configuration",kind:"message",T:Ho},{no:2,name:"subjects",kind:"scalar",T:9,repeated:!0},{no:3,name:"stream_configuration",kind:"message",T:Lf}]));var Cf=Do,bo=class bo extends we{constructor(n){super();_(this,"engineEventConfiguration");_(this,"topics",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new bo().fromBinary(n,r)}static fromJson(n,r){return new bo().fromJson(n,r)}static fromJsonString(n,r){return new bo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(bo,n,r)}};_(bo,"runtime",B),_(bo,"typeName","wg.cosmo.node.v1.KafkaEventConfiguration"),_(bo,"fields",B.util.newFieldList(()=>[{no:1,name:"engine_event_configuration",kind:"message",T:Ho},{no:2,name:"topics",kind:"scalar",T:9,repeated:!0}]));var Bf=bo,Ao=class Ao extends we{constructor(n){super();_(this,"engineEventConfiguration");_(this,"channels",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Ao().fromBinary(n,r)}static fromJson(n,r){return new Ao().fromJson(n,r)}static fromJsonString(n,r){return new Ao().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ao,n,r)}};_(Ao,"runtime",B),_(Ao,"typeName","wg.cosmo.node.v1.RedisEventConfiguration"),_(Ao,"fields",B.util.newFieldList(()=>[{no:1,name:"engine_event_configuration",kind:"message",T:Ho},{no:2,name:"channels",kind:"scalar",T:9,repeated:!0}]));var Uf=Ao,Ro=class Ro extends we{constructor(n){super();_(this,"providerId","");_(this,"type",Jo.PUBLISH);_(this,"typeName","");_(this,"fieldName","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Ro().fromBinary(n,r)}static fromJson(n,r){return new Ro().fromJson(n,r)}static fromJsonString(n,r){return new Ro().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ro,n,r)}};_(Ro,"runtime",B),_(Ro,"typeName","wg.cosmo.node.v1.EngineEventConfiguration"),_(Ro,"fields",B.util.newFieldList(()=>[{no:1,name:"provider_id",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:B.getEnumType(Jo)},{no:3,name:"type_name",kind:"scalar",T:9},{no:4,name:"field_name",kind:"scalar",T:9}]));var Ho=Ro,Po=class Po extends we{constructor(n){super();_(this,"nats",[]);_(this,"kafka",[]);_(this,"redis",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Po().fromBinary(n,r)}static fromJson(n,r){return new Po().fromJson(n,r)}static fromJsonString(n,r){return new Po().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Po,n,r)}};_(Po,"runtime",B),_(Po,"typeName","wg.cosmo.node.v1.DataSourceCustomEvents"),_(Po,"fields",B.util.newFieldList(()=>[{no:1,name:"nats",kind:"message",T:Cf,repeated:!0},{no:2,name:"kafka",kind:"message",T:Bf,repeated:!0},{no:3,name:"redis",kind:"message",T:Uf,repeated:!0}]));var $c=Po,Fo=class Fo extends we{constructor(n){super();_(this,"data");B.util.initPartial(n,this)}static fromBinary(n,r){return new Fo().fromBinary(n,r)}static fromJson(n,r){return new Fo().fromJson(n,r)}static fromJsonString(n,r){return new Fo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Fo,n,r)}};_(Fo,"runtime",B),_(Fo,"typeName","wg.cosmo.node.v1.DataSourceCustom_Static"),_(Fo,"fields",B.util.newFieldList(()=>[{no:1,name:"data",kind:"message",T:Jr}]));var bb=Fo,wo=class wo extends we{constructor(n){super();_(this,"kind",Cu.STATIC_CONFIGURATION_VARIABLE);_(this,"staticVariableContent","");_(this,"environmentVariableName","");_(this,"environmentVariableDefaultValue","");_(this,"placeholderVariableName","");B.util.initPartial(n,this)}static fromBinary(n,r){return new wo().fromBinary(n,r)}static fromJson(n,r){return new wo().fromJson(n,r)}static fromJsonString(n,r){return new wo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(wo,n,r)}};_(wo,"runtime",B),_(wo,"typeName","wg.cosmo.node.v1.ConfigurationVariable"),_(wo,"fields",B.util.newFieldList(()=>[{no:1,name:"kind",kind:"enum",T:B.getEnumType(Cu)},{no:2,name:"static_variable_content",kind:"scalar",T:9},{no:3,name:"environment_variable_name",kind:"scalar",T:9},{no:4,name:"environment_variable_default_value",kind:"scalar",T:9},{no:5,name:"placeholder_variable_name",kind:"scalar",T:9}]));var Jr=wo,Lo=class Lo extends we{constructor(n){super();_(this,"directiveName","");_(this,"renameTo","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Lo().fromBinary(n,r)}static fromJson(n,r){return new Lo().fromJson(n,r)}static fromJsonString(n,r){return new Lo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Lo,n,r)}};_(Lo,"runtime",B),_(Lo,"typeName","wg.cosmo.node.v1.DirectiveConfiguration"),_(Lo,"fields",B.util.newFieldList(()=>[{no:1,name:"directive_name",kind:"scalar",T:9},{no:2,name:"rename_to",kind:"scalar",T:9}]));var Ab=Lo,Co=class Co extends we{constructor(n){super();_(this,"name","");_(this,"value","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Co().fromBinary(n,r)}static fromJson(n,r){return new Co().fromJson(n,r)}static fromJsonString(n,r){return new Co().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Co,n,r)}};_(Co,"runtime",B),_(Co,"typeName","wg.cosmo.node.v1.URLQueryConfiguration"),_(Co,"fields",B.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:9}]));var Rb=Co,Bo=class Bo extends we{constructor(n){super();_(this,"values",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Bo().fromBinary(n,r)}static fromJson(n,r){return new Bo().fromJson(n,r)}static fromJsonString(n,r){return new Bo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Bo,n,r)}};_(Bo,"runtime",B),_(Bo,"typeName","wg.cosmo.node.v1.HTTPHeader"),_(Bo,"fields",B.util.newFieldList(()=>[{no:1,name:"values",kind:"message",T:Jr,repeated:!0}]));var Pb=Bo,Uo=class Uo extends we{constructor(n){super();_(this,"key");_(this,"cert");_(this,"insecureSkipVerify",!1);B.util.initPartial(n,this)}static fromBinary(n,r){return new Uo().fromBinary(n,r)}static fromJson(n,r){return new Uo().fromJson(n,r)}static fromJsonString(n,r){return new Uo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Uo,n,r)}};_(Uo,"runtime",B),_(Uo,"typeName","wg.cosmo.node.v1.MTLSConfiguration"),_(Uo,"fields",B.util.newFieldList(()=>[{no:1,name:"key",kind:"message",T:Jr},{no:2,name:"cert",kind:"message",T:Jr},{no:3,name:"insecureSkipVerify",kind:"scalar",T:8}]));var Fb=Uo,ko=class ko extends we{constructor(n){super();_(this,"enabled",!1);_(this,"url");_(this,"useSSE");_(this,"protocol");_(this,"websocketSubprotocol");B.util.initPartial(n,this)}static fromBinary(n,r){return new ko().fromBinary(n,r)}static fromJson(n,r){return new ko().fromJson(n,r)}static fromJsonString(n,r){return new ko().fromJsonString(n,r)}static equals(n,r){return B.util.equals(ko,n,r)}};_(ko,"runtime",B),_(ko,"typeName","wg.cosmo.node.v1.GraphQLSubscriptionConfiguration"),_(ko,"fields",B.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"url",kind:"message",T:Jr},{no:3,name:"useSSE",kind:"scalar",T:8,opt:!0},{no:4,name:"protocol",kind:"enum",T:B.getEnumType(xs),opt:!0},{no:5,name:"websocketSubprotocol",kind:"enum",T:B.getEnumType(qs),opt:!0}]));var wb=ko,Mo=class Mo extends we{constructor(n){super();_(this,"enabled",!1);_(this,"serviceSdl","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Mo().fromBinary(n,r)}static fromJson(n,r){return new Mo().fromJson(n,r)}static fromJsonString(n,r){return new Mo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Mo,n,r)}};_(Mo,"runtime",B),_(Mo,"typeName","wg.cosmo.node.v1.GraphQLFederationConfiguration"),_(Mo,"fields",B.util.newFieldList(()=>[{no:1,name:"enabled",kind:"scalar",T:8},{no:2,name:"serviceSdl",kind:"scalar",T:9}]));var Lb=Mo,xo=class xo extends we{constructor(n){super();_(this,"key","");B.util.initPartial(n,this)}static fromBinary(n,r){return new xo().fromBinary(n,r)}static fromJson(n,r){return new xo().fromJson(n,r)}static fromJsonString(n,r){return new xo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(xo,n,r)}};_(xo,"runtime",B),_(xo,"typeName","wg.cosmo.node.v1.InternedString"),_(xo,"fields",B.util.newFieldList(()=>[{no:1,name:"key",kind:"scalar",T:9}]));var kf=xo,qo=class qo extends we{constructor(n){super();_(this,"typeName","");_(this,"fieldName","");B.util.initPartial(n,this)}static fromBinary(n,r){return new qo().fromBinary(n,r)}static fromJson(n,r){return new qo().fromJson(n,r)}static fromJsonString(n,r){return new qo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(qo,n,r)}};_(qo,"runtime",B),_(qo,"typeName","wg.cosmo.node.v1.SingleTypeField"),_(qo,"fields",B.util.newFieldList(()=>[{no:1,name:"type_name",kind:"scalar",T:9},{no:2,name:"field_name",kind:"scalar",T:9}]));var Cb=qo,jo=class jo extends we{constructor(n){super();_(this,"fieldPath",[]);_(this,"json","");B.util.initPartial(n,this)}static fromBinary(n,r){return new jo().fromBinary(n,r)}static fromJson(n,r){return new jo().fromJson(n,r)}static fromJsonString(n,r){return new jo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(jo,n,r)}};_(jo,"runtime",B),_(jo,"typeName","wg.cosmo.node.v1.SubscriptionFieldCondition"),_(jo,"fields",B.util.newFieldList(()=>[{no:1,name:"field_path",kind:"scalar",T:9,repeated:!0},{no:2,name:"json",kind:"scalar",T:9}]));var Mf=jo,ra=class ra extends we{constructor(n){super();_(this,"and",[]);_(this,"in");_(this,"not");_(this,"or",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new ra().fromBinary(n,r)}static fromJson(n,r){return new ra().fromJson(n,r)}static fromJsonString(n,r){return new ra().fromJsonString(n,r)}static equals(n,r){return B.util.equals(ra,n,r)}};_(ra,"runtime",B),_(ra,"typeName","wg.cosmo.node.v1.SubscriptionFilterCondition"),_(ra,"fields",B.util.newFieldList(()=>[{no:1,name:"and",kind:"message",T:ra,repeated:!0},{no:2,name:"in",kind:"message",T:Mf,opt:!0},{no:3,name:"not",kind:"message",T:ra,opt:!0},{no:4,name:"or",kind:"message",T:ra,repeated:!0}]));var Bu=ra,Vo=class Vo extends we{constructor(n){super();_(this,"operations",[]);B.util.initPartial(n,this)}static fromBinary(n,r){return new Vo().fromBinary(n,r)}static fromJson(n,r){return new Vo().fromJson(n,r)}static fromJsonString(n,r){return new Vo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Vo,n,r)}};_(Vo,"runtime",B),_(Vo,"typeName","wg.cosmo.node.v1.CacheWarmerOperations"),_(Vo,"fields",B.util.newFieldList(()=>[{no:1,name:"operations",kind:"message",T:Bb,repeated:!0}]));var NV=Vo,Ko=class Ko extends we{constructor(n){super();_(this,"request");_(this,"client");B.util.initPartial(n,this)}static fromBinary(n,r){return new Ko().fromBinary(n,r)}static fromJson(n,r){return new Ko().fromJson(n,r)}static fromJsonString(n,r){return new Ko().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Ko,n,r)}};_(Ko,"runtime",B),_(Ko,"typeName","wg.cosmo.node.v1.Operation"),_(Ko,"fields",B.util.newFieldList(()=>[{no:1,name:"request",kind:"message",T:Ub},{no:2,name:"client",kind:"message",T:xb}]));var Bb=Ko,Go=class Go extends we{constructor(n){super();_(this,"operationName","");_(this,"query","");_(this,"extensions");B.util.initPartial(n,this)}static fromBinary(n,r){return new Go().fromBinary(n,r)}static fromJson(n,r){return new Go().fromJson(n,r)}static fromJsonString(n,r){return new Go().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Go,n,r)}};_(Go,"runtime",B),_(Go,"typeName","wg.cosmo.node.v1.OperationRequest"),_(Go,"fields",B.util.newFieldList(()=>[{no:1,name:"operation_name",kind:"scalar",T:9},{no:2,name:"query",kind:"scalar",T:9},{no:3,name:"extensions",kind:"message",T:kb}]));var Ub=Go,$o=class $o extends we{constructor(n){super();_(this,"persistedQuery");B.util.initPartial(n,this)}static fromBinary(n,r){return new $o().fromBinary(n,r)}static fromJson(n,r){return new $o().fromJson(n,r)}static fromJsonString(n,r){return new $o().fromJsonString(n,r)}static equals(n,r){return B.util.equals($o,n,r)}};_($o,"runtime",B),_($o,"typeName","wg.cosmo.node.v1.Extension"),_($o,"fields",B.util.newFieldList(()=>[{no:1,name:"persisted_query",kind:"message",T:Mb}]));var kb=$o,Qo=class Qo extends we{constructor(n){super();_(this,"sha256Hash","");_(this,"version",0);B.util.initPartial(n,this)}static fromBinary(n,r){return new Qo().fromBinary(n,r)}static fromJson(n,r){return new Qo().fromJson(n,r)}static fromJsonString(n,r){return new Qo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Qo,n,r)}};_(Qo,"runtime",B),_(Qo,"typeName","wg.cosmo.node.v1.PersistedQuery"),_(Qo,"fields",B.util.newFieldList(()=>[{no:1,name:"sha256_hash",kind:"scalar",T:9},{no:2,name:"version",kind:"scalar",T:5}]));var Mb=Qo,Yo=class Yo extends we{constructor(n){super();_(this,"name","");_(this,"version","");B.util.initPartial(n,this)}static fromBinary(n,r){return new Yo().fromBinary(n,r)}static fromJson(n,r){return new Yo().fromJson(n,r)}static fromJsonString(n,r){return new Yo().fromJsonString(n,r)}static equals(n,r){return B.util.equals(Yo,n,r)}};_(Yo,"runtime",B),_(Yo,"typeName","wg.cosmo.node.v1.ClientInfo"),_(Yo,"fields",B.util.newFieldList(()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"version",kind:"scalar",T:9}]));var xb=Yo;m();T();N();function qb(e){return new Error(`Normalization failed to return a ${e}.`)}function TV(e){return new Error(`Invalid router compatibility version "${e}".`)}m();T();N();var Id=_s(Nh(),1);function Fpe(e){if(!e.conditions)return;let t=[];for(let n of e.conditions){let r=[];for(let i of n.fieldCoordinatesPath){let a=i.split(".");if(a.length!==2)throw new Error(`fatal: malformed conditional field coordinates "${i}" for field set "${e.selectionSet}".`);r.push(new Rf({fieldName:a[1],typeName:a[0]}))}t.push(new Pf({fieldCoordinatesPath:r,fieldPath:n.fieldPath}))}return t}function jb(e,t,n){if(e)for(let r of e){let i=Fpe(r);t.push(new jc(M(M({typeName:n,fieldName:r.fieldName,selectionSet:r.selectionSet},r.disableEntityResolver?{disableEntityResolver:!0}:{}),i?{conditions:i}:{})))}}function Vb(e){switch(e){case"publish":return Jo.PUBLISH;case"request":return Jo.REQUEST;case"subscribe":return Jo.SUBSCRIBE}}function EV(e){var n;let t={rootNodes:[],childNodes:[],keys:[],provides:[],events:new $c({nats:[],kafka:[],redis:[]}),requires:[],entityInterfaces:[],interfaceObjects:[]};for(let r of e.values()){let i=r.typeName,a=[...r.fieldNames],o=new Ed({fieldNames:a,typeName:i});if(r.externalFieldNames&&r.externalFieldNames.size>0&&(o.externalFieldNames=[...r.externalFieldNames]),r.requireFetchReasonsFieldNames&&r.requireFetchReasonsFieldNames.length>0&&(o.requireFetchReasonsFieldNames=[...r.requireFetchReasonsFieldNames]),r.isRootNode?t.rootNodes.push(o):t.childNodes.push(o),r.entityInterfaceConcreteTypeNames){let f=new hd({interfaceTypeName:i,concreteTypeNames:[...r.entityInterfaceConcreteTypeNames]});r.isInterfaceObject?t.interfaceObjects.push(f):t.entityInterfaces.push(f)}jb(r.keys,t.keys,i),jb(r.provides,t.provides,i),jb(r.requires,t.requires,i);let c=[],l=[],d=[];for(let f of(n=r.events)!=null?n:[])switch(f.providerType){case Id.PROVIDER_TYPE_KAFKA:{l.push(new Bf({engineEventConfiguration:new Ho({fieldName:f.fieldName,providerId:f.providerId,type:Vb(f.type),typeName:i}),topics:f.topics}));break}case Id.PROVIDER_TYPE_NATS:{c.push(new Cf(M({engineEventConfiguration:new Ho({fieldName:f.fieldName,providerId:f.providerId,type:Vb(f.type),typeName:i}),subjects:f.subjects},f.streamConfiguration?{streamConfiguration:new Lf({consumerInactiveThreshold:f.streamConfiguration.consumerInactiveThreshold,consumerName:f.streamConfiguration.consumerName,streamName:f.streamConfiguration.streamName})}:{})));break}case Id.PROVIDER_TYPE_REDIS:{d.push(new Uf({engineEventConfiguration:new Ho({fieldName:f.fieldName,providerId:f.providerId,type:Vb(f.type),typeName:i}),channels:f.channels}));break}default:throw new Error("Fatal: Unknown event provider.")}t.events.nats.push(...c),t.events.kafka.push(...l),t.events.redis.push(...d)}return t}function hV(e){var n,r;let t=[];for(let i of e){let a=i.argumentNames.map(f=>new Df({name:f,sourceType:Vc.FIELD_ARGUMENT})),o=new Af({argumentsConfiguration:a,fieldName:i.fieldName,typeName:i.typeName}),c=((n=i.requiredScopes)==null?void 0:n.map(f=>new Gc({requiredAndScopes:f})))||[],l=((r=i.requiredScopesByOR)==null?void 0:r.map(f=>new Gc({requiredAndScopes:f})))||[],d=c.length>0;if((i.requiresAuthentication||d)&&(o.authorizationConfiguration=new bf({requiresAuthentication:i.requiresAuthentication||d,requiredOrScopes:c,requiredOrScopesByOr:l})),i.subscriptionFilterCondition){let f=new Bu;jh(f,i.subscriptionFilterCondition),o.subscriptionFilterCondition=f}t.push(o)}return t}function jh(e,t){if(t.and!==void 0){let n=[];for(let r of t.and){let i=new Bu;jh(i,r),n.push(i)}e.and=n;return}if(t.in!==void 0){e.in=new Mf({fieldPath:t.in.fieldPath,json:JSON.stringify(t.in.values)});return}if(t.not!==void 0){e.not=new Bu,jh(e.not,t.not);return}if(t.or!==void 0){let n=[];for(let r of t.or){let i=new Bu;jh(i,r),n.push(i)}e.or=n;return}throw new Error("Fatal: Incoming SubscriptionCondition object was malformed.")}var Qc;(function(e){e[e.Plugin=0]="Plugin",e[e.Standard=1]="Standard",e[e.GRPC=2]="GRPC"})(Qc||(Qc={}));var wpe=(e,t)=>{let n=stringHash(t);return e.stringStorage[n]=t,new kf({key:n})},Lpe=e=>{switch(e){case"ws":return xs.GRAPHQL_SUBSCRIPTION_PROTOCOL_WS;case"sse":return xs.GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE;case"sse_post":return xs.GRAPHQL_SUBSCRIPTION_PROTOCOL_SSE_POST}},Cpe=e=>{switch(e){case"auto":return qs.GRAPHQL_WEBSOCKET_SUBPROTOCOL_AUTO;case"graphql-ws":return qs.GRAPHQL_WEBSOCKET_SUBPROTOCOL_WS;case"graphql-transport-ws":return qs.GRAPHQL_WEBSOCKET_SUBPROTOCOL_TRANSPORT_WS}},IV=function(e){if(!gd.ROUTER_COMPATIBILITY_VERSIONS.has(e.routerCompatibilityVersion))throw TV(e.routerCompatibilityVersion);let t=new Td({defaultFlushInterval:BigInt(500),datasourceConfigurations:[],fieldConfigurations:[],graphqlSchema:"",stringStorage:{},typeConfigurations:[]});for(let n of e.subgraphs){if(!n.configurationDataByTypeName)throw qb("ConfigurationDataByTypeName");if(!n.schema)throw qb("GraphQLSchema");let r={enabled:!0},i=wpe(t,bj((0,yV.lexicographicSortSchema)(n.schema))),{childNodes:a,entityInterfaces:o,events:c,interfaceObjects:l,keys:d,provides:f,requires:y,rootNodes:I}=EV(n.configurationDataByTypeName),v;switch(n.kind){case Qc.Standard:{r.enabled=!0,r.protocol=Lpe(n.subscriptionProtocol||"ws"),r.websocketSubprotocol=Cpe(n.websocketSubprotocol||"auto"),r.url=new Jr({kind:Cu.STATIC_CONFIGURATION_VARIABLE,staticVariableContent:n.subscriptionUrl||n.url});break}case Qc.Plugin:{v=new yd({mapping:n.mapping,protoSchema:n.protoSchema,plugin:new wf({name:n.name,version:n.version,imageReference:n.imageReference})});break}case Qc.GRPC:{v=new yd({mapping:n.mapping,protoSchema:n.protoSchema});break}}let w,U,V;if(c.kafka.length>0||c.nats.length>0||c.redis.length>0){w=Lu.PUBSUB,V=new $c({kafka:c.kafka,nats:c.nats,redis:c.redis});let re=ue=>gd.ROOT_TYPE_NAMES.has(ue.typeName),ne=0,me=0;for(;ne({id:n.id,name:n.name,routingUrl:n.url})),compatibilityVersion:`${e.routerCompatibilityVersion}:${gd.COMPOSITION_VERSION}`})};m();T();N();var Jc=_s(Se());function gV(e){let t;try{t=(0,Jc.parse)(e.schema)}catch(n){throw new Error(`could not parse schema for Graph ${e.name}: ${n}`)}return{definitions:t,name:e.name,url:e.url}}function Bpe(e){let t=(0,Yc.federateSubgraphs)({subgraphs:e.map(gV),version:Yc.LATEST_ROUTER_COMPATIBILITY_VERSION});if(!t.success)throw new Error(`could not federate schema: ${t.errors.map(n=>n.message).join(", ")}`);return{fieldConfigurations:t.fieldConfigurations,sdl:(0,Jc.print)(t.federatedGraphAST)}}function Upe(e){let t=(0,Yc.federateSubgraphs)({subgraphs:e.map(gV),version:Yc.LATEST_ROUTER_COMPATIBILITY_VERSION});if(!t.success)throw new Error(`could not federate schema: ${t.errors.map(r=>r.message).join(", ")}`);return IV({federatedClientSDL:(0,Jc.printSchema)(t.federatedGraphClientSchema),federatedSDL:(0,Jc.printSchema)(t.federatedGraphSchema),fieldConfigurations:t.fieldConfigurations,routerCompatibilityVersion:Yc.LATEST_ROUTER_COMPATIBILITY_VERSION,schemaVersionId:"",subgraphs:e.map((r,i)=>{var l,d;let a=t.subgraphConfigBySubgraphName.get(r.name),o=a==null?void 0:a.schema,c=a==null?void 0:a.configurationDataByTypeName;return{kind:Qc.Standard,id:`${i}`,name:r.name,url:HD(r.url),sdl:r.schema,subscriptionUrl:HD((l=r.subscription_url)!=null?l:r.url),subscriptionProtocol:(d=r.subscription_protocol)!=null?d:"ws",websocketSubprotocol:r.subscription_protocol==="ws"?r.websocketSubprotocol||"auto":void 0,schema:o,configurationDataByTypeName:c}})}).toJsonString()}return Am(kpe);})(); /*! Bundled license information: @jspm/core/nodelibs/browser/buffer.js: diff --git a/composition/src/index.ts b/composition/src/index.ts index 1f4c3d0793..47a7d9e405 100644 --- a/composition/src/index.ts +++ b/composition/src/index.ts @@ -21,12 +21,19 @@ export * from './schema-building/utils'; export * from './subgraph/types'; export * from './types/types'; export * from './utils/composition-version'; +export * from './utils/params'; export * from './utils/string-constants'; export * from './utils/types'; export * from './utils/utils'; export * from './warnings/types'; // v1 +export * from './v1/constants/constants'; +export * from './v1/constants/directive-definitions'; +export * from './v1/constants/integers'; +export * from './v1/constants/non-directive-definitions'; +export * from './v1/constants/strings'; +export * from './v1/constants/type-nodes'; export * from './v1/federation/utils'; export * from './v1/federation/walkers'; export * from './v1/federation/types'; @@ -36,7 +43,5 @@ export * from './v1/normalization/types'; export * from './v1/normalization/walkers'; export * from './v1/schema-building/type-merging'; export * from './v1/subgraph/subgraph'; -export * from './v1/utils/constants'; export * from './v1/utils/utils'; -export * from './v1/utils/string-constants'; export * from './v1/warnings/warnings'; diff --git a/composition/src/normalization/types.ts b/composition/src/normalization/types.ts index 916e578a8f..3463c1faf0 100644 --- a/composition/src/normalization/types.ts +++ b/composition/src/normalization/types.ts @@ -11,7 +11,7 @@ import { } from '../schema-building/types'; import { Graph } from '../resolvability-graph/graph'; import { InternalSubgraph } from '../subgraph/types'; -import { DirectiveName } from '../types/types'; +import { DirectiveName, TypeName } from '../types/types'; export type NormalizationFailure = { errors: Array; @@ -23,8 +23,8 @@ export type NormalizationSuccess = { authorizationDataByParentTypeName: Map; concreteTypeNamesByAbstractTypeName: Map>; conditionalFieldDataByCoordinates: Map; - configurationDataByTypeName: Map; - directiveDefinitionByDirectiveName: Map; + configurationDataByTypeName: Map; + directiveDefinitionByName: Map; entityInterfaces: Map; entityDataByTypeName: Map; fieldCoordsByNamedTypeName: Map>; diff --git a/composition/src/schema-building/ast.ts b/composition/src/schema-building/ast.ts index 13fb5f1363..6e62d2e78b 100644 --- a/composition/src/schema-building/ast.ts +++ b/composition/src/schema-building/ast.ts @@ -263,7 +263,7 @@ export function getMutableUnionNode(nameNode: NameNode): MutableUnionNode { }; } -export type MutableTypeDefinitionNode = +export type MutableDefinitionNode = | MutableDirectiveDefinitionNode | MutableEnumNode | MutableInputObjectNode diff --git a/composition/src/schema-building/utils.ts b/composition/src/schema-building/utils.ts index e12a81153b..3f271db264 100644 --- a/composition/src/schema-building/utils.ts +++ b/composition/src/schema-building/utils.ts @@ -2,6 +2,7 @@ import { BooleanValueNode, ConstDirectiveNode, ConstValueNode, + DefinitionNode, DirectiveDefinitionNode, EnumValueDefinitionNode, EnumValueNode, @@ -26,6 +27,7 @@ import { ExtensionType, ExternalFieldData, FieldData, + InputObjectDefinitionData, InputValueData, InterfaceDefinitionData, NodeData, @@ -35,7 +37,7 @@ import { PersistedDirectivesData, SchemaData, } from './types'; -import { MutableFieldNode, MutableInputValueNode, MutableTypeDefinitionNode } from './ast'; +import { MutableDefinitionNode, MutableFieldNode, MutableInputValueNode } from './ast'; import { ObjectTypeNode, setToNameNodeArray, stringToNameNode } from '../ast/utils'; import { incompatibleInputValueDefaultValuesError, @@ -46,7 +48,6 @@ import { SubscriptionFilterValue } from '../router-configuration/types'; import { ARGUMENT, AUTHENTICATED, - AUTHORIZATION_DIRECTIVES, BOOLEAN_SCALAR, DEPRECATED, DEPRECATED_DEFAULT_ARGUMENT_VALUE, @@ -58,7 +59,6 @@ import { INPUT_NODE_KINDS, INT_SCALAR, MUTATION, - NON_REPEATABLE_PERSISTED_DIRECTIVES, OUTPUT_NODE_KINDS, PERSISTED_CLIENT_DIRECTIVES, QUERY, @@ -69,7 +69,6 @@ import { SHAREABLE, STRING_SCALAR, SUBSCRIPTION, - TAG, } from '../utils/string-constants'; import { generateRequiresScopesDirective, @@ -285,7 +284,7 @@ export function setParentDataExtensionType(existingData: ParentDefinitionData, i existingData.extensionType = ExtensionType.NONE; } -function upsertDeprecatedDirective( +export function upsertDeprecatedDirective( persistedDirectivesData: PersistedDirectivesData, incomingDirectiveNode: ConstDirectiveNode, ) { @@ -299,7 +298,7 @@ function upsertDeprecatedDirective( } } -function upsertTagDirectives( +export function upsertTagDirectives( persistedDirectivesData: PersistedDirectivesData, incomingDirectiveNodes: ConstDirectiveNode[], ) { @@ -310,42 +309,6 @@ function upsertTagDirectives( } } -export function extractPersistedDirectives( - persistedDirectivesData: PersistedDirectivesData, - directivesByDirectiveName: Map, - persistedDirectiveDefinitionByDirectiveName: Map, -): PersistedDirectivesData { - for (const [directiveName, directiveNodes] of directivesByDirectiveName) { - // @authenticated and @requiresScopes are handled differently - if ( - AUTHORIZATION_DIRECTIVES.has(directiveName) || - !persistedDirectiveDefinitionByDirectiveName.has(directiveName) - ) { - continue; - } - if (directiveName === DEPRECATED) { - persistedDirectivesData.isDeprecated = true; - upsertDeprecatedDirective(persistedDirectivesData, directiveNodes[0]); - continue; - } - if (directiveName === TAG) { - upsertTagDirectives(persistedDirectivesData, directiveNodes); - continue; - } - const existingDirectives = persistedDirectivesData.directivesByDirectiveName.get(directiveName); - if (!existingDirectives) { - persistedDirectivesData.directivesByDirectiveName.set(directiveName, [...directiveNodes]); - continue; - } - // Only add one instance of certain directives. - if (NON_REPEATABLE_PERSISTED_DIRECTIVES.has(directiveName)) { - continue; - } - existingDirectives.push(...directiveNodes); - } - return persistedDirectivesData; -} - export function propagateAuthDirectives(parentData: ParentDefinitionData, authData?: AuthorizationData) { if (!authData) { return; @@ -468,17 +431,6 @@ export function getClientPersistedDirectiveNodes(nodeData: T return persistedDirectiveNodes; } -export function getNodeForRouterSchemaByData( - data: T, - persistedDirectiveDefinitionByDirectiveName: Map, - errors: Error[], -): T['node'] { - data.node.name = stringToNameNode(data.name); - data.node.description = data.description; - data.node.directives = getRouterPersistedDirectiveNodes(data, persistedDirectiveDefinitionByDirectiveName, errors); - return data.node; -} - export function getClientSchemaFieldNodeByFieldData(fieldData: FieldData): MutableFieldNode { const directives = getClientPersistedDirectiveNodes(fieldData); const argumentNodes: MutableInputValueNode[] = []; @@ -557,7 +509,7 @@ function addValidatedArgumentNodes( } export function addValidPersistedDirectiveDefinitionNodeByData( - definitions: MutableTypeDefinitionNode[], + definitions: (MutableDefinitionNode | DefinitionNode)[], data: PersistedDirectiveDefinitionData, persistedDirectiveDefinitionByDirectiveName: Map, errors: Error[], @@ -783,6 +735,10 @@ export function isFieldData(data: ChildData | NodeData | SchemaData): data is Fi return data.kind === Kind.FIELD_DEFINITION; } +export function isInputObjectDefinitionData(data: ParentDefinitionData): data is InputObjectDefinitionData { + return data.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION; +} + export function isInputNodeKind(kind: Kind): kind is InputNodeKind { return INPUT_NODE_KINDS.has(kind); } diff --git a/composition/src/subgraph/types.ts b/composition/src/subgraph/types.ts index 40e966a864..500b723d9c 100644 --- a/composition/src/subgraph/types.ts +++ b/composition/src/subgraph/types.ts @@ -16,7 +16,7 @@ export type Subgraph = { export type SubgraphConfig = { configurationDataByTypeName: Map; - directiveDefinitionByDirectiveName: Map; + directiveDefinitionByName: Map; isVersionTwo: boolean; parentDefinitionDataByTypeName: Map; schema: GraphQLSchema; @@ -24,9 +24,9 @@ export type SubgraphConfig = { export type InternalSubgraph = { conditionalFieldDataByCoordinates: Map; - configurationDataByTypeName: Map; + configurationDataByTypeName: Map; definitions: DocumentNode; - directiveDefinitionByDirectiveName: Map; + directiveDefinitionByName: Map; entityInterfaces: Map; isVersionTwo: boolean; keyFieldNamesByParentTypeName: Map>; diff --git a/composition/src/utils/params.ts b/composition/src/utils/params.ts new file mode 100644 index 0000000000..08d3138e98 --- /dev/null +++ b/composition/src/utils/params.ts @@ -0,0 +1,14 @@ +export type AddToSetParams = { + source: Iterable; + target: Set; +}; + +export type AddOptionalToSetParams = { + target: Set; + source?: Iterable; +}; + +export type AddMapEntriesParams = { + source: Map; + target: Map; +}; diff --git a/composition/src/utils/utils.ts b/composition/src/utils/utils.ts index 4b0ae271cb..a8dbf221d0 100644 --- a/composition/src/utils/utils.ts +++ b/composition/src/utils/utils.ts @@ -21,6 +21,7 @@ import { } from './string-constants'; import { invalidKeyFatalError } from '../errors/errors'; import { stringToNameNode } from '../ast/utils'; +import { AddMapEntriesParams, AddOptionalToSetParams, AddToSetParams } from './params'; export function getOrThrowError(map: Map, key: K, mapName: string): V { const value = map.get(key); @@ -55,7 +56,16 @@ export function numberToOrdinal(num: number): string { } } -export function addIterableValuesToSet(source: Array | Iterable, target: Set) { +export function addIterableToSet({ source, target }: AddToSetParams) { + for (const value of source) { + target.add(value); + } +} + +export function addOptionalIterableToSet({ source, target }: AddOptionalToSetParams) { + if (!source) { + return; + } for (const value of source) { target.add(value); } @@ -242,7 +252,7 @@ export function copyArrayValueMap(source: Map>): Map(source: Map, target: Map) { +export function addMapEntries({ source, target }: AddMapEntriesParams) { for (const [key, value] of source) { target.set(key, value); } diff --git a/composition/src/v1/constants/constants.ts b/composition/src/v1/constants/constants.ts new file mode 100644 index 0000000000..343fe94f2e --- /dev/null +++ b/composition/src/v1/constants/constants.ts @@ -0,0 +1,133 @@ +import { DirectiveDefinitionNode } from 'graphql'; +import { + AUTHENTICATED, + BOOLEAN_SCALAR, + COMPOSE_DIRECTIVE, + CONFIGURE_CHILD_DESCRIPTIONS, + CONFIGURE_DESCRIPTION, + DEPRECATED, + EDFS_KAFKA_PUBLISH, + EDFS_KAFKA_SUBSCRIBE, + EDFS_NATS_PUBLISH, + EDFS_NATS_REQUEST, + EDFS_NATS_SUBSCRIBE, + EDFS_REDIS_PUBLISH, + EDFS_REDIS_SUBSCRIBE, + EXTENDS, + EXTERNAL, + FIELD_SET_SCALAR, + FLOAT_SCALAR, + ID_SCALAR, + INACCESSIBLE, + INT_SCALAR, + INTERFACE_OBJECT, + KEY, + LINK, + ONE_OF, + OVERRIDE, + PROVIDES, + REQUIRE_FETCH_REASONS, + REQUIRES, + REQUIRES_SCOPES, + SCOPE_SCALAR, + SEMANTIC_NON_NULL, + SHAREABLE, + SPECIFIED_BY, + STRING_SCALAR, + SUBSCRIPTION_FILTER, + TAG, +} from '../../utils/string-constants'; +import { DirectiveName } from '../../types/types'; +import { + AUTHENTICATED_DEFINITION, + COMPOSE_DIRECTIVE_DEFINITION, + CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION, + CONFIGURE_DESCRIPTION_DEFINITION, + DEPRECATED_DEFINITION, + EDFS_KAFKA_PUBLISH_DEFINITION, + EDFS_KAFKA_SUBSCRIBE_DEFINITION, + EDFS_NATS_PUBLISH_DEFINITION, + EDFS_NATS_REQUEST_DEFINITION, + EDFS_NATS_SUBSCRIBE_DEFINITION, + EDFS_REDIS_PUBLISH_DEFINITION, + EDFS_REDIS_SUBSCRIBE_DEFINITION, + EXTENDS_DEFINITION, + EXTERNAL_DEFINITION, + INACCESSIBLE_DEFINITION, + INTERFACE_OBJECT_DEFINITION, + KEY_DEFINITION, + LINK_DEFINITION, + ONE_OF_DEFINITION, + OVERRIDE_DEFINITION, + PROVIDES_DEFINITION, + REQUIRE_FETCH_REASONS_DEFINITION, + REQUIRES_DEFINITION, + REQUIRES_SCOPES_DEFINITION, + SEMANTIC_NON_NULL_DEFINITION, + SHAREABLE_DEFINITION, + SPECIFIED_BY_DEFINITION, + SUBSCRIPTION_FILTER_DEFINITION, + TAG_DEFINITION, +} from './directive-definitions'; + +export const DIRECTIVE_DEFINITION_BY_NAME: ReadonlyMap = new Map< + DirectiveName, + DirectiveDefinitionNode +>([ + [AUTHENTICATED, AUTHENTICATED_DEFINITION], + [COMPOSE_DIRECTIVE, COMPOSE_DIRECTIVE_DEFINITION], + [CONFIGURE_DESCRIPTION, CONFIGURE_DESCRIPTION_DEFINITION], + [CONFIGURE_CHILD_DESCRIPTIONS, CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION], + [DEPRECATED, DEPRECATED_DEFINITION], + [EDFS_KAFKA_PUBLISH, EDFS_KAFKA_PUBLISH_DEFINITION], + [EDFS_KAFKA_SUBSCRIBE, EDFS_KAFKA_SUBSCRIBE_DEFINITION], + [EDFS_NATS_PUBLISH, EDFS_NATS_PUBLISH_DEFINITION], + [EDFS_NATS_REQUEST, EDFS_NATS_REQUEST_DEFINITION], + [EDFS_NATS_SUBSCRIBE, EDFS_NATS_SUBSCRIBE_DEFINITION], + [EDFS_REDIS_PUBLISH, EDFS_REDIS_PUBLISH_DEFINITION], + [EDFS_REDIS_SUBSCRIBE, EDFS_REDIS_SUBSCRIBE_DEFINITION], + [EXTENDS, EXTENDS_DEFINITION], + [EXTERNAL, EXTERNAL_DEFINITION], + [INACCESSIBLE, INACCESSIBLE_DEFINITION], + [INTERFACE_OBJECT, INTERFACE_OBJECT_DEFINITION], + [KEY, KEY_DEFINITION], + [LINK, LINK_DEFINITION], + [ONE_OF, ONE_OF_DEFINITION], + [OVERRIDE, OVERRIDE_DEFINITION], + [PROVIDES, PROVIDES_DEFINITION], + [REQUIRE_FETCH_REASONS, REQUIRE_FETCH_REASONS_DEFINITION], + [REQUIRES, REQUIRES_DEFINITION], + [REQUIRES_SCOPES, REQUIRES_SCOPES_DEFINITION], + [SEMANTIC_NON_NULL, SEMANTIC_NON_NULL_DEFINITION], + [SHAREABLE, SHAREABLE_DEFINITION], + [SPECIFIED_BY, SPECIFIED_BY_DEFINITION], + [SUBSCRIPTION_FILTER, SUBSCRIPTION_FILTER_DEFINITION], + [TAG, TAG_DEFINITION], +]); + +export const BASE_SCALARS: ReadonlySet = new Set([ + '_Any', + '_Entities', + BOOLEAN_SCALAR, + FLOAT_SCALAR, + ID_SCALAR, + INT_SCALAR, + FIELD_SET_SCALAR, + SCOPE_SCALAR, + STRING_SCALAR, +]); + +export const V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME = new Map([ + [AUTHENTICATED, AUTHENTICATED_DEFINITION], + [COMPOSE_DIRECTIVE, COMPOSE_DIRECTIVE_DEFINITION], + [INACCESSIBLE, INACCESSIBLE_DEFINITION], + [INTERFACE_OBJECT, INTERFACE_OBJECT_DEFINITION], + [LINK, LINK_DEFINITION], + [OVERRIDE, OVERRIDE_DEFINITION], + [REQUIRES_SCOPES, REQUIRES_SCOPES_DEFINITION], + [SHAREABLE, SHAREABLE_DEFINITION], +]); + +export const EDFS_ARGS_REGEXP = /{{\s*args\.([a-zA-Z0-9_]+)\s*}}/g; + +export const MAX_OR_SCOPES = 16; diff --git a/composition/src/v1/utils/constants.ts b/composition/src/v1/constants/directive-definitions.ts similarity index 67% rename from composition/src/v1/utils/constants.ts rename to composition/src/v1/constants/directive-definitions.ts index 1d29269036..96a321ed45 100644 --- a/composition/src/v1/utils/constants.ts +++ b/composition/src/v1/constants/directive-definitions.ts @@ -1,21 +1,9 @@ -import { - DEFAULT_DEPRECATION_REASON, - DirectiveDefinitionNode, - InputObjectTypeDefinitionNode, - Kind, - ScalarTypeDefinitionNode, - TypeNode, -} from 'graphql'; +/* directive @deprecated(reason: String = "No longer supported") on ARGUMENT_DEFINITION | ENUM_VALUE | + FIELD_DEFINITION | INPUT_FIELD_DEFINITION +*/ +import { DEFAULT_DEPRECATION_REASON, DirectiveDefinitionNode, Kind } from 'graphql'; import { stringArrayToNameNodeArray, stringToNamedTypeNode, stringToNameNode } from '../../ast/utils'; import { - MutableDirectiveDefinitionNode, - MutableEnumNode, - MutableInputObjectNode, - MutableScalarNode, -} from '../../schema-building/ast'; -import { DEFAULT_CONSUMER_INACTIVE_THRESHOLD } from './integer-constants'; -import { - AND_UPPER, ARGUMENT_DEFINITION_UPPER, AS, AUTHENTICATED, @@ -26,8 +14,6 @@ import { CONDITION, CONFIGURE_CHILD_DESCRIPTIONS, CONFIGURE_DESCRIPTION, - CONSUMER_INACTIVE_THRESHOLD, - CONSUMER_NAME, DEFAULT_EDFS_PROVIDER_ID, DEPRECATED, DESCRIPTION_OVERRIDE, @@ -41,19 +27,14 @@ import { EDFS_REDIS_SUBSCRIBE, ENUM_UPPER, ENUM_VALUE_UPPER, - EXECUTION, EXTENDS, EXTERNAL, FIELD_DEFINITION_UPPER, - FIELD_PATH, FIELD_SET_SCALAR, FIELDS, - FLOAT_SCALAR, FOR, FROM, - ID_SCALAR, IMPORT, - IN_UPPER, INACCESSIBLE, INPUT_FIELD_DEFINITION_UPPER, INPUT_OBJECT_UPPER, @@ -66,10 +47,8 @@ import { LINK_IMPORT, LINK_PURPOSE, NAME, - NOT_UPPER, OBJECT_UPPER, ONE_OF, - OR_UPPER, OVERRIDE, PROPAGATE, PROVIDER_ID, @@ -83,52 +62,131 @@ import { SCHEMA_UPPER, SCOPE_SCALAR, SCOPES, - SECURITY, SEMANTIC_NON_NULL, SHAREABLE, SPECIFIED_BY, STREAM_CONFIGURATION, - STREAM_NAME, STRING_SCALAR, SUBJECT, SUBJECTS, - SUBSCRIPTION_FIELD_CONDITION, SUBSCRIPTION_FILTER, SUBSCRIPTION_FILTER_CONDITION, - SUBSCRIPTION_FILTER_VALUE, TAG, TOPIC, TOPICS, UNION_UPPER, URL_LOWER, - VALUES, } from '../../utils/string-constants'; -import { DirectiveName } from '../../types/types'; +import { REQUIRED_FIELDSET_TYPE_NODE, REQUIRED_STRING_TYPE_NODE } from './type-nodes'; -export const REQUIRED_STRING_TYPE_NODE: TypeNode = { - kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(STRING_SCALAR), +// @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR +export const AUTHENTICATED_DEFINITION: DirectiveDefinitionNode = { + kind: Kind.DIRECTIVE_DEFINITION, + locations: stringArrayToNameNodeArray([ + ENUM_UPPER, + FIELD_DEFINITION_UPPER, + INTERFACE_UPPER, + OBJECT_UPPER, + SCALAR_UPPER, + ]), + name: stringToNameNode(AUTHENTICATED), + repeatable: false, }; -export const BASE_SCALARS = new Set([ - '_Any', - '_Entities', - BOOLEAN_SCALAR, - FLOAT_SCALAR, - ID_SCALAR, - INT_SCALAR, - FIELD_SET_SCALAR, - SCOPE_SCALAR, - STRING_SCALAR, -]); - -/* directive @deprecated(reason: String = "No longer supported") on ARGUMENT_DEFINITION | ENUM_VALUE | - FIELD_DEFINITION | INPUT_FIELD_DEFINITION +// @composeDirective is currently unimplemented +/* directive @composeDirective(name: String!) repeatable on SCHEMA */ +export const COMPOSE_DIRECTIVE_DEFINITION: DirectiveDefinitionNode = { + arguments: [ + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(NAME), + type: REQUIRED_STRING_TYPE_NODE, + }, + ], + kind: Kind.DIRECTIVE_DEFINITION, + locations: stringArrayToNameNodeArray([SCHEMA_UPPER]), + name: stringToNameNode(COMPOSE_DIRECTIVE), + repeatable: true, +}; +/* directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_OBJECT | + INPUT_FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR | UNION */ -export const DEPRECATED_DEFINITION: MutableDirectiveDefinitionNode = { + +/* + * directive @openfed__configureChildDescriptions( + * propagate: Boolean! = true + * ) on ENUM | INPUT_OBJECT | INTERFACE | OBJECT + */ +export const CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION: DirectiveDefinitionNode = { arguments: [ + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(PROPAGATE), + type: { + kind: Kind.NON_NULL_TYPE, + type: stringToNamedTypeNode(BOOLEAN_SCALAR), + }, + defaultValue: { + kind: Kind.BOOLEAN, + value: true, + }, + }, + ], + kind: Kind.DIRECTIVE_DEFINITION, + locations: stringArrayToNameNodeArray([ENUM_UPPER, INPUT_OBJECT_UPPER, INTERFACE_UPPER, OBJECT_UPPER]), + name: stringToNameNode(CONFIGURE_CHILD_DESCRIPTIONS), + repeatable: false, +}; + +/* + * directive @openfed__configureDescription( + * propagate: Boolean! = true + * descriptionOverride: String + * ) on ARGUMENT_DEFINITION | FIELD_DEFINITION | INPUT_OBJECT | INPUT_FIELD_DEFINITION | ENUM | ENUM_VALUE | + * INTERFACE | OBJECT | SCALAR | SCHEMA | UNION + * */ +export const CONFIGURE_DESCRIPTION_DEFINITION: DirectiveDefinitionNode = { + arguments: [ + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(PROPAGATE), + type: { + kind: Kind.NON_NULL_TYPE, + type: stringToNamedTypeNode(BOOLEAN_SCALAR), + }, + defaultValue: { + kind: Kind.BOOLEAN, + value: true, + }, + }, { directives: [], + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(DESCRIPTION_OVERRIDE), + type: stringToNamedTypeNode(STRING_SCALAR), + }, + ], + kind: Kind.DIRECTIVE_DEFINITION, + locations: stringArrayToNameNodeArray([ + ARGUMENT_DEFINITION_UPPER, + ENUM_UPPER, + ENUM_VALUE_UPPER, + FIELD_DEFINITION_UPPER, + INTERFACE_UPPER, + INPUT_OBJECT_UPPER, + INPUT_FIELD_DEFINITION_UPPER, + OBJECT_UPPER, + SCALAR_UPPER, + SCHEMA_UPPER, + UNION_UPPER, + ]), + name: stringToNameNode(CONFIGURE_DESCRIPTION), + repeatable: false, +}; + +export const DEPRECATED_DEFINITION: DirectiveDefinitionNode = { + arguments: [ + { kind: Kind.INPUT_VALUE_DEFINITION, name: stringToNameNode(REASON), type: stringToNamedTypeNode(STRING_SCALAR), @@ -246,7 +304,7 @@ export const EDFS_NATS_PUBLISH_DEFINITION: DirectiveDefinitionNode = { repeatable: false, }; -// directive @edfs__natsRequest(subject: String!, providerId String! = "default") on FIELD_DEFINITION +// directive @edfs__natsRequest(subject: String!, providerId: String! = "default") on FIELD_DEFINITION export const EDFS_NATS_REQUEST_DEFINITION: DirectiveDefinitionNode = { arguments: [ { @@ -315,115 +373,6 @@ export const EDFS_NATS_SUBSCRIBE_DEFINITION: DirectiveDefinitionNode = { repeatable: false, }; -export const REQUIRED_FIELDSET_TYPE_NODE: TypeNode = { - kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(FIELD_SET_SCALAR), -}; - -// directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT -export const KEY_DEFINITION: DirectiveDefinitionNode = { - arguments: [ - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(FIELDS), - type: REQUIRED_FIELDSET_TYPE_NODE, - }, - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(RESOLVABLE), - type: stringToNamedTypeNode(BOOLEAN_SCALAR), - defaultValue: { - kind: Kind.BOOLEAN, - value: true, - }, - }, - ], - kind: Kind.DIRECTIVE_DEFINITION, - locations: stringArrayToNameNodeArray([INTERFACE_UPPER, OBJECT_UPPER]), - name: stringToNameNode(KEY), - repeatable: true, -}; - -// directive @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION -export const PROVIDES_DEFINITION: DirectiveDefinitionNode = { - arguments: [ - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(FIELDS), - type: REQUIRED_FIELDSET_TYPE_NODE, - }, - ], - kind: Kind.DIRECTIVE_DEFINITION, - locations: [stringToNameNode(FIELD_DEFINITION_UPPER)], - name: stringToNameNode(PROVIDES), - repeatable: false, -}; - -// directive @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION -export const REQUIRES_DEFINITION: DirectiveDefinitionNode = { - arguments: [ - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(FIELDS), - type: { - kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(FIELD_SET_SCALAR), - }, - }, - ], - kind: Kind.DIRECTIVE_DEFINITION, - locations: [stringToNameNode(FIELD_DEFINITION_UPPER)], - name: stringToNameNode(REQUIRES), - repeatable: false, -}; - -// directive @specifiedBy(url: String!) on SCALAR -export const SPECIFIED_BY_DEFINITION: DirectiveDefinitionNode = { - arguments: [ - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(URL_LOWER), - type: REQUIRED_STRING_TYPE_NODE, - }, - ], - kind: Kind.DIRECTIVE_DEFINITION, - locations: stringArrayToNameNodeArray([SCALAR_UPPER]), - name: stringToNameNode(SPECIFIED_BY), - repeatable: false, -}; - -/* directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION - | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION -*/ -export const TAG_DEFINITION: MutableDirectiveDefinitionNode = { - arguments: [ - { - directives: [], - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(NAME), - type: { - kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(STRING_SCALAR), - }, - }, - ], - kind: Kind.DIRECTIVE_DEFINITION, - locations: stringArrayToNameNodeArray([ - ARGUMENT_DEFINITION_UPPER, - ENUM_UPPER, - ENUM_VALUE_UPPER, - FIELD_DEFINITION_UPPER, - INPUT_FIELD_DEFINITION_UPPER, - INPUT_OBJECT_UPPER, - INTERFACE_UPPER, - OBJECT_UPPER, - SCALAR_UPPER, - UNION_UPPER, - ]), - name: stringToNameNode(TAG), - repeatable: true, -}; - // directive @edfs__redisPublish(channel: String!, providerId: String! = "default") on FIELD_DEFINITION export const EDFS_REDIS_PUBLISH_DEFINITION: DirectiveDefinitionNode = { arguments: [ @@ -478,92 +427,7 @@ export const EDFS_REDIS_SUBSCRIBE_DEFINITION: DirectiveDefinitionNode = { repeatable: false, }; -export const BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME = new Map([ - [DEPRECATED, DEPRECATED_DEFINITION], - [EXTENDS, EXTENDS_DEFINITION], - [EXTERNAL, EXTERNAL_DEFINITION], - [EDFS_KAFKA_PUBLISH, EDFS_KAFKA_PUBLISH_DEFINITION], - [EDFS_KAFKA_SUBSCRIBE, EDFS_KAFKA_SUBSCRIBE_DEFINITION], - [EDFS_NATS_PUBLISH, EDFS_NATS_PUBLISH_DEFINITION], - [EDFS_NATS_REQUEST, EDFS_NATS_REQUEST_DEFINITION], - [EDFS_NATS_SUBSCRIBE, EDFS_NATS_SUBSCRIBE_DEFINITION], - [EDFS_REDIS_PUBLISH, EDFS_REDIS_PUBLISH_DEFINITION], - [EDFS_REDIS_SUBSCRIBE, EDFS_REDIS_SUBSCRIBE_DEFINITION], - [KEY, KEY_DEFINITION], - [PROVIDES, PROVIDES_DEFINITION], - [REQUIRES, REQUIRES_DEFINITION], - [SPECIFIED_BY, SPECIFIED_BY_DEFINITION], - [TAG, TAG_DEFINITION], -]); - -export const ALL_IN_BUILT_DIRECTIVE_NAMES = new Set([ - AUTHENTICATED, - COMPOSE_DIRECTIVE, - CONFIGURE_DESCRIPTION, - CONFIGURE_CHILD_DESCRIPTIONS, - DEPRECATED, - EDFS_NATS_PUBLISH, - EDFS_NATS_REQUEST, - EDFS_NATS_SUBSCRIBE, - EDFS_KAFKA_PUBLISH, - EDFS_KAFKA_SUBSCRIBE, - EDFS_REDIS_PUBLISH, - EDFS_REDIS_SUBSCRIBE, - EXTENDS, - EXTERNAL, - INACCESSIBLE, - INTERFACE_OBJECT, - KEY, - LINK, - ONE_OF, - OVERRIDE, - PROVIDES, - REQUIRE_FETCH_REASONS, - REQUIRES, - REQUIRES_SCOPES, - SEMANTIC_NON_NULL, - SHAREABLE, - SPECIFIED_BY, - SUBSCRIPTION_FILTER, - TAG, -]); - -// @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR -export const AUTHENTICATED_DEFINITION: MutableDirectiveDefinitionNode = { - arguments: [], - kind: Kind.DIRECTIVE_DEFINITION, - locations: stringArrayToNameNodeArray([ - ENUM_UPPER, - FIELD_DEFINITION_UPPER, - INTERFACE_UPPER, - OBJECT_UPPER, - SCALAR_UPPER, - ]), - name: stringToNameNode(AUTHENTICATED), - repeatable: false, -}; - -// @composeDirective is currently unimplemented -/* directive @composeDirective(name: String!) repeatable on SCHEMA */ -export const COMPOSE_DIRECTIVE_DEFINITION: DirectiveDefinitionNode = { - arguments: [ - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(NAME), - type: REQUIRED_STRING_TYPE_NODE, - }, - ], - kind: Kind.DIRECTIVE_DEFINITION, - locations: stringArrayToNameNodeArray([SCHEMA_UPPER]), - name: stringToNameNode(COMPOSE_DIRECTIVE), - repeatable: true, -}; - -/* directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_OBJECT | - INPUT_FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR | UNION -*/ -export const INACCESSIBLE_DEFINITION: MutableDirectiveDefinitionNode = { - arguments: [], +export const INACCESSIBLE_DEFINITION: DirectiveDefinitionNode = { kind: Kind.DIRECTIVE_DEFINITION, locations: stringArrayToNameNodeArray([ ARGUMENT_DEFINITION_UPPER, @@ -589,26 +453,28 @@ export const INTERFACE_OBJECT_DEFINITION: DirectiveDefinitionNode = { repeatable: false, }; -export const LINK_IMPORT_DEFINITION: MutableScalarNode = { - kind: Kind.SCALAR_TYPE_DEFINITION, - name: stringToNameNode(LINK_IMPORT), -}; - -export const LINK_PURPOSE_DEFINITION: MutableEnumNode = { - kind: Kind.ENUM_TYPE_DEFINITION, - name: stringToNameNode(LINK_PURPOSE), - values: [ +// directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT +export const KEY_DEFINITION: DirectiveDefinitionNode = { + arguments: [ { - directives: [], - kind: Kind.ENUM_VALUE_DEFINITION, - name: stringToNameNode(EXECUTION), + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(FIELDS), + type: REQUIRED_FIELDSET_TYPE_NODE, }, { - directives: [], - kind: Kind.ENUM_VALUE_DEFINITION, - name: stringToNameNode(SECURITY), + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(RESOLVABLE), + type: stringToNamedTypeNode(BOOLEAN_SCALAR), + defaultValue: { + kind: Kind.BOOLEAN, + value: true, + }, }, ], + kind: Kind.DIRECTIVE_DEFINITION, + locations: stringArrayToNameNodeArray([INTERFACE_UPPER, OBJECT_UPPER]), + name: stringToNameNode(KEY), + repeatable: true, }; // directive @link(url: String!, as: String!, for: String, import: [String]) repeatable on SCHEMA @@ -673,6 +539,21 @@ export const OVERRIDE_DEFINITION: DirectiveDefinitionNode = { repeatable: false, }; +// directive @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION +export const PROVIDES_DEFINITION: DirectiveDefinitionNode = { + arguments: [ + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(FIELDS), + type: REQUIRED_FIELDSET_TYPE_NODE, + }, + ], + kind: Kind.DIRECTIVE_DEFINITION, + locations: [stringToNameNode(FIELD_DEFINITION_UPPER)], + name: stringToNameNode(PROVIDES), + repeatable: false, +}; + // directive @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT export const REQUIRE_FETCH_REASONS_DEFINITION: DirectiveDefinitionNode = { kind: Kind.DIRECTIVE_DEFINITION, @@ -681,11 +562,25 @@ export const REQUIRE_FETCH_REASONS_DEFINITION: DirectiveDefinitionNode = { repeatable: true, }; +// directive @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION +export const REQUIRES_DEFINITION: DirectiveDefinitionNode = { + arguments: [ + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(FIELDS), + type: REQUIRED_FIELDSET_TYPE_NODE, + }, + ], + kind: Kind.DIRECTIVE_DEFINITION, + locations: [stringToNameNode(FIELD_DEFINITION_UPPER)], + name: stringToNameNode(REQUIRES), + repeatable: false, +}; + // @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR -export const REQUIRES_SCOPES_DEFINITION: MutableDirectiveDefinitionNode = { +export const REQUIRES_SCOPES_DEFINITION: DirectiveDefinitionNode = { arguments: [ { - directives: [], kind: Kind.INPUT_VALUE_DEFINITION, name: stringToNameNode(SCOPES), type: { @@ -719,10 +614,9 @@ export const REQUIRES_SCOPES_DEFINITION: MutableDirectiveDefinitionNode = { }; // directive @semanticNonNull(levels: [Int!]! = [0]) on FIELD_DEFINITION -export const SEMANTIC_NON_NULL_DEFINITION: MutableDirectiveDefinitionNode = { +export const SEMANTIC_NON_NULL_DEFINITION: DirectiveDefinitionNode = { arguments: [ { - directives: [], kind: Kind.INPUT_VALUE_DEFINITION, name: stringToNameNode(LEVELS), type: { @@ -760,230 +654,52 @@ export const SHAREABLE_DEFINITION: DirectiveDefinitionNode = { repeatable: true, }; -// directive @openfed__subscriptionFilter(condition: openfed__SubscriptionFilterCondition!) on FIELD_DEFINITION -export const SUBSCRIPTION_FILTER_DEFINITION: DirectiveDefinitionNode = { +// directive @specifiedBy(url: String!) on SCALAR +export const SPECIFIED_BY_DEFINITION: DirectiveDefinitionNode = { arguments: [ { kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(CONDITION), - type: { - kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(SUBSCRIPTION_FILTER_CONDITION), - }, + name: stringToNameNode(URL_LOWER), + type: REQUIRED_STRING_TYPE_NODE, }, ], kind: Kind.DIRECTIVE_DEFINITION, - locations: stringArrayToNameNodeArray([FIELD_DEFINITION_UPPER]), - name: stringToNameNode(SUBSCRIPTION_FILTER), + locations: stringArrayToNameNodeArray([SCALAR_UPPER]), + name: stringToNameNode(SPECIFIED_BY), repeatable: false, }; -/* input openfed__SubscriptionFilterCondition { - * AND: [openfed__SubscriptionFilterCondition!] - * IN: openfed__SubscriptionFieldCondition - * NOT: openfed__SubscriptionFilterCondition - * OR: [openfed__SubscriptionFilterCondition!] - * } - */ -export const SUBSCRIPTION_FILTER_CONDITION_DEFINITION: InputObjectTypeDefinitionNode = { - fields: [ - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(AND_UPPER), - type: { - kind: Kind.LIST_TYPE, - type: { - kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(SUBSCRIPTION_FILTER_CONDITION), - }, - }, - }, - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(IN_UPPER), - type: stringToNamedTypeNode(SUBSCRIPTION_FIELD_CONDITION), - }, - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(OR_UPPER), - type: { - kind: Kind.LIST_TYPE, - type: { - kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(SUBSCRIPTION_FILTER_CONDITION), - }, - }, - }, - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(NOT_UPPER), - type: stringToNamedTypeNode(SUBSCRIPTION_FILTER_CONDITION), - }, - ], - kind: Kind.INPUT_OBJECT_TYPE_DEFINITION, - name: stringToNameNode(SUBSCRIPTION_FILTER_CONDITION), -}; - -// scalar openfed__SubscriptionFilterValue -export const SUBSCRIPTION_FILTER_VALUE_DEFINITION: MutableScalarNode = { - kind: Kind.SCALAR_TYPE_DEFINITION, - name: stringToNameNode(SUBSCRIPTION_FILTER_VALUE), -}; - -/* input openfed__SubscriptionFieldCondition { - * fieldPath: String! - * values: [openfed__SubscriptionFilterValue]! - * } - */ -export const SUBSCRIPTION_FIELD_CONDITION_DEFINITION: InputObjectTypeDefinitionNode = { - fields: [ - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(FIELD_PATH), - type: { - kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(STRING_SCALAR), - }, - }, - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(VALUES), - type: { - kind: Kind.NON_NULL_TYPE, - type: { - kind: Kind.LIST_TYPE, - type: stringToNamedTypeNode(SUBSCRIPTION_FILTER_VALUE), - }, - }, - }, - ], - kind: Kind.INPUT_OBJECT_TYPE_DEFINITION, - name: stringToNameNode(SUBSCRIPTION_FIELD_CONDITION), -}; - -export const V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME = new Map([ - [AUTHENTICATED, AUTHENTICATED_DEFINITION], - [COMPOSE_DIRECTIVE, COMPOSE_DIRECTIVE_DEFINITION], - [INACCESSIBLE, INACCESSIBLE_DEFINITION], - [INTERFACE_OBJECT, INTERFACE_OBJECT_DEFINITION], - [LINK, LINK_DEFINITION], - [OVERRIDE, OVERRIDE_DEFINITION], - [REQUIRES_SCOPES, REQUIRES_SCOPES_DEFINITION], - [SHAREABLE, SHAREABLE_DEFINITION], -]); - -export const BASE_DIRECTIVE_DEFINITIONS: DirectiveDefinitionNode[] = [ - DEPRECATED_DEFINITION, - EXTENDS_DEFINITION, - EXTERNAL_DEFINITION, - KEY_DEFINITION, - PROVIDES_DEFINITION, - REQUIRES_DEFINITION, - SPECIFIED_BY_DEFINITION, - TAG_DEFINITION, -]; - -export const EVENT_DRIVEN_DIRECTIVE_DEFINITIONS_BY_DIRECTIVE_NAME = new Map([ - [EDFS_KAFKA_PUBLISH, EDFS_KAFKA_PUBLISH_DEFINITION], - [EDFS_KAFKA_SUBSCRIBE, EDFS_KAFKA_SUBSCRIBE_DEFINITION], - [EDFS_NATS_PUBLISH, EDFS_NATS_PUBLISH_DEFINITION], - [EDFS_NATS_REQUEST, EDFS_NATS_REQUEST_DEFINITION], - [EDFS_NATS_SUBSCRIBE, EDFS_NATS_SUBSCRIBE_DEFINITION], - [EDFS_REDIS_PUBLISH, EDFS_REDIS_PUBLISH_DEFINITION], - [EDFS_REDIS_SUBSCRIBE, EDFS_REDIS_SUBSCRIBE_DEFINITION], -]); - -export const VERSION_TWO_DIRECTIVE_DEFINITIONS: DirectiveDefinitionNode[] = [ - AUTHENTICATED_DEFINITION, - COMPOSE_DIRECTIVE_DEFINITION, - INACCESSIBLE_DEFINITION, - INTERFACE_OBJECT_DEFINITION, - OVERRIDE_DEFINITION, - REQUIRES_SCOPES_DEFINITION, - SHAREABLE_DEFINITION, -]; - -export const FIELD_SET_SCALAR_DEFINITION: ScalarTypeDefinitionNode = { - kind: Kind.SCALAR_TYPE_DEFINITION, - name: stringToNameNode(FIELD_SET_SCALAR), -}; - -// scalar openfed__Scope -export const SCOPE_SCALAR_DEFINITION: MutableScalarNode = { - kind: Kind.SCALAR_TYPE_DEFINITION, - name: stringToNameNode(SCOPE_SCALAR), -}; - -/* - * input edfs__NatsStreamConfiguration { - * consumerInactiveThreshold : Int! = 30 - * consumerName: String! - * streamName: String! - * } - * */ -export const EDFS_NATS_STREAM_CONFIGURATION_DEFINITION: MutableInputObjectNode = { - kind: Kind.INPUT_OBJECT_TYPE_DEFINITION, - name: stringToNameNode(EDFS_NATS_STREAM_CONFIGURATION), - fields: [ - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(CONSUMER_NAME), - type: { - kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(STRING_SCALAR), - }, - }, - { - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(STREAM_NAME), - type: { - kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(STRING_SCALAR), - }, - }, +// directive @openfed__subscriptionFilter(condition: openfed__SubscriptionFilterCondition!) on FIELD_DEFINITION +export const SUBSCRIPTION_FILTER_DEFINITION: DirectiveDefinitionNode = { + arguments: [ { kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(CONSUMER_INACTIVE_THRESHOLD), + name: stringToNameNode(CONDITION), type: { kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(INT_SCALAR), - }, - defaultValue: { - kind: Kind.INT, - value: DEFAULT_CONSUMER_INACTIVE_THRESHOLD.toString(), + type: stringToNamedTypeNode(SUBSCRIPTION_FILTER_CONDITION), }, }, ], + kind: Kind.DIRECTIVE_DEFINITION, + locations: stringArrayToNameNodeArray([FIELD_DEFINITION_UPPER]), + name: stringToNameNode(SUBSCRIPTION_FILTER), + repeatable: false, }; -/* - * directive @openfed__configureDescription( - * propagate: Boolean! = true - * descriptionOverride: String - * ) on ARGUMENT_DEFINITION | FIELD_DEFINITION | INPUT_OBJECT | INPUT_FIELD_DEFINITION | ENUM | ENUM_VALUE | - * INTERFACE | OBJECT | SCALAR | SCHEMA | UNION - * */ -export const CONFIGURE_DESCRIPTION_DEFINITION: MutableDirectiveDefinitionNode = { +/* directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION + | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION +*/ +export const TAG_DEFINITION: DirectiveDefinitionNode = { arguments: [ { - directives: [], kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(PROPAGATE), + name: stringToNameNode(NAME), type: { kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(BOOLEAN_SCALAR), - }, - defaultValue: { - kind: Kind.BOOLEAN, - value: true, + type: stringToNamedTypeNode(STRING_SCALAR), }, }, - { - directives: [], - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(DESCRIPTION_OVERRIDE), - type: stringToNamedTypeNode(STRING_SCALAR), - }, ], kind: Kind.DIRECTIVE_DEFINITION, locations: stringArrayToNameNodeArray([ @@ -991,45 +707,13 @@ export const CONFIGURE_DESCRIPTION_DEFINITION: MutableDirectiveDefinitionNode = ENUM_UPPER, ENUM_VALUE_UPPER, FIELD_DEFINITION_UPPER, - INTERFACE_UPPER, - INPUT_OBJECT_UPPER, INPUT_FIELD_DEFINITION_UPPER, + INPUT_OBJECT_UPPER, + INTERFACE_UPPER, OBJECT_UPPER, SCALAR_UPPER, - SCHEMA_UPPER, UNION_UPPER, ]), - name: stringToNameNode(CONFIGURE_DESCRIPTION), - repeatable: false, -}; - -/* - * directive @openfed__configureChildDescriptions( - * propagate: Boolean! = true - * ) on ENUM | INPUT_OBJECT | INTERFACE | OBJECT - */ -export const CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION: MutableDirectiveDefinitionNode = { - arguments: [ - { - directives: [], - kind: Kind.INPUT_VALUE_DEFINITION, - name: stringToNameNode(PROPAGATE), - type: { - kind: Kind.NON_NULL_TYPE, - type: stringToNamedTypeNode(BOOLEAN_SCALAR), - }, - defaultValue: { - kind: Kind.BOOLEAN, - value: true, - }, - }, - ], - kind: Kind.DIRECTIVE_DEFINITION, - locations: stringArrayToNameNodeArray([ENUM_UPPER, INPUT_OBJECT_UPPER, INTERFACE_UPPER, OBJECT_UPPER]), - name: stringToNameNode(CONFIGURE_CHILD_DESCRIPTIONS), - repeatable: false, + name: stringToNameNode(TAG), + repeatable: true, }; - -export const EDFS_ARGS_REGEXP = /{{\s*args\.([a-zA-Z0-9_]+)\s*}}/g; - -export const MAX_OR_SCOPES = 16; diff --git a/composition/src/v1/utils/integer-constants.ts b/composition/src/v1/constants/integers.ts similarity index 100% rename from composition/src/v1/utils/integer-constants.ts rename to composition/src/v1/constants/integers.ts diff --git a/composition/src/v1/constants/non-directive-definitions.ts b/composition/src/v1/constants/non-directive-definitions.ts new file mode 100644 index 0000000000..9cdbece15f --- /dev/null +++ b/composition/src/v1/constants/non-directive-definitions.ts @@ -0,0 +1,192 @@ +import { EnumTypeDefinitionNode, InputObjectTypeDefinitionNode, Kind, ScalarTypeDefinitionNode } from 'graphql'; +import { stringToNamedTypeNode, stringToNameNode } from '../../ast/utils'; +import { + AND_UPPER, + CONSUMER_INACTIVE_THRESHOLD, + CONSUMER_NAME, + EDFS_NATS_STREAM_CONFIGURATION, + EXECUTION, + FIELD_PATH, + FIELD_SET_SCALAR, + IN_UPPER, + INT_SCALAR, + LINK_IMPORT, + LINK_PURPOSE, + NOT_UPPER, + OR_UPPER, + SCOPE_SCALAR, + SECURITY, + STREAM_NAME, + STRING_SCALAR, + SUBSCRIPTION_FIELD_CONDITION, + SUBSCRIPTION_FILTER_CONDITION, + SUBSCRIPTION_FILTER_VALUE, + VALUES, +} from '../../utils/string-constants'; +import { DEFAULT_CONSUMER_INACTIVE_THRESHOLD } from './integers'; + +/* + * input edfs__NatsStreamConfiguration { + * consumerInactiveThreshold : Int! = 30 + * consumerName: String! + * streamName: String! + * } + * */ +export const EDFS_NATS_STREAM_CONFIGURATION_DEFINITION: InputObjectTypeDefinitionNode = { + kind: Kind.INPUT_OBJECT_TYPE_DEFINITION, + name: stringToNameNode(EDFS_NATS_STREAM_CONFIGURATION), + fields: [ + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(CONSUMER_INACTIVE_THRESHOLD), + type: { + kind: Kind.NON_NULL_TYPE, + type: stringToNamedTypeNode(INT_SCALAR), + }, + defaultValue: { + kind: Kind.INT, + value: DEFAULT_CONSUMER_INACTIVE_THRESHOLD.toString(), + }, + }, + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(CONSUMER_NAME), + type: { + kind: Kind.NON_NULL_TYPE, + type: stringToNamedTypeNode(STRING_SCALAR), + }, + }, + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(STREAM_NAME), + type: { + kind: Kind.NON_NULL_TYPE, + type: stringToNamedTypeNode(STRING_SCALAR), + }, + }, + ], +}; + +// scalar openfed__FieldSet +export const FIELD_SET_SCALAR_DEFINITION: ScalarTypeDefinitionNode = { + kind: Kind.SCALAR_TYPE_DEFINITION, + name: stringToNameNode(FIELD_SET_SCALAR), +}; + +// scalar link__Import +export const LINK_IMPORT_DEFINITION: ScalarTypeDefinitionNode = { + kind: Kind.SCALAR_TYPE_DEFINITION, + name: stringToNameNode(LINK_IMPORT), +}; + +/* + * enum link__Purpose { + * EXECUTION + * SECURITY + * } + */ +export const LINK_PURPOSE_DEFINITION: EnumTypeDefinitionNode = { + kind: Kind.ENUM_TYPE_DEFINITION, + name: stringToNameNode(LINK_PURPOSE), + values: [ + { + directives: [], + kind: Kind.ENUM_VALUE_DEFINITION, + name: stringToNameNode(EXECUTION), + }, + { + directives: [], + kind: Kind.ENUM_VALUE_DEFINITION, + name: stringToNameNode(SECURITY), + }, + ], +}; + +// scalar openfed__Scope +export const SCOPE_SCALAR_DEFINITION: ScalarTypeDefinitionNode = { + kind: Kind.SCALAR_TYPE_DEFINITION, + name: stringToNameNode(SCOPE_SCALAR), +}; + +/* input openfed__SubscriptionFieldCondition { + * fieldPath: String! + * values: [openfed__SubscriptionFilterValue]! + * } + */ +export const SUBSCRIPTION_FIELD_CONDITION_DEFINITION: InputObjectTypeDefinitionNode = { + fields: [ + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(FIELD_PATH), + type: { + kind: Kind.NON_NULL_TYPE, + type: stringToNamedTypeNode(STRING_SCALAR), + }, + }, + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(VALUES), + type: { + kind: Kind.NON_NULL_TYPE, + type: { + kind: Kind.LIST_TYPE, + type: stringToNamedTypeNode(SUBSCRIPTION_FILTER_VALUE), + }, + }, + }, + ], + kind: Kind.INPUT_OBJECT_TYPE_DEFINITION, + name: stringToNameNode(SUBSCRIPTION_FIELD_CONDITION), +}; + +/* input openfed__SubscriptionFilterCondition { + * AND: [openfed__SubscriptionFilterCondition!] + * IN: openfed__SubscriptionFieldCondition + * NOT: openfed__SubscriptionFilterCondition + * OR: [openfed__SubscriptionFilterCondition!] + * } + */ +export const SUBSCRIPTION_FILTER_CONDITION_DEFINITION: InputObjectTypeDefinitionNode = { + fields: [ + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(AND_UPPER), + type: { + kind: Kind.LIST_TYPE, + type: { + kind: Kind.NON_NULL_TYPE, + type: stringToNamedTypeNode(SUBSCRIPTION_FILTER_CONDITION), + }, + }, + }, + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(IN_UPPER), + type: stringToNamedTypeNode(SUBSCRIPTION_FIELD_CONDITION), + }, + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(OR_UPPER), + type: { + kind: Kind.LIST_TYPE, + type: { + kind: Kind.NON_NULL_TYPE, + type: stringToNamedTypeNode(SUBSCRIPTION_FILTER_CONDITION), + }, + }, + }, + { + kind: Kind.INPUT_VALUE_DEFINITION, + name: stringToNameNode(NOT_UPPER), + type: stringToNamedTypeNode(SUBSCRIPTION_FILTER_CONDITION), + }, + ], + kind: Kind.INPUT_OBJECT_TYPE_DEFINITION, + name: stringToNameNode(SUBSCRIPTION_FILTER_CONDITION), +}; + +// scalar openfed__SubscriptionFilterValue +export const SUBSCRIPTION_FILTER_VALUE_DEFINITION: ScalarTypeDefinitionNode = { + kind: Kind.SCALAR_TYPE_DEFINITION, + name: stringToNameNode(SUBSCRIPTION_FILTER_VALUE), +}; diff --git a/composition/src/v1/constants/strings.ts b/composition/src/v1/constants/strings.ts new file mode 100644 index 0000000000..375b59b6ec --- /dev/null +++ b/composition/src/v1/constants/strings.ts @@ -0,0 +1,146 @@ +import { + AND_UPPER, + ARGUMENT_DEFINITION_UPPER, + BOOLEAN_SCALAR, + CONSUMER_INACTIVE_THRESHOLD, + CONSUMER_NAME, + DEPRECATED, + EDFS_KAFKA_PUBLISH, + EDFS_KAFKA_SUBSCRIBE, + EDFS_NATS_PUBLISH, + EDFS_NATS_REQUEST, + EDFS_NATS_STREAM_CONFIGURATION, + EDFS_NATS_SUBSCRIBE, + EDFS_REDIS_PUBLISH, + EDFS_REDIS_SUBSCRIBE, + ENUM_UPPER, + ENUM_VALUE_UPPER, + FIELD_DEFINITION_UPPER, + FIELD_SET_SCALAR, + FLOAT_SCALAR, + ID_SCALAR, + IN_UPPER, + INPUT_FIELD_DEFINITION_UPPER, + INPUT_OBJECT_UPPER, + INT_SCALAR, + INTERFACE_UPPER, + KEY, + LINK, + LINK_IMPORT, + LINK_PURPOSE, + NOT_UPPER, + OBJECT_UPPER, + ONE_OF, + OR_UPPER, + PROVIDES, + REQUIRES, + REQUIRES_SCOPES, + SCALAR_UPPER, + SCHEMA_UPPER, + SEMANTIC_NON_NULL, + STREAM_NAME, + STRING_SCALAR, + SUBSCRIPTION_FIELD_CONDITION, + SUBSCRIPTION_FILTER, + SUBSCRIPTION_FILTER_CONDITION, + SUBSCRIPTION_FILTER_VALUE, + UNION_UPPER, +} from '../../utils/string-constants'; +import { DefinitionNode, Kind } from 'graphql'; +import { DirectiveName, FieldName, TypeName } from '../../types/types'; +import { + EDFS_NATS_STREAM_CONFIGURATION_DEFINITION, + FIELD_SET_SCALAR_DEFINITION, + LINK_IMPORT_DEFINITION, + LINK_PURPOSE_DEFINITION, + SCOPE_SCALAR_DEFINITION, + SUBSCRIPTION_FIELD_CONDITION_DEFINITION, + SUBSCRIPTION_FILTER_CONDITION_DEFINITION, + SUBSCRIPTION_FILTER_VALUE_DEFINITION, +} from './non-directive-definitions'; + +export const TYPE_SYSTEM_DIRECTIVE_LOCATIONS: ReadonlySet = new Set([ + ARGUMENT_DEFINITION_UPPER, + ENUM_UPPER, + ENUM_VALUE_UPPER, + FIELD_DEFINITION_UPPER, + INPUT_FIELD_DEFINITION_UPPER, + INPUT_OBJECT_UPPER, + INTERFACE_UPPER, + OBJECT_UPPER, + SCALAR_UPPER, + SCHEMA_UPPER, + UNION_UPPER, +]); + +export const EVENT_DIRECTIVE_NAMES: ReadonlySet = new Set([ + EDFS_KAFKA_PUBLISH, + EDFS_KAFKA_SUBSCRIBE, + EDFS_NATS_PUBLISH, + EDFS_NATS_REQUEST, + EDFS_NATS_SUBSCRIBE, + EDFS_REDIS_PUBLISH, + EDFS_REDIS_SUBSCRIBE, +]); + +export const STREAM_CONFIGURATION_FIELD_NAMES: ReadonlySet = new Set([ + CONSUMER_INACTIVE_THRESHOLD, + CONSUMER_NAME, + STREAM_NAME, +]); + +export const SUBSCRIPTION_FILTER_INPUT_NAMES: ReadonlySet = new Set([ + AND_UPPER, + IN_UPPER, + NOT_UPPER, + OR_UPPER, +]); +export const SUBSCRIPTION_FILTER_LIST_INPUT_NAMES: ReadonlySet = new Set([AND_UPPER, OR_UPPER]); + +export const COMPOSITE_OUTPUT_NODE_KINDS: ReadonlySet = new Set([ + Kind.INTERFACE_TYPE_DEFINITION, + Kind.INTERFACE_TYPE_EXTENSION, + Kind.OBJECT_TYPE_DEFINITION, + Kind.OBJECT_TYPE_EXTENSION, +]); + +export const DEPENDENCIES_BY_DIRECTIVE_NAME: ReadonlyMap> = new Map< + DirectiveName, + Array +>([ + [EDFS_NATS_SUBSCRIBE, [EDFS_NATS_STREAM_CONFIGURATION_DEFINITION]], + [KEY, [FIELD_SET_SCALAR_DEFINITION]], + [LINK, [LINK_IMPORT_DEFINITION, LINK_PURPOSE_DEFINITION]], + [PROVIDES, [FIELD_SET_SCALAR_DEFINITION]], + [REQUIRES, [FIELD_SET_SCALAR_DEFINITION]], + [REQUIRES_SCOPES, [SCOPE_SCALAR_DEFINITION]], + [ + SUBSCRIPTION_FILTER, + [ + SUBSCRIPTION_FIELD_CONDITION_DEFINITION, + SUBSCRIPTION_FILTER_CONDITION_DEFINITION, + SUBSCRIPTION_FILTER_VALUE_DEFINITION, + ], + ], +]); + +export const IGNORED_FEDERATED_TYPE_NAMES: ReadonlySet = new Set([ + BOOLEAN_SCALAR, + EDFS_NATS_STREAM_CONFIGURATION, + FIELD_SET_SCALAR, + ID_SCALAR, + INT_SCALAR, + FLOAT_SCALAR, + LINK_IMPORT, + LINK_PURPOSE, + STRING_SCALAR, + SUBSCRIPTION_FIELD_CONDITION, + SUBSCRIPTION_FILTER_CONDITION, + SUBSCRIPTION_FILTER_VALUE, +]); + +export const CLIENT_PERSISTED_DIRECTIVE_NAMES: ReadonlySet = new Set([ + DEPRECATED, + ONE_OF, + SEMANTIC_NON_NULL, +]); diff --git a/composition/src/v1/constants/type-nodes.ts b/composition/src/v1/constants/type-nodes.ts new file mode 100644 index 0000000000..f5fc5a321c --- /dev/null +++ b/composition/src/v1/constants/type-nodes.ts @@ -0,0 +1,13 @@ +import { Kind, TypeNode } from 'graphql'; +import { stringToNamedTypeNode } from '../../ast/utils'; +import { FIELD_SET_SCALAR, STRING_SCALAR } from '../../utils/string-constants'; + +export const REQUIRED_STRING_TYPE_NODE: TypeNode = { + kind: Kind.NON_NULL_TYPE, + type: stringToNamedTypeNode(STRING_SCALAR), +}; + +export const REQUIRED_FIELDSET_TYPE_NODE: TypeNode = { + kind: Kind.NON_NULL_TYPE, + type: stringToNamedTypeNode(FIELD_SET_SCALAR), +}; diff --git a/composition/src/v1/federation/federation-factory.ts b/composition/src/v1/federation/federation-factory.ts index 6a2d77f3c6..6444240ea7 100644 --- a/composition/src/v1/federation/federation-factory.ts +++ b/composition/src/v1/federation/federation-factory.ts @@ -2,6 +2,7 @@ import { buildASTSchema, ConstDirectiveNode, ConstObjectValueNode, + DefinitionNode, DirectiveDefinitionNode, DocumentNode, GraphQLSchema, @@ -15,11 +16,11 @@ import { import { getMutableTypeNode, getTypeNodeNamedTypeName, + MutableDefinitionNode, MutableEnumValueNode, MutableFieldNode, MutableInputValueNode, MutableIntermediateTypeNode, - MutableTypeDefinitionNode, MutableTypeNode, } from '../../schema-building/ast'; import { stringToNamedTypeNode, stringToNameNode } from '../../ast/utils'; @@ -85,7 +86,13 @@ import { SubscriptionFilterData, validateImplicitFieldSets, } from './utils'; -import { SUBSCRIPTION_FILTER_INPUT_NAMES, SUBSCRIPTION_FILTER_LIST_INPUT_NAMES } from '../utils/string-constants'; +import { + CLIENT_PERSISTED_DIRECTIVE_NAMES, + DEPENDENCIES_BY_DIRECTIVE_NAME, + IGNORED_FEDERATED_TYPE_NAMES, + SUBSCRIPTION_FILTER_INPUT_NAMES, + SUBSCRIPTION_FILTER_LIST_INPUT_NAMES, +} from '../constants/strings'; import { getNodeCoords, isNodeLeaf, @@ -107,18 +114,7 @@ import { SubscriptionFieldCondition, SubscriptionFilterValue, } from '../../router-configuration/types'; -import { - AUTHENTICATED_DEFINITION, - BASE_SCALARS, - DEPRECATED_DEFINITION, - INACCESSIBLE_DEFINITION, - MAX_OR_SCOPES, - ONE_OF_DEFINITION, - REQUIRES_SCOPES_DEFINITION, - SCOPE_SCALAR_DEFINITION, - SEMANTIC_NON_NULL_DEFINITION, - TAG_DEFINITION, -} from '../utils/constants'; +import { BASE_SCALARS, DIRECTIVE_DEFINITION_BY_NAME, MAX_OR_SCOPES } from '../constants/constants'; import { batchNormalize } from '../normalization/normalization-factory'; import { isNodeQuery } from '../normalization/utils'; import { @@ -137,6 +133,7 @@ import { ObjectDefinitionData, ParentDefinitionData, PersistedDirectiveDefinitionData, + PersistedDirectivesData, ScalarDefinitionData, UnionDefinitionData, } from '../../schema-building/types'; @@ -144,13 +141,11 @@ import { addValidPersistedDirectiveDefinitionNodeByData, areKindsEqual, compareAndValidateInputValueDefaultValues, - extractPersistedDirectives, generateDeprecatedDirective, getClientPersistedDirectiveNodes, getClientSchemaFieldNodeByFieldData, getDefinitionDataCoords, getInitialFederatedDescription, - getNodeForRouterSchemaByData, getSubscriptionFilterValue, isFieldData, isLeafKind, @@ -167,6 +162,8 @@ import { setLongestDescription, setMutualExecutableLocations, setParentDataExtensionType, + upsertDeprecatedDirective, + upsertTagDirectives, validateExternalAndShareable, } from '../../schema-building/utils'; @@ -191,6 +188,7 @@ import { import { AND_UPPER, AUTHENTICATED, + AUTHORIZATION_DIRECTIVES, CONDITION, DEPRECATED, ENUM_VALUE, @@ -201,6 +199,7 @@ import { INPUT_OBJECT, LEFT_PARENTHESIS, LIST, + NON_REPEATABLE_PERSISTED_DIRECTIVES, NOT_UPPER, OBJECT, ONE_OF, @@ -218,7 +217,7 @@ import { } from '../../utils/string-constants'; import { MAX_SUBSCRIPTION_FILTER_DEPTH, MAXIMUM_TYPE_NESTING } from '../../utils/integer-constants'; import { - addIterableValuesToSet, + addIterableToSet, addMapEntries, addNewObjectValueMapEntries, copyArrayValueMap, @@ -241,17 +240,26 @@ import { import { FederateSubgraphsContractV1Params, FederateSubgraphsWithContractsV1Params, FederationParams } from './types'; import { ContractName, DirectiveName, FieldCoords, FieldName, SubgraphName, TypeName } from '../../types/types'; import { singleFederatedInputFieldOneOfWarning } from '../warnings/warnings'; -import { ValidateOneOfDirectiveParams } from './params'; +import { ExtractPersistedDirectivesParams, ValidateOneOfDirectiveParams } from './params'; +import { + AUTHENTICATED_DEFINITION, + DEPRECATED_DEFINITION, + INACCESSIBLE_DEFINITION, + ONE_OF_DEFINITION, + REQUIRES_SCOPES_DEFINITION, + SEMANTIC_NON_NULL_DEFINITION, + TAG_DEFINITION, +} from '../constants/directive-definitions'; export class FederationFactory { - authorizationDataByParentTypeName: Map; - coordsByNamedTypeName = new Map>(); + authorizationDataByParentTypeName: Map; + coordsByNamedTypeName = new Map>(); disableResolvabilityValidation: boolean = false; - clientDefinitions: MutableTypeDefinitionNode[] = [DEPRECATED_DEFINITION]; + clientDefinitions: (MutableDefinitionNode | DefinitionNode)[] = []; currentSubgraphName = ''; - concreteTypeNamesByAbstractTypeName: Map>; + concreteTypeNamesByAbstractTypeName: Map>; subgraphNamesByNamedTypeNameByFieldCoords = new Map>>(); - entityDataByTypeName: Map; + entityDataByTypeName: Map; entityInterfaceFederationDataByTypeName: Map; errors: Error[] = []; fieldConfigurationByFieldCoords = new Map(); @@ -264,10 +272,10 @@ export class FederationFactory { isMaxDepth = false; isVersionTwo = false; namedInputValueTypeNames = new Set(); - namedOutputTypeNames = new Set(); - parentDefinitionDataByTypeName = new Map(); - parentTagDataByTypeName = new Map(); - persistedDirectiveDefinitionByDirectiveName = new Map([ + namedOutputTypeNames = new Set(); + parentDefinitionDataByTypeName = new Map(); + parentTagDataByTypeName = new Map(); + persistedDirectiveDefinitionByDirectiveName = new Map([ [AUTHENTICATED, AUTHENTICATED_DEFINITION], [DEPRECATED, DEPRECATED_DEFINITION], [INACCESSIBLE, INACCESSIBLE_DEFINITION], @@ -276,10 +284,9 @@ export class FederationFactory { [SEMANTIC_NON_NULL, SEMANTIC_NON_NULL_DEFINITION], [TAG, TAG_DEFINITION], ]); - persistedDirectiveDefinitions = new Set([AUTHENTICATED, DEPRECATED, INACCESSIBLE, TAG, REQUIRES_SCOPES]); potentialPersistedDirectiveDefinitionDataByDirectiveName = new Map(); referencedPersistedDirectiveNames = new Set(); - routerDefinitions: MutableTypeDefinitionNode[] = [DEPRECATED_DEFINITION, TAG_DEFINITION]; + routerDefinitions: (MutableDefinitionNode | DefinitionNode)[] = []; subscriptionFilterDataByFieldPath = new Map(); tagNamesByCoords = new Map>(); warnings: Warning[]; @@ -306,6 +313,44 @@ export class FederationFactory { this.warnings = warnings; } + extractPersistedDirectives({ data, directivesByName }: ExtractPersistedDirectivesParams): PersistedDirectivesData { + for (const [directiveName, directiveNodes] of directivesByName) { + const definition = this.persistedDirectiveDefinitionByDirectiveName.get(directiveName); + // @authenticated and @requiresScopes are handled differently + if (!definition) { + continue; + } + this.referencedPersistedDirectiveNames.add(directiveName); + if (AUTHORIZATION_DIRECTIVES.has(directiveName) || directiveNodes.length < 1) { + continue; + } + switch (directiveName) { + case DEPRECATED: { + data.isDeprecated = true; + upsertDeprecatedDirective(data, directiveNodes[0]); + break; + } + case TAG: { + upsertTagDirectives(data, directiveNodes); + break; + } + default: { + const existingDirectives = data.directivesByDirectiveName.get(directiveName); + if (!existingDirectives) { + data.directivesByDirectiveName.set(directiveName, [...directiveNodes]); + break; + } + // Only add one instance of certain directives. + if (NON_REPEATABLE_PERSISTED_DIRECTIVES.has(directiveName)) { + break; + } + existingDirectives.push(...directiveNodes); + } + } + } + return data; + } + getValidImplementedInterfaces(data: CompositeOutputData): NamedTypeNode[] { const interfaces: NamedTypeNode[] = []; if (data.implementedInterfaceTypeNames.size < 1) { @@ -600,11 +645,10 @@ export class FederationFactory { ) { const existingData = enumValueDataByName.get(incomingData.name); const targetData = existingData || this.copyEnumValueData(incomingData); - extractPersistedDirectives( - targetData.persistedDirectivesData, - incomingData.directivesByDirectiveName, - this.persistedDirectiveDefinitionByDirectiveName, - ); + this.extractPersistedDirectives({ + data: targetData.persistedDirectivesData, + directivesByName: incomingData.directivesByDirectiveName, + }); const isValueInaccessible = isNodeDataInaccessible(incomingData); if (isParentInaccessible || isValueInaccessible) { this.inaccessibleCoords.add(targetData.federatedCoords); @@ -620,7 +664,10 @@ export class FederationFactory { targetData.configureDescriptionDataBySubgraphName, ); setLongestDescription(targetData, incomingData); - addIterableValuesToSet(incomingData.subgraphNames, targetData.subgraphNames); + addIterableToSet({ + source: incomingData.subgraphNames, + target: targetData.subgraphNames, + }); } // To facilitate the splitting of tag paths, field arguments do not use the renamedPath property for tagNamesByPath @@ -632,11 +679,10 @@ export class FederationFactory { ) { const existingData = inputValueDataByValueName.get(incomingData.name); const targetData = existingData || this.copyInputValueData(incomingData); - extractPersistedDirectives( - targetData.persistedDirectivesData, - incomingData.directivesByDirectiveName, - this.persistedDirectiveDefinitionByDirectiveName, - ); + this.extractPersistedDirectives({ + data: targetData.persistedDirectivesData, + directivesByName: incomingData.directivesByDirectiveName, + }); this.recordTagNamesByCoords(targetData, `${parentCoords}.${targetData.name}`); this.namedInputValueTypeNames.add(targetData.namedTypeName); getValueOrDefault(this.coordsByNamedTypeName, targetData.namedTypeName, () => new Set()).add( @@ -651,8 +697,14 @@ export class FederationFactory { targetData.configureDescriptionDataBySubgraphName, ); setLongestDescription(targetData, incomingData); - addIterableValuesToSet(incomingData.requiredSubgraphNames, targetData.requiredSubgraphNames); - addIterableValuesToSet(incomingData.subgraphNames, targetData.subgraphNames); + addIterableToSet({ + source: incomingData.requiredSubgraphNames, + target: targetData.requiredSubgraphNames, + }); + addIterableToSet({ + source: incomingData.subgraphNames, + target: targetData.subgraphNames, + }); this.handleInputValueInaccessibility(isParentInaccessible, targetData, parentCoords); // TODO refactor type merging const mergeResult = getMostRestrictiveMergedTypeNode( @@ -798,10 +850,10 @@ export class FederationFactory { if (!subgraphNamesByNamedTypeName) { return; } - addIterableValuesToSet( - incomingData.subgraphNames, - getValueOrDefault(subgraphNamesByNamedTypeName, incomingData.namedTypeName, () => new Set()), - ); + addIterableToSet({ + source: incomingData.subgraphNames, + target: getValueOrDefault(subgraphNamesByNamedTypeName, incomingData.namedTypeName, () => new Set()), + }); } upsertFieldData( @@ -809,9 +861,6 @@ export class FederationFactory { incomingData: FieldData, isParentInaccessible: boolean, ) { - if (incomingData.directivesByDirectiveName.has(SEMANTIC_NON_NULL)) { - this.referencedPersistedDirectiveNames.add(SEMANTIC_NON_NULL); - } const existingData = fieldDataByFieldName.get(incomingData.name); const targetData = existingData || this.copyFieldData(incomingData, isParentInaccessible || isNodeDataInaccessible(incomingData)); @@ -820,11 +869,10 @@ export class FederationFactory { ); this.namedOutputTypeNames.add(incomingData.namedTypeName); this.handleSubscriptionFilterDirective(incomingData, targetData); - extractPersistedDirectives( - targetData.persistedDirectivesData, - incomingData.directivesByDirectiveName, - this.persistedDirectiveDefinitionByDirectiveName, - ); + this.extractPersistedDirectives({ + data: targetData.persistedDirectivesData, + directivesByName: incomingData.directivesByDirectiveName, + }); const isFieldInaccessible = isParentInaccessible || isNodeDataInaccessible(targetData); if (isFieldInaccessible) { this.inaccessibleCoords.add(targetData.federatedCoords); @@ -864,10 +912,10 @@ export class FederationFactory { } } } - addIterableValuesToSet( - incomingData.subgraphNames, - getValueOrDefault(subgraphNamesByNamedTypeName, incomingData.namedTypeName, () => new Set()), - ); + addIterableToSet({ + source: incomingData.subgraphNames, + target: getValueOrDefault(subgraphNamesByNamedTypeName, incomingData.namedTypeName, () => new Set()), + }); } else { /* If the named types match but there has already been a disparity in the named type names returned by the * field, add the incoming subgraph name to the existing subgraph name set for that named type name. @@ -893,9 +941,18 @@ export class FederationFactory { incomingData.externalFieldDataBySubgraphName, targetData.externalFieldDataBySubgraphName, ); - addMapEntries(incomingData.isShareableBySubgraphName, targetData.isShareableBySubgraphName); - addMapEntries(incomingData.nullLevelsBySubgraphName, targetData.nullLevelsBySubgraphName); - addIterableValuesToSet(incomingData.subgraphNames, targetData.subgraphNames); + addMapEntries({ + source: incomingData.isShareableBySubgraphName, + target: targetData.isShareableBySubgraphName, + }); + addMapEntries({ + source: incomingData.nullLevelsBySubgraphName, + target: targetData.nullLevelsBySubgraphName, + }); + addIterableToSet({ + source: incomingData.subgraphNames, + target: targetData.subgraphNames, + }); } getClientSchemaUnionMembers(unionData: UnionDefinitionData): NamedTypeNode[] { @@ -925,11 +982,10 @@ export class FederationFactory { directivesByDirectiveName: copyArrayValueMap(sourceData.directivesByDirectiveName), extensionType: sourceData.extensionType, name: sourceData.name, - persistedDirectivesData: extractPersistedDirectives( - newPersistedDirectivesData(), - sourceData.directivesByDirectiveName, - this.persistedDirectiveDefinitionByDirectiveName, - ), + persistedDirectivesData: this.extractPersistedDirectives({ + data: newPersistedDirectivesData(), + directivesByName: sourceData.directivesByDirectiveName, + }), description: getInitialFederatedDescription(sourceData), }; } @@ -948,11 +1004,10 @@ export class FederationFactory { name: stringToNameNode(sourceData.name), }, parentTypeName: sourceData.parentTypeName, - persistedDirectivesData: extractPersistedDirectives( - newPersistedDirectivesData(), - sourceData.directivesByDirectiveName, - this.persistedDirectiveDefinitionByDirectiveName, - ), + persistedDirectivesData: this.extractPersistedDirectives({ + data: newPersistedDirectivesData(), + directivesByName: sourceData.directivesByDirectiveName, + }), subgraphNames: new Set(sourceData.subgraphNames), description: getInitialFederatedDescription(sourceData), }; @@ -978,11 +1033,10 @@ export class FederationFactory { }, originalCoords: sourceData.originalCoords, originalParentTypeName: sourceData.originalParentTypeName, - persistedDirectivesData: extractPersistedDirectives( - newPersistedDirectivesData(), - sourceData.directivesByDirectiveName, - this.persistedDirectiveDefinitionByDirectiveName, - ), + persistedDirectivesData: this.extractPersistedDirectives({ + data: newPersistedDirectivesData(), + directivesByName: sourceData.directivesByDirectiveName, + }), renamedParentTypeName: sourceData.renamedParentTypeName, requiredSubgraphNames: new Set(sourceData.requiredSubgraphNames), subgraphNames: new Set(sourceData.subgraphNames), @@ -1012,9 +1066,6 @@ export class FederationFactory { } copyFieldData(sourceData: FieldData, isInaccessible: boolean): FieldData { - if (sourceData.directivesByDirectiveName.has(SEMANTIC_NON_NULL)) { - this.referencedPersistedDirectiveNames.add(SEMANTIC_NON_NULL); - } return { argumentDataByName: this.copyInputValueDataByValueName( sourceData.argumentDataByName, @@ -1042,11 +1093,10 @@ export class FederationFactory { }, nullLevelsBySubgraphName: sourceData.nullLevelsBySubgraphName, originalParentTypeName: sourceData.originalParentTypeName, - persistedDirectivesData: extractPersistedDirectives( - newPersistedDirectivesData(), - sourceData.directivesByDirectiveName, - this.persistedDirectiveDefinitionByDirectiveName, - ), + persistedDirectivesData: this.extractPersistedDirectives({ + data: newPersistedDirectivesData(), + directivesByName: sourceData.directivesByDirectiveName, + }), renamedParentTypeName: sourceData.renamedParentTypeName, subgraphNames: new Set(sourceData.subgraphNames), type: sourceData.type, @@ -1199,11 +1249,10 @@ export class FederationFactory { } return targetData; } - extractPersistedDirectives( - existingData.persistedDirectivesData, - incomingData.directivesByDirectiveName, - this.persistedDirectiveDefinitionByDirectiveName, - ); + this.extractPersistedDirectives({ + data: existingData.persistedDirectivesData, + directivesByName: incomingData.directivesByDirectiveName, + }); return existingData; } @@ -1263,7 +1312,10 @@ export class FederationFactory { } targetData.appearances += 1; targetData.isInaccessible ||= isParentInaccessible; - addIterableValuesToSet(incomingData.subgraphNames, targetData.subgraphNames); + addIterableToSet({ + source: incomingData.subgraphNames, + target: targetData.subgraphNames, + }); for (const data of incomingData.enumValueDataByName.values()) { this.upsertEnumValueData(targetData.enumValueDataByName, data, isParentInaccessible); } @@ -1277,7 +1329,10 @@ export class FederationFactory { this.propagateInaccessibilityToExistingChildren(targetData); } targetData.isInaccessible ||= isParentInaccessible; - addIterableValuesToSet(incomingData.subgraphNames, targetData.subgraphNames); + addIterableToSet({ + source: incomingData.subgraphNames, + target: targetData.subgraphNames, + }); for (const inputValueData of incomingData.inputValueDataByName.values()) { this.upsertInputValueData( targetData.inputValueDataByName, @@ -1297,11 +1352,14 @@ export class FederationFactory { this.propagateInaccessibilityToExistingChildren(targetData); } targetData.isInaccessible ||= isParentInaccessible; - addIterableValuesToSet( - compositeOutputData.implementedInterfaceTypeNames, - targetData.implementedInterfaceTypeNames, - ); - addIterableValuesToSet(compositeOutputData.subgraphNames, targetData.subgraphNames); + addIterableToSet({ + source: compositeOutputData.implementedInterfaceTypeNames, + target: targetData.implementedInterfaceTypeNames, + }); + addIterableToSet({ + source: compositeOutputData.subgraphNames, + target: targetData.subgraphNames, + }); for (const fieldData of compositeOutputData.fieldDataByName.values()) { this.upsertFieldData(targetData.fieldDataByName, fieldData, targetData.isInaccessible); } @@ -1310,12 +1368,21 @@ export class FederationFactory { if (!areKindsEqual(targetData, incomingData)) { return; } - addMapEntries(incomingData.memberByMemberTypeName, targetData.memberByMemberTypeName); - addIterableValuesToSet(incomingData.subgraphNames, targetData.subgraphNames); + addMapEntries({ + source: incomingData.memberByMemberTypeName, + target: targetData.memberByMemberTypeName, + }); + addIterableToSet({ + source: incomingData.subgraphNames, + target: targetData.subgraphNames, + }); return; default: // Scalar - addIterableValuesToSet(incomingData.subgraphNames, targetData.subgraphNames); + addIterableToSet({ + source: incomingData.subgraphNames, + target: targetData.subgraphNames, + }); return; } } @@ -1379,7 +1446,10 @@ export class FederationFactory { } setLongestDescription(existingData, incomingData); existingData.repeatable &&= incomingData.repeatable; - addIterableValuesToSet(incomingData.subgraphNames, existingData.subgraphNames); + addIterableToSet({ + source: incomingData.subgraphNames, + target: existingData.subgraphNames, + }); } shouldUpdateFederatedFieldAbstractNamedType(abstractTypeName: string, objectTypeNames: Set): boolean { @@ -1649,7 +1719,10 @@ export class FederationFactory { entityData.subgraphNames.add(subgraphName); const configurationData = configurationDataByTypeName.get(concreteTypeName); if (configurationData) { - addIterableValuesToSet(interfaceObjectConfiguration.fieldNames, configurationData.fieldNames); + addIterableToSet({ + source: interfaceObjectConfiguration.fieldNames, + target: configurationData.fieldNames, + }); if (!configurationData.keys) { configurationData.keys = [...keys]; } else { @@ -1911,16 +1984,15 @@ export class FederationFactory { } switch (parentDefinitionData.kind) { case Kind.ENUM_TYPE_DEFINITION: { + if (IGNORED_FEDERATED_TYPE_NAMES.has(parentTypeName)) { + break; + } const enumValueNodes: Array = []; const clientEnumValueNodes: Array = []; const mergeMethod = this.getEnumValueMergeMethod(parentTypeName); propagateAuthDirectives(parentDefinitionData, this.authorizationDataByParentTypeName.get(parentTypeName)); for (const enumValueData of parentDefinitionData.enumValueDataByName.values()) { - const enumValueNode = getNodeForRouterSchemaByData( - enumValueData, - this.persistedDirectiveDefinitionByDirectiveName, - this.errors, - ); + const enumValueNode = this.getNodeForRouterSchemaByData(enumValueData); const isValueInaccessible = isNodeDataInaccessible(enumValueData); const clientEnumValueNode: MutableEnumValueNode = { ...enumValueData.node, @@ -1977,6 +2049,9 @@ export class FederationFactory { break; } case Kind.INPUT_OBJECT_TYPE_DEFINITION: { + if (IGNORED_FEDERATED_TYPE_NAMES.has(parentTypeName)) { + break; + } const invalidRequiredInputs = new Array(); const inputValueNodes = new Array(); const clientInputValueNodes = new Array(); @@ -2114,7 +2189,7 @@ export class FederationFactory { break; } case Kind.SCALAR_TYPE_DEFINITION: { - if (BASE_SCALARS.has(parentTypeName)) { + if (IGNORED_FEDERATED_TYPE_NAMES.has(parentTypeName)) { break; } propagateAuthDirectives(parentDefinitionData, this.authorizationDataByParentTypeName.get(parentTypeName)); @@ -2205,7 +2280,7 @@ export class FederationFactory { this.handleEntityInterfaces(); // generate the map of tag data that is used by contracts this.generateTagData(); - this.pushVersionTwoDirectiveDefinitionsToDocumentDefinitions(); + this.#addDirectiveDefinitionsAndDepsToRouterAndClientSchemas(); // The named type auth data can only be pushed to the field once it has all been consolidated this.pushNamedTypeAuthDataToFields(); } @@ -2215,9 +2290,7 @@ export class FederationFactory { ) { for (const { data, clientSchemaFieldNodes } of interfaceImplementations) { data.node.interfaces = this.getValidImplementedInterfaces(data); - this.routerDefinitions.push( - getNodeForRouterSchemaByData(data, this.persistedDirectiveDefinitionByDirectiveName, this.errors), - ); + this.routerDefinitions.push(this.getNodeForRouterSchemaByData(data)); if (isNodeDataInaccessible(data)) { this.validateReferencesOfInaccessibleType(data); this.internalGraph.setNodeInaccessible(data.name); @@ -2242,38 +2315,30 @@ export class FederationFactory { } } - pushVersionTwoDirectiveDefinitionsToDocumentDefinitions() { - if (!this.isVersionTwo) { - if (this.referencedPersistedDirectiveNames.has(SEMANTIC_NON_NULL)) { - this.clientDefinitions.push(SEMANTIC_NON_NULL_DEFINITION); - // Recreate the array until all directive imports are usage-based. - this.routerDefinitions = [DEPRECATED_DEFINITION, SEMANTIC_NON_NULL_DEFINITION, TAG_DEFINITION]; + #addDirectiveDefinitionsAndDepsToRouterAndClientSchemas() { + const clientDependencies = new Set(); + const routerDependencies = new Set(); + for (const directiveName of this.referencedPersistedDirectiveNames) { + const definition = DIRECTIVE_DEFINITION_BY_NAME.get(directiveName); + if (!definition) { + continue; } - return; - } - if (this.referencedPersistedDirectiveNames.has(SEMANTIC_NON_NULL)) { - this.clientDefinitions.push(SEMANTIC_NON_NULL_DEFINITION); - // Recreate the array until all directive imports are usage-based. - this.routerDefinitions = [ - AUTHENTICATED_DEFINITION, - DEPRECATED_DEFINITION, - INACCESSIBLE_DEFINITION, - REQUIRES_SCOPES_DEFINITION, - SEMANTIC_NON_NULL_DEFINITION, - TAG_DEFINITION, - SCOPE_SCALAR_DEFINITION, - ]; - return; + const dependencies = DEPENDENCIES_BY_DIRECTIVE_NAME.get(directiveName) ?? []; + if (CLIENT_PERSISTED_DIRECTIVE_NAMES.has(directiveName)) { + this.clientDefinitions.push(definition); + addIterableToSet({ + source: dependencies, + target: clientDependencies, + }); + } + this.routerDefinitions.push(definition); + addIterableToSet({ + source: dependencies, + target: routerDependencies, + }); } - // Recreate the array until all directive imports are usage-based. - this.routerDefinitions = [ - AUTHENTICATED_DEFINITION, - DEPRECATED_DEFINITION, - INACCESSIBLE_DEFINITION, - REQUIRES_SCOPES_DEFINITION, - TAG_DEFINITION, - SCOPE_SCALAR_DEFINITION, - ]; + this.clientDefinitions.push(...clientDependencies); + this.routerDefinitions.push(...routerDependencies); } validatePathSegmentInaccessibility(path: string): boolean { @@ -2821,7 +2886,7 @@ export class FederationFactory { for (const subgraph of this.internalSubgraphBySubgraphName.values()) { subgraphConfigBySubgraphName.set(subgraph.name, { configurationDataByTypeName: subgraph.configurationDataByTypeName, - directiveDefinitionByDirectiveName: subgraph.directiveDefinitionByDirectiveName, + directiveDefinitionByName: subgraph.directiveDefinitionByName, isVersionTwo: subgraph.isVersionTwo, parentDefinitionDataByTypeName: subgraph.parentDefinitionDataByTypeName, schema: subgraph.schema, @@ -3113,7 +3178,7 @@ export class FederationFactory { for (const subgraph of this.internalSubgraphBySubgraphName.values()) { subgraphConfigBySubgraphName.set(subgraph.name, { configurationDataByTypeName: subgraph.configurationDataByTypeName, - directiveDefinitionByDirectiveName: subgraph.directiveDefinitionByDirectiveName, + directiveDefinitionByName: subgraph.directiveDefinitionByName, isVersionTwo: subgraph.isVersionTwo, parentDefinitionDataByTypeName: subgraph.parentDefinitionDataByTypeName, schema: subgraph.schema, @@ -3191,7 +3256,10 @@ function initializeFederationFactory({ subgraphName, () => new Set(), ); - addIterableValuesToSet(subgraphData.concreteTypeNames, definedConcreteTypeNames); + addIterableToSet({ + source: subgraphData.concreteTypeNames, + target: definedConcreteTypeNames, + }); if (!subgraphData.isInterfaceObject) { if (subgraphData.resolvable && subgraphData.concreteTypeNames.size !== implementations) { getValueOrDefault( @@ -3206,7 +3274,10 @@ function initializeFederationFactory({ } continue; } - addIterableValuesToSet(entityInterfaceData.concreteTypeNames, definedConcreteTypeNames); + addIterableToSet({ + source: entityInterfaceData.concreteTypeNames, + target: definedConcreteTypeNames, + }); const { parentDefinitionDataByTypeName } = getOrThrowError( result.internalSubgraphBySubgraphName, subgraphName, diff --git a/composition/src/v1/federation/params.ts b/composition/src/v1/federation/params.ts index 186d70f9fb..0db38016cf 100644 --- a/composition/src/v1/federation/params.ts +++ b/composition/src/v1/federation/params.ts @@ -1,9 +1,15 @@ -import { FieldName } from '../../types/types'; -import { InputObjectDefinitionData } from '../../schema-building/types'; +import { DirectiveName, FieldName } from '../../types/types'; +import { InputObjectDefinitionData, PersistedDirectivesData } from '../../schema-building/types'; import { InputValueDefinitionNode } from 'graphql'; +import { ConstDirectiveNode } from 'graphql/index'; export type ValidateOneOfDirectiveParams = { data: InputObjectDefinitionData; inputValueNodes: Array; requiredFieldNames: Set; }; + +export type ExtractPersistedDirectivesParams = { + data: PersistedDirectivesData; + directivesByName: Map>; +}; diff --git a/composition/src/v1/federation/utils.ts b/composition/src/v1/federation/utils.ts index 664e2365f2..d4298f6d0a 100644 --- a/composition/src/v1/federation/utils.ts +++ b/composition/src/v1/federation/utils.ts @@ -13,7 +13,7 @@ import { } from '../../schema-building/types'; import { Graph } from '../../resolvability-graph/graph'; import { getTypeNodeNamedTypeName, MutableFieldNode } from '../../schema-building/ast'; -import { BASE_SCALARS } from '../utils/constants'; +import { BASE_SCALARS } from '../constants/constants'; import { isKindAbstract } from '../../ast/utils'; import { GraphNode } from '../../resolvability-graph/graph-nodes'; diff --git a/composition/src/v1/normalization/directive-definition-data.ts b/composition/src/v1/normalization/directive-definition-data.ts index 8c37453d2d..33d6fae4c6 100644 --- a/composition/src/v1/normalization/directive-definition-data.ts +++ b/composition/src/v1/normalization/directive-definition-data.ts @@ -1,37 +1,4 @@ import { ArgumentData, DirectiveDefinitionData } from '../../schema-building/types'; -import { - AUTHENTICATED_DEFINITION, - COMPOSE_DIRECTIVE_DEFINITION, - CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION, - CONFIGURE_DESCRIPTION_DEFINITION, - DEPRECATED_DEFINITION, - EDFS_KAFKA_PUBLISH_DEFINITION, - EDFS_KAFKA_SUBSCRIBE_DEFINITION, - EDFS_NATS_PUBLISH_DEFINITION, - EDFS_NATS_REQUEST_DEFINITION, - EDFS_NATS_SUBSCRIBE_DEFINITION, - EDFS_REDIS_PUBLISH_DEFINITION, - EDFS_REDIS_SUBSCRIBE_DEFINITION, - EXTENDS_DEFINITION, - EXTERNAL_DEFINITION, - INACCESSIBLE_DEFINITION, - INTERFACE_OBJECT_DEFINITION, - KEY_DEFINITION, - LINK_DEFINITION, - ONE_OF_DEFINITION, - OVERRIDE_DEFINITION, - PROVIDES_DEFINITION, - REQUIRE_FETCH_REASONS_DEFINITION, - REQUIRED_FIELDSET_TYPE_NODE, - REQUIRED_STRING_TYPE_NODE, - REQUIRES_DEFINITION, - REQUIRES_SCOPES_DEFINITION, - SEMANTIC_NON_NULL_DEFINITION, - SHAREABLE_DEFINITION, - SPECIFIED_BY_DEFINITION, - SUBSCRIPTION_FILTER_DEFINITION, - TAG_DEFINITION, -} from '../utils/constants'; import { stringToNamedTypeNode } from '../../ast/utils'; import { DEFAULT_DEPRECATION_REASON, Kind } from 'graphql'; import { @@ -107,6 +74,40 @@ import { UNION_UPPER, URL_LOWER, } from '../../utils/string-constants'; +import { + AUTHENTICATED_DEFINITION, + COMPOSE_DIRECTIVE_DEFINITION, + CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION, + CONFIGURE_DESCRIPTION_DEFINITION, + DEPRECATED_DEFINITION, + EDFS_KAFKA_PUBLISH_DEFINITION, + EDFS_KAFKA_SUBSCRIBE_DEFINITION, + EDFS_NATS_PUBLISH_DEFINITION, + EDFS_NATS_REQUEST_DEFINITION, + EDFS_NATS_SUBSCRIBE_DEFINITION, + EDFS_REDIS_PUBLISH_DEFINITION, + EDFS_REDIS_SUBSCRIBE_DEFINITION, + EXTENDS_DEFINITION, + EXTERNAL_DEFINITION, + INACCESSIBLE_DEFINITION, + INTERFACE_OBJECT_DEFINITION, + KEY_DEFINITION, + LINK_DEFINITION, + ONE_OF_DEFINITION, + OVERRIDE_DEFINITION, + PROVIDES_DEFINITION, + REQUIRE_FETCH_REASONS_DEFINITION, + REQUIRES_DEFINITION, + REQUIRES_SCOPES_DEFINITION, + SEMANTIC_NON_NULL_DEFINITION, + SHAREABLE_DEFINITION, + SPECIFIED_BY_DEFINITION, + SUBSCRIPTION_FILTER_DEFINITION, + TAG_DEFINITION, +} from '../constants/directive-definitions'; +import { REQUIRED_FIELDSET_TYPE_NODE, REQUIRED_STRING_TYPE_NODE } from '../constants/type-nodes'; + +// Note that arguments with default values are classed as optional and should be placed into `optionalArgumentNames`. export const AUTHENTICATED_DEFINITION_DATA: DirectiveDefinitionData = { argumentTypeNodeByName: new Map([]), @@ -443,7 +444,7 @@ export const NATS_SUBSCRIBE_DEFINITION_DATA: DirectiveDefinitionData = { locations: new Set([FIELD_DEFINITION_UPPER]), name: EDFS_NATS_SUBSCRIBE, node: EDFS_NATS_SUBSCRIBE_DEFINITION, - optionalArgumentNames: new Set([PROVIDER_ID]), + optionalArgumentNames: new Set([PROVIDER_ID, STREAM_CONFIGURATION]), requiredArgumentNames: new Set([SUBJECTS]), }; diff --git a/composition/src/v1/normalization/normalization-factory.ts b/composition/src/v1/normalization/normalization-factory.ts index 7fc8b4f2d6..12b846d9ca 100644 --- a/composition/src/v1/normalization/normalization-factory.ts +++ b/composition/src/v1/normalization/normalization-factory.ts @@ -52,30 +52,11 @@ import { validateKeyFieldSets, } from './utils'; import { - ALL_IN_BUILT_DIRECTIVE_NAMES, - BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME, - BASE_DIRECTIVE_DEFINITIONS, BASE_SCALARS, - CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION, - CONFIGURE_DESCRIPTION_DEFINITION, - EDFS_NATS_STREAM_CONFIGURATION_DEFINITION, - EVENT_DRIVEN_DIRECTIVE_DEFINITIONS_BY_DIRECTIVE_NAME, - FIELD_SET_SCALAR_DEFINITION, - LINK_DEFINITION, - LINK_IMPORT_DEFINITION, - LINK_PURPOSE_DEFINITION, + DIRECTIVE_DEFINITION_BY_NAME, MAX_OR_SCOPES, - ONE_OF_DEFINITION, - REQUIRE_FETCH_REASONS_DEFINITION, - SCOPE_SCALAR_DEFINITION, - SEMANTIC_NON_NULL_DEFINITION, - SUBSCRIPTION_FIELD_CONDITION_DEFINITION, - SUBSCRIPTION_FILTER_CONDITION_DEFINITION, - SUBSCRIPTION_FILTER_DEFINITION, - SUBSCRIPTION_FILTER_VALUE_DEFINITION, V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME, - VERSION_TWO_DIRECTIVE_DEFINITIONS, -} from '../utils/constants'; +} from '../constants/constants'; import { addScopes, fieldDatasToSimpleFieldDatas, @@ -115,7 +96,6 @@ import { invalidDirectiveDefinitionLocationErrorMessage, invalidDirectiveError, invalidDirectiveLocationErrorMessage, - invalidEdfsDirectiveName, invalidEdfsPublishResultObjectErrorMessage, invalidEventDirectiveError, invalidEventDrivenGraphError, @@ -184,10 +164,11 @@ import { unparsableFieldSetSelectionErrorMessage, } from '../../errors/errors'; import { + DEPENDENCIES_BY_DIRECTIVE_NAME, EVENT_DIRECTIVE_NAMES, STREAM_CONFIGURATION_FIELD_NAMES, TYPE_SYSTEM_DIRECTIVE_LOCATIONS, -} from '../utils/string-constants'; +} from '../constants/strings'; import { buildASTSchema } from '../../buildASTSchema/buildASTSchema'; import { ConfigurationData, @@ -239,6 +220,7 @@ import { getParentTypeName, isFieldData, isInputNodeKind, + isInputObjectDefinitionData, isNodeExternalOrShareable, isOutputNodeKind, isTypeRequired, @@ -264,7 +246,7 @@ import { } from '../../schema-building/ast'; import { InvalidRootTypeFieldEventsDirectiveData } from '../../errors/types'; import { Graph } from '../../resolvability-graph/graph'; -import { DEFAULT_CONSUMER_INACTIVE_THRESHOLD } from '../utils/integer-constants'; +import { DEFAULT_CONSUMER_INACTIVE_THRESHOLD } from '../constants/integers'; import { InternalSubgraph, Subgraph } from '../../subgraph/types'; import { Warning } from '../../warnings/types'; import { BatchNormalizationResult, NormalizationResult } from '../../normalization/types'; @@ -274,7 +256,6 @@ import { BOOLEAN_SCALAR, CHANNEL, CHANNELS, - CONFIGURE_CHILD_DESCRIPTIONS, CONFIGURE_DESCRIPTION, CONSUMER_INACTIVE_THRESHOLD, CONSUMER_NAME, @@ -306,7 +287,6 @@ import { INTERFACE_OBJECT, KEY, LEVELS, - LINK, LINK_IMPORT, LINK_PURPOSE, MUTATION, @@ -353,7 +333,8 @@ import { } from '../../utils/string-constants'; import { MAX_INT32 } from '../../utils/integer-constants'; import { - addIterableValuesToSet, + addIterableToSet, + addOptionalIterableToSet, generateSimpleDirective, getEntriesNotInHashSet, getFirstEntry, @@ -372,12 +353,14 @@ import { HandleRequiresScopesDirectiveParams, HandleSemanticNonNullDirectiveParams, KeyFieldSetData, + UpsertInputObjectResult, ValidateDirectiveParams, } from './types'; import { newConfigurationData, newFieldSetConditionData } from '../../router-configuration/utils'; import { ImplementationErrors, InvalidFieldImplementation } from '../../utils/types'; -import { DirectiveName, FieldName, SubgraphName } from '../../types/types'; +import { DirectiveName, FieldName, SubgraphName, TypeName } from '../../types/types'; import { HandleFieldInheritableDirectivesParams, ValidateOneOfDirectiveParams } from './params'; +import { EDFS_NATS_STREAM_CONFIGURATION_DEFINITION } from '../constants/non-directive-definitions'; export function normalizeSubgraphFromString(subgraphSDL: string, noLocation = true): NormalizationResult { const { error, documentNode } = safeParse(subgraphSDL, noLocation); @@ -402,11 +385,11 @@ export class NormalizationFactory { authorizationDataByParentTypeName = new Map(); concreteTypeNamesByAbstractTypeName = new Map>(); conditionalFieldDataByCoords = new Map(); - configurationDataByTypeName = new Map(); - customDirectiveDefinitions = new Map(); + configurationDataByTypeName = new Map(); + customDirectiveDefinitionByName = new Map(); definedDirectiveNames = new Set(); - directiveDefinitionByDirectiveName = new Map(); - directiveDefinitionDataByDirectiveName = initializeDirectiveDefinitionDatas(); + directiveDefinitionByName = new Map(); + directiveDefinitionDataByName = initializeDirectiveDefinitionDatas(); doesParentRequireFetchReasons = false; edfsDirectiveReferences = new Set(); errors = new Array(); @@ -443,10 +426,7 @@ export class NormalizationFactory { usesEdfsNatsStreamConfiguration: boolean = false; warnings: Array = []; - constructor(internalGraph: Graph, subgraphName?: string) { - for (const [baseDirectiveName, baseDirectiveDefinition] of BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME) { - this.directiveDefinitionByDirectiveName.set(baseDirectiveName, baseDirectiveDefinition); - } + constructor(internalGraph: Graph, subgraphName?: SubgraphName) { this.subgraphName = subgraphName || NOT_APPLICABLE; this.internalGraph = internalGraph; this.internalGraph.setSubgraphName(this.subgraphName); @@ -767,7 +747,7 @@ export class NormalizationFactory { validateDirectives(data: NodeData | SchemaData, directiveCoords: string) { const undefinedDirectiveNames = new Set(); for (const [directiveName, directiveNodes] of data.directivesByDirectiveName) { - const definitionData = this.directiveDefinitionDataByDirectiveName.get(directiveName); + const definitionData = this.directiveDefinitionDataByName.get(directiveName); if (!definitionData) { if (!undefinedDirectiveNames.has(directiveName)) { this.errors.push(undefinedDirectiveError(directiveName, directiveCoords)); @@ -1110,21 +1090,26 @@ export class NormalizationFactory { return false; } this.definedDirectiveNames.add(name); - this.directiveDefinitionByDirectiveName.set(name, node); // Normalize federation directives by replacing them with predefined definitions - if (V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.has(name)) { + const definition = V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.get(name); + // Add the V2 directive definitions regardless of use so the subgraph can be recognised as a V2 subgraph. + if (definition) { + this.directiveDefinitionByName.set(name, definition); + // Uses of the directive also set this boolean in the walker. this.isSubgraphVersionTwo = true; return false; } - if (ALL_IN_BUILT_DIRECTIVE_NAMES.has(name)) { + // Other known directives will only be added if they are used. + if (DIRECTIVE_DEFINITION_BY_NAME.has(name)) { return false; } + this.directiveDefinitionByName.set(name, node); const errorMessages: Array = []; const { argumentTypeNodeByName, optionalArgumentNames, requiredArgumentNames } = this.extractArgumentData( node.arguments, errorMessages, ); - this.directiveDefinitionDataByDirectiveName.set(name, { + this.directiveDefinitionDataByName.set(name, { argumentTypeNodeByName: argumentTypeNodeByName, isRepeatable: node.repeatable, locations: this.extractDirectiveLocations(node, errorMessages), @@ -1413,7 +1398,7 @@ export class NormalizationFactory { this.parentDefinitionDataByTypeName.set(typeName, newParentData); } - upsertInputObjectByNode(node: InputObjectTypeNode, isRealExtension: boolean = false) { + upsertInputObjectByNode(node: InputObjectTypeNode, isRealExtension: boolean = false): UpsertInputObjectResult { const typeName = node.name.value; const parentData = this.parentDefinitionDataByTypeName.get(typeName); const directivesByDirectiveName = this.extractDirectives( @@ -1430,14 +1415,19 @@ export class NormalizationFactory { kindToConvertedTypeString(node.kind), ), ); - return; + return { + success: false, + }; } this.setParentDataExtensionType(parentData, extensionType); parentData.isInaccessible ||= directivesByDirectiveName.has(INACCESSIBLE); parentData.subgraphNames.add(this.subgraphName); parentData.description ||= formatDescription('description' in node ? node.description : undefined); this.extractConfigureDescriptionsData(parentData); - return; + return { + success: true, + data: parentData, + }; } const newParentData: InputObjectDefinitionData = { configureDescriptionDataBySubgraphName: new Map(), @@ -1454,6 +1444,10 @@ export class NormalizationFactory { }; this.extractConfigureDescriptionsData(newParentData); this.parentDefinitionDataByTypeName.set(typeName, newParentData); + return { + success: true, + data: newParentData, + }; } upsertScalarByNode(node: ScalarTypeNode, isRealExtension: boolean = false) { @@ -2904,7 +2898,7 @@ export class NormalizationFactory { } isNatsStreamConfigurationInputObjectValid(streamConfigurationInputData: ParentDefinitionData): boolean { - if (streamConfigurationInputData.kind !== Kind.INPUT_OBJECT_TYPE_DEFINITION) { + if (!isInputObjectDefinitionData(streamConfigurationInputData)) { return false; } if (streamConfigurationInputData.inputValueDataByName.size != 3) { @@ -2941,8 +2935,8 @@ export class NormalizationFactory { return true; } - validateEventDrivenSubgraph(definitions: Array) { - const errorMessages: string[] = []; + validateEventDrivenSubgraph() { + const errorMessages: Array = []; const invalidEventsDirectiveDataByRootFieldPath = new Map(); const invalidResponseTypeStringByRootFieldPath = new Map(); const invalidResponseTypeNameByMutationPath = new Map(); @@ -2993,10 +2987,26 @@ export class NormalizationFactory { ) { errorMessages.push(invalidNatsStreamConfigurationDefinitionErrorMessage); } - - // always add the correct definition to the schema regardless + // Inject the correct dependency this.parentDefinitionDataByTypeName.delete(EDFS_NATS_STREAM_CONFIGURATION); - definitions.push(EDFS_NATS_STREAM_CONFIGURATION_DEFINITION); + const result = this.upsertInputObjectByNode(EDFS_NATS_STREAM_CONFIGURATION_DEFINITION); + // The result cannot actually be unsuccessful + if (result.success) { + for (const fieldNode of EDFS_NATS_STREAM_CONFIGURATION_DEFINITION.fields!) { + this.addInputValueDataByNode({ + fieldName: fieldNode.name.value, + isArgument: false, + inputValueDataByName: result.data.inputValueDataByName, + node: fieldNode, + originalParentTypeName: EDFS_NATS_STREAM_CONFIGURATION, + }); + } + } else { + /* Should never happen, but if somehow it did, an error has already been appended from the + * `upsertInputObjectByNode` method. + */ + return; + } } if (invalidEventsDirectiveDataByRootFieldPath.size > 0) { @@ -3101,7 +3111,7 @@ export class NormalizationFactory { if (removeInheritedDirectives && INHERITABLE_DIRECTIVE_NAMES.has(directiveName)) { continue; } - const directiveDefinition = this.directiveDefinitionDataByDirectiveName.get(directiveName); + const directiveDefinition = this.directiveDefinitionDataByName.get(directiveName); if (!directiveDefinition) { continue; } @@ -3428,14 +3438,33 @@ export class NormalizationFactory { return true; } - normalize(document: DocumentNode): NormalizationResult { - /* factory.allDirectiveDefinitions is initialized with v1 directive definitions, and v2 definitions are only added - after the visitor has visited the entire schema and the subgraph is known to be a V2 graph. Consequently, - allDirectiveDefinitions cannot be used to check for duplicate definitions, and another set (below) is required */ + #addDirectiveDefinitionsToDocument(definitions: Array): void { + const dependencies = new Set(); + for (const directiveName of this.referencedDirectiveNames) { + const definition = DIRECTIVE_DEFINITION_BY_NAME.get(directiveName); + if (!definition) { + continue; + } + this.directiveDefinitionByName.set(directiveName, definition); + addOptionalIterableToSet({ + source: DEPENDENCIES_BY_DIRECTIVE_NAME.get(directiveName), + target: dependencies, + }); + definitions.push(definition); + } + // Always include custom directive definitions regardless of use. + for (const definition of this.customDirectiveDefinitionByName.values()) { + definitions.push(definition); + } + definitions.push(...dependencies); + } + normalize(document: DocumentNode): NormalizationResult { // Collect any renamed root types upsertDirectiveSchemaAndEntityDefinitions(this, document); upsertParentsAndChildren(this, document); + const definitions: DefinitionNode[] = []; + this.#addDirectiveDefinitionsToDocument(definitions); this.validateDirectives(this.schemaData, SCHEMA); for (const [parentTypeName, parentData] of this.parentDefinitionDataByTypeName) { this.validateDirectives(parentData, parentTypeName); @@ -3443,58 +3472,6 @@ export class NormalizationFactory { if (this.invalidORScopesCoords.size > 0) { this.errors.push(orScopesLimitError(MAX_OR_SCOPES, [...this.invalidORScopesCoords])); } - const definitions: DefinitionNode[] = []; - for (const directiveDefinition of BASE_DIRECTIVE_DEFINITIONS) { - definitions.push(directiveDefinition); - } - definitions.push(FIELD_SET_SCALAR_DEFINITION); - if (this.isSubgraphVersionTwo) { - for (const directiveDefinition of VERSION_TWO_DIRECTIVE_DEFINITIONS) { - definitions.push(directiveDefinition); - this.directiveDefinitionByDirectiveName.set(directiveDefinition.name.value, directiveDefinition); - } - definitions.push(SCOPE_SCALAR_DEFINITION); - } - for (const directiveName of this.edfsDirectiveReferences) { - const directiveDefinition = EVENT_DRIVEN_DIRECTIVE_DEFINITIONS_BY_DIRECTIVE_NAME.get(directiveName); - if (!directiveDefinition) { - // should never happen - this.errors.push(invalidEdfsDirectiveName(directiveName)); - continue; - } - definitions.push(directiveDefinition); - } - // subscriptionFilter is temporarily valid only in an EDG - if (this.edfsDirectiveReferences.size > 0 && this.referencedDirectiveNames.has(SUBSCRIPTION_FILTER)) { - definitions.push(SUBSCRIPTION_FILTER_DEFINITION); - definitions.push(SUBSCRIPTION_FILTER_CONDITION_DEFINITION); - definitions.push(SUBSCRIPTION_FIELD_CONDITION_DEFINITION); - definitions.push(SUBSCRIPTION_FILTER_VALUE_DEFINITION); - } - if (this.referencedDirectiveNames.has(CONFIGURE_DESCRIPTION)) { - definitions.push(CONFIGURE_DESCRIPTION_DEFINITION); - } - if (this.referencedDirectiveNames.has(CONFIGURE_CHILD_DESCRIPTIONS)) { - definitions.push(CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION); - } - if (this.referencedDirectiveNames.has(LINK)) { - definitions.push(LINK_DEFINITION); - definitions.push(LINK_IMPORT_DEFINITION); - definitions.push(LINK_PURPOSE_DEFINITION); - } - // @oneOf is part of the new base schema, so this definition is/will be unnecessary, but add it as a precaution. - if (this.referencedDirectiveNames.has(ONE_OF)) { - definitions.push(ONE_OF_DEFINITION); - } - if (this.referencedDirectiveNames.has(REQUIRE_FETCH_REASONS)) { - definitions.push(REQUIRE_FETCH_REASONS_DEFINITION); - } - if (this.referencedDirectiveNames.has(SEMANTIC_NON_NULL)) { - definitions.push(SEMANTIC_NON_NULL_DEFINITION); - } - for (const directiveDefinition of this.customDirectiveDefinitions.values()) { - definitions.push(directiveDefinition); - } if (this.schemaData.operationTypes.size > 0) { definitions.push(this.getSchemaNodeByData(this.schemaData)); } @@ -3553,7 +3530,10 @@ export class NormalizationFactory { if (!this.validateOneOfDirective({ data: parentData, requiredFieldNames })) { break; } - definitions.push(this.getInputObjectNodeByData(parentData)); + // The definition is conditionally pushed elsewhere. + if (parentTypeName !== EDFS_NATS_STREAM_CONFIGURATION) { + definitions.push(this.getInputObjectNodeByData(parentData)); + } break; } case Kind.INTERFACE_TYPE_DEFINITION: @@ -3617,7 +3597,10 @@ export class NormalizationFactory { entityInterfaceData.fieldDatas = fieldDatasToSimpleFieldDatas(parentData.fieldDataByName.values()); const concreteTypeNames = this.concreteTypeNamesByAbstractTypeName.get(parentTypeName); if (concreteTypeNames) { - addIterableValuesToSet(concreteTypeNames, entityInterfaceData.concreteTypeNames); + addIterableToSet({ + source: concreteTypeNames, + target: entityInterfaceData.concreteTypeNames, + }); } configurationData.isInterfaceObject = entityInterfaceData.isInterfaceObject; configurationData.entityInterfaceConcreteTypeNames = entityInterfaceData.concreteTypeNames; @@ -3714,7 +3697,7 @@ export class NormalizationFactory { } } const persistedDirectiveDefinitionDataByDirectiveName = new Map(); - for (const directiveDefinitionNode of this.directiveDefinitionByDirectiveName.values()) { + for (const directiveDefinitionNode of this.directiveDefinitionByName.values()) { // TODO @composeDirective directives would also be handled here const executableLocations = extractExecutableDirectiveLocations( directiveDefinitionNode.locations, @@ -3731,7 +3714,7 @@ export class NormalizationFactory { } this.isSubgraphEventDrivenGraph = this.edfsDirectiveReferences.size > 0; if (this.isSubgraphEventDrivenGraph) { - this.validateEventDrivenSubgraph(definitions); + this.validateEventDrivenSubgraph(); } for (const fieldCoords of this.unvalidatedExternalFieldCoords) { if (this.isSubgraphVersionTwo) { @@ -3754,7 +3737,7 @@ export class NormalizationFactory { concreteTypeNamesByAbstractTypeName: this.concreteTypeNamesByAbstractTypeName, conditionalFieldDataByCoordinates: this.conditionalFieldDataByCoords, configurationDataByTypeName: this.configurationDataByTypeName, - directiveDefinitionByDirectiveName: this.directiveDefinitionByDirectiveName, + directiveDefinitionByName: this.directiveDefinitionByName, entityDataByTypeName: this.entityDataByTypeName, entityInterfaces: this.entityInterfaceDataByTypeName, fieldCoordsByNamedTypeName: this.fieldCoordsByNamedTypeName, @@ -3824,10 +3807,10 @@ export function batchNormalize(subgraphs: Subgraph[]): BatchNormalizationResult upsertAuthorizationData(authorizationDataByParentTypeName, authorizationData, invalidORScopesCoords); } for (const [namedTypeName, fieldCoords] of normalizationResult.fieldCoordsByNamedTypeName) { - addIterableValuesToSet( - fieldCoords, - getValueOrDefault(fieldCoordsByNamedTypeName, namedTypeName, () => new Set()), - ); + addIterableToSet({ + source: fieldCoords, + target: getValueOrDefault(fieldCoordsByNamedTypeName, namedTypeName, () => new Set()), + }); } for (const [ abstractTypeName, @@ -3838,7 +3821,10 @@ export function batchNormalize(subgraphs: Subgraph[]): BatchNormalizationResult concreteTypeNamesByAbstractTypeName.set(abstractTypeName, new Set(incomingConcreteTypeNames)); continue; } - addIterableValuesToSet(incomingConcreteTypeNames, existingConcreteTypeNames); + addIterableToSet({ + source: incomingConcreteTypeNames, + target: existingConcreteTypeNames, + }); } for (const [typeName, entityData] of normalizationResult.entityDataByTypeName) { const keyFieldSetDataByFieldSet = entityData.keyFieldSetDatasBySubgraphName.get(subgraphName); @@ -3857,7 +3843,7 @@ export function batchNormalize(subgraphs: Subgraph[]): BatchNormalizationResult conditionalFieldDataByCoordinates: normalizationResult.conditionalFieldDataByCoordinates, configurationDataByTypeName: normalizationResult.configurationDataByTypeName, definitions: normalizationResult.subgraphAST, - directiveDefinitionByDirectiveName: normalizationResult.directiveDefinitionByDirectiveName, + directiveDefinitionByName: normalizationResult.directiveDefinitionByName, entityInterfaces: normalizationResult.entityInterfaces, isVersionTwo: normalizationResult.isVersionTwo, keyFieldNamesByParentTypeName: normalizationResult.keyFieldNamesByParentTypeName, @@ -3901,7 +3887,10 @@ export function batchNormalize(subgraphs: Subgraph[]): BatchNormalizationResult parentTypeName, () => new Set(fieldNames), ); - addIterableValuesToSet(fieldNames, existingFieldNames); + addIterableToSet({ + source: fieldNames, + target: existingFieldNames, + }); } for (const fieldName of fieldNames) { const fieldCoords = `${originalParentTypeName}.${fieldName}`; diff --git a/composition/src/v1/normalization/types.ts b/composition/src/v1/normalization/types.ts index d723c13e37..68d4e16671 100644 --- a/composition/src/v1/normalization/types.ts +++ b/composition/src/v1/normalization/types.ts @@ -3,6 +3,7 @@ import { CompositeOutputData, DirectiveDefinitionData, FieldData, + InputObjectDefinitionData, InputValueData, NodeData, SchemaData, @@ -75,3 +76,14 @@ export type AddInputValueDataByNodeParams = { fieldName?: string; renamedParentTypeName?: string; }; + +export type ExecutionFailure = { + success: false; +}; + +export type UpsertInputObjectSuccess = { + data: InputObjectDefinitionData; + success: true; +}; + +export type UpsertInputObjectResult = ExecutionFailure | UpsertInputObjectSuccess; diff --git a/composition/src/v1/normalization/utils.ts b/composition/src/v1/normalization/utils.ts index fbb76b3df1..e02d42c129 100644 --- a/composition/src/v1/normalization/utils.ts +++ b/composition/src/v1/normalization/utils.ts @@ -16,7 +16,7 @@ import { unknownTypeInFieldSetErrorMessage, unparsableFieldSetSelectionErrorMessage, } from '../../errors/errors'; -import { BASE_SCALARS, EDFS_ARGS_REGEXP } from '../utils/constants'; +import { BASE_SCALARS, EDFS_ARGS_REGEXP } from '../constants/constants'; import { RequiredFieldConfiguration } from '../../router-configuration/types'; import { CompositeOutputData, DirectiveDefinitionData, InputValueData } from '../../schema-building/types'; import { getTypeNodeNamedTypeName } from '../../schema-building/ast'; diff --git a/composition/src/v1/normalization/walkers.ts b/composition/src/v1/normalization/walkers.ts index ec0f535e15..37c23c8163 100644 --- a/composition/src/v1/normalization/walkers.ts +++ b/composition/src/v1/normalization/walkers.ts @@ -8,18 +8,11 @@ import { unexpectedParentKindForChildError, } from '../../errors/errors'; import { NormalizationFactory } from './normalization-factory'; -import { - BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME, - BASE_SCALARS, - CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION, - CONFIGURE_DESCRIPTION_DEFINITION, - SUBSCRIPTION_FILTER_DEFINITION, - V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME, -} from '../utils/constants'; +import { BASE_SCALARS, V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME } from '../constants/constants'; import { upsertEntityData } from '../utils/utils'; import { formatDescription, isNodeInterfaceObject, isObjectLikeNodeEntity } from '../../ast/utils'; import { extractFieldSetValue, newFieldSetData } from './utils'; -import { EVENT_DIRECTIVE_NAMES } from '../utils/string-constants'; +import { EVENT_DIRECTIVE_NAMES } from '../constants/strings'; import { getRenamedRootTypeName, isParentDataCompositeOutputType, @@ -32,19 +25,17 @@ import { GraphNode, RootNode } from '../../resolvability-graph/graph-nodes'; import { requiresDefinedOnNonEntityFieldWarning } from '../warnings/warnings'; import { ANY_SCALAR, - CONFIGURE_CHILD_DESCRIPTIONS, - CONFIGURE_DESCRIPTION, ENTITY_UNION, IGNORED_FIELDS, PARENT_DEFINITION_DATA, PROVIDES, REQUIRES, SERVICE_OBJECT, - SUBSCRIPTION_FILTER, } from '../../utils/string-constants'; import { RootTypeName } from '../../utils/types'; import { getOrThrowError, getValueOrDefault, kindToNodeType } from '../../utils/utils'; import { KeyFieldSetData } from './types'; +import { FieldName, TypeName } from '../../types/types'; /* Walker to collect schema definition, directive definitions, and entities. * Directives are not validated upon immediate extract because all types must be recorded first. @@ -54,40 +45,20 @@ export function upsertDirectiveSchemaAndEntityDefinitions(nf: NormalizationFacto Directive: { enter(node) { const name = node.name.value; + nf.referencedDirectiveNames.add(name); if (EVENT_DIRECTIVE_NAMES.has(name)) { nf.edfsDirectiveReferences.add(name); } if (V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.has(name)) { nf.isSubgraphVersionTwo = true; - return false; - } - if (BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.has(name)) { - return false; - } - switch (name) { - case SUBSCRIPTION_FILTER: { - nf.directiveDefinitionByDirectiveName.set(SUBSCRIPTION_FILTER, SUBSCRIPTION_FILTER_DEFINITION); - break; - } - case CONFIGURE_DESCRIPTION: { - nf.directiveDefinitionByDirectiveName.set(CONFIGURE_DESCRIPTION, CONFIGURE_DESCRIPTION_DEFINITION); - break; - } - case CONFIGURE_CHILD_DESCRIPTIONS: { - nf.directiveDefinitionByDirectiveName.set( - CONFIGURE_CHILD_DESCRIPTIONS, - CONFIGURE_CHILD_DESCRIPTIONS_DEFINITION, - ); - break; - } } - nf.referencedDirectiveNames.add(name); + return false; }, }, DirectiveDefinition: { enter(node) { if (nf.addDirectiveDefinitionDataByNode(node)) { - nf.customDirectiveDefinitions.set(node.name.value, node); + nf.customDirectiveDefinitionByName.set(node.name.value, node); } return false; }, @@ -112,10 +83,10 @@ export function upsertDirectiveSchemaAndEntityDefinitions(nf: NormalizationFacto typeName, }); getValueOrDefault(nf.entityInterfaceDataByTypeName, typeName, () => ({ - concreteTypeNames: new Set(), + concreteTypeNames: new Set(), fieldDatas: [], - interfaceFieldNames: new Set(), - interfaceObjectFieldNames: new Set(), + interfaceFieldNames: new Set(), + interfaceObjectFieldNames: new Set(), isInterfaceObject: false, resolvable: false, typeName, @@ -142,10 +113,10 @@ export function upsertDirectiveSchemaAndEntityDefinitions(nf: NormalizationFacto typeName, }); getValueOrDefault(nf.entityInterfaceDataByTypeName, typeName, () => ({ - concreteTypeNames: new Set(), + concreteTypeNames: new Set(), fieldDatas: [], - interfaceFieldNames: new Set(), - interfaceObjectFieldNames: new Set(), + interfaceFieldNames: new Set(), + interfaceObjectFieldNames: new Set(), isInterfaceObject: false, resolvable: false, typeName, @@ -160,10 +131,10 @@ export function upsertDirectiveSchemaAndEntityDefinitions(nf: NormalizationFacto const typeName = node.name.value; if (isNodeInterfaceObject(node)) { nf.entityInterfaceDataByTypeName.set(typeName, { - concreteTypeNames: new Set(), + concreteTypeNames: new Set(), fieldDatas: [], - interfaceObjectFieldNames: new Set(), - interfaceFieldNames: new Set(), + interfaceObjectFieldNames: new Set(), + interfaceFieldNames: new Set(), isInterfaceObject: true, resolvable: false, typeName, @@ -210,10 +181,12 @@ export function upsertDirectiveSchemaAndEntityDefinitions(nf: NormalizationFacto const definitionNode = nf.schemaData.operationTypes.get(operationType); const namedTypeName = getTypeNodeNamedTypeName(node.type); if (definitionNode) { - duplicateOperationTypeDefinitionError( - operationType, - namedTypeName, - getTypeNodeNamedTypeName(definitionNode.type), + nf.errors.push( + duplicateOperationTypeDefinitionError( + operationType, + namedTypeName, + getTypeNodeNamedTypeName(definitionNode.type), + ), ); return false; } @@ -582,7 +555,7 @@ export function upsertParentsAndChildren(nf: NormalizationFactory, document: Doc UnionTypeDefinition: { enter(node) { if (node.name.value === ENTITY_UNION) { - return; + return false; } nf.upsertUnionByNode(node); }, diff --git a/composition/src/v1/utils/string-constants.ts b/composition/src/v1/utils/string-constants.ts deleted file mode 100644 index 34b2dd0995..0000000000 --- a/composition/src/v1/utils/string-constants.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { - AND_UPPER, - ARGUMENT_DEFINITION_UPPER, - CONSUMER_INACTIVE_THRESHOLD, - CONSUMER_NAME, - EDFS_KAFKA_PUBLISH, - EDFS_KAFKA_SUBSCRIBE, - EDFS_NATS_PUBLISH, - EDFS_NATS_REQUEST, - EDFS_NATS_SUBSCRIBE, - EDFS_REDIS_PUBLISH, - EDFS_REDIS_SUBSCRIBE, - ENUM_UPPER, - ENUM_VALUE_UPPER, - FIELD_DEFINITION_UPPER, - IN_UPPER, - INPUT_FIELD_DEFINITION_UPPER, - INPUT_OBJECT_UPPER, - INTERFACE_UPPER, - NOT_UPPER, - OBJECT_UPPER, - OR_UPPER, - SCALAR_UPPER, - SCHEMA_UPPER, - STREAM_NAME, - UNION_UPPER, -} from '../../utils/string-constants'; -import { Kind } from 'graphql'; - -export const TYPE_SYSTEM_DIRECTIVE_LOCATIONS = new Set([ - ARGUMENT_DEFINITION_UPPER, - ENUM_UPPER, - ENUM_VALUE_UPPER, - FIELD_DEFINITION_UPPER, - INPUT_FIELD_DEFINITION_UPPER, - INPUT_OBJECT_UPPER, - INTERFACE_UPPER, - OBJECT_UPPER, - SCALAR_UPPER, - SCHEMA_UPPER, - UNION_UPPER, -]); - -export const EVENT_DIRECTIVE_NAMES = new Set([ - EDFS_KAFKA_PUBLISH, - EDFS_KAFKA_SUBSCRIBE, - EDFS_NATS_PUBLISH, - EDFS_NATS_REQUEST, - EDFS_NATS_SUBSCRIBE, - EDFS_REDIS_PUBLISH, - EDFS_REDIS_SUBSCRIBE, -]); - -export const STREAM_CONFIGURATION_FIELD_NAMES = new Set([ - CONSUMER_INACTIVE_THRESHOLD, - CONSUMER_NAME, - STREAM_NAME, -]); - -export const SUBSCRIPTION_FILTER_INPUT_NAMES = new Set([AND_UPPER, IN_UPPER, NOT_UPPER, OR_UPPER]); -export const SUBSCRIPTION_FILTER_LIST_INPUT_NAMES = new Set([AND_UPPER, OR_UPPER]); - -export const COMPOSITE_OUTPUT_NODE_KINDS: ReadonlySet = new Set([ - Kind.INTERFACE_TYPE_DEFINITION, - Kind.INTERFACE_TYPE_EXTENSION, - Kind.OBJECT_TYPE_DEFINITION, - Kind.OBJECT_TYPE_EXTENSION, -]); diff --git a/composition/src/v1/utils/utils.ts b/composition/src/v1/utils/utils.ts index 58fe312528..a69a213f00 100644 --- a/composition/src/v1/utils/utils.ts +++ b/composition/src/v1/utils/utils.ts @@ -28,13 +28,13 @@ import { STRING_SCALAR, UNION, } from '../../utils/string-constants'; -import { addIterableValuesToSet, addSets } from '../../utils/utils'; +import { addIterableToSet, addSets } from '../../utils/utils'; import type { KeyFieldSetData } from '../normalization/types'; -import { MAX_OR_SCOPES } from './constants'; +import { MAX_OR_SCOPES } from '../constants/constants'; import 'core-js/modules/esnext.set.is-subset-of.v2'; import 'core-js/modules/esnext.set.is-superset-of.v2'; import type { CompositeOutputNodeKind } from '../../ast/utils'; -import { COMPOSITE_OUTPUT_NODE_KINDS } from './string-constants'; +import { COMPOSITE_OUTPUT_NODE_KINDS } from '../constants/strings'; import { SubgraphName, TypeName } from '../../types/types'; export function subtractSet(source: Set, target: Set) { @@ -160,11 +160,20 @@ export function upsertEntityInterfaceFederationData( subgraphData: EntityInterfaceSubgraphData, subgraphName: string, ) { - addIterableValuesToSet(subgraphData.concreteTypeNames, federationData.concreteTypeNames); + addIterableToSet({ + source: subgraphData.concreteTypeNames, + target: federationData.concreteTypeNames, + }); federationData.subgraphDataByTypeName.set(subgraphName, subgraphData); federationData.fieldDatasBySubgraphName.set(subgraphName, subgraphData.fieldDatas); - addIterableValuesToSet(subgraphData.interfaceFieldNames, federationData.interfaceFieldNames); - addIterableValuesToSet(subgraphData.interfaceObjectFieldNames, federationData.interfaceObjectFieldNames); + addIterableToSet({ + source: subgraphData.interfaceFieldNames, + target: federationData.interfaceFieldNames, + }); + addIterableToSet({ + source: subgraphData.interfaceObjectFieldNames, + target: federationData.interfaceObjectFieldNames, + }); if (subgraphData.isInterfaceObject) { federationData.interfaceObjectSubgraphNames.add(subgraphName); } diff --git a/composition/tests/utils/utils.ts b/composition/tests/utils/utils.ts index 9a106d4c24..8bf5f9229d 100644 --- a/composition/tests/utils/utils.ts +++ b/composition/tests/utils/utils.ts @@ -17,11 +17,7 @@ import { import { expect } from 'vitest'; export function normalizeString(input: string): string { - return input.replaceAll(/\n| {2,}/g, ''); -} - -export function documentNodeToNormalizedString(document: DocumentNode): string { - return normalizeString(print(document)); + return input.replace(/\s+/g, ' ').trim(); } export function schemaToSortedNormalizedString(schema: GraphQLSchema): string { @@ -42,6 +38,9 @@ export function normalizeSubgraphSuccess( version: SupportedRouterCompatibilityVersion, ): NormalizationSuccess { const result = normalizeSubgraph(subgraph.definitions, subgraph.name, undefined, version); + if (!result.success) { + console.dir(result.errors, { depth: null }); + } expect(result.success, 'normalizeSubgraph failed when expected to succeed').toBe(true); return result as NormalizationSuccess; } diff --git a/composition/tests/v1/contracts.test.ts b/composition/tests/v1/contracts.test.ts index da1b070115..c6e9de4e32 100644 --- a/composition/tests/v1/contracts.test.ts +++ b/composition/tests/v1/contracts.test.ts @@ -1,6 +1,6 @@ import { ContractTagOptions, FederationSuccess, parse, ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph } from '../../src'; import { describe, expect, test } from 'vitest'; -import { schemaQueryDefinition, versionOneRouterContractDefinitions, versionOneRouterDefinitions } from './utils/utils'; +import { INACCESSIBLE_DIRECTIVE, SCHEMA_QUERY_DEFINITION, TAG_DIRECTIVE } from './utils/utils'; import { federateSubgraphsContractSuccess, federateSubgraphsSuccess, @@ -22,7 +22,7 @@ describe('Contract tests', () => { }; test('that Objects are removed by tag', () => { - const result = federateSubgraphsWithContractsSuccess( + const { federationResultByContractName } = federateSubgraphsWithContractsSuccess( [subgraphOne, subgraphA], new Map([ ['one', excludedTagsOne], @@ -36,14 +36,14 @@ describe('Contract tests', () => { ]), ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.federationResultByContractName).toBeDefined(); - const contractOne = result.federationResultByContractName!.get('one') as FederationSuccess; - expect(contractOne.success).toBe(true); - const contractTwo = result.federationResultByContractName!.get('two') as FederationSuccess; + const contractOne = federationResultByContractName!.get('one') as FederationSuccess; + const contractTwo = federationResultByContractName!.get('two') as FederationSuccess; expect(contractTwo.success).toBe(true); expect(schemaToSortedNormalizedString(contractOne.federatedGraphSchema)).toBe( normalizeString( - versionOneRouterContractDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + + TAG_DIRECTIVE + ` type Object @tag(name: "one") @inaccessible { name: String! @@ -61,7 +61,7 @@ describe('Contract tests', () => { ); expect(schemaToSortedNormalizedString(contractOne.federatedGraphClientSchema!)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type ObjectTwo { name: String! @@ -75,7 +75,9 @@ describe('Contract tests', () => { ); expect(schemaToSortedNormalizedString(contractTwo.federatedGraphSchema)).toBe( normalizeString( - versionOneRouterContractDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + + TAG_DIRECTIVE + ` type Object @tag(name: "one") { name: String! @@ -93,7 +95,7 @@ describe('Contract tests', () => { ); expect(schemaToSortedNormalizedString(contractTwo.federatedGraphClientSchema!)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -108,15 +110,14 @@ describe('Contract tests', () => { }); test('that Object Fields are removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphB, subgraphD], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -131,15 +132,14 @@ describe('Contract tests', () => { }); test('that an Object is removed if its only Field is removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphA, subgraphD], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -150,15 +150,14 @@ describe('Contract tests', () => { }); test('that Interfaces are removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphJ, subgraphK], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -169,15 +168,14 @@ describe('Contract tests', () => { }); test('that Interface Fields are removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphJ, subgraphL], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -192,15 +190,14 @@ describe('Contract tests', () => { }); test('that an Interface is removed if its only Field is removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphA, subgraphL], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -211,15 +208,14 @@ describe('Contract tests', () => { }); test('that if an Interface is removed by tag, it is removed from its implementations', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphA, subgraphAE], excludedTagsTwo, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -234,15 +230,14 @@ describe('Contract tests', () => { }); test('that Input Objects are removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphN, subgraphO], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -253,15 +248,14 @@ describe('Contract tests', () => { }); test('that nullable Input Object fields are removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphAA, subgraphAK], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input { name: String @@ -276,15 +270,14 @@ describe('Contract tests', () => { }); test('that an Input Object is removed if its only Field is removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphA, subgraphP], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -295,15 +288,14 @@ describe('Contract tests', () => { }); test('that an Argument can be removed by tag #1.1', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphA, subgraphAF], excludedTagsTwo, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { field: String! @@ -318,15 +310,14 @@ describe('Contract tests', () => { }); test('that an Argument can be removed by tag #1.2', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphA, subgraphAG], excludedTagsTwo, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { field: String! @@ -341,15 +332,14 @@ describe('Contract tests', () => { }); test('that an Argument can be removed by tag #1.3', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphA, subgraphAH], excludedTagsTwo, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -360,15 +350,14 @@ describe('Contract tests', () => { }); test('that a Scalar is removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphQ, subgraphR], excludedTagsTwo, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -379,15 +368,14 @@ describe('Contract tests', () => { }); test('that a Union is removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphS, subgraphT], excludedTagsTwo, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -405,15 +393,14 @@ describe('Contract tests', () => { // TODO test.skip('that a Union is removed if all its members are removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphS, subgraphG], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -424,15 +411,14 @@ describe('Contract tests', () => { }); test('that an Enum is removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphAB, subgraphAC], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -443,15 +429,14 @@ describe('Contract tests', () => { }); test('that an Enum value is removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphAB, subgraphAD], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` enum Enum { ONE @@ -466,15 +451,14 @@ describe('Contract tests', () => { }); test('that an Enum is removed if its only Value is removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphA, subgraphAD], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -485,15 +469,14 @@ describe('Contract tests', () => { }); test('that a nested Field can be removed by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphA, subgraphAI], excludedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -521,7 +504,7 @@ describe('Contract tests', () => { }; test('that Objects are included by tag', () => { - const result = federateSubgraphsWithContractsSuccess( + const { federationResultByContractName } = federateSubgraphsWithContractsSuccess( [subgraphOne, subgraphInclude], new Map([ ['one', includedTagsOne], @@ -529,14 +512,15 @@ describe('Contract tests', () => { ]), ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - const contractOne = result.federationResultByContractName!.get('one') as FederationSuccess; + const contractOne = federationResultByContractName!.get('one') as FederationSuccess; expect(contractOne.success).toBe(true); - const contractTwo = result.federationResultByContractName!.get('two') as FederationSuccess; + const contractTwo = federationResultByContractName!.get('two') as FederationSuccess; expect(contractTwo.success).toBe(true); expect(schemaToSortedNormalizedString(contractOne.federatedGraphSchema)).toBe( normalizeString( - versionOneRouterContractDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + + TAG_DIRECTIVE + ` type Object @tag(name: "one") { name: String! @@ -555,7 +539,7 @@ describe('Contract tests', () => { ); expect(schemaToSortedNormalizedString(contractOne.federatedGraphClientSchema!)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -569,7 +553,9 @@ describe('Contract tests', () => { ); expect(schemaToSortedNormalizedString(contractTwo.federatedGraphSchema)).toBe( normalizeString( - versionOneRouterContractDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + + TAG_DIRECTIVE + ` type Object @tag(name: "one") @inaccessible { name: String! @@ -588,7 +574,7 @@ describe('Contract tests', () => { ); expect(schemaToSortedNormalizedString(contractTwo.federatedGraphClientSchema!)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type ObjectTwo { name: String! @@ -603,15 +589,14 @@ describe('Contract tests', () => { }); test('that Object Fields are included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphB, subgraphD, subgraphInclude], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -626,15 +611,14 @@ describe('Contract tests', () => { }); test('that an Object is removed if its only Field is not included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphD], includedTagsTwo, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { include: Int! @@ -645,15 +629,14 @@ describe('Contract tests', () => { }); test('that Interfaces are included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphJ, subgraphK, subgraphInclude], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -669,15 +652,14 @@ describe('Contract tests', () => { }); test('that Interface Fields are removed if not included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphJ, subgraphL, subgraphInclude], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { name: String! @@ -692,15 +674,14 @@ describe('Contract tests', () => { }); test('that an Interface is removed if its only Field is not included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphL], includedTagsTwo, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { include: Int! @@ -711,15 +692,14 @@ describe('Contract tests', () => { }); test('that if an Interface is not included by tag, it is removed from its implementations', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphAE], includedTagsTwo, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -734,15 +714,14 @@ describe('Contract tests', () => { }); test('that Input Objects are included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphN, subgraphO, subgraphInclude], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input { name: String @@ -757,15 +736,14 @@ describe('Contract tests', () => { }); test('that nullable Input Object Fields are removed if not included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphAA, subgraphAK, subgraphInclude], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input { age: Int @@ -780,15 +758,14 @@ describe('Contract tests', () => { }); test('that an Input Object is removed if its only Field is not included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphP], includedTagsThree, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { include: Int! @@ -799,15 +776,14 @@ describe('Contract tests', () => { }); test('that an Argument can be included by tag #1.1', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphAF], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input { name: String @@ -826,15 +802,14 @@ describe('Contract tests', () => { }); test('that an Argument can be included by tag #1.2', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphAG], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input { name: String @@ -853,15 +828,14 @@ describe('Contract tests', () => { }); test('that an Argument can be included by tag #1.3', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphAH], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input { name: String @@ -880,15 +854,14 @@ describe('Contract tests', () => { }); test('that an Argument can be included by tag #1.4', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphAJ], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input { name: String @@ -904,15 +877,14 @@ describe('Contract tests', () => { }); test('that if a Field is included, its Arguments are included by default', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphAL], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -928,15 +900,14 @@ describe('Contract tests', () => { }); test('that a Scalar is included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphQ, subgraphR], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { include: Int! @@ -949,15 +920,14 @@ describe('Contract tests', () => { }); test('that a Union is included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphS, subgraphT], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -977,15 +947,14 @@ describe('Contract tests', () => { // TODO test.skip('that a Union is removed if none of its members are included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphS, subgraphG], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { include: Int! @@ -996,15 +965,14 @@ describe('Contract tests', () => { }); test('that an Enum is included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphAB, subgraphAC], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` enum Enum { ONE @@ -1020,15 +988,14 @@ describe('Contract tests', () => { }); test('that an Enum Value is included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphAB, subgraphAD], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` enum Enum { TWO @@ -1043,14 +1010,14 @@ describe('Contract tests', () => { }); test('that an Enum is removed if its only value is not included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphAD], includedTagsThree, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { include: Int! @@ -1061,15 +1028,14 @@ describe('Contract tests', () => { }); test('that a nested Field can be included by tag', () => { - const result = federateSubgraphsContractSuccess( + const { federatedGraphClientSchema } = federateSubgraphsContractSuccess( [subgraphInclude, subgraphAI], includedTagsOne, ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` enum Enum { A @@ -1099,11 +1065,14 @@ describe('Contract tests', () => { describe('Client schema generation', () => { test('that a client schema is produced if a @tag directive is defined on an Object #1.1', () => { - const result = federateSubgraphsSuccess([subgraphB, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphB, subgraphC], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Object @tag(name: "one") { age: Int! @@ -1115,9 +1084,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -1133,11 +1102,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Object #1.2', () => { - const result = federateSubgraphsSuccess([subgraphC, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphC, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Object @tag(name: "one") { age: Int! @@ -1149,9 +1121,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -1167,11 +1139,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a Object Field #1.1', () => { - const result = federateSubgraphsSuccess([subgraphB, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphB, subgraphD], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Object { age: Int! @@ -1183,9 +1158,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -1201,11 +1176,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a Object Field #1.2', () => { - const result = federateSubgraphsSuccess([subgraphD, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphD, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Object { age: Int! @@ -1217,9 +1195,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -1235,11 +1213,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a Object Field Argument #1.1', () => { - const result = federateSubgraphsSuccess([subgraphB, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphB, subgraphE], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Object { age: Int! @@ -1251,9 +1232,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -1269,11 +1250,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a Object Field Argument #1.2', () => { - const result = federateSubgraphsSuccess([subgraphE, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphE, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Object { age: Int! @@ -1285,9 +1269,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -1303,11 +1287,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a shared Object Field #1.1', () => { - const result = federateSubgraphsSuccess([subgraphU, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphU, subgraphD], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Object { name: String! @tag(name: "one") @@ -1318,9 +1305,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -1335,11 +1322,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a shared Object Field #1.2', () => { - const result = federateSubgraphsSuccess([subgraphD, subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphD, subgraphU], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Object { name: String! @tag(name: "one") @@ -1350,9 +1340,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -1367,11 +1357,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a shared Object Field Argument #1.1', () => { - const result = federateSubgraphsSuccess([subgraphV, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphV, subgraphE], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Object { name(arg: String! @tag(name: "one")): String! @@ -1382,9 +1375,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { name(arg: String!): String! @@ -1399,11 +1392,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a shared Object Field Argument #1.2', () => { - const result = federateSubgraphsSuccess([subgraphE, subgraphV], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphE, subgraphV], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Object { name(arg: String! @tag(name: "one")): String! @@ -1414,9 +1410,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { name(arg: String!): String! @@ -1431,11 +1427,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Object extension #1.1', () => { - const result = federateSubgraphsSuccess([subgraphG, subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphG, subgraphF], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity @tag(name: "one") { age: Int! @@ -1448,9 +1447,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -1467,11 +1466,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Object extension #1.2', () => { - const result = federateSubgraphsSuccess([subgraphF, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphF, subgraphG], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity @tag(name: "one") { age: Int! @@ -1484,9 +1486,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -1503,11 +1505,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Object extension Field #1.1', () => { - const result = federateSubgraphsSuccess([subgraphH, subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphH, subgraphF], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity { age: Int! @@ -1520,9 +1525,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -1539,11 +1544,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Object extension Field #1.2', () => { - const result = federateSubgraphsSuccess([subgraphF, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphF, subgraphH], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity { age: Int! @@ -1556,9 +1564,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -1575,11 +1583,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Object extension Field Argument #1.1', () => { - const result = federateSubgraphsSuccess([subgraphF, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphF, subgraphI], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity { age: Int! @@ -1592,9 +1603,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -1611,11 +1622,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Object extension Field Argument #1.2', () => { - const result = federateSubgraphsSuccess([subgraphF, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphF, subgraphI], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity { age: Int! @@ -1628,9 +1642,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -1647,11 +1661,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a shared Object extension Field #1.1', () => { - const result = federateSubgraphsSuccess([subgraphW, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphW, subgraphH], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity { id: ID! @@ -1663,9 +1680,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -1681,11 +1698,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a shared Object extension Field #1.2', () => { - const result = federateSubgraphsSuccess([subgraphH, subgraphW], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphH, subgraphW], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity { id: ID! @@ -1697,9 +1717,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -1715,11 +1735,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a shared Object extension Field Argument #1.1', () => { - const result = federateSubgraphsSuccess([subgraphX, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphX, subgraphI], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity { id: ID! @@ -1731,9 +1754,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -1749,11 +1772,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a shared Object extension Field Argument #1.2', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphX], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphX], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity { id: ID! @@ -1765,9 +1791,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -1783,11 +1809,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Interface #1.1', () => { - const result = federateSubgraphsSuccess([subgraphJ, subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphJ, subgraphK], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` interface Interface @tag(name: "one") { age: Int! @@ -1799,9 +1828,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -1817,11 +1846,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Interface #1.2', () => { - const result = federateSubgraphsSuccess([subgraphK, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphK, subgraphJ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` interface Interface @tag(name: "one") { age: Int! @@ -1833,9 +1865,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -1851,11 +1883,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a Interface Field #1.1', () => { - const result = federateSubgraphsSuccess([subgraphJ, subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphJ, subgraphL], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` interface Interface { age: Int! @@ -1867,9 +1902,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -1885,11 +1920,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a Interface Field #1.2', () => { - const result = federateSubgraphsSuccess([subgraphL, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphL, subgraphJ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` interface Interface { age: Int! @@ -1901,9 +1939,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -1919,11 +1957,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a Interface Field Argument #1.1', () => { - const result = federateSubgraphsSuccess([subgraphJ, subgraphM], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphJ, subgraphM], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` interface Interface { age: Int! @@ -1935,9 +1976,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -1953,11 +1994,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a Interface Field Argument #1.2', () => { - const result = federateSubgraphsSuccess([subgraphM, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphM, subgraphJ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` interface Interface { age: Int! @@ -1969,9 +2013,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -1987,11 +2031,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a shared Interface Field #1.1', () => { - const result = federateSubgraphsSuccess([subgraphY, subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphY, subgraphL], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` interface Interface { name: String! @tag(name: "one") @@ -2002,9 +2049,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { name: String! @@ -2019,11 +2066,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a shared Interface Field #1.2', () => { - const result = federateSubgraphsSuccess([subgraphL, subgraphY], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphL, subgraphY], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` interface Interface { name: String! @tag(name: "one") @@ -2034,9 +2084,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { name: String! @@ -2051,11 +2101,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a shared Interface Field Argument #1.1', () => { - const result = federateSubgraphsSuccess([subgraphZ, subgraphM], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphZ, subgraphM], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` interface Interface { name(arg: String! @tag(name: "one")): String! @@ -2066,9 +2119,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { name(arg: String!): String! @@ -2083,11 +2136,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a shared Interface Field Argument #1.2', () => { - const result = federateSubgraphsSuccess([subgraphM, subgraphZ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphM, subgraphZ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` interface Interface { name(arg: String! @tag(name: "one")): String! @@ -2098,9 +2154,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` interface Interface { name(arg: String!): String! @@ -2115,11 +2171,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Input Object #1.1', () => { - const result = federateSubgraphsSuccess([subgraphN, subgraphO], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphN, subgraphO], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` input Input @tag(name: "one") { name: String @@ -2130,9 +2189,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input { name: String @@ -2147,11 +2206,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Input Object #1.1', () => { - const result = federateSubgraphsSuccess([subgraphO, subgraphN], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphO, subgraphN], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` input Input @tag(name: "one") { name: String @@ -2162,9 +2224,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input { name: String @@ -2179,11 +2241,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Input Object Field #1.1', () => { - const result = federateSubgraphsSuccess([subgraphN, subgraphP], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphN, subgraphP], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` input Input { name: String @tag(name: "one") @@ -2194,9 +2259,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input { name: String @@ -2211,11 +2276,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Input Object Field #1.2', () => { - const result = federateSubgraphsSuccess([subgraphP, subgraphN], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphP, subgraphN], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` input Input { name: String @tag(name: "one") @@ -2226,9 +2294,9 @@ describe('Contract tests', () => { }`, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input { name: String @@ -2243,11 +2311,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Enum #1.1', () => { - const result = federateSubgraphsSuccess([subgraphAB, subgraphAC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAB, subgraphAC], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` enum Enum @tag(name: "one") { ONE @@ -2260,9 +2331,9 @@ describe('Contract tests', () => { `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` enum Enum { ONE @@ -2278,11 +2349,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Enum #1.2', () => { - const result = federateSubgraphsSuccess([subgraphAC, subgraphAB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAC, subgraphAB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` enum Enum @tag(name: "one") { ONE @@ -2295,9 +2369,9 @@ describe('Contract tests', () => { `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` enum Enum { ONE @@ -2313,11 +2387,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Enum Value #1.1', () => { - const result = federateSubgraphsSuccess([subgraphAB, subgraphAD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAB, subgraphAD], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` enum Enum { ONE @@ -2330,9 +2407,9 @@ describe('Contract tests', () => { `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` enum Enum { ONE @@ -2348,11 +2425,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on an Enum Value #1.2', () => { - const result = federateSubgraphsSuccess([subgraphAD, subgraphAB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAD, subgraphAB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` enum Enum { ONE @@ -2365,9 +2445,9 @@ describe('Contract tests', () => { `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` enum Enum { ONE @@ -2383,11 +2463,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a Scalar #1.1', () => { - const result = federateSubgraphsSuccess([subgraphQ, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphQ, subgraphR], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Query { dummy: String! @@ -2397,9 +2480,9 @@ describe('Contract tests', () => { `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -2412,11 +2495,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a Scalar #1.2', () => { - const result = federateSubgraphsSuccess([subgraphR, subgraphQ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphR, subgraphQ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Query { dummy: String! @@ -2426,9 +2512,9 @@ describe('Contract tests', () => { `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -2441,11 +2527,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a Union #1.1', () => { - const result = federateSubgraphsSuccess([subgraphS, subgraphT], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphS, subgraphT], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity @tag(name: "includeMe") { age: Int! @@ -2461,9 +2550,9 @@ describe('Contract tests', () => { `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -2482,11 +2571,14 @@ describe('Contract tests', () => { }); test('that a client schema is produced if a @tag directive is defined on a Union #1.2', () => { - const result = federateSubgraphsSuccess([subgraphT, subgraphS], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphT, subgraphS], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity @tag(name: "includeMe") { age: Int! @@ -2502,9 +2594,9 @@ describe('Contract tests', () => { `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! diff --git a/composition/tests/v1/directives/authorization-directives.test.ts b/composition/tests/v1/directives/authorization-directives.test.ts index 4e26ed1ca2..00c02ad11a 100644 --- a/composition/tests/v1/directives/authorization-directives.test.ts +++ b/composition/tests/v1/directives/authorization-directives.test.ts @@ -9,7 +9,12 @@ import { ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph, } from '../../../src'; -import { schemaQueryDefinition, versionTwoDirectiveDefinitions, versionTwoRouterDefinitions } from '../utils/utils'; +import { + AUTHENTICATED_DIRECTIVE, + OPENFED_SCOPE, + REQUIRES_SCOPES_DIRECTIVE, + SCHEMA_QUERY_DEFINITION, +} from '../utils/utils'; import { federateSubgraphsFailure, federateSubgraphsSuccess, @@ -55,8 +60,8 @@ describe('Authorization directives tests', () => { ); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - versionTwoDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + ` type Object { b: Boolean! @@ -65,10 +70,6 @@ describe('Authorization directives tests', () => { type Query { object: Object! @authenticated } - - scalar openfed__FieldSet - - scalar openfed__Scope `, ), ); @@ -92,8 +93,8 @@ describe('Authorization directives tests', () => { ); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - versionTwoDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + ` type Object @authenticated { b: Boolean! @@ -102,10 +103,6 @@ describe('Authorization directives tests', () => { type Query { object: Object! } - - scalar openfed__FieldSet - - scalar openfed__Scope `, ), ); @@ -155,8 +152,8 @@ describe('Authorization directives tests', () => { ); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - versionTwoDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + + REQUIRES_SCOPES_DIRECTIVE + ` type Object @requiresScopes(scopes: [["a", "b"], ["c"]]) { b: Boolean! @@ -165,11 +162,8 @@ describe('Authorization directives tests', () => { type Query { object: Object @requiresScopes(scopes: [["a"], ["b"]]) } - - scalar openfed__FieldSet - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -218,8 +212,8 @@ describe('Authorization directives tests', () => { ); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - versionTwoDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + + REQUIRES_SCOPES_DIRECTIVE + ` type Object @requiresScopes(scopes: [["a"], ["b"], ["c"]]) { b: Boolean! @@ -228,11 +222,8 @@ describe('Authorization directives tests', () => { type Query { object: Object @requiresScopes(scopes: [["a", "b"]]) } - - scalar openfed__FieldSet - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -307,8 +298,9 @@ describe('Authorization directives tests', () => { ); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - versionTwoDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + ` type Object @authenticated @requiresScopes(scopes: [["b", "c"], ["d"]]) { b: Boolean! @authenticated @requiresScopes(scopes: [["f"], ["c"]]) @@ -320,11 +312,8 @@ describe('Authorization directives tests', () => { } scalar Scalar @authenticated @requiresScopes(scopes: [["c", "e"], ["d"]]) - - scalar openfed__FieldSet - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -381,19 +370,16 @@ describe('Authorization directives tests', () => { ); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - versionTwoDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + + REQUIRES_SCOPES_DIRECTIVE + ` type Query { scalar: Scalar! @requiresScopes(scopes: [["a"], ["b"], ["c"]]) } scalar Scalar @requiresScopes(scopes: [["a"], ["b"], ["c"]]) - - scalar openfed__FieldSet - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -447,19 +433,16 @@ describe('Authorization directives tests', () => { ); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - versionTwoDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + + REQUIRES_SCOPES_DIRECTIVE + ` type Query { scalar: Scalar! @requiresScopes(scopes: [["a"], ["b"], ["c"]]) } scalar Scalar @requiresScopes(scopes: [["a"], ["b"], ["c"], ["d"]]) - - scalar openfed__FieldSet - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -508,19 +491,16 @@ describe('Authorization directives tests', () => { ); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - versionTwoDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + + REQUIRES_SCOPES_DIRECTIVE + ` type Query { scalar: Scalar! @requiresScopes(scopes: [["a", "b", "c"]]) } scalar Scalar @requiresScopes(scopes: [["a", "b"], ["a"]]) - - scalar openfed__FieldSet - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -544,7 +524,8 @@ describe('Authorization directives tests', () => { ]); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + ` type Object @authenticated { age: Int! @@ -555,14 +536,12 @@ describe('Authorization directives tests', () => { type Query { object: Object! } - - scalar openfed__Scope `, ), ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -595,7 +574,8 @@ describe('Authorization directives tests', () => { ]); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + REQUIRES_SCOPES_DIRECTIVE + ` type Object @requiresScopes(scopes: [["b"]]) { age: Int! @@ -606,14 +586,13 @@ describe('Authorization directives tests', () => { type Query { object: Object! } - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -651,7 +630,9 @@ describe('Authorization directives tests', () => { ]); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + ` type Object @requiresScopes(scopes: [["b"]]) { age: Int! @@ -662,9 +643,8 @@ describe('Authorization directives tests', () => { type Query { object: Object! } - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -719,7 +699,9 @@ describe('Authorization directives tests', () => { ]); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + ` type Entity @authenticated @requiresScopes(scopes: [["b"]]) { age: Int! @@ -735,9 +717,8 @@ describe('Authorization directives tests', () => { } scalar Scalar @authenticated - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -814,7 +795,9 @@ describe('Authorization directives tests', () => { ]); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + ` type Entity implements Interface @requiresScopes(scopes: [["b"], ["d"]]) { age: Int! @@ -837,9 +820,8 @@ describe('Authorization directives tests', () => { } scalar Scalar @requiresScopes(scopes: [["j", "e"]]) - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -910,7 +892,9 @@ describe('Authorization directives tests', () => { ]); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + ` type Entity implements Interface @requiresScopes(scopes: [["b"], ["d"]]) { age: Int! @@ -933,9 +917,8 @@ describe('Authorization directives tests', () => { } scalar Scalar @requiresScopes(scopes: [["e", "j"]]) - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -980,7 +963,9 @@ describe('Authorization directives tests', () => { ]); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + ` type Entity @authenticated @requiresScopes(scopes: [["b", "a"]]) { age: Int! @@ -995,9 +980,8 @@ describe('Authorization directives tests', () => { } scalar Scalar @authenticated @requiresScopes(scopes: [["f"], ["e"]]) - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -1042,7 +1026,9 @@ describe('Authorization directives tests', () => { ]); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + ` type Entity @authenticated @requiresScopes(scopes: [["a", "b"]]) { age: Int! @@ -1057,9 +1043,8 @@ describe('Authorization directives tests', () => { } scalar Scalar @authenticated @requiresScopes(scopes: [["f"], ["e"]]) - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -1158,7 +1143,9 @@ describe('Authorization directives tests', () => { ]); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + ` type EntityOne implements Interface @requiresScopes(scopes: [["b"]]) { id: ID! @@ -1192,9 +1179,8 @@ describe('Authorization directives tests', () => { } scalar Scalar @authenticated @requiresScopes(scopes: [["d"], ["e"]]) - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -1293,7 +1279,9 @@ describe('Authorization directives tests', () => { ]); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + ` type EntityOne implements Interface @requiresScopes(scopes: [["b"]]) { id: ID! @@ -1327,9 +1315,8 @@ describe('Authorization directives tests', () => { } scalar Scalar @authenticated @requiresScopes(scopes: [["d"], ["e"]]) - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -1365,7 +1352,9 @@ describe('Authorization directives tests', () => { ]); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + ` enum Enum @requiresScopes(scopes: [["e", "d"]]) { VALUE @@ -1377,9 +1366,8 @@ describe('Authorization directives tests', () => { } scalar Scalar @authenticated @requiresScopes(scopes: [["b"], ["c"]]) - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -1415,7 +1403,9 @@ describe('Authorization directives tests', () => { ]); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + ` enum Enum @requiresScopes(scopes: [["d", "e"]]) { VALUE @@ -1427,9 +1417,8 @@ describe('Authorization directives tests', () => { } scalar Scalar @authenticated @requiresScopes(scopes: [["b"], ["c"]]) - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); @@ -1663,7 +1652,7 @@ const fcb: Subgraph = { }; const fda: Subgraph = { - name: 'ng', + name: 'fda', url: '', definitions: parse(` type Query { diff --git a/composition/tests/v1/directives/configure-description.test.ts b/composition/tests/v1/directives/configure-description.test.ts index 94fc0c3acc..df7cc79eec 100644 --- a/composition/tests/v1/directives/configure-description.test.ts +++ b/composition/tests/v1/directives/configure-description.test.ts @@ -1,5 +1,4 @@ import { describe, expect, test } from 'vitest'; -import { parse } from 'graphql'; import { CONFIGURE_DESCRIPTION, configureDescriptionNoDescriptionError, @@ -12,9 +11,7 @@ import { invalidArgumentValueErrorMessage, invalidDirectiveError, invalidRepeatedDirectiveErrorMessage, - NormalizationFailure, - NormalizationSuccess, - normalizeSubgraph, + parse, PROPAGATE, QUERY, ROUTER_COMPATIBILITY_VERSION_ONE, @@ -23,31 +20,22 @@ import { Subgraph, UNION, } from '../../../src'; -import { - baseDirectiveDefinitionsWithConfigureDescription, - schemaQueryDefinition, - versionOneRouterDefinitions, - versionTwoRouterDefinitions, -} from '../utils/utils'; +import { CONFIGURE_DESCRIPTION_DIRECTIVE, SCHEMA_QUERY_DEFINITION } from '../utils/utils'; import { federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, + normalizeSubgraphFailure, + normalizeSubgraphSuccess, schemaToSortedNormalizedString, } from '../../utils/utils'; describe('@openfed__configureDescription tests', () => { describe('Normalization tests', () => { test('that an error is returned if the directive is repeated', () => { - const result = normalizeSubgraph( - na.definitions, - na.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(na, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(CONFIGURE_DESCRIPTION, 'Query', FIRST_ORDINAL, [ invalidRepeatedDirectiveErrorMessage(CONFIGURE_DESCRIPTION), ]), @@ -55,15 +43,9 @@ describe('@openfed__configureDescription tests', () => { }); test('that an error is returned if the directive arguments are repeated', () => { - const result = normalizeSubgraph( - nb.definitions, - nb.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(nb, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(CONFIGURE_DESCRIPTION, 'Query', FIRST_ORDINAL, [ duplicateDirectiveArgumentDefinitionsErrorMessage([PROPAGATE]), ]), @@ -71,27 +53,15 @@ describe('@openfed__configureDescription tests', () => { }); test('that an error is returned if no description nor arguments are defined', () => { - const result = normalizeSubgraph( - nc.definitions, - nc.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(configureDescriptionNoDescriptionError('Object', 'Query')); + const { errors } = normalizeSubgraphFailure(nc, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(configureDescriptionNoDescriptionError('Object', 'Query')); }); test('that an error is returned if propagate receives a non-boolean value', () => { - const result = normalizeSubgraph( - nd.definitions, - nd.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(nd, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(CONFIGURE_DESCRIPTION, 'Query', FIRST_ORDINAL, [ invalidArgumentValueErrorMessage('1', `@${CONFIGURE_DESCRIPTION}`, PROPAGATE, 'Boolean!'), ]), @@ -99,15 +69,9 @@ describe('@openfed__configureDescription tests', () => { }); test('that an error is returned if descriptionOverride receives a non-string value', () => { - const result = normalizeSubgraph( - ne.definitions, - ne.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(ne, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(CONFIGURE_DESCRIPTION, 'Query', FIRST_ORDINAL, [ invalidArgumentValueErrorMessage('1', `@${CONFIGURE_DESCRIPTION}`, DESCRIPTION_OVERRIDE, STRING_SCALAR), ]), @@ -115,199 +79,138 @@ describe('@openfed__configureDescription tests', () => { }); test('that an extension with a directive can occur before the description is defined', () => { - const result = normalizeSubgraph( - nf.definitions, - nf.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(nf, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitionsWithConfigureDescription + + SCHEMA_QUERY_DEFINITION + + CONFIGURE_DESCRIPTION_DIRECTIVE + ` - """ - nf.Query - """ + """nf.Query""" type Query @openfed__configureDescription(descriptionOverride: "nf.Query override") { dummy: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an error is returned if propagate is true and no description nor override value is defined #1', () => { - const result = normalizeSubgraph( - ng.definitions, - ng.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(configureDescriptionNoDescriptionError('Object', 'Query')); + const { errors } = normalizeSubgraphFailure(ng, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(configureDescriptionNoDescriptionError('Object', 'Query')); }); test('that an error is returned if propagate is false and no description nor override value is defined #1', () => { - const result = normalizeSubgraph( - nh.definitions, - nh.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(configureDescriptionNoDescriptionError('Object', 'Query')); + const { errors } = normalizeSubgraphFailure(nh, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(configureDescriptionNoDescriptionError('Object', 'Query')); }); }); describe('Federation tests', () => { // Object test('that an Object description is propagated to the federated graph', () => { - const result = federateSubgraphsSuccess([faa, fab], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([faa, fab], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fab.Query - """ + """fab.Query""" type Query { - """ - faa.Query.dummy description dolorem ipsum - """ + """faa.Query.dummy description dolorem ipsum""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Object extension override description is propagated to the federated graph #1', () => { - const result = federateSubgraphsSuccess([faa, fac], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([faa, fac], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fac.Query extension - """ + """fac.Query extension""" type Query { - """ - faa.Query.dummy description dolorem ipsum - """ + """faa.Query.dummy description dolorem ipsum""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Object extension override description is propagated to the federated graph #2', () => { - const result = federateSubgraphsSuccess([faa, fad], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([faa, fad], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fad.Query extension - """ + """fad.Query extension""" type Query { - """ - faa.Query.dummy description dolorem ipsum - """ + """faa.Query.dummy description dolorem ipsum""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an error is returned if multiple instances of an Object attempt to propagate a description', () => { - const result = federateSubgraphsFailure([fab, fae], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(configureDescriptionPropagationError(QUERY, [fab.name, fae.name])); - expect(result.warnings).toHaveLength(0); + const { errors, warnings } = federateSubgraphsFailure([fab, fae], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(configureDescriptionPropagationError(QUERY, [fab.name, fae.name])); + expect(warnings).toHaveLength(0); }); test('that an Object description with propagate: false is not propagated', () => { - const result = federateSubgraphsSuccess([faa, faf], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([faa, faf], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - faa.Query description dolorem ipsum - """ + """faa.Query description dolorem ipsum""" type Query { - """ - faa.Query.dummy description dolorem ipsum - """ + """faa.Query.dummy description dolorem ipsum""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Object instance with no description and another with propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([faf, fag], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([faf, fag], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { - """ - faf.Query.dummy description - """ + """faf.Query.dummy description""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that all Object instances with no description or propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([faf, fah], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([faf, fah], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { - """ - faf.Query.dummy description - """ + """faf.Query.dummy description""" dummy: String! } - - scalar openfed__Scope `, ), ); @@ -315,136 +218,105 @@ describe('@openfed__configureDescription tests', () => { // Interface test('that an Interface description is propagated to the federated graph', () => { - const result = federateSubgraphsSuccess([fba, fbb], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fba, fbb], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fbb.Interface description - """ + """fbb.Interface description""" interface Interface { - """ - fba.Interface.name description dolorem ipsum - """ + """fba.Interface.name description dolorem ipsum""" name: String! } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Interface extension override description is propagated to the federated graph #1', () => { - const result = federateSubgraphsSuccess([fba, fbc], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fba, fbc], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fbc.Interface extension - """ + """fbc.Interface extension""" interface Interface { - """ - fba.Interface.name description dolorem ipsum - """ + """fba.Interface.name description dolorem ipsum""" name: String! } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Interface extension override description is propagated to the federated graph #2', () => { - const result = federateSubgraphsSuccess([fba, fbd], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fba, fbd], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fbd.Interface extension - """ + """fbd.Interface extension""" interface Interface { - """ - fba.Interface.name description dolorem ipsum - """ + """fba.Interface.name description dolorem ipsum""" name: String! } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an error is returned if multiple instances of an Interface attempt to propagate a description', () => { - const result = federateSubgraphsFailure([fbb, fbe], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(configureDescriptionPropagationError(INTERFACE, [fbb.name, fbe.name])); - expect(result.warnings).toHaveLength(0); + const { errors, warnings } = federateSubgraphsFailure([fbb, fbe], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(configureDescriptionPropagationError(INTERFACE, [fbb.name, fbe.name])); + expect(warnings).toHaveLength(0); }); test('that an Interface description with propagate: false is not propagated', () => { - const result = federateSubgraphsSuccess([fba, fbf], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fba, fbf], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fba.Interface description dolorem ipsum - """ + """fba.Interface description dolorem ipsum""" interface Interface { - """ - fba.Interface.name description dolorem ipsum - """ + """fba.Interface.name description dolorem ipsum""" name: String! } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Interface instance with no description and another with propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fbf, fbg], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fbf, fbg], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { - """ - fbg.Interface.name description dolorem ipsum - """ + """fbg.Interface.name description dolorem ipsum""" name: String! } @@ -457,17 +329,14 @@ describe('@openfed__configureDescription tests', () => { }); test('that all Interface instances with no description or propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fbf, fbh], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fbf, fbh], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { - """ - fbf.Interface.name description - """ + """fbf.Interface.name description""" name: String! } @@ -481,136 +350,105 @@ describe('@openfed__configureDescription tests', () => { // Enum test('that an Enum description is propagated to the federated graph', () => { - const result = federateSubgraphsSuccess([fca, fcb], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fca, fcb], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fcb.Enum description - """ + """fcb.Enum description""" enum Enum { - """ - fca.Enum.A description dolorem ipsum - """ + """fca.Enum.A description dolorem ipsum""" A } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); + expect(warnings).toHaveLength(0); }); test('that an Enum extension override description is propagated to the federated graph #1', () => { - const result = federateSubgraphsSuccess([fca, fcc], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fca, fcc], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fcc.Enum extension - """ + """fcc.Enum extension""" enum Enum { - """ - fca.Enum.A description dolorem ipsum - """ + """fca.Enum.A description dolorem ipsum""" A } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Enum extension override description is propagated to the federated graph #2', () => { - const result = federateSubgraphsSuccess([fca, fcd], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fca, fcd], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fcd.Enum extension - """ + """fcd.Enum extension""" enum Enum { - """ - fca.Enum.A description dolorem ipsum - """ + """fca.Enum.A description dolorem ipsum""" A } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an error is returned if multiple instances of an Enum attempt to propagate a description', () => { - const result = federateSubgraphsFailure([fcb, fce], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(configureDescriptionPropagationError(ENUM, [fcb.name, fce.name])); - expect(result.warnings).toHaveLength(0); + const { errors, warnings } = federateSubgraphsFailure([fcb, fce], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(configureDescriptionPropagationError(ENUM, [fcb.name, fce.name])); + expect(warnings).toHaveLength(0); }); test('that an Enum description with propagate: false is not propagated', () => { - const result = federateSubgraphsSuccess([fca, fcf], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fca, fcf], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fca.Enum description dolorem ipsum - """ + """fca.Enum description dolorem ipsum""" enum Enum { - """ - fca.Enum.A description dolorem ipsum - """ + """fca.Enum.A description dolorem ipsum""" A } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Enum instance with no description and another with propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fcf, fcg], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fcf, fcg], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` enum Enum { - """ - fcg.Enum.A description dolorem ipsum - """ + """fcg.Enum.A description dolorem ipsum""" A } @@ -623,17 +461,14 @@ describe('@openfed__configureDescription tests', () => { }); test('that all Enum instances with no description or propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fcf, fch], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fcf, fch], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` enum Enum { - """ - fcf.Enum.A description - """ + """fcf.Enum.A description""" A } @@ -647,136 +482,105 @@ describe('@openfed__configureDescription tests', () => { // Input Object test('that an Input Object description is propagated to the federated graph', () => { - const result = federateSubgraphsSuccess([fda, fdb], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fda, fdb], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fdb.Input description - """ + """fdb.Input description""" input Input { - """ - fda.Input.name description dolorem ipsum - """ + """fda.Input.name description dolorem ipsum""" name: String! } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Input Object extension override description is propagated to the federated graph #1', () => { - const result = federateSubgraphsSuccess([fda, fdc], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fda, fdc], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fdc.Input extension - """ + """fdc.Input extension""" input Input { - """ - fda.Input.name description dolorem ipsum - """ + """fda.Input.name description dolorem ipsum""" name: String! } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Input Object extension override description is propagated to the federated graph #2', () => { - const result = federateSubgraphsSuccess([fda, fdd], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fda, fdd], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fdd.Input extension - """ + """fdd.Input extension""" input Input { - """ - fda.Input.name description dolorem ipsum - """ + """fda.Input.name description dolorem ipsum""" name: String! } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an error is returned if multiple instances of an Input Object attempt to propagate a description', () => { - const result = federateSubgraphsFailure([fdb, fde], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(configureDescriptionPropagationError('Input', [fdb.name, fde.name])); - expect(result.warnings).toHaveLength(0); + const { errors, warnings } = federateSubgraphsFailure([fdb, fde], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(configureDescriptionPropagationError('Input', [fdb.name, fde.name])); + expect(warnings).toHaveLength(0); }); test('that an Input Object description with propagate: false is not propagated', () => { - const result = federateSubgraphsSuccess([fda, fdf], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fda, fdf], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fda.Input description dolorem ipsum - """ + """fda.Input description dolorem ipsum""" input Input { - """ - fda.Input.name description dolorem ipsum - """ + """fda.Input.name description dolorem ipsum""" name: String! } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Input Object instance with no description and another with propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fdf, fdg], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fdf, fdg], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input { - """ - fdg.Input.name description dolorem ipsum - """ + """fdg.Input.name description dolorem ipsum""" name: String! } @@ -789,17 +593,14 @@ describe('@openfed__configureDescription tests', () => { }); test('that all Input Object instances with no description or propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fdf, fdh], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fdf, fdh], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input { - """ - fdf.Input.name description - """ + """fdf.Input.name description""" name: String! } @@ -813,111 +614,90 @@ describe('@openfed__configureDescription tests', () => { // Scalar test('that a Scalar description is propagated to the federated graph', () => { - const result = federateSubgraphsSuccess([fea, feb], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fea, feb], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! } - """ - feb.Scalar description - """ + """feb.Scalar description""" scalar Scalar - - scalar openfed__Scope `, ), ); }); test('that a Scalar extension override description is propagated to the federated graph #1', () => { - const result = federateSubgraphsSuccess([fea, fec], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fea, fec], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! } - """ - fec.Scalar extension - """ + """fec.Scalar extension""" scalar Scalar - - scalar openfed__Scope `, ), ); }); test('that a Scalar extension override description is propagated to the federated graph #2', () => { - const result = federateSubgraphsSuccess([fea, fed], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fea, fed], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! } - """ - fed.Scalar extension - """ + """fed.Scalar extension""" scalar Scalar - - scalar openfed__Scope `, ), ); }); - test('that an error is returned if multiple instances of an Input Object attempt to propagate a description', () => { - const result = federateSubgraphsFailure([feb, fee], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(configureDescriptionPropagationError(SCALAR, [feb.name, fee.name])); - expect(result.warnings).toHaveLength(0); + test('that an error is returned if multiple instances of a Scalar attempt to propagate a description', () => { + const { errors, warnings } = federateSubgraphsFailure([feb, fee], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(configureDescriptionPropagationError(SCALAR, [feb.name, fee.name])); + expect(warnings).toHaveLength(0); }); test('that a Scalar description with propagate: false is not propagated', () => { - const result = federateSubgraphsSuccess([fea, fef], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fea, fef], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! } - """ - fea.Scalar description dolorem ipsum - """ + """fea.Scalar description dolorem ipsum""" scalar Scalar - - scalar openfed__Scope `, ), ); }); test('that a Scalar instance with no description and another with propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fef, feg], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fef, feg], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -930,12 +710,11 @@ describe('@openfed__configureDescription tests', () => { }); test('that all Scalar instances with no description or propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fef, feh], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fef, feh], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -949,11 +728,11 @@ describe('@openfed__configureDescription tests', () => { // Union test('that a Union description is propagated to the federated graph', () => { - const result = federateSubgraphsSuccess([ffa, ffb], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([ffa, ffb], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -963,25 +742,19 @@ describe('@openfed__configureDescription tests', () => { dummy: String! } - """ - ffb.Union description - """ + """ffb.Union description""" union Union = Object - - - scalar openfed__Scope `, ), ); }); test('that a Union extension override description is propagated to the federated graph #1', () => { - const result = federateSubgraphsSuccess([ffa, ffc], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([ffa, ffc], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -991,25 +764,19 @@ describe('@openfed__configureDescription tests', () => { dummy: String! } - """ - ffc.Union extension - """ + """ffc.Union extension""" union Union = Object - - - scalar openfed__Scope `, ), ); }); test('that a Union extension override description is propagated to the federated graph #2', () => { - const result = federateSubgraphsSuccess([ffa, ffd], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([ffa, ffd], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -1019,32 +786,26 @@ describe('@openfed__configureDescription tests', () => { dummy: String! } - """ - ffd.Union extension - """ + """ffd.Union extension""" union Union = Object - - scalar openfed__Scope `, ), ); }); test('that an error is returned if multiple instances of a Union attempt to propagate a description', () => { - const result = federateSubgraphsFailure([ffb, ffe], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(configureDescriptionPropagationError(UNION, [ffb.name, ffe.name])); - expect(result.warnings).toHaveLength(0); + const { errors, warnings } = federateSubgraphsFailure([ffb, ffe], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(configureDescriptionPropagationError(UNION, [ffb.name, ffe.name])); + expect(warnings).toHaveLength(0); }); test('that a Union description with propagate: false is not propagated', () => { - const result = federateSubgraphsSuccess([ffa, fff], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([ffa, fff], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -1054,24 +815,19 @@ describe('@openfed__configureDescription tests', () => { dummy: String! } - """ - ffa.Union description dolorem ipsum - """ + """ffa.Union description dolorem ipsum""" union Union = Object - - scalar openfed__Scope `, ), ); }); test('that a Union instance with no description and another with propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fff, ffg], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fff, ffg], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -1082,20 +838,17 @@ describe('@openfed__configureDescription tests', () => { } union Union = Object - - scalar openfed__Scope `, ), ); }); test('that all Union instances with no description or propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fff, ffh], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fff, ffh], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -1106,8 +859,6 @@ describe('@openfed__configureDescription tests', () => { } union Union = Object - - scalar openfed__Scope `, ), ); @@ -1115,146 +866,107 @@ describe('@openfed__configureDescription tests', () => { // Renamed root type test('that a renamed root type Object description is propagated to the federated graph', () => { - const result = federateSubgraphsSuccess([fga, fgb], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fga, fgb], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fgb.MyQuery - """ + """fgb.MyQuery""" type Query { - """ - fga.Queries.dummy description dolorem ipsum - """ + """fga.Queries.dummy description dolorem ipsum""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a renamed root type Object extension override description is propagated to the federated graph #1', () => { - const result = federateSubgraphsSuccess([fga, fgc], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fga, fgc], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fgc.MyQuery extension - """ + """fgc.MyQuery extension""" type Query { - """ - fga.Queries.dummy description dolorem ipsum - """ + """fga.Queries.dummy description dolorem ipsum""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a renamed root type Object extension override description is propagated to the federated graph #2', () => { - const result = federateSubgraphsSuccess([fga, fgd], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fga, fgd], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fgd.MyQuery extension - """ + """fgd.MyQuery extension""" type Query { - """ - fga.Queries.dummy description dolorem ipsum - """ + """fga.Queries.dummy description dolorem ipsum""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an error is returned if multiple instances of a renamed root type Object attempt to propagate a description', () => { - const result = federateSubgraphsFailure([fgb, fge], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(configureDescriptionPropagationError(QUERY, [fgb.name, fge.name])); - expect(result.warnings).toHaveLength(0); + const { errors, warnings } = federateSubgraphsFailure([fgb, fge], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(configureDescriptionPropagationError(QUERY, [fgb.name, fge.name])); + expect(warnings).toHaveLength(0); }); test('that a renamed root type Object description with propagate: false is not propagated', () => { - const result = federateSubgraphsSuccess([fga, fgf], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fga, fgf], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - fga.Queries description dolorem ipsum - """ + """fga.Queries description dolorem ipsum""" type Query { - """ - fga.Queries.dummy description dolorem ipsum - """ + """fga.Queries.dummy description dolorem ipsum""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a renamed root type Object instance with no description and another with propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fgf, fgg], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fgf, fgg], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { - """ - fgf.MyQuery.dummy description - """ + """fgf.MyQuery.dummy description""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that all renamed root type Object instances with no description or propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fgf, fgh], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fgf, fgh], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { - """ - fgf.MyQuery.dummy description - """ + """fgf.MyQuery.dummy description""" dummy: String! } - - scalar openfed__Scope `, ), ); @@ -1262,128 +974,101 @@ describe('@openfed__configureDescription tests', () => { // Field test('that a field description is propagated to the federated graph', () => { - const result = federateSubgraphsSuccess([fha, fhb], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fha, fhb], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { - """ - fhb.Query.dummy - """ + """fhb.Query.dummy""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a field on an Object extension override description is propagated to the federated graph #1', () => { - const result = federateSubgraphsSuccess([fha, fhc], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fha, fhc], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { - """ - fhc.Query.dummy - """ + """fhc.Query.dummy""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a field on an Object extension override description is propagated to the federated graph #2', () => { - const result = federateSubgraphsSuccess([fha, fhd], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fha, fhd], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { - """ - fhd.Query.dummy override - """ + """fhd.Query.dummy override""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an error is returned if multiple instances of a field attempt to propagate a description', () => { - const result = federateSubgraphsFailure([fhb, fhe], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(configureDescriptionPropagationError('Query.dummy', [fhb.name, fhe.name])); - expect(result.warnings).toHaveLength(0); + const { errors, warnings } = federateSubgraphsFailure([fhb, fhe], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(configureDescriptionPropagationError('Query.dummy', [fhb.name, fhe.name])); + expect(warnings).toHaveLength(0); }); test('that a field description with propagate: false is not propagated', () => { - const result = federateSubgraphsSuccess([fha, fhf], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fha, fhf], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { - """ - fha.Query.dummy description dolorem ipsum - """ + """fha.Query.dummy description dolorem ipsum""" dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a field instance with no description and another with propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fhf, fhg], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fhf, fhg], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that all field instances with no description or propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fhf, fhh], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fhf, fhh], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! } - - scalar openfed__Scope `, ), ); @@ -1391,12 +1076,11 @@ describe('@openfed__configureDescription tests', () => { // Field Argument test('that a field argument description is propagated to the federated graph', () => { - const result = federateSubgraphsSuccess([fia, fib], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fia, fib], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy( @@ -1404,20 +1088,17 @@ describe('@openfed__configureDescription tests', () => { arg: Int! ): String! } - - scalar openfed__Scope `, ), ); }); test('that a field argument on an Object extension override description is propagated to the federated graph #1', () => { - const result = federateSubgraphsSuccess([fia, fic], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fia, fic], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy( @@ -1425,20 +1106,17 @@ describe('@openfed__configureDescription tests', () => { arg: Int! ): String! } - - scalar openfed__Scope `, ), ); }); test('that a field argument on an Object extension override description is propagated to the federated graph #2', () => { - const result = federateSubgraphsSuccess([fia, fid], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fia, fid], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy( @@ -1446,77 +1124,63 @@ describe('@openfed__configureDescription tests', () => { arg: Int! ): String! } - - scalar openfed__Scope `, ), ); }); test('that an error is returned if multiple instances of a field argument attempt to propagate a description', () => { - const result = federateSubgraphsFailure([fib, fie], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors, warnings } = federateSubgraphsFailure([fib, fie], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( configureDescriptionPropagationError('Query.dummy(arg: ...)', [fib.name, fie.name]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a field argument description with propagate: false is not propagated', () => { - const result = federateSubgraphsSuccess([fia, fif], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fia, fif], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy( - """ - fia.Query.dummy(arg) description dolorem ipsum - """ + """fia.Query.dummy(arg) description dolorem ipsum""" arg: Int! ): String! } - - scalar openfed__Scope `, ), ); }); test('that a field argument instance with no description and another with propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fif, fig], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fif, fig], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy(arg: Int!): String! } - - scalar openfed__Scope `, ), ); }); test('that all field argument instances with propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fif, fih], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fif, fih], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy(arg: Int!): String! } - - scalar openfed__Scope `, ), ); @@ -1524,119 +1188,97 @@ describe('@openfed__configureDescription tests', () => { // Input Value test('that an Input Value description is propagated to the federated graph', () => { - const result = federateSubgraphsSuccess([fja, fjb], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fja, fjb], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input { - """ - fjb.Input.name description - """ + """fjb.Input.name description""" name: String! } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Input Value extension override description is propagated to the federated graph #1', () => { - const result = federateSubgraphsSuccess([fja, fjc], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fja, fjc], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input { - """ - fjc.Input.name override - """ + """fjc.Input.name override""" name: String! } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Input Value extension override description is propagated to the federated graph #2', () => { - const result = federateSubgraphsSuccess([fja, fjd], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fja, fjd], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input { - """ - fjd.Input.name override - """ + """fjd.Input.name override""" name: String! } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an error is returned if multiple instances of an Input Value attempt to propagate a description', () => { - const result = federateSubgraphsFailure([fjb, fje], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(configureDescriptionPropagationError('Input.name', [fjb.name, fje.name])); - expect(result.warnings).toHaveLength(0); + const { errors, warnings } = federateSubgraphsFailure([fjb, fje], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(configureDescriptionPropagationError('Input.name', [fjb.name, fje.name])); + expect(warnings).toHaveLength(0); }); test('that an Input Value description with propagate: false is not propagated', () => { - const result = federateSubgraphsSuccess([fja, fjf], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fja, fjf], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input { - """ - fja.Input.name description dolorem ipsum - """ + """fja.Input.name description dolorem ipsum""" name: String! } type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Input Value instance with no description and another with propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fjf, fjg], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fjf, fjg], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input { name: String! @@ -1650,13 +1292,12 @@ describe('@openfed__configureDescription tests', () => { ); }); - test('that all Input Object instances with no description or propagate: false results in no description', () => { - const result = federateSubgraphsSuccess([fjf, fjh], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + test('that all Input Value instances with propagate: false results in no description', () => { + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess([fjf, fjh], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input { name: String! diff --git a/composition/tests/v1/directives/directives.test.ts b/composition/tests/v1/directives/directives.test.ts index c42fa319fc..346912e010 100644 --- a/composition/tests/v1/directives/directives.test.ts +++ b/composition/tests/v1/directives/directives.test.ts @@ -11,12 +11,7 @@ import { Subgraph, } from '../../../src'; import { describe, expect, test } from 'vitest'; -import { - baseDirectiveDefinitions, - schemaQueryDefinition, - versionOneRouterDefinitions, - versionTwoDirectiveDefinitions, -} from '../utils/utils'; +import { INACCESSIBLE_DIRECTIVE, SCHEMA_QUERY_DEFINITION } from '../utils/utils'; import { federateSubgraphsSuccess, normalizeString, schemaToSortedNormalizedString } from '../../utils/utils'; describe('Directive tests', () => { @@ -48,16 +43,13 @@ describe('Directive tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + ` directive @z(list: [[String!]!]!) on FIELD_DEFINITION type Query { dummy: String! @z(list: "test") } - - scalar openfed__FieldSet `, ), ); @@ -91,16 +83,13 @@ describe('Directive tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + ` directive @z(list: [[String!]!]) on FIELD_DEFINITION type Query { dummy: String! @z(list: null) } - - scalar openfed__FieldSet `, ), ); @@ -117,8 +106,7 @@ describe('Directive tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + ` directive @z(list: [[Input!]!]!) on FIELD_DEFINITION @@ -129,8 +117,6 @@ describe('Directive tests', () => { type Query { dummy: String! @z(list: {name: String}) } - - scalar openfed__FieldSet `, ), ); @@ -164,8 +150,8 @@ describe('Directive tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - versionTwoDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` directive @z(list: [[Enum!]!]!) on FIELD_DEFINITION @@ -177,10 +163,6 @@ describe('Directive tests', () => { type Query { dummy: String! @z(list: A) } - - scalar openfed__FieldSet - - scalar openfed__Scope `, ), ); @@ -197,8 +179,7 @@ describe('Directive tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + ` directive @z(list: [[Int!]!]!) on FIELD_DEFINITION @@ -206,8 +187,6 @@ describe('Directive tests', () => { type Query { dummy: String! @z(list: 1) } - - scalar openfed__FieldSet `, ), ); @@ -224,8 +203,7 @@ describe('Directive tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + ` directive @z(list: [[Float!]!]!) on FIELD_DEFINITION @@ -233,8 +211,6 @@ describe('Directive tests', () => { type Query { dummy: String! @z(list: 1.1) } - - scalar openfed__FieldSet `, ), ); @@ -251,8 +227,7 @@ describe('Directive tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + ` directive @z(list: [[Scalar!]!]!) on FIELD_DEFINITION @@ -262,8 +237,6 @@ describe('Directive tests', () => { } scalar Scalar - - scalar openfed__FieldSet `, ), ); @@ -280,8 +253,7 @@ describe('Directive tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + ` directive @z(float: Float!) on FIELD_DEFINITION @@ -289,8 +261,6 @@ describe('Directive tests', () => { type Query { dummy: String! @z(float: 1) } - - scalar openfed__FieldSet `, ), ); @@ -336,14 +306,11 @@ describe('Directive tests', () => { } directive @directiveOne(argOne: String!) on SCHEMA - directive @directiveTwo(argOne: String!) on SCHEMA` + - baseDirectiveDefinitions + - ` + directive @directiveTwo(argOne: String!) on SCHEMA + type Queries { dummy: String! } - - scalar openfed__FieldSet `, ), ); @@ -368,9 +335,7 @@ describe('Directive tests', () => { normalizeString( ` directive @directiveOne(argOne: String!) on SCHEMA - directive @directiveTwo(argOne: String!) on SCHEMA` + - baseDirectiveDefinitions + - `scalar openfed__FieldSet`, + directive @directiveTwo(argOne: String!) on SCHEMA`, ), ); }); @@ -382,7 +347,7 @@ describe('Directive tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` scalar JSON diff --git a/composition/tests/v1/directives/external.test.ts b/composition/tests/v1/directives/external.test.ts index 9a91a0c276..01565791cb 100644 --- a/composition/tests/v1/directives/external.test.ts +++ b/composition/tests/v1/directives/external.test.ts @@ -15,8 +15,9 @@ import { requiresDefinedOnNonEntityFieldWarning, ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph, + TypeName, } from '../../../src'; -import { baseDirectiveDefinitions, versionOneRouterDefinitions, versionTwoRouterDefinitions } from '../utils/utils'; +import { EXTERNAL_DIRECTIVE, KEY_DIRECTIVE, OPENFED_FIELD_SET, SCHEMA_QUERY_DEFINITION } from '../utils/utils'; import { federateSubgraphsFailure, federateSubgraphsSuccess, @@ -29,34 +30,34 @@ import { describe('@external directive tests', () => { describe('Normalization tests', () => { test('that @external declared on the Object level applies to its defined fields #1', () => { - const result = normalizeSubgraphSuccess(na, ROUTER_COMPATIBILITY_VERSION_ONE); + const result = normalizeSubgraphSuccess(naaaa, ROUTER_COMPATIBILITY_VERSION_ONE); expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - baseDirectiveDefinitions + + EXTERNAL_DIRECTIVE + ` type Object { - """ - This is the description for Object.externalFieldFour - """ + """This is the description for Object.externalFieldFour""" externalFieldFour: String! @external externalFieldOne(argOne: String!, argTwo: Boolean!): String @external externalFieldThree: Float @external externalFieldTwo: Int! @external nonExternalFieldOne: Boolean! nonExternalFieldThree: Boolean - nonExternalFieldTwo(argOne: Int"""This is a description for Object.nonExternalFieldTwo.argTwo"""argTwo: Boolean!): Float! + nonExternalFieldTwo( + argOne: Int + """This is a description for Object.nonExternalFieldTwo.argTwo""" + argTwo: Boolean! + ): Float! } - - scalar openfed__FieldSet `, ), ); expect(result.warnings).toHaveLength(4); - expect(result.warnings[0]).toStrictEqual(invalidExternalFieldWarning('Object.externalFieldOne', na.name)); - expect(result.warnings[1]).toStrictEqual(invalidExternalFieldWarning('Object.externalFieldTwo', na.name)); - expect(result.warnings[2]).toStrictEqual(invalidExternalFieldWarning('Object.externalFieldThree', na.name)); - expect(result.warnings[3]).toStrictEqual(invalidExternalFieldWarning('Object.externalFieldFour', na.name)); + expect(result.warnings[0]).toStrictEqual(invalidExternalFieldWarning('Object.externalFieldOne', naaaa.name)); + expect(result.warnings[1]).toStrictEqual(invalidExternalFieldWarning('Object.externalFieldTwo', naaaa.name)); + expect(result.warnings[2]).toStrictEqual(invalidExternalFieldWarning('Object.externalFieldThree', naaaa.name)); + expect(result.warnings[3]).toStrictEqual(invalidExternalFieldWarning('Object.externalFieldFour', naaaa.name)); }); test('that @external declared on the Object level applies to all its defined fields #2', () => { @@ -64,22 +65,22 @@ describe('@external directive tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - baseDirectiveDefinitions + + EXTERNAL_DIRECTIVE + ` type Object { - """ - This is the description for Object.externalFieldFour - """ + """This is the description for Object.externalFieldFour""" externalFieldFour: String! @external externalFieldOne(argOne: String!, argTwo: Boolean!): String @external externalFieldThree: Float @external externalFieldTwo: Int! @external nonExternalFieldOne: Boolean! nonExternalFieldThree: Boolean - nonExternalFieldTwo(argOne: Int"""This is a description for Object.nonExternalFieldTwo.argTwo"""argTwo: Boolean!): Float! + nonExternalFieldTwo( + argOne: Int + """This is a description for Object.nonExternalFieldTwo.argTwo""" + argTwo: Boolean! + ): Float! } - - scalar openfed__FieldSet `, ), ); @@ -95,15 +96,15 @@ describe('@external directive tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.schema)).toBe( normalizeString( - baseDirectiveDefinitions + + EXTERNAL_DIRECTIVE + + KEY_DIRECTIVE + ` type Entity @key(fields: "id") { field: String! @external id: ID! @external } - - scalar openfed__FieldSet - `, + ` + + OPENFED_FIELD_SET, ), ); }); @@ -233,7 +234,7 @@ describe('@external directive tests', () => { const result = normalizeSubgraphSuccess(subgraphAC, ROUTER_COMPATIBILITY_VERSION_ONE); expect(result.success).toBe(true); expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -287,7 +288,7 @@ describe('@external directive tests', () => { const result = normalizeSubgraphSuccess(subgraphAD, ROUTER_COMPATIBILITY_VERSION_ONE); expect(result.success).toBe(true); expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -334,11 +335,13 @@ describe('@external directive tests', () => { describe('Federation tests', () => { test('that @external does not contribute to shareability checks #1.1', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { age: Int! @@ -363,19 +366,19 @@ describe('@external directive tests', () => { entity: Entity! entityTwo: EntityTwo! } - - scalar openfed__Scope `, ), ); }); test('that @external does not contribute to shareability checks #1.2', () => { - const result = federateSubgraphsSuccess([subgraphB, subgraphA], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphB, subgraphA], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { age: Int! @@ -400,19 +403,19 @@ describe('@external directive tests', () => { entity: Entity! entityTwo: EntityTwo! } - - scalar openfed__Scope `, ), ); }); test('that @external does not contribute to shareability checks #2.1', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphB, subgraphC], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { age: Int! @@ -439,19 +442,19 @@ describe('@external directive tests', () => { entity: Entity! entityTwo: EntityTwo! } - - scalar openfed__Scope `, ), ); }); test('that @external does not contribute to shareability checks #2.2', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphC, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphC, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { age: Int! @@ -478,19 +481,19 @@ describe('@external directive tests', () => { entity: Entity! entityTwo: EntityTwo! } - - scalar openfed__Scope `, ), ); }); test('that @external does not contribute to shareability checks #2.3', () => { - const result = federateSubgraphsSuccess([subgraphB, subgraphA, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphB, subgraphA, subgraphC], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { age: Int! @@ -517,19 +520,19 @@ describe('@external directive tests', () => { entity: Entity! entityTwo: EntityTwo! } - - scalar openfed__Scope `, ), ); }); test('that @external does not contribute to shareability checks #2.4', () => { - const result = federateSubgraphsSuccess([subgraphB, subgraphC, subgraphA], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphB, subgraphC, subgraphA], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { age: Int! @@ -556,19 +559,19 @@ describe('@external directive tests', () => { entity: Entity! entityTwo: EntityTwo! } - - scalar openfed__Scope `, ), ); }); test('that @external does not contribute to shareability checks #2.5', () => { - const result = federateSubgraphsSuccess([subgraphC, subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphC, subgraphA, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { age: Int! @@ -595,19 +598,19 @@ describe('@external directive tests', () => { entity: Entity! entityTwo: EntityTwo! } - - scalar openfed__Scope `, ), ); }); test('that @external does not contribute to shareability checks #2.6', () => { - const result = federateSubgraphsSuccess([subgraphC, subgraphB, subgraphA], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphC, subgraphB, subgraphA], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { age: Int! @@ -634,19 +637,19 @@ describe('@external directive tests', () => { entity: Entity! entityTwo: EntityTwo! } - - scalar openfed__Scope `, ), ); }); test('that @external does not contribute to shareability checks #3.1', () => { - const result = federateSubgraphsSuccess([subgraphD, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphD, subgraphE], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { field: String! @@ -657,19 +660,19 @@ describe('@external directive tests', () => { anotherField: Entity! field: Entity! } - - scalar openfed__Scope `, ), ); }); test('that @external does not contribute to shareability checks #3.2', () => { - const result = federateSubgraphsSuccess([subgraphE, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphE, subgraphD], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { field: String! @@ -680,18 +683,15 @@ describe('@external directive tests', () => { anotherField: Entity! field: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an error is returned if all instances of a field are declared @external #1', () => { - const result = federateSubgraphsFailure([subgraphH, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphH, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( allExternalFieldInstancesError( 'Entity', new Map>([['name', ['subgraph-h', 'subgraph-i']]]), @@ -700,11 +700,13 @@ describe('@external directive tests', () => { }); test('that composition is successful if at least one field is not declared @external #1', () => { - const result = federateSubgraphsSuccess([subgraphJ, subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphJ, subgraphK], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -719,11 +721,13 @@ describe('@external directive tests', () => { }); test('that composition is successful if at least one field is not declared @external #2.1', () => { - const result = federateSubgraphsSuccess([subgraphL, subgraphM], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphL, subgraphM], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -739,11 +743,13 @@ describe('@external directive tests', () => { }); test('that composition is successful if at least one field is not declared @external #2.2', () => { - const result = federateSubgraphsSuccess([subgraphM, subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphM, subgraphL], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -759,11 +765,13 @@ describe('@external directive tests', () => { }); test('that unique direct @external key fields on V1 entity extensions are valid', () => { - const result = federateSubgraphsSuccess([subgraphP, subgraphQ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, subgraphConfigBySubgraphName, warnings } = federateSubgraphsSuccess( + [subgraphP, subgraphQ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -776,17 +784,17 @@ describe('@external directive tests', () => { `, ), ); - expect(result.warnings).toHaveLength(2); - expect(result.warnings[0]).toStrictEqual( + expect(warnings).toHaveLength(2); + expect(warnings[0]).toStrictEqual( externalEntityExtensionKeyFieldWarning('Entity', 'id', ['Entity.id'], subgraphQ.name), ); - expect(result.warnings[1]).toStrictEqual( + expect(warnings[1]).toStrictEqual( externalEntityExtensionKeyFieldWarning('Entity', 'name', ['Entity.name'], subgraphQ.name), ); - const q = result.subgraphConfigBySubgraphName.get(subgraphQ.name); + const q = subgraphConfigBySubgraphName.get(subgraphQ.name); expect(q).toBeDefined(); expect(q!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -814,11 +822,13 @@ describe('@external directive tests', () => { // Apollo returns an error for only this case, but it's not meaningful nor necessary. // For consistency, we apply the same behaviour for the other cases of @external on extensions. test('that unique nested @external key fields on V1 entity extensions are valid', () => { - const result = federateSubgraphsSuccess([subgraphP, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, subgraphConfigBySubgraphName, warnings } = federateSubgraphsSuccess( + [subgraphP, subgraphR], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -835,14 +845,14 @@ describe('@external directive tests', () => { `, ), ); - expect(result.warnings).toHaveLength(1); - expect(result.warnings[0]).toStrictEqual( + expect(warnings).toHaveLength(1); + expect(warnings[0]).toStrictEqual( externalEntityExtensionKeyFieldWarning('Entity', 'object { id }', ['Object.id'], subgraphR.name), ); - const r = result.subgraphConfigBySubgraphName.get(subgraphR.name); + const r = subgraphConfigBySubgraphName.get(subgraphR.name); expect(r).toBeDefined(); expect(r!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -876,11 +886,13 @@ describe('@external directive tests', () => { }); test('that unique direct @external key fields on V1 entities with @extends are valid', () => { - const result = federateSubgraphsSuccess([subgraphP, subgraphS], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess( + [subgraphP, subgraphS], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -893,21 +905,23 @@ describe('@external directive tests', () => { `, ), ); - expect(result.warnings).toHaveLength(2); - expect(result.warnings[0]).toStrictEqual( + expect(warnings).toHaveLength(2); + expect(warnings[0]).toStrictEqual( externalEntityExtensionKeyFieldWarning('Entity', 'id', ['Entity.id'], subgraphS.name), ); - expect(result.warnings[1]).toStrictEqual( + expect(warnings[1]).toStrictEqual( externalEntityExtensionKeyFieldWarning('Entity', 'name', ['Entity.name'], subgraphS.name), ); }); test('that unique nested @external key fields on V1 entities with @extends are valid', () => { - const result = federateSubgraphsSuccess([subgraphP, subgraphT], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess( + [subgraphP, subgraphT], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -924,17 +938,16 @@ describe('@external directive tests', () => { `, ), ); - expect(result.warnings).toHaveLength(1); - expect(result.warnings[0]).toStrictEqual( + expect(warnings).toHaveLength(1); + expect(warnings[0]).toStrictEqual( externalEntityExtensionKeyFieldWarning('Entity', 'object { id }', ['Object.id'], subgraphT.name), ); }); test('that errors are returned for unique direct @external key fields on V1 entities', () => { - const result = federateSubgraphsFailure([subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( allExternalFieldInstancesError( 'Entity', new Map>([ @@ -946,21 +959,22 @@ describe('@external directive tests', () => { }); test('that errors are returned for unique nested @external key fields on V1 entities', () => { - const result = federateSubgraphsFailure([subgraphV], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphV], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( allExternalFieldInstancesError('Object', new Map>([['id', [subgraphV.name]]])), ); }); //V2 test('that unique direct @external key fields on V2 entity extensions are valid', () => { - const result = federateSubgraphsSuccess([subgraphP, subgraphW], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, subgraphConfigBySubgraphName, warnings } = federateSubgraphsSuccess( + [subgraphP, subgraphW], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -970,22 +984,20 @@ describe('@external directive tests', () => { type Query { entity: Entity! } - - scalar openfed__Scope `, ), ); - expect(result.warnings).toHaveLength(2); - expect(result.warnings[0]).toStrictEqual( + expect(warnings).toHaveLength(2); + expect(warnings[0]).toStrictEqual( externalEntityExtensionKeyFieldWarning('Entity', 'id', ['Entity.id'], subgraphW.name), ); - expect(result.warnings[1]).toStrictEqual( + expect(warnings[1]).toStrictEqual( externalEntityExtensionKeyFieldWarning('Entity', 'name', ['Entity.name'], subgraphW.name), ); - const w = result.subgraphConfigBySubgraphName.get(subgraphW.name); + const w = subgraphConfigBySubgraphName.get(subgraphW.name); expect(w).toBeDefined(); expect(w!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -1011,11 +1023,13 @@ describe('@external directive tests', () => { }); test('that unique nested @external key fields on V2 entity extensions are valid', () => { - const result = federateSubgraphsSuccess([subgraphP, subgraphX], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, subgraphConfigBySubgraphName, warnings } = federateSubgraphsSuccess( + [subgraphP, subgraphX], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -1029,19 +1043,17 @@ describe('@external directive tests', () => { type Query { entity: Entity! } - - scalar openfed__Scope `, ), ); - expect(result.warnings).toHaveLength(1); - expect(result.warnings[0]).toStrictEqual( + expect(warnings).toHaveLength(1); + expect(warnings[0]).toStrictEqual( externalEntityExtensionKeyFieldWarning('Entity', 'object { id }', ['Object.id'], subgraphX.name), ); - const x = result.subgraphConfigBySubgraphName.get(subgraphX.name); + const x = subgraphConfigBySubgraphName.get(subgraphX.name); expect(x).toBeDefined(); expect(x!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -1075,11 +1087,13 @@ describe('@external directive tests', () => { }); test('that unique direct @external key fields on V2 entities with @extends are valid', () => { - const result = federateSubgraphsSuccess([subgraphP, subgraphY], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess( + [subgraphP, subgraphY], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -1089,26 +1103,26 @@ describe('@external directive tests', () => { type Query { entity: Entity! } - - scalar openfed__Scope `, ), ); - expect(result.warnings).toHaveLength(2); - expect(result.warnings[0]).toStrictEqual( + expect(warnings).toHaveLength(2); + expect(warnings[0]).toStrictEqual( externalEntityExtensionKeyFieldWarning('Entity', 'id', ['Entity.id'], subgraphY.name), ); - expect(result.warnings[1]).toStrictEqual( + expect(warnings[1]).toStrictEqual( externalEntityExtensionKeyFieldWarning('Entity', 'name', ['Entity.name'], subgraphY.name), ); }); test('that unique nested @external key fields on V2 entities with @extends are valid', () => { - const result = federateSubgraphsSuccess([subgraphP, subgraphZ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess( + [subgraphP, subgraphZ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -1122,22 +1136,19 @@ describe('@external directive tests', () => { type Query { entity: Entity! } - - scalar openfed__Scope `, ), ); - expect(result.warnings).toHaveLength(1); - expect(result.warnings[0]).toStrictEqual( + expect(warnings).toHaveLength(1); + expect(warnings[0]).toStrictEqual( externalEntityExtensionKeyFieldWarning('Entity', 'object { id }', ['Object.id'], subgraphZ.name), ); }); test('that errors are returned for unique direct @external key fields on V2 entities', () => { - const result = federateSubgraphsFailure([subgraphAA], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphAA], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( allExternalFieldInstancesError( 'Entity', new Map>([ @@ -1149,18 +1160,17 @@ describe('@external directive tests', () => { }); test('that errors are returned for unique nested @external key fields on V2 entities', () => { - const result = federateSubgraphsFailure([subgraphAB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphAB], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( allExternalFieldInstancesError('Object', new Map>([['id', [subgraphAB.name]]])), ); }); }); }); -const na: Subgraph = { - name: 'na', +const naaaa: Subgraph = { + name: 'naaaa', url: '', definitions: parse(` type Object { diff --git a/composition/tests/v1/directives/fieldset-directives.test.ts b/composition/tests/v1/directives/fieldset-directives.test.ts index a640fd4462..896b3c316c 100644 --- a/composition/tests/v1/directives/fieldset-directives.test.ts +++ b/composition/tests/v1/directives/fieldset-directives.test.ts @@ -28,12 +28,20 @@ import { ROUTER_COMPATIBILITY_VERSION_ONE, SCALAR, Subgraph, + TypeName, undefinedFieldInFieldSetErrorMessage, unexpectedArgumentErrorMessage, UNION, unparsableFieldSetErrorMessage, } from '../../../src'; -import { schemaQueryDefinition, versionTwoDirectiveDefinitions } from '../utils/utils'; +import { + EXTERNAL_DIRECTIVE, + INACCESSIBLE_DIRECTIVE, + KEY_DIRECTIVE, + OPENFED_FIELD_SET, + REQUIRES_DIRECTIVE, + SCHEMA_QUERY_DEFINITION, +} from '../utils/utils'; import { federateSubgraphsSuccess, normalizeString, @@ -419,7 +427,7 @@ describe('openfed_FieldSet tests', () => { const result = normalizeSubgraphSuccess(subgraphA, ROUTER_COMPATIBILITY_VERSION_ONE); expect(result.success).toBe(true); expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -456,7 +464,7 @@ describe('openfed_FieldSet tests', () => { nonExternalConditionalFieldWarning('Object.name', NOT_APPLICABLE, 'Object.id', 'id', REQUIRES), ); expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Object', { @@ -483,7 +491,7 @@ describe('openfed_FieldSet tests', () => { ) as NormalizationSuccess; expect(result.success).toBe(true); expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -524,7 +532,7 @@ describe('openfed_FieldSet tests', () => { ) as NormalizationSuccess; expect(result.success).toBe(true); expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -579,7 +587,7 @@ describe('openfed_FieldSet tests', () => { ) as NormalizationSuccess; expect(result.success).toBe(true); expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -635,7 +643,7 @@ describe('openfed_FieldSet tests', () => { }); test('that a @requires FieldSet supports an inline fragment with a valid type condition on a union', () => { - const result = normalizeSubgraphFromString( + const { configurationDataByTypeName } = normalizeSubgraphFromString( ` type Entity @key(fields: "id") { id: ID! @@ -653,9 +661,8 @@ describe('openfed_FieldSet tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Entity', { @@ -763,7 +770,7 @@ describe('openfed_FieldSet tests', () => { ) as NormalizationSuccess; expect(result.success).toBe(true); expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -805,7 +812,7 @@ describe('openfed_FieldSet tests', () => { ) as NormalizationSuccess; expect(result.success).toBe(true); expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -830,23 +837,22 @@ describe('openfed_FieldSet tests', () => { }); test('that a @requires FieldSet allows inline fragments #1', () => { - const result = normalizeSubgraph( - subgraphH.definitions, - subgraphH.name, - undefined, + const { configurationDataByTypeName, schema } = normalizeSubgraphSuccess( + subgraphH, ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + ); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - schemaQueryDefinition + - versionTwoDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + + EXTERNAL_DIRECTIVE + + INACCESSIBLE_DIRECTIVE + + KEY_DIRECTIVE + + REQUIRES_DIRECTIVE + ` type Entity @key(fields: "id") { id: ID! interface: InterfaceOne @external - requirerOne: String! @requires( - fields: """ + requirerOne: String! @requires(fields: """ interface { ... on InterfaceTwo { ... on ObjectOne { @@ -859,17 +865,14 @@ describe('openfed_FieldSet tests', () => { } age } - """ - ) - requirerTwo: String! @requires( - fields: """ + """) + requirerTwo: String! @requires(fields: """ interface { ... on InterfaceOne { age } } - """ - ) + """) } interface InterfaceOne { @@ -896,15 +899,12 @@ describe('openfed_FieldSet tests', () => { type Query { entity: Entity! } - - scalar openfed__FieldSet - - scalar openfed__Scope - `, + ` + + OPENFED_FIELD_SET, ), ); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Query', { @@ -974,7 +974,7 @@ describe('openfed_FieldSet tests', () => { expect(result.success).toBe(true); const d = result.subgraphConfigBySubgraphName.get(subgraphD.name); expect(d!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -1031,7 +1031,7 @@ describe('openfed_FieldSet tests', () => { const e = result.subgraphConfigBySubgraphName.get(subgraphE.name); expect(e).toBeDefined(); expect(e!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -1076,10 +1076,12 @@ describe('openfed_FieldSet tests', () => { }); test('that non-external v1 fields that form part of a @requires field set are treated as non-conditional but return a warning', () => { - const result = federateSubgraphsSuccess([subgraphE, subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(1); - expect(result.warnings[0]).toStrictEqual( + const { subgraphConfigBySubgraphName, warnings } = federateSubgraphsSuccess( + [subgraphE, subgraphF], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(warnings).toHaveLength(1); + expect(warnings[0]).toStrictEqual( nonExternalConditionalFieldWarning( 'Entity.name', 'subgraph-f', @@ -1088,11 +1090,11 @@ describe('openfed_FieldSet tests', () => { REQUIRES, ), ); - expect(result.warnings[0].subgraph.name).toBe('subgraph-f'); - const eConfig = result.subgraphConfigBySubgraphName.get(subgraphE.name); + expect(warnings[0].subgraph.name).toBe('subgraph-f'); + const eConfig = subgraphConfigBySubgraphName.get(subgraphE.name); expect(eConfig).toBeDefined(); expect(eConfig!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -1134,10 +1136,10 @@ describe('openfed_FieldSet tests', () => { ], ]), ); - const f = result.subgraphConfigBySubgraphName.get(subgraphF.name); + const f = subgraphConfigBySubgraphName.get(subgraphF.name); expect(f).toBeDefined(); expect(f!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -1191,10 +1193,12 @@ describe('openfed_FieldSet tests', () => { }); test('that non-external v1 fields that form part of a @provides field set are treated as non-conditional but return a warning', () => { - const result = federateSubgraphsSuccess([subgraphE, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(1); - expect(result.warnings[0]).toStrictEqual( + const { subgraphConfigBySubgraphName, warnings } = federateSubgraphsSuccess( + [subgraphE, subgraphG], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(warnings).toHaveLength(1); + expect(warnings[0]).toStrictEqual( nonExternalConditionalFieldWarning( 'Query.entity', 'subgraph-g', @@ -1203,11 +1207,11 @@ describe('openfed_FieldSet tests', () => { PROVIDES, ), ); - expect(result.warnings[0].subgraph.name).toBe('subgraph-g'); - const e = result.subgraphConfigBySubgraphName.get(subgraphE.name); + expect(warnings[0].subgraph.name).toBe('subgraph-g'); + const e = subgraphConfigBySubgraphName.get(subgraphE.name); expect(e).toBeDefined(); expect(e!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -1249,10 +1253,10 @@ describe('openfed_FieldSet tests', () => { ], ]), ); - const g = result.subgraphConfigBySubgraphName.get(subgraphG.name); + const g = subgraphConfigBySubgraphName.get(subgraphG.name); expect(g).toBeDefined(); expect(g!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { diff --git a/composition/tests/v1/directives/inaccessible.test.ts b/composition/tests/v1/directives/inaccessible.test.ts index c9e278fe2e..c3f624ab46 100644 --- a/composition/tests/v1/directives/inaccessible.test.ts +++ b/composition/tests/v1/directives/inaccessible.test.ts @@ -1,8 +1,6 @@ import { describe, expect, test } from 'vitest'; import { allChildDefinitionsAreInaccessibleError, - FederationFailure, - FederationSuccess, FIELD, FieldData, ImplementationErrors, @@ -12,8 +10,6 @@ import { InvalidFieldImplementation, invalidFieldShareabilityError, invalidInterfaceImplementationError, - NormalizationFailure, - normalizeSubgraph, OBJECT, ObjectDefinitionData, parse, @@ -21,22 +17,26 @@ import { Subgraph, UNION, } from '../../../src'; -import { schemaQueryDefinition, versionTwoRouterDefinitions } from '../utils/utils'; +import { INACCESSIBLE_DIRECTIVE, SCHEMA_QUERY_DEFINITION } from '../utils/utils'; import { federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, + normalizeSubgraphFailure, schemaToSortedNormalizedString, } from '../../utils/utils'; import { Kind } from 'graphql'; describe('@inaccessible tests', () => { test('that inaccessible fields are included in client schema but not the router schema', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Entity { age: Int! @@ -47,14 +47,12 @@ describe('@inaccessible tests', () => { type Query { entity: Entity! } - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema!)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -70,10 +68,9 @@ describe('@inaccessible tests', () => { }); test('that inaccessible fields are still subject to @shareable errors', () => { - const result = federateSubgraphsFailure([subgraphA, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphA, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidFieldShareabilityError( { name: 'Entity', @@ -95,11 +92,14 @@ describe('@inaccessible tests', () => { }); test('that composition is successful if a field is declared @inaccessible in both the interface definition and its implementation,', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphD], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Entity implements Interface { id: ID! @@ -114,14 +114,12 @@ describe('@inaccessible tests', () => { type Query { entity: Entity! } - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema!)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { id: ID! @@ -140,11 +138,14 @@ describe('@inaccessible tests', () => { }); test('that composition is successful if a field is declared @inaccessible in the interface but not in the implementation,', () => { - const result = federateSubgraphsSuccess([subgraphB, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphB, subgraphH], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Entity implements Interface { age: Int! @@ -160,14 +161,12 @@ describe('@inaccessible tests', () => { type Query { entity: Entity! } - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { age: Int! @@ -188,15 +187,9 @@ describe('@inaccessible tests', () => { }); test('that an error is returned if an interface field is @inaccessible but the implementation field is not defined,', () => { - const result = normalizeSubgraph( - subgraphE.definitions, - subgraphE.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphE, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidInterfaceImplementationError( 'Entity', OBJECT, @@ -214,10 +207,9 @@ describe('@inaccessible tests', () => { }); test('that an error is returned if an interface field is @inaccessible but the implementation field is not defined #2,', () => { - const result = federateSubgraphsFailure([subgraphF, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphF, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidInterfaceImplementationError( 'Entity', OBJECT, @@ -235,39 +227,38 @@ describe('@inaccessible tests', () => { }); test('that an error is returned if all fields defined on an object are declared @inaccessible', () => { - const result = federateSubgraphsFailure([subgraphA, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(allChildDefinitionsAreInaccessibleError(OBJECT, OBJECT, FIELD)); + const { errors } = federateSubgraphsFailure([subgraphA, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(allChildDefinitionsAreInaccessibleError(OBJECT, OBJECT, FIELD)); }); test('that an error is returned if all fields defined on an extended object are declared @inaccessible', () => { - const result = federateSubgraphsFailure([subgraphA, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(allChildDefinitionsAreInaccessibleError(OBJECT, OBJECT, FIELD)); + const { errors } = federateSubgraphsFailure([subgraphA, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(allChildDefinitionsAreInaccessibleError(OBJECT, OBJECT, FIELD)); }); test('that an error is returned if all fields defined on an interface are declared @inaccessible', () => { - const result = federateSubgraphsFailure([subgraphA, subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(allChildDefinitionsAreInaccessibleError(INTERFACE, INTERFACE, FIELD)); + const { errors } = federateSubgraphsFailure([subgraphA, subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(allChildDefinitionsAreInaccessibleError(INTERFACE, INTERFACE, FIELD)); }); test('that an error is returned if all fields defined on an extended interface are declared @inaccessible', () => { - const result = federateSubgraphsFailure([subgraphA, subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(allChildDefinitionsAreInaccessibleError(INTERFACE, INTERFACE, FIELD)); + const { errors } = federateSubgraphsFailure([subgraphA, subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(allChildDefinitionsAreInaccessibleError(INTERFACE, INTERFACE, FIELD)); }); test('that an inaccessible interface without accessible references is removed from the client schema', () => { - const result = federateSubgraphsSuccess([subgraphM, subgraphN], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphM, subgraphN], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` interface Interface @inaccessible { name: String! @@ -281,14 +272,12 @@ describe('@inaccessible tests', () => { dummy: String! interface: Interface! @inaccessible } - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -303,11 +292,14 @@ describe('@inaccessible tests', () => { }); test('that an inaccessible object is removed from a union', () => { - const result = federateSubgraphsSuccess([subgraphO, subgraphP], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphO, subgraphP], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type ObjectOne @inaccessible { name: String! @@ -325,14 +317,12 @@ describe('@inaccessible tests', () => { } union Union = ObjectOne | ObjectTwo - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type ObjectTwo { name: String! @@ -350,11 +340,14 @@ describe('@inaccessible tests', () => { }); test('that the @inaccessible state is propagated to children and arguments', () => { - const result = federateSubgraphsSuccess([subgraphP, subgraphQ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphP, subgraphQ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type ObjectOne @inaccessible { scalar: Scalar! @@ -376,14 +369,12 @@ describe('@inaccessible tests', () => { } scalar Scalar @inaccessible - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type ObjectThree { name: String! @@ -399,11 +390,14 @@ describe('@inaccessible tests', () => { }); test('that the @inaccessible state is propagated across subgraphs #1.1', () => { - const result = federateSubgraphsSuccess([subgraphR, subgraphS], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphR, subgraphS], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Object @inaccessible { scalar(scalar: Scalar!): Scalar! @@ -416,14 +410,12 @@ describe('@inaccessible tests', () => { } scalar Scalar @inaccessible - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -434,10 +426,14 @@ describe('@inaccessible tests', () => { }); test('that the @inaccessible state is propagated across subgraphs #1.2', () => { - const result = federateSubgraphsSuccess([subgraphS, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphS, subgraphR], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Object @inaccessible { scalar(scalar: Scalar!): Scalar! @@ -450,14 +446,12 @@ describe('@inaccessible tests', () => { } scalar Scalar @inaccessible - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -468,11 +462,14 @@ describe('@inaccessible tests', () => { }); test('that @inaccessible fields do not affect resolvability #1.1', () => { - const result = federateSubgraphsSuccess([subgraphT, subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphT, subgraphU], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Object { scalar(scalar: Scalar!): Scalar! @@ -485,14 +482,12 @@ describe('@inaccessible tests', () => { } scalar Scalar - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { scalar(scalar: Scalar!): Scalar! @@ -510,11 +505,14 @@ describe('@inaccessible tests', () => { }); test('that @inaccessible fields do not affect resolvability #1.2', () => { - const result = federateSubgraphsSuccess([subgraphU, subgraphT], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphU, subgraphT], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Object { scalar(scalar: Scalar!): Scalar! @@ -527,14 +525,12 @@ describe('@inaccessible tests', () => { } scalar Scalar - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { scalar(scalar: Scalar!): Scalar! @@ -552,9 +548,9 @@ describe('@inaccessible tests', () => { }); test('that an error is returned if a required field argument is declared @inaccessible in isolation', () => { - const result = federateSubgraphsFailure([subgraphV, subgraphP], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphV, subgraphP], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( inaccessibleRequiredInputValueError( { federatedCoords: 'Object.scalar(scalar: ...)', @@ -567,10 +563,14 @@ describe('@inaccessible tests', () => { }); test('that a required field argument can be declared @inaccessible if its field or parent is declared @inaccessible', () => { - const result = federateSubgraphsSuccess([subgraphW, subgraphP], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphW, subgraphP], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Object { name: String! @@ -588,14 +588,12 @@ describe('@inaccessible tests', () => { } scalar Scalar - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -613,48 +611,45 @@ describe('@inaccessible tests', () => { }); test('that an error is returned if all members of a union are inaccessible', () => { - const result = federateSubgraphsFailure([subgraphX, subgraphP], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( - allChildDefinitionsAreInaccessibleError(UNION, 'Union', 'union member type'), - ); + const { errors } = federateSubgraphsFailure([subgraphX, subgraphP], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(allChildDefinitionsAreInaccessibleError(UNION, 'Union', 'union member type')); }); test('that an @inaccessible only needs to be declared on a single field #1.1', () => { - const result = federateSubgraphsSuccess([subgraphY, subgraphZ, subgraphAA], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); + const { success } = federateSubgraphsSuccess([subgraphY, subgraphZ, subgraphAA], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(success).toBe(true); }); test('that an @inaccessible only needs to be declared on a single field #1.2', () => { - const result = federateSubgraphsSuccess([subgraphY, subgraphAA, subgraphZ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); + const { success } = federateSubgraphsSuccess([subgraphY, subgraphAA, subgraphZ], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(success).toBe(true); }); test('that an @inaccessible only needs to be declared on a single field #1.3', () => { - const result = federateSubgraphsSuccess([subgraphZ, subgraphY, subgraphAA], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); + const { success } = federateSubgraphsSuccess([subgraphZ, subgraphY, subgraphAA], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(success).toBe(true); }); - test('that an @inaccessible only needs to be declared on a single field #1.3', () => { - const result = federateSubgraphsSuccess([subgraphZ, subgraphAA, subgraphY], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); + test('that an @inaccessible only needs to be declared on a single field #1.4', () => { + const { success } = federateSubgraphsSuccess([subgraphZ, subgraphAA, subgraphY], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(success).toBe(true); }); - test('that an @inaccessible only needs to be declared on a single field #1.3', () => { - const result = federateSubgraphsSuccess([subgraphAA, subgraphY, subgraphZ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); + test('that an @inaccessible only needs to be declared on a single field #1.5', () => { + const { success } = federateSubgraphsSuccess([subgraphAA, subgraphY, subgraphZ], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(success).toBe(true); }); - test('that an @inaccessible only needs to be declared on a single field #1.3', () => { - const result = federateSubgraphsSuccess([subgraphAA, subgraphZ, subgraphY], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); + test('that an @inaccessible only needs to be declared on a single field #1.6', () => { + const { success } = federateSubgraphsSuccess([subgraphAA, subgraphZ, subgraphY], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(success).toBe(true); }); test('that an error is returned if a required argument is declared @inaccessible in isolation #1', () => { - const result = federateSubgraphsFailure([faa], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([faa], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( inaccessibleRequiredInputValueError( { federatedCoords: 'Object.name(input: ...)', @@ -667,9 +662,9 @@ describe('@inaccessible tests', () => { }); test('that an error is returned if a required argument is declared @inaccessible in isolation #2.1', () => { - const result = federateSubgraphsFailure([fab, fac], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([fab, fac], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( inaccessibleRequiredInputValueError( { federatedCoords: 'Entity.name(input: ...)', @@ -682,9 +677,9 @@ describe('@inaccessible tests', () => { }); test('that an error is returned if a required argument is declared @inaccessible in isolation #2.2', () => { - const result = federateSubgraphsFailure([fac, fab], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([fac, fab], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( inaccessibleRequiredInputValueError( { federatedCoords: 'Entity.name(input: ...)', @@ -697,9 +692,9 @@ describe('@inaccessible tests', () => { }); test('that an error is returned if a required Input field is declared @inaccessible in isolation #1', () => { - const result = federateSubgraphsFailure([fag], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([fag], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( inaccessibleRequiredInputValueError( { federatedCoords: 'Input.name', @@ -712,9 +707,9 @@ describe('@inaccessible tests', () => { }); test('that an error is returned if a required Input field is declared @inaccessible in isolation #2.1', () => { - const result = federateSubgraphsFailure([fah, fai], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([fah, fai], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( inaccessibleRequiredInputValueError( { federatedCoords: 'Input.name', @@ -727,9 +722,9 @@ describe('@inaccessible tests', () => { }); test('that an error is returned if a required Input field is declared @inaccessible in isolation #2.2', () => { - const result = federateSubgraphsFailure([fai, fah], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([fai, fah], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( inaccessibleRequiredInputValueError( { federatedCoords: 'Input.name', @@ -742,10 +737,11 @@ describe('@inaccessible tests', () => { }); test('that a field argument can be declared @inaccessible if the field is also declared @inaccessible #1.1', () => { - const result = federateSubgraphsSuccess([fac, fad], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([fac, fad], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Entity { id: ID! @@ -755,18 +751,17 @@ describe('@inaccessible tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope `, ), ); }); test('that a field argument can be declared @inaccessible if the field is also declared @inaccessible #1.2', () => { - const result = federateSubgraphsSuccess([fad, fac], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([fad, fac], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Entity { id: ID! @@ -776,18 +771,17 @@ describe('@inaccessible tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope `, ), ); }); test('that a field argument can be declared @inaccessible if the parent Object is also declared @inaccessible #1.1', () => { - const result = federateSubgraphsSuccess([fae, faf], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([fae, faf], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Entity @inaccessible { id: ID! @@ -797,18 +791,17 @@ describe('@inaccessible tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a field argument can be declared @inaccessible if the parent Object is also declared @inaccessible #1.2', () => { - const result = federateSubgraphsSuccess([faf, fae], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([faf, fae], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Entity @inaccessible { id: ID! @@ -818,18 +811,17 @@ describe('@inaccessible tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Input field can be declared @inaccessible if the parent Input Object is also declared @inaccessible #1.1', () => { - const result = federateSubgraphsSuccess([faj, fak], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([faj, fak], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` input Input @inaccessible { id: ID! @@ -839,18 +831,17 @@ describe('@inaccessible tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that an Input field can be declared @inaccessible if the parent Input Object is also declared @inaccessible #1.2', () => { - const result = federateSubgraphsSuccess([fak, faj], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([fak, faj], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` input Input @inaccessible { id: ID! @@ -860,8 +851,6 @@ describe('@inaccessible tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); diff --git a/composition/tests/v1/directives/interface-object.test.ts b/composition/tests/v1/directives/interface-object.test.ts index 7559a088fe..b6019e1b47 100644 --- a/composition/tests/v1/directives/interface-object.test.ts +++ b/composition/tests/v1/directives/interface-object.test.ts @@ -13,27 +13,27 @@ import { invalidInterfaceImplementationError, invalidInterfaceObjectImplementationDefinitionsError, ObjectDefinitionData, + parse, ROUTER_COMPATIBILITY_VERSION_ONE, SimpleFieldData, Subgraph, SubgraphName, + TypeName, undefinedEntityInterfaceImplementationsError, } from '../../../src'; -import { parse } from 'graphql'; import { federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, schemaToSortedNormalizedString, } from '../../utils/utils'; -import { versionTwoRouterDefinitions } from '../utils/utils'; +import { SCHEMA_QUERY_DEFINITION } from '../utils/utils'; describe('@interfaceObject tests', () => { test('that an error is returned if implementations are defined alongside an entity declared with @interfaceObject', () => { - const result = federateSubgraphsFailure([faa, fab], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([faa, fab], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidInterfaceObjectImplementationDefinitionsError('Interface', faa.name, ['EntityOne', 'EntityTwo']), ); }); @@ -45,7 +45,7 @@ describe('@interfaceObject tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityA implements InterfaceA { id: ID! @@ -84,15 +84,13 @@ describe('@interfaceObject tests', () => { interfaceAs: [InterfaceA!]! interfaceBs: [InterfaceB!]! } - - scalar openfed__Scope `, ), ); const fbcConfig = subgraphConfigBySubgraphName.get(fbc.name); expect(fbcConfig).toBeDefined(); expect(fbcConfig!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'InterfaceA', { @@ -169,7 +167,7 @@ describe('@interfaceObject tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityA implements InterfaceA { id: ID! @@ -208,15 +206,13 @@ describe('@interfaceObject tests', () => { interfaceAs: [InterfaceA!]! interfaceBs: [InterfaceB!]! } - - scalar openfed__Scope `, ), ); const fbcConfig = subgraphConfigBySubgraphName.get(fbc.name); expect(fbcConfig).toBeDefined(); expect(fbcConfig!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'InterfaceA', { @@ -293,7 +289,7 @@ describe('@interfaceObject tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityA implements InterfaceA & InterfaceB { entity: EntityC! @@ -333,15 +329,13 @@ describe('@interfaceObject tests', () => { interfaceAs: [InterfaceA!]! interfaceBs: [InterfaceB!]! } - - scalar openfed__Scope `, ), ); const fbcConfig = subgraphConfigBySubgraphName.get(fbc.name); expect(fbcConfig).toBeDefined(); expect(fbcConfig!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'InterfaceA', { @@ -418,7 +412,7 @@ describe('@interfaceObject tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityA implements InterfaceA & InterfaceB { entity: EntityC! @@ -458,15 +452,13 @@ describe('@interfaceObject tests', () => { interfaceAs: [InterfaceA!]! interfaceBs: [InterfaceB!]! } - - scalar openfed__Scope `, ), ); const fbcConfig = subgraphConfigBySubgraphName.get(fbc.name); expect(fbcConfig).toBeDefined(); expect(fbcConfig!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'InterfaceA', { @@ -540,7 +532,7 @@ describe('@interfaceObject tests', () => { const { federatedGraphSchema } = federateSubgraphsSuccess([fca, fcb], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityA implements EntityInterfaceA { id: ID! @@ -568,8 +560,6 @@ describe('@interfaceObject tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); @@ -644,7 +634,7 @@ describe('@interfaceObject tests', () => { const { federatedGraphSchema } = federateSubgraphsSuccess([fca, fce, fcf], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityA implements EntityInterfaceA { id: ID! @@ -674,8 +664,6 @@ describe('@interfaceObject tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); @@ -685,7 +673,7 @@ describe('@interfaceObject tests', () => { const { federatedGraphSchema } = federateSubgraphsSuccess([fda, fdb], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements EntityInterfaceA & EntityInterfaceB { id: ID! @@ -708,8 +696,6 @@ describe('@interfaceObject tests', () => { interfacesA: [EntityInterfaceA] interfacesB: [EntityInterfaceB] } - - scalar openfed__Scope `, ), ); @@ -719,7 +705,7 @@ describe('@interfaceObject tests', () => { const { federatedGraphSchema } = federateSubgraphsSuccess([fda, fdc], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements EntityInterfaceA & EntityInterfaceB { id: ID! @@ -742,8 +728,6 @@ describe('@interfaceObject tests', () => { interfacesA: [EntityInterfaceA] interfacesB: [EntityInterfaceB] } - - scalar openfed__Scope `, ), ); @@ -788,7 +772,7 @@ describe('@interfaceObject tests', () => { const { federatedGraphSchema } = federateSubgraphsSuccess([ffa, ffb], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityA implements EntityInterfaceA & EntityInterfaceB { id: ID! @@ -835,8 +819,6 @@ describe('@interfaceObject tests', () => { interfacesB: [EntityInterfaceB] interfacesC: [EntityInterfaceC] } - - scalar openfed__Scope `, ), ); diff --git a/composition/tests/v1/directives/one-of.test.ts b/composition/tests/v1/directives/one-of.test.ts index bad58b809d..3366c17b41 100644 --- a/composition/tests/v1/directives/one-of.test.ts +++ b/composition/tests/v1/directives/one-of.test.ts @@ -16,7 +16,7 @@ import { normalizeSubgraphSuccess, schemaToSortedNormalizedString, } from '../../utils/utils'; -import { baseDirectiveDefinitions, schemaQueryDefinition, versionOneRouterDefinitions } from '../utils/utils'; +import { SCHEMA_QUERY_DEFINITION } from '../utils/utils'; describe('@oneOf tests', () => { describe('normalization tests', () => { @@ -57,8 +57,7 @@ describe('@oneOf tests', () => { const { schema } = normalizeSubgraphSuccess(ndaa, ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` input Input @oneOf { a: ID b: String @@ -69,8 +68,6 @@ describe('@oneOf tests', () => { input NestedInput { a: Float } - - scalar openfed__FieldSet `, ), ); @@ -78,15 +75,13 @@ describe('@oneOf tests', () => { test('that a single Input field with @oneOf produces a warning', () => { const { schema, warnings } = normalizeSubgraphSuccess(neaa, ROUTER_COMPATIBILITY_VERSION_ONE); + // The @oneOf directive definition is removed by the printer because it's a native directive expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` input Input @oneOf { a: ID } - - scalar openfed__FieldSet `, ), ); @@ -109,7 +104,7 @@ describe('@oneOf tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input @oneOf { a: ID @@ -123,7 +118,7 @@ describe('@oneOf tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input @oneOf { a: ID @@ -156,7 +151,7 @@ describe('@oneOf tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input @oneOf { a: ID @@ -170,7 +165,7 @@ describe('@oneOf tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input @oneOf { a: ID @@ -208,7 +203,7 @@ describe('@oneOf tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input @oneOf { a: ID @@ -222,7 +217,7 @@ describe('@oneOf tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input @oneOf { a: ID @@ -260,7 +255,7 @@ describe('@oneOf tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input @oneOf { a: ID @@ -274,7 +269,7 @@ describe('@oneOf tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input @oneOf { a: ID @@ -307,7 +302,7 @@ describe('@oneOf tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input @oneOf { c: Int @@ -321,7 +316,7 @@ describe('@oneOf tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` input Input @oneOf { c: Int diff --git a/composition/tests/v1/directives/override.test.ts b/composition/tests/v1/directives/override.test.ts index 07a63ff69d..74441526d7 100644 --- a/composition/tests/v1/directives/override.test.ts +++ b/composition/tests/v1/directives/override.test.ts @@ -12,36 +12,30 @@ import { invalidDirectiveLocationErrorMessage, invalidFieldShareabilityError, invalidOverrideTargetSubgraphNameWarning, - NormalizationFailure, - normalizeSubgraph, ObjectDefinitionData, OVERRIDE, parse, ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph, subgraphValidationError, + TypeName, } from '../../../src'; -import { versionTwoRouterDefinitions } from '../utils/utils'; +import { SCHEMA_QUERY_DEFINITION } from '../utils/utils'; import { batchNormalize } from '../../../src/v1/normalization/normalization-factory'; import { federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, + normalizeSubgraphFailure, schemaToSortedNormalizedString, } from '../../utils/utils'; describe('@override directive tests', () => { describe('normalization tests', () => { test('that an error is returned if the source and target subgraph name for @override are equivalent', () => { - const result = normalizeSubgraph( - subgraphQ.definitions, - subgraphQ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphQ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(OVERRIDE, 'Entity.name', FIRST_ORDINAL, [ equivalentSourceAndTargetOverrideErrorMessage('subgraph-q', 'Entity.name'), ]), @@ -58,7 +52,7 @@ describe('@override directive tests', () => { const g = result.internalSubgraphBySubgraphName.get('subgraph-f'); expect(g).toBeDefined(); expect(a!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -79,7 +73,7 @@ describe('@override directive tests', () => { ]), ); expect(e!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -92,7 +86,7 @@ describe('@override directive tests', () => { ]), ); expect(g!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -109,16 +103,18 @@ describe('@override directive tests', () => { describe('federation tests', () => { test('that a warning is returned if @override targets an unknown subgraph name', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toBeDefined(); - expect(result.warnings![0]).toStrictEqual( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess( + [subgraphA, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(warnings).toBeDefined(); + expect(warnings![0]).toStrictEqual( invalidOverrideTargetSubgraphNameWarning('subgraph-z', 'Entity', ['age'], 'subgraph-b'), ); - expect(result.warnings![0].subgraph.name).toBe('subgraph-b'); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + expect(warnings![0].subgraph.name).toBe('subgraph-b'); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -129,18 +125,15 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an error is returned if @override is declared on multiple instances of a field', () => { - const result = federateSubgraphsFailure([subgraphA, subgraphC, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphA, subgraphC, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( duplicateOverriddenFieldsError([ duplicateOverriddenFieldErrorMessage('Entity.name', ['subgraph-c', 'subgraph-d']), ]), @@ -148,11 +141,13 @@ describe('@override directive tests', () => { }); test('that an overridden field does not need to be declared shareable #1.1', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphC], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -163,19 +158,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #1.2', () => { - const result = federateSubgraphsSuccess([subgraphC, subgraphA], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphC, subgraphA], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -186,19 +181,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #2.1', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphJ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -209,19 +204,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #2.2', () => { - const result = federateSubgraphsSuccess([subgraphJ, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphJ, subgraphI], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -232,19 +227,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #3.1', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphJ, subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphJ, subgraphK], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -256,19 +251,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #3.2', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphK, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphK, subgraphJ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -280,19 +275,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #3.3', () => { - const result = federateSubgraphsSuccess([subgraphJ, subgraphI, subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphJ, subgraphI, subgraphK], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -304,19 +299,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #3.4', () => { - const result = federateSubgraphsSuccess([subgraphJ, subgraphK, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphJ, subgraphK, subgraphI], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -328,19 +323,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #3.5', () => { - const result = federateSubgraphsSuccess([subgraphK, subgraphI, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphK, subgraphI, subgraphJ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -352,19 +347,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #3.6', () => { - const result = federateSubgraphsSuccess([subgraphK, subgraphJ, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphK, subgraphJ, subgraphI], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -376,19 +371,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #4.1', () => { - const result = federateSubgraphsSuccess([subgraphL, subgraphM], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphL, subgraphM], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -398,19 +393,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #4.2', () => { - const result = federateSubgraphsSuccess([subgraphM, subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphM, subgraphL], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -420,19 +415,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #5.1', () => { - const result = federateSubgraphsSuccess([subgraphN, subgraphO], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphN, subgraphO], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -442,19 +437,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #5.2', () => { - const result = federateSubgraphsSuccess([subgraphO, subgraphN], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphO, subgraphN], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -464,19 +459,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #6.1', () => { - const result = federateSubgraphsSuccess([subgraphE, subgraphP], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphE, subgraphP], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -486,19 +481,19 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field does not need to be declared shareable #6.2', () => { - const result = federateSubgraphsSuccess([subgraphP, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphP, subgraphE], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -508,18 +503,15 @@ describe('@override directive tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that > 1 instance of an un-shareable field returns an error regardless of override #1', () => { - const result = federateSubgraphsFailure([subgraphA, subgraphC, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphA, subgraphC, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidFieldShareabilityError( { fieldDataByName: new Map([ @@ -541,10 +533,9 @@ describe('@override directive tests', () => { }); test('that > 1 instance of an un-shareable field returns an error regardless of override #2', () => { - const result = federateSubgraphsFailure([subgraphA, subgraphI, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphA, subgraphI, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidFieldShareabilityError( { fieldDataByName: new Map([ @@ -566,11 +557,10 @@ describe('@override directive tests', () => { }); test('that if @override is declared at an invalid location, an error is returned', () => { - const result = federateSubgraphsFailure([subgraphG, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); + const { errors } = federateSubgraphsFailure([subgraphG, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); const directiveCoords = 'Entity.name(argOne: ...)'; - expect(result.errors[0]).toStrictEqual( + expect(errors[0]).toStrictEqual( subgraphValidationError('subgraph-g', [ invalidDirectiveError(OVERRIDE, directiveCoords, FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(OVERRIDE, ARGUMENT_DEFINITION_UPPER), @@ -580,11 +570,13 @@ describe('@override directive tests', () => { }); test('that an overridden field still contributes to type merging #1.1', () => { - const result = federateSubgraphsSuccess([subgraphR, subgraphS], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphR, subgraphS], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -594,19 +586,19 @@ describe('@override directive tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope `, ), ); }); test('that an overridden field still contributes to type merging #1.2', () => { - const result = federateSubgraphsSuccess([subgraphS, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphS, subgraphR], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -616,40 +608,38 @@ describe('@override directive tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope `, ), ); }); test('that renamed root type fields are successfully overridden #1.1', () => { - const result = federateSubgraphsSuccess([subgraphT, subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, fieldConfigurations, subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphT, subgraphU], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { fieldOne(argOne: Int!): [String] fieldTwo: Int } - - scalar openfed__Scope `, ), ); - expect(result.fieldConfigurations).toStrictEqual([ + expect(fieldConfigurations).toStrictEqual([ { argumentNames: ['argOne'], fieldName: 'fieldOne', typeName: 'Query', }, ]); - const t = result.subgraphConfigBySubgraphName.get('subgraph-t'); + const t = subgraphConfigBySubgraphName.get('subgraph-t'); expect(t).toBeDefined(); expect(t!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -660,10 +650,10 @@ describe('@override directive tests', () => { ], ]), ); - const u = result.subgraphConfigBySubgraphName.get('subgraph-u'); + const u = subgraphConfigBySubgraphName.get('subgraph-u'); expect(u).toBeDefined(); expect(u!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -677,32 +667,32 @@ describe('@override directive tests', () => { }); test('that renamed root type fields are successfully overridden #1.2', () => { - const result = federateSubgraphsSuccess([subgraphU, subgraphT], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, fieldConfigurations, subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphU, subgraphT], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { fieldOne(argOne: Int!): [String] fieldTwo: Int } - - scalar openfed__Scope `, ), ); - expect(result.fieldConfigurations).toStrictEqual([ + expect(fieldConfigurations).toStrictEqual([ { argumentNames: ['argOne'], fieldName: 'fieldOne', typeName: 'Query', }, ]); - const t = result.subgraphConfigBySubgraphName.get('subgraph-t'); + const t = subgraphConfigBySubgraphName.get('subgraph-t'); expect(t).toBeDefined(); expect(t!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -713,10 +703,10 @@ describe('@override directive tests', () => { ], ]), ); - const u = result.subgraphConfigBySubgraphName.get('subgraph-u'); + const u = subgraphConfigBySubgraphName.get('subgraph-u'); expect(u).toBeDefined(); expect(u!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -734,23 +724,21 @@ describe('@override directive tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { field: String! } - - scalar openfed__Scope `, ), ); const v = result.subgraphConfigBySubgraphName.get('subgraph-v'); expect(v).toBeDefined(); - expect(v!.configurationDataByTypeName).toStrictEqual(new Map()); + expect(v!.configurationDataByTypeName).toStrictEqual(new Map()); const w = result.subgraphConfigBySubgraphName.get('subgraph-w'); expect(w).toBeDefined(); expect(w!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -764,27 +752,27 @@ describe('@override directive tests', () => { }); test('that renamed root type fields are successfully overridden #2.2', () => { - const result = federateSubgraphsSuccess([subgraphW, subgraphV], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphW, subgraphV], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { field: String! } - - scalar openfed__Scope `, ), ); - const v = result.subgraphConfigBySubgraphName.get('subgraph-v'); + const v = subgraphConfigBySubgraphName.get('subgraph-v'); expect(v).toBeDefined(); - expect(v!.configurationDataByTypeName).toStrictEqual(new Map()); - const w = result.subgraphConfigBySubgraphName.get('subgraph-w'); + expect(v!.configurationDataByTypeName).toStrictEqual(new Map()); + const w = subgraphConfigBySubgraphName.get('subgraph-w'); expect(w).toBeDefined(); expect(w!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { diff --git a/composition/tests/v1/directives/provides.test.ts b/composition/tests/v1/directives/provides.test.ts index 0c4c4319cc..97333e1c6e 100644 --- a/composition/tests/v1/directives/provides.test.ts +++ b/composition/tests/v1/directives/provides.test.ts @@ -12,13 +12,14 @@ import { invalidSelectionOnUnionErrorMessage, nonExternalConditionalFieldError, nonExternalConditionalFieldWarning, + parse, PROVIDES, ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph, subgraphValidationError, + TypeName, UNION, } from '../../../src'; -import { parse } from 'graphql'; import { federateSubgraphsFailure, federateSubgraphsSuccess, @@ -30,10 +31,9 @@ describe('@provides directive tests', () => { describe('Normalization tests', () => { // TODO test.skip('that a @provides directive is ignored when declared on a non-entity response type', () => { - const result = normalizeSubgraphSuccess(a, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(a, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Object', { @@ -44,14 +44,13 @@ describe('@provides directive tests', () => { ], ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a @provides field set supports an immediate inline fragment', () => { - const result = normalizeSubgraphSuccess(b, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(b, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Object', { @@ -73,14 +72,13 @@ describe('@provides directive tests', () => { ], ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a @provides field set returns an error for an invalid inline fragment', () => { - const result = normalizeSubgraphFailure(c, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors, warnings } = normalizeSubgraphFailure(c, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidProvidesOrRequiresDirectivesError(PROVIDES, [ ` On field "Object.entity":\n -` + invalidInlineFragmentTypeErrorMessage( @@ -91,14 +89,13 @@ describe('@provides directive tests', () => { ), ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a @provides field set supports multiple inline fragments', () => { - const result = normalizeSubgraphSuccess(d, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(d, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Object', { @@ -138,14 +135,13 @@ describe('@provides directive tests', () => { ], ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a @provides field set supports an inline fragment with a valid type condition', () => { - const result = normalizeSubgraphSuccess(e, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(e, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Object', { @@ -183,14 +179,13 @@ describe('@provides directive tests', () => { ], ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a @provides field set returns an error for an inline fragment with an invalid type condition on an Interface', () => { - const result = normalizeSubgraphFailure(f, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors, warnings } = normalizeSubgraphFailure(f, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidProvidesOrRequiresDirectivesError(PROVIDES, [ ` On field "Object.entity":\n -` + invalidInlineFragmentTypeConditionErrorMessage( @@ -202,14 +197,13 @@ describe('@provides directive tests', () => { ), ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a @provides field set supports an inline fragment with a valid type condition on a Union', () => { - const result = normalizeSubgraphSuccess(g, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(g, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Object', { @@ -239,27 +233,25 @@ describe('@provides directive tests', () => { ], ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a @provides field set returns an error if a union does not define a fragment', () => { - const result = normalizeSubgraphFailure(h, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors, warnings } = normalizeSubgraphFailure(h, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidProvidesOrRequiresDirectivesError(PROVIDES, [ ` On field "Object.entity":\n -` + invalidSelectionOnUnionErrorMessage('union { name }', ['Entity.union'], 'Union'), ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a @provides field set returns an error for an inline fragment with an invalid type condition on a Union', () => { - const result = normalizeSubgraphFailure(i, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors, warnings } = normalizeSubgraphFailure(i, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidProvidesOrRequiresDirectivesError(PROVIDES, [ ` On field "Object.entity":\n -` + invalidInlineFragmentTypeConditionErrorMessage( @@ -271,14 +263,13 @@ describe('@provides directive tests', () => { ), ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a @provides field set allows undefined optional arguments', () => { - const result = normalizeSubgraphSuccess(j, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(j, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Object', { @@ -308,14 +299,13 @@ describe('@provides directive tests', () => { ], ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a @provides field set allows defined optional arguments', () => { - const result = normalizeSubgraphSuccess(k, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(k, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Object', { @@ -345,13 +335,15 @@ describe('@provides directive tests', () => { ], ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a @provides directive produces the correct conditional field datas', () => { - const result = normalizeSubgraphSuccess(l, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.conditionalFieldDataByCoordinates).toStrictEqual( + const { conditionalFieldDataByCoordinates, warnings } = normalizeSubgraphSuccess( + l, + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(conditionalFieldDataByCoordinates).toStrictEqual( new Map([ [ 'NestedObject.age', @@ -391,13 +383,15 @@ describe('@provides directive tests', () => { ], ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a @provides directive on a renamed root type produces the correct conditional field datas', () => { - const result = normalizeSubgraphSuccess(m, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.conditionalFieldDataByCoordinates).toStrictEqual( + const { conditionalFieldDataByCoordinates, warnings } = normalizeSubgraphSuccess( + m, + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(conditionalFieldDataByCoordinates).toStrictEqual( new Map([ [ 'NestedObject.age', @@ -437,14 +431,13 @@ describe('@provides directive tests', () => { ], ]), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that an error is returned if provided leaf field in a v2 subgraph is not @external and has no @external ancestor', () => { - const result = normalizeSubgraphFailure(n, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(4); - expect(result.errors[0]).toStrictEqual( + const { errors, warnings } = normalizeSubgraphFailure(n, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(4); + expect(errors[0]).toStrictEqual( nonExternalConditionalFieldError( `Query.entity`, n.name, @@ -453,7 +446,7 @@ describe('@provides directive tests', () => { PROVIDES, ), ); - expect(result.errors[1]).toStrictEqual( + expect(errors[1]).toStrictEqual( nonExternalConditionalFieldError( `Query.entity`, n.name, @@ -462,7 +455,7 @@ describe('@provides directive tests', () => { PROVIDES, ), ); - expect(result.errors[2]).toStrictEqual( + expect(errors[2]).toStrictEqual( nonExternalConditionalFieldError( `Query.entities`, n.name, @@ -471,7 +464,7 @@ describe('@provides directive tests', () => { PROVIDES, ), ); - expect(result.errors[3]).toStrictEqual( + expect(errors[3]).toStrictEqual( nonExternalConditionalFieldError( `Query.entities`, n.name, @@ -480,14 +473,13 @@ describe('@provides directive tests', () => { PROVIDES, ), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a warning is returned if a non-external V1 field is part of both a @provides and @key field set', () => { - const result = normalizeSubgraphSuccess(o, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(o, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Query', { @@ -512,27 +504,25 @@ describe('@provides directive tests', () => { ], ]), ); - expect(result.warnings).toHaveLength(1); - expect(result.warnings[0]).toStrictEqual( + expect(warnings).toHaveLength(1); + expect(warnings[0]).toStrictEqual( nonExternalConditionalFieldWarning(`Query.entity`, o.name, `Entity.id`, `id`, PROVIDES), ); }); test('that an error is returned if a non-external V2 field is part of both a @provides and @key field set', () => { - const result = normalizeSubgraphFailure(p, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors, warnings } = normalizeSubgraphFailure(p, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( nonExternalConditionalFieldError(`Query.entity`, p.name, `Entity.id`, `id`, PROVIDES), ); - expect(result.warnings).toHaveLength(0); + expect(warnings).toHaveLength(0); }); test('that a warning is returned if a nested non-external V1 field is part of both a @provides and @key field set', () => { - const result = normalizeSubgraphSuccess(t, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(t, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Query', { @@ -565,18 +555,17 @@ describe('@provides directive tests', () => { ], ]), ); - expect(result.warnings).toHaveLength(1); - expect(result.warnings[0]).toStrictEqual( + expect(warnings).toHaveLength(1); + expect(warnings[0]).toStrictEqual( nonExternalConditionalFieldWarning(`Query.entity`, t.name, `Object.id`, `object { id }`, PROVIDES), ); }); test.skip('that provided siblings produce the correct configuration data #1', () => { - const result = normalizeSubgraphSuccess(ag, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(ag, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Query', { @@ -625,11 +614,10 @@ describe('@provides directive tests', () => { }); test.skip('that provided siblings produce the correct configuration data #2', () => { - const result = normalizeSubgraphSuccess(ah, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(ah, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Query', { @@ -678,11 +666,10 @@ describe('@provides directive tests', () => { }); test.skip('that provided siblings produce the correct configuration data #3', () => { - const result = normalizeSubgraphSuccess(ai, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(ai, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Query', { @@ -732,11 +719,10 @@ describe('@provides directive tests', () => { }); test.skip('that provided siblings produce the correct configuration data #4', () => { - const result = normalizeSubgraphSuccess(aj, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, warnings } = normalizeSubgraphSuccess(aj, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Query', { @@ -797,10 +783,12 @@ describe('@provides directive tests', () => { describe('Federation tests', () => { test('that non-external v1 fields that form part of a @provides field set are treated as non-conditional but return a warning', () => { - const result = federateSubgraphsSuccess([u, v], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(1); - expect(result.warnings[0]).toStrictEqual( + const { subgraphConfigBySubgraphName, warnings } = federateSubgraphsSuccess( + [u, v], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(warnings).toHaveLength(1); + expect(warnings[0]).toStrictEqual( nonExternalConditionalFieldWarning( 'Query.entity', 'v', @@ -809,10 +797,10 @@ describe('@provides directive tests', () => { PROVIDES, ), ); - const rConfig = result.subgraphConfigBySubgraphName.get(u.name); + const rConfig = subgraphConfigBySubgraphName.get(u.name); expect(rConfig).toBeDefined(); expect(rConfig!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -854,10 +842,10 @@ describe('@provides directive tests', () => { ], ]), ); - const sConfig = result.subgraphConfigBySubgraphName.get(v.name); + const sConfig = subgraphConfigBySubgraphName.get(v.name); expect(sConfig).toBeDefined(); expect(sConfig!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -911,12 +899,14 @@ describe('@provides directive tests', () => { }); test('that a provided implicit key that is not part of a key generates the correct router configuration', () => { - const result = federateSubgraphsSuccess([w, x], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - const xConfig = result.subgraphConfigBySubgraphName.get(x.name); + const { subgraphConfigBySubgraphName, warnings } = federateSubgraphsSuccess( + [w, x], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + const xConfig = subgraphConfigBySubgraphName.get(x.name); expect(xConfig).toBeDefined(); expect(xConfig!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -950,15 +940,18 @@ describe('@provides directive tests', () => { ], ]), ); + expect(warnings).toHaveLength(0); }); test.skip('that a provided implicit key that is part of a key generates the correct router configuration', () => { - const result = federateSubgraphsSuccess([w, y], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - const yConfig = result.subgraphConfigBySubgraphName.get(y.name); + const { subgraphConfigBySubgraphName, warnings } = federateSubgraphsSuccess( + [w, y], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + const yConfig = subgraphConfigBySubgraphName.get(y.name); expect(yConfig).toBeDefined(); expect(yConfig!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -991,15 +984,15 @@ describe('@provides directive tests', () => { ], ]), ); + expect(warnings).toHaveLength(0); }); test.skip('that a provided implicit key generates the correct router configuration #1', () => { - const result = federateSubgraphsSuccess([z, aa], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - const zConfig = result.subgraphConfigBySubgraphName.get(z.name); + const { subgraphConfigBySubgraphName } = federateSubgraphsSuccess([z, aa], ROUTER_COMPATIBILITY_VERSION_ONE); + const zConfig = subgraphConfigBySubgraphName.get(z.name); expect(zConfig).toBeDefined(); expect(zConfig!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -1061,12 +1054,14 @@ describe('@provides directive tests', () => { }); test.skip('that a provided implicit key generates the correct router configuration #2', () => { - const result = federateSubgraphsSuccess([ab, ac], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - const abConfig = result.subgraphConfigBySubgraphName.get(ab.name); + const { subgraphConfigBySubgraphName, warnings } = federateSubgraphsSuccess( + [ab, ac], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + const abConfig = subgraphConfigBySubgraphName.get(ab.name); expect(abConfig).toBeDefined(); expect(abConfig!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -1135,15 +1130,18 @@ describe('@provides directive tests', () => { ], ]), ); + expect(warnings).toHaveLength(0); }); test('that a warning is returned if an external V1 extension entity key field is provided', () => { - const result = federateSubgraphsSuccess([ad, ae], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - const adConfig = result.subgraphConfigBySubgraphName.get(ad.name); + const { subgraphConfigBySubgraphName, warnings } = federateSubgraphsSuccess( + [ad, ae], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + const adConfig = subgraphConfigBySubgraphName.get(ad.name); expect(adConfig).toBeDefined(); expect(adConfig!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -1182,42 +1180,31 @@ describe('@provides directive tests', () => { ], ]), ); - expect(result.warnings).toHaveLength(3); - expect(result.warnings[0]).toStrictEqual( - externalEntityExtensionKeyFieldWarning(`Entity`, `id`, [`Entity.id`], ad.name), - ); - expect(result.warnings[1]).toStrictEqual( - externalEntityExtensionKeyFieldWarning(`Object`, `id`, [`Object.id`], ad.name), - ); - expect(result.warnings[2]).toStrictEqual( - fieldAlreadyProvidedWarning(`Object.id`, PROVIDES, `Entity.object`, ad.name), - ); + expect(warnings).toHaveLength(3); + expect(warnings[0]).toStrictEqual(externalEntityExtensionKeyFieldWarning(`Entity`, `id`, [`Entity.id`], ad.name)); + expect(warnings[1]).toStrictEqual(externalEntityExtensionKeyFieldWarning(`Object`, `id`, [`Object.id`], ad.name)); + expect(warnings[2]).toStrictEqual(fieldAlreadyProvidedWarning(`Object.id`, PROVIDES, `Entity.object`, ad.name)); }); test('that an error is returned if an external V2 extension entity key field is provided', () => { - const result = federateSubgraphsFailure([af, ae], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors, warnings } = federateSubgraphsFailure([af, ae], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( subgraphValidationError(af.name, [ invalidProvidesOrRequiresDirectivesError(PROVIDES, [ ` On field "Entity.object":\n -` + fieldAlreadyProvidedErrorMessage(`Object.id`, af.name, PROVIDES), ]), ]), ); - expect(result.warnings).toHaveLength(2); - expect(result.warnings[0]).toStrictEqual( - externalEntityExtensionKeyFieldWarning(`Entity`, `id`, [`Entity.id`], af.name), - ); - expect(result.warnings[1]).toStrictEqual( - externalEntityExtensionKeyFieldWarning(`Object`, `id`, [`Object.id`], af.name), - ); + expect(warnings).toHaveLength(2); + expect(warnings[0]).toStrictEqual(externalEntityExtensionKeyFieldWarning(`Entity`, `id`, [`Entity.id`], af.name)); + expect(warnings[1]).toStrictEqual(externalEntityExtensionKeyFieldWarning(`Object`, `id`, [`Object.id`], af.name)); }); // TODO test.skip('that provides on Interface is valid', () => { - const result = federateSubgraphsSuccess([q, r, s], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); + const { warnings } = federateSubgraphsSuccess([q, r, s], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(0); }); }); }); diff --git a/composition/tests/v1/directives/require-fetch-reasons.test.ts b/composition/tests/v1/directives/require-fetch-reasons.test.ts index 676f3b6601..41680382d8 100644 --- a/composition/tests/v1/directives/require-fetch-reasons.test.ts +++ b/composition/tests/v1/directives/require-fetch-reasons.test.ts @@ -3,18 +3,14 @@ import { ConfigurationData, FieldName, INTERFACE, + parse, QUERY, ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph, TypeName, } from '../../../src'; -import { parse } from 'graphql'; import { federateSubgraphsSuccess, normalizeString, schemaToSortedNormalizedString } from '../../utils/utils'; -import { - baseDirectiveDefinitionsWithRequireFetchReasons, - schemaQueryDefinition, - versionOneRouterDefinitions, -} from '../utils/utils'; +import { REQUEST_FETCH_REASONS_DIRECTIVE, SCHEMA_QUERY_DEFINITION } from '../utils/utils'; describe('@openfed__requireFetchReasons tests', () => { test('that @openfed__requireFetchReasons is propagated into the router configuration from the field level', () => { @@ -24,7 +20,7 @@ describe('@openfed__requireFetchReasons tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { a: ID @@ -68,7 +64,7 @@ describe('@openfed__requireFetchReasons tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { a: ID @@ -118,7 +114,7 @@ describe('@openfed__requireFetchReasons tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { a: ID @@ -168,7 +164,7 @@ describe('@openfed__requireFetchReasons tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { a: ID @@ -218,7 +214,7 @@ describe('@openfed__requireFetchReasons tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { a: ID @@ -268,7 +264,7 @@ describe('@openfed__requireFetchReasons tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { a: ID @@ -318,7 +314,7 @@ describe('@openfed__requireFetchReasons tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { a: ID @@ -368,7 +364,7 @@ describe('@openfed__requireFetchReasons tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { a: ID @@ -393,8 +389,8 @@ describe('@openfed__requireFetchReasons tests', () => { )!; expect(schemaToSortedNormalizedString(nhaaSchema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitionsWithRequireFetchReasons + + SCHEMA_QUERY_DEFINITION + + REQUEST_FETCH_REASONS_DIRECTIVE + ` interface Interface { a: ID @@ -409,8 +405,6 @@ describe('@openfed__requireFetchReasons tests', () => { c: ID @openfed__requireFetchReasons d: ID @openfed__requireFetchReasons } - - scalar openfed__FieldSet `, ), ); @@ -441,8 +435,8 @@ describe('@openfed__requireFetchReasons tests', () => { )!; expect(schemaToSortedNormalizedString(nhabSchema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitionsWithRequireFetchReasons + + SCHEMA_QUERY_DEFINITION + + REQUEST_FETCH_REASONS_DIRECTIVE + ` interface Interface { a: ID @openfed__requireFetchReasons @@ -459,8 +453,6 @@ describe('@openfed__requireFetchReasons tests', () => { d: ID @openfed__requireFetchReasons e: ID @openfed__requireFetchReasons } - - scalar openfed__FieldSet `, ), ); diff --git a/composition/tests/v1/directives/semantic-non-null.test.ts b/composition/tests/v1/directives/semantic-non-null.test.ts index 344e4642b3..28c43c057a 100644 --- a/composition/tests/v1/directives/semantic-non-null.test.ts +++ b/composition/tests/v1/directives/semantic-non-null.test.ts @@ -21,12 +21,7 @@ import { normalizeSubgraphSuccess, schemaToSortedNormalizedString, } from '../../utils/utils'; -import { - baseDirectiveDefinitionsWithSemanticNonNull, - schemaQueryDefinition, - semanticNonNullDefinition, - versionOneRouterDefinitionsWithSemanticNonNull, -} from '../utils/utils'; +import { SCHEMA_QUERY_DEFINITION, SEMANTIC_NON_NULL_DIRECTIVE } from '../utils/utils'; describe('@semanticNonNull tests', () => { describe('normalization tests', () => { @@ -105,14 +100,12 @@ describe('@semanticNonNull tests', () => { const { schema } = normalizeSubgraphSuccess(naf, ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitionsWithSemanticNonNull + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: ID @semanticNonNull } - - scalar openfed__FieldSet `, ), ); @@ -127,7 +120,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitionsWithSemanticNonNull + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: ID @semanticNonNull(levels: [0]) @@ -137,8 +131,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + - semanticNonNullDefinition + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: ID @semanticNonNull(levels: [0]) @@ -155,7 +149,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitionsWithSemanticNonNull + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: ID @semanticNonNull(levels: [0]) @@ -165,8 +160,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + - semanticNonNullDefinition + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: ID @semanticNonNull(levels: [0]) @@ -183,7 +178,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitionsWithSemanticNonNull + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: ID @semanticNonNull(levels: [0]) @@ -193,8 +189,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + - semanticNonNullDefinition + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: ID @semanticNonNull(levels: [0]) @@ -211,7 +207,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitionsWithSemanticNonNull + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: [ID] @semanticNonNull(levels: [1]) @@ -221,8 +218,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + - semanticNonNullDefinition + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: [ID] @semanticNonNull(levels: [1]) @@ -239,7 +236,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitionsWithSemanticNonNull + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: [ID] @semanticNonNull(levels: [0, 1]) @@ -249,8 +247,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + - semanticNonNullDefinition + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: [ID] @semanticNonNull(levels: [0, 1]) @@ -267,7 +265,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitionsWithSemanticNonNull + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: [ID]! @semanticNonNull(levels: [1]) @@ -277,8 +276,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + - semanticNonNullDefinition + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: [ID]! @semanticNonNull(levels: [1]) @@ -295,7 +294,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitionsWithSemanticNonNull + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: [[[ID]!]!] @semanticNonNull(levels: [0, 3]) @@ -305,8 +305,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + - semanticNonNullDefinition + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: [[[ID]!]!] @semanticNonNull(levels: [0, 3]) @@ -323,7 +323,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitionsWithSemanticNonNull + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: ID @semanticNonNull(levels: [0]) @@ -333,8 +334,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + - semanticNonNullDefinition + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: ID @semanticNonNull(levels: [0]) @@ -351,7 +352,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitionsWithSemanticNonNull + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: ID @semanticNonNull(levels: [0]) @@ -361,8 +363,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + - semanticNonNullDefinition + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: ID @semanticNonNull(levels: [0]) @@ -395,7 +397,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitionsWithSemanticNonNull + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: [[[ID]]] @semanticNonNull(levels: [0, 2]) @@ -405,8 +408,8 @@ describe('@semanticNonNull tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + - semanticNonNullDefinition + + SCHEMA_QUERY_DEFINITION + + SEMANTIC_NON_NULL_DIRECTIVE + ` type Query { a: [[[ID]]] @semanticNonNull(levels: [0, 2]) diff --git a/composition/tests/v1/directives/shareable.test.ts b/composition/tests/v1/directives/shareable.test.ts index e38851da55..5e2abbb4fb 100644 --- a/composition/tests/v1/directives/shareable.test.ts +++ b/composition/tests/v1/directives/shareable.test.ts @@ -2,177 +2,103 @@ import { describe, expect, test } from 'vitest'; import { FieldData, invalidFieldShareabilityError, - NormalizationSuccess, - normalizeSubgraph, - normalizeSubgraphFromString, ObjectDefinitionData, parse, ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph, } from '../../../src'; -import { versionTwoDirectiveDefinitions, versionTwoRouterDefinitions } from '../utils/utils'; +import { KEY_DIRECTIVE, OPENFED_FIELD_SET, SCHEMA_QUERY_DEFINITION, SHAREABLE_DIRECTIVE } from '../utils/utils'; import { federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, + normalizeSubgraphSuccess, schemaToSortedNormalizedString, } from '../../utils/utils'; describe('@shareable directive tests', () => { describe('Normalization tests', () => { test('that @shareable declared on the object level applies to all its defined fields #1.1', () => { - const result = normalizeSubgraphFromString( - ` - type Object { - shareableFieldOne(argOne: String!, argTwo: Boolean!): String @shareable - nonShareableFieldOne: Boolean! - } - - extend type Object @shareable { - shareableFieldTwo: Int! - shareableFieldThree: Float - } - - extend type Object @shareable { - """ - This is the description for Object.shareableFieldFour - """ - shareableFieldFour: String! - } - - extend type Object { - nonShareableFieldTwo(argOne: Int, """This is a description for Object.nonShareableFieldTwo.argTwo""" argTwo: Boolean!): Float! - nonShareableFieldThree: Boolean - } - `, - true, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(naaaa, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionTwoDirectiveDefinitions + + SHAREABLE_DIRECTIVE + ` type Object { nonShareableFieldOne: Boolean! nonShareableFieldThree: Boolean - nonShareableFieldTwo(argOne: Int"""This is a description for Object.nonShareableFieldTwo.argTwo"""argTwo: Boolean!): Float! - """ - This is the description for Object.shareableFieldFour - """ + nonShareableFieldTwo( + argOne: Int + """This is a description for Object.nonShareableFieldTwo.argTwo""" + argTwo: Boolean! + ): Float! + """This is the description for Object.shareableFieldFour""" shareableFieldFour: String! @shareable shareableFieldOne(argOne: String!, argTwo: Boolean!): String @shareable shareableFieldThree: Float @shareable shareableFieldTwo: Int! @shareable } - - scalar openfed__FieldSet - scalar openfed__Scope `, ), ); }); test('that @shareable declared on the object level applies to all its defined fields #1.2', () => { - const result = normalizeSubgraphFromString( - ` - extend type Object @shareable { - """ - This is the description for Object.shareableFieldFour - """ - shareableFieldFour: String! - } - - extend type Object { - nonShareableFieldTwo(argOne: Int, """This is a description for Object.nonShareableFieldTwo.argTwo""" argTwo: Boolean!): Float! - nonShareableFieldThree: Boolean - } - - extend type Object @shareable { - shareableFieldTwo: Int! - shareableFieldThree: Float - } - - type Object { - shareableFieldOne(argOne: String!, argTwo: Boolean!): String @shareable - nonShareableFieldOne: Boolean! - } - `, - true, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(nbaaa, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionTwoDirectiveDefinitions + + SHAREABLE_DIRECTIVE + ` type Object { nonShareableFieldOne: Boolean! nonShareableFieldThree: Boolean - nonShareableFieldTwo(argOne: Int"""This is a description for Object.nonShareableFieldTwo.argTwo"""argTwo: Boolean!): Float! - """ - This is the description for Object.shareableFieldFour - """ + nonShareableFieldTwo( + argOne: Int + """This is a description for Object.nonShareableFieldTwo.argTwo""" + argTwo: Boolean! + ): Float! + """This is the description for Object.shareableFieldFour""" shareableFieldFour: String! @shareable shareableFieldOne(argOne: String!, argTwo: Boolean!): String @shareable shareableFieldThree: Float @shareable shareableFieldTwo: Int! @shareable } - - scalar openfed__FieldSet - scalar openfed__Scope `, ), ); }); test('that @shareable declared on both the parent and field level is not repeated', () => { - const result = normalizeSubgraph( - subgraphD.definitions, - subgraphD.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphD, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionTwoDirectiveDefinitions + + KEY_DIRECTIVE + + SHAREABLE_DIRECTIVE + ` type Entity @key(fields: "id") { field: String! @shareable id: ID! @shareable } - - scalar openfed__FieldSet - - scalar openfed__Scope - `, + ` + + OPENFED_FIELD_SET, ), ); }); test('that @shareable can be repeated', () => { - const result = normalizeSubgraph( - subgraphE.definitions, - subgraphE.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toStrictEqual( + const { schema } = normalizeSubgraphSuccess(subgraphE, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toStrictEqual( normalizeString( - versionTwoDirectiveDefinitions + + KEY_DIRECTIVE + + SHAREABLE_DIRECTIVE + ` type Entity @key(fields: "id") { field: String! @shareable id: ID! name: String! @shareable } - - scalar openfed__FieldSet - - scalar openfed__Scope - `, + ` + + OPENFED_FIELD_SET, ), ); }); @@ -180,10 +106,13 @@ describe('@shareable directive tests', () => { describe('Federation tests', () => { test('that @shareable functions with extensions correctly #1.1', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphB, subgraphC], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { field: String! @@ -197,18 +126,19 @@ describe('@shareable directive tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope`, + `, ), ); }); test('that @shareable functions with extensions correctly #1.2', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphC, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphC, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { field: String! @@ -222,18 +152,19 @@ describe('@shareable directive tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope`, + `, ), ); }); test('that @shareable functions with extensions correctly #1.3', () => { - const result = federateSubgraphsSuccess([subgraphB, subgraphA, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphB, subgraphA, subgraphC], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { field: String! @@ -247,18 +178,19 @@ describe('@shareable directive tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope`, + `, ), ); }); test('that @shareable functions with extensions correctly #1.4', () => { - const result = federateSubgraphsSuccess([subgraphB, subgraphC, subgraphA], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphB, subgraphC, subgraphA], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { field: String! @@ -272,18 +204,19 @@ describe('@shareable directive tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope`, + `, ), ); }); test('that @shareable functions with extensions correctly #1.5', () => { - const result = federateSubgraphsSuccess([subgraphC, subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphC, subgraphA, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { field: String! @@ -297,18 +230,19 @@ describe('@shareable directive tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope`, + `, ), ); }); test('that @shareable functions with extensions correctly #1.6', () => { - const result = federateSubgraphsSuccess([subgraphC, subgraphB, subgraphA], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphC, subgraphB, subgraphA], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { field: String! @@ -322,18 +256,16 @@ describe('@shareable directive tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope`, + `, ), ); }); }); test('that an error is returned if a V2 implicit key field is not declared @shareable #1.1', () => { - const result = federateSubgraphsFailure([subgraphF, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphF, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidFieldShareabilityError( { name: 'Entity', @@ -355,10 +287,9 @@ describe('@shareable directive tests', () => { }); test('that an error is returned if a V2 implicit key field is not declared @shareable #1.2', () => { - const result = federateSubgraphsFailure([subgraphG, subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphG, subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidFieldShareabilityError( { name: 'Entity', @@ -380,10 +311,10 @@ describe('@shareable directive tests', () => { }); test('that an @external key field does not contribute to @shareable errors #1.1', () => { - const result = federateSubgraphsSuccess([subgraphG, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphG, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { field: String! @@ -394,17 +325,16 @@ describe('@shareable directive tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope`, + `, ), ); }); test('that an @external key field does not contribute to @shareable errors #1.2', () => { - const result = federateSubgraphsSuccess([subgraphH, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphH, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { field: String! @@ -415,8 +345,7 @@ describe('@shareable directive tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope`, + `, ), ); }); @@ -448,6 +377,69 @@ describe('@shareable directive tests', () => { }); }); +const naaaa: Subgraph = { + name: 'naaaa', + url: '', + definitions: parse(` + type Object { + shareableFieldOne( + argOne: String! + argTwo: Boolean! + ): String @shareable + nonShareableFieldOne: Boolean! + } + + extend type Object @shareable { + shareableFieldTwo: Int! + shareableFieldThree: Float + } + + extend type Object @shareable { + """ + This is the description for Object.shareableFieldFour + """ + shareableFieldFour: String! + } + + extend type Object { + nonShareableFieldTwo( + argOne: Int + """This is a description for Object.nonShareableFieldTwo.argTwo""" + argTwo: Boolean! + ): Float! + nonShareableFieldThree: Boolean + } + `), +}; + +const nbaaa: Subgraph = { + name: 'nbaaa', + url: '', + definitions: parse(` + extend type Object @shareable { + """ + This is the description for Object.shareableFieldFour + """ + shareableFieldFour: String! + } + + extend type Object { + nonShareableFieldTwo(argOne: Int, """This is a description for Object.nonShareableFieldTwo.argTwo""" argTwo: Boolean!): Float! + nonShareableFieldThree: Boolean + } + + extend type Object @shareable { + shareableFieldTwo: Int! + shareableFieldThree: Float + } + + type Object { + shareableFieldOne(argOne: String!, argTwo: Boolean!): String @shareable + nonShareableFieldOne: Boolean! + } + `), +}; + const subgraphA: Subgraph = { name: 'subgraph-a', url: '', diff --git a/composition/tests/v1/directives/subscription-filter.test.ts b/composition/tests/v1/directives/subscription-filter.test.ts index dcdce84a15..bb2f512636 100644 --- a/composition/tests/v1/directives/subscription-filter.test.ts +++ b/composition/tests/v1/directives/subscription-filter.test.ts @@ -14,9 +14,7 @@ import { LIST, nonKeyComposingObjectTypeNamesEventDrivenErrorMessage, nonLeafSubscriptionFieldConditionFieldPathFinalFieldErrorMessage, - NormalizationFailure, NormalizationSuccess, - normalizeSubgraph, NULL, OBJECT, parse, @@ -33,54 +31,46 @@ import { subscriptionFilterConditionInvalidInputFieldErrorMessage, subscriptionFilterConditionInvalidInputFieldTypeErrorMessage, } from '../../../src'; -import { versionOnePersistedDirectiveDefinitions } from '../utils/utils'; import { federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, + normalizeSubgraphFailure, + normalizeSubgraphSuccess, schemaToSortedNormalizedString, } from '../../utils/utils'; +import { + OPENFED_FIELD_SET, + OPENFED_SUBSCRIPTION_FIELD_CONDITION, + OPENFED_SUBSCRIPTION_FILTER_CONDITION, + OPENFED_SUBSCRIPTION_FILTER_VALUE, +} from '../utils/utils'; describe('@openfed__subscriptionFilter tests', () => { describe('Normalization tests', () => { test('that an error is returned if the directive is defined on a non-subscription root field', () => { - const result = normalizeSubgraph( - subgraphA.definitions, - subgraphA.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(2); - expect(result.errors[0]).toStrictEqual(invalidSubscriptionFilterLocationError('Object.field')); - expect(result.errors[1]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphA, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(2); + expect(errors[0]).toStrictEqual(invalidSubscriptionFilterLocationError('Object.field')); + expect(errors[1]).toStrictEqual( invalidEventDrivenGraphError([nonKeyComposingObjectTypeNamesEventDrivenErrorMessage([OBJECT])]), ); }); test('that subscriptionFilter inputs and scalar are injected', () => { - const result = normalizeSubgraph( - subgraphC.definitions, - subgraphC.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( - normalizeString(` + const { schema } = normalizeSubgraphSuccess(subgraphC, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( + normalizeString( + ` schema { subscription: Subscription } directive @edfs__kafkaSubscribe(providerId: String! = "default", topics: [String!]!) on FIELD_DEFINITION - directive @extends on INTERFACE | OBJECT directive @external on FIELD_DEFINITION | OBJECT directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT directive @openfed__subscriptionFilter(condition: openfed__SubscriptionFilterCondition!) on FIELD_DEFINITION - directive @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION - directive @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION - directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION - + type Entity @key(fields: "id", resolvable: false) { id: ID! @external } @@ -88,49 +78,29 @@ describe('@openfed__subscriptionFilter tests', () => { type Subscription { field: Entity! @edfs__kafkaSubscribe(topics: ["employeeUpdated"]) @openfed__subscriptionFilter(condition: {IN: {fieldPath: "id", values: ["1"]}}) } - - scalar openfed__FieldSet - - input openfed__SubscriptionFieldCondition { - fieldPath: String! - values: [openfed__SubscriptionFilterValue]! - } - - input openfed__SubscriptionFilterCondition { - AND: [openfed__SubscriptionFilterCondition!] - IN: openfed__SubscriptionFieldCondition - NOT: openfed__SubscriptionFilterCondition - OR: [openfed__SubscriptionFilterCondition!] - } - - scalar openfed__SubscriptionFilterValue - `), + ` + + OPENFED_FIELD_SET + + OPENFED_SUBSCRIPTION_FIELD_CONDITION + + OPENFED_SUBSCRIPTION_FILTER_CONDITION + + OPENFED_SUBSCRIPTION_FILTER_VALUE, + ), ); }); test('that inputs and scalars that are injected can be self-defined', () => { - const result = normalizeSubgraph( - subgraphG.definitions, - subgraphG.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( - normalizeString(` + const { schema } = normalizeSubgraphSuccess(subgraphG, ROUTER_COMPATIBILITY_VERSION_ONE) as NormalizationSuccess; + expect(schemaToSortedNormalizedString(schema)).toBe( + normalizeString( + ` schema { subscription: Subscription } directive @edfs__kafkaSubscribe(providerId: String! = "default", topics: [String!]!) on FIELD_DEFINITION - directive @extends on INTERFACE | OBJECT directive @external on FIELD_DEFINITION | OBJECT directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT directive @openfed__subscriptionFilter(condition: openfed__SubscriptionFilterCondition!) on FIELD_DEFINITION - directive @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION - directive @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION - directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION - + type Entity @key(fields: "id", resolvable: false) { id: ID! @external } @@ -138,35 +108,19 @@ describe('@openfed__subscriptionFilter tests', () => { type Subscription { field: Entity! @edfs__kafkaSubscribe(topics: ["employeeUpdated"]) @openfed__subscriptionFilter(condition: {IN: {fieldPath: "id", values: [1]}}) } - - scalar openfed__FieldSet - - input openfed__SubscriptionFieldCondition { - fieldPath: String! - values: [openfed__SubscriptionFilterValue]! - } - - input openfed__SubscriptionFilterCondition { - AND: [openfed__SubscriptionFilterCondition!] - IN: openfed__SubscriptionFieldCondition - NOT: openfed__SubscriptionFilterCondition - OR: [openfed__SubscriptionFilterCondition!] - } - - scalar openfed__SubscriptionFilterValue - `), + ` + + OPENFED_FIELD_SET + + OPENFED_SUBSCRIPTION_FIELD_CONDITION + + OPENFED_SUBSCRIPTION_FILTER_CONDITION + + OPENFED_SUBSCRIPTION_FILTER_VALUE, + ), ); }); test('that an error is returned if @openfed__subscriptionFilter is repeated', () => { - const result = normalizeSubgraph( - subgraphK.definitions, - subgraphK.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.errors).toHaveLength(1); - expect(result.errors).toStrictEqual([ + const { errors } = normalizeSubgraphFailure(subgraphK, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors).toStrictEqual([ invalidDirectiveError('openfed__subscriptionFilter', 'Subscription.one', FIRST_ORDINAL, [ invalidRepeatedDirectiveErrorMessage('openfed__subscriptionFilter'), ]), @@ -500,17 +454,17 @@ describe('@openfed__subscriptionFilter tests', () => { }); test('that an entity can be defined as an extension in an EDG', () => { - const result = federateSubgraphsSuccess([subgraphQ, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphQ, subgraphR], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( `schema { query: Query subscription: Subscription } - ` + - versionOnePersistedDirectiveDefinitions + - ` + type Entity { id: ID! name: String! @@ -523,20 +477,6 @@ describe('@openfed__subscriptionFilter tests', () => { type Subscription { field: Entity! } - - input openfed__SubscriptionFieldCondition { - fieldPath: String! - values: [openfed__SubscriptionFilterValue]! - } - - input openfed__SubscriptionFilterCondition { - AND: [openfed__SubscriptionFilterCondition!] - IN: openfed__SubscriptionFieldCondition - NOT: openfed__SubscriptionFilterCondition - OR: [openfed__SubscriptionFilterCondition!] - } - - scalar openfed__SubscriptionFilterValue `, ), ); diff --git a/composition/tests/v1/directives/v2-directives.test.ts b/composition/tests/v1/directives/v2-directives.test.ts index abf105aab1..4a923fa992 100644 --- a/composition/tests/v1/directives/v2-directives.test.ts +++ b/composition/tests/v1/directives/v2-directives.test.ts @@ -7,9 +7,8 @@ import { ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph, } from '../../../src'; -import { versionOnePersistedBaseSchema, versionTwoRouterDefinitions } from '../utils/utils'; +import { SCHEMA_QUERY_DEFINITION } from '../utils/utils'; import { - documentNodeToNormalizedString, federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, @@ -18,11 +17,13 @@ import { describe('V2 Directives Tests', () => { test('that external fields do not produce shareable errors', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphB, subgraphC], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -33,38 +34,37 @@ describe('V2 Directives Tests', () => { type Query { query: Entity! } - - scalar openfed__Scope `, ), ); }); test('that if all fields but one are external, no shareable error is returned', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(documentNodeToNormalizedString(result.federatedGraphAST)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphB, subgraphE], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOnePersistedBaseSchema + + SCHEMA_QUERY_DEFINITION + ` - type Query { - query: Entity! - } - type Entity { id: ID! name: String! } + + type Query { + query: Entity! + } `, ), ); }); test('that unshareable fields defined in multiple subgraphs return an error', () => { - const result = federateSubgraphsFailure([subgraphC, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphC, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidFieldShareabilityError( { name: 'Entity', diff --git a/composition/tests/v1/entities.test.ts b/composition/tests/v1/entities.test.ts index ff7e202c96..361d0d476d 100644 --- a/composition/tests/v1/entities.test.ts +++ b/composition/tests/v1/entities.test.ts @@ -1,29 +1,27 @@ import { ConfigurationData, duplicateDirectiveArgumentDefinitionsErrorMessage, - FederationFailure, FieldData, FIELDS, FIRST_ORDINAL, invalidDirectiveError, invalidFieldShareabilityError, KEY, - NormalizationFailure, - normalizeSubgraph, ObjectDefinitionData, parse, ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph, + TypeName, undefinedRequiredArgumentsErrorMessage, unexpectedDirectiveArgumentErrorMessage, } from '../../src'; import { describe, expect, test } from 'vitest'; -import { versionOnePersistedBaseSchema, versionOneRouterDefinitions, versionTwoRouterDefinitions } from './utils/utils'; +import { SCHEMA_QUERY_DEFINITION } from './utils/utils'; import { - documentNodeToNormalizedString, federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, + normalizeSubgraphFailure, schemaToSortedNormalizedString, } from '../utils/utils'; @@ -31,22 +29,16 @@ describe('Entity tests', () => { describe('Entity normalization tests', () => { test('that an error is returned if the @key directive is defined with invalid arguments', () => { const directiveCoords = 'Entity'; - const result = normalizeSubgraph( - subgraphT.definitions, - subgraphT.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(2); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphT, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(2); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, directiveCoords, FIRST_ORDINAL, [ duplicateDirectiveArgumentDefinitionsErrorMessage(['duplicateUnknownArgument']), unexpectedDirectiveArgumentErrorMessage(KEY, ['unknownArgument', 'duplicateUnknownArgument']), undefinedRequiredArgumentsErrorMessage(KEY, [FIELDS], [FIELDS]), ]), ); - expect(result.errors[1]).toStrictEqual( + expect(errors[1]).toStrictEqual( invalidDirectiveError(KEY, directiveCoords, '2nd', [ duplicateDirectiveArgumentDefinitionsErrorMessage([FIELDS]), ]), @@ -56,135 +48,140 @@ describe('Entity tests', () => { describe('Entity federation tests', () => { test('that entities merge successfully', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - const federatedGraph = result.federatedGraphAST; - expect(documentNodeToNormalizedString(federatedGraph)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOnePersistedBaseSchema + + SCHEMA_QUERY_DEFINITION + ` + type Details { + age: Int! + name: String! + } + + type Pokemon { + level: Int! + name: String! + } + type Query { dummy: String! } type Trainer { - id: Int! details: Details! + id: Int! pokemon: [Pokemon!]! } - - type Details { - name: String! - age: Int! - } - - type Pokemon { - name: String! - level: Int! - } `, ), ); }); test('that an entity and non-declared entity merge if the non-entity is resolvable', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - const federatedGraph = result.federatedGraphAST; - expect(documentNodeToNormalizedString(federatedGraph)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphC], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOnePersistedBaseSchema + + SCHEMA_QUERY_DEFINITION + ` + type Details { + age: Int! + name: String! + } + + type Pokemon { + level: Int! + name: String! + } + type Query { dummy: String! trainer: Trainer! } type Trainer { - id: Int! details: Details! + id: Int! pokemon: [Pokemon!]! } - - type Details { - name: String! - age: Int! - } - - type Pokemon { - name: String! - level: Int! - } `, ), ); }); test('that ancestors of resolvable entities are also determined to be resolvable', () => { - const result = federateSubgraphsSuccess([subgraphC, subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - const federatedGraph = result.federatedGraphAST; - expect(documentNodeToNormalizedString(federatedGraph)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphC, subgraphF], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOnePersistedBaseSchema + + SCHEMA_QUERY_DEFINITION + ` - type Query { - trainer: Trainer! + type Details { + facts: [Fact]! + name: String! } - - type Trainer { - id: Int! - pokemon: [Pokemon!]! - details: Details! + + type Fact { + content: String! } - + type Pokemon { - name: String! level: Int! - } - - type Details { name: String! - facts: [Fact]! + } + + type Query { + trainer: Trainer! } - type Fact { - content: String! + type Trainer { + details: Details! + id: Int! + pokemon: [Pokemon!]! } `, ), ); }); - test('that ancestors of resolvable entities that are not in the same subgraph return an error', () => { - const result = federateSubgraphsSuccess([subgraphC, subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - const federatedGraph = result.federatedGraphAST; - expect(documentNodeToNormalizedString(federatedGraph)).toBe( + test('that an entity and its descendants in another subgraph are determined to be resolvable', () => { + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphC, subgraphF], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOnePersistedBaseSchema + + SCHEMA_QUERY_DEFINITION + ` - type Query { - trainer: Trainer! + type Details { + facts: [Fact]! + name: String! } - type Trainer { - id: Int! - pokemon: [Pokemon!]! - details: Details! + type Fact { + content: String! } - + type Pokemon { - name: String! level: Int! - } - - type Details { name: String! - facts: [Fact]! + } + + type Query { + trainer: Trainer! } - type Fact { - content: String! + type Trainer { + details: Details! + id: Int! + pokemon: [Pokemon!]! } `, ), @@ -192,31 +189,32 @@ describe('Entity tests', () => { }); test('that V1 and V2 entities merge successfully', () => { - const result = federateSubgraphsSuccess([subgraphB, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - const federatedGraph = result.federatedGraphAST; - expect(documentNodeToNormalizedString(federatedGraph)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphB, subgraphG], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOnePersistedBaseSchema + + SCHEMA_QUERY_DEFINITION + ` - type Trainer { - id: Int! - pokemon: [Pokemon!]! - details: Details! + type Details { + age: Int! + name: String! } - + type Pokemon { - name: String! level: Int! + name: String! } type Query { dummy: String! } - - type Details { - name: String! - age: Int! + + type Trainer { + details: Details! + id: Int! + pokemon: [Pokemon!]! } `, ), @@ -224,11 +222,10 @@ describe('Entity tests', () => { }); test('that interfaces can declare the @key directive', () => { - const result = federateSubgraphsSuccess([subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -245,10 +242,9 @@ describe('Entity tests', () => { }); test('that errors are returned for non-shareable fields, even if they compose an adopted implicit entity key', () => { - const result = federateSubgraphsFailure([subgraphL, subgraphM], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors.length).toBe(2); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphL, subgraphM], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(2); + expect(errors[0]).toStrictEqual( invalidFieldShareabilityError( { name: 'Entity', @@ -285,7 +281,7 @@ describe('Entity tests', () => { new Set(['id', 'object', 'age']), ), ); - expect(result.errors[1]).toStrictEqual( + expect(errors[1]).toStrictEqual( invalidFieldShareabilityError( { name: 'Object', @@ -318,15 +314,16 @@ describe('Entity tests', () => { describe('Entity configuration tests', () => { test('that the correct configuration is returned when a resolvable in a key directive is set to false', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - - const i = result.subgraphConfigBySubgraphName.get('subgraph-i'); + const { subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphI, subgraphJ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + const i = subgraphConfigBySubgraphName.get('subgraph-i'); expect(i).toBeDefined(); - const j = result.subgraphConfigBySubgraphName.get('subgraph-j'); + const j = subgraphConfigBySubgraphName.get('subgraph-j'); expect(j).toBeDefined(); expect(i!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -347,7 +344,7 @@ describe('Entity tests', () => { ]), ); expect(j!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -362,15 +359,16 @@ describe('Entity tests', () => { }); test('that the correct configuration is returned for implicit entities #1', () => { - const result = federateSubgraphsSuccess([subgraphJ, subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - - const j = result.subgraphConfigBySubgraphName.get('subgraph-j'); + const { subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphJ, subgraphK], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + const j = subgraphConfigBySubgraphName.get('subgraph-j'); expect(j).toBeDefined(); - const k = result.subgraphConfigBySubgraphName.get('subgraph-k'); + const k = subgraphConfigBySubgraphName.get('subgraph-k'); expect(k).toBeDefined(); expect(j!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -383,7 +381,7 @@ describe('Entity tests', () => { ]), ); expect(k!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -406,15 +404,16 @@ describe('Entity tests', () => { }); test('that the correct configuration is returned for implicit entities with multiple valid keys', () => { - const result = federateSubgraphsSuccess([subgraphK, subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - - const k = result.subgraphConfigBySubgraphName.get('subgraph-k'); + const { subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphK, subgraphL], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + const k = subgraphConfigBySubgraphName.get('subgraph-k'); expect(k).toBeDefined(); - const l = result.subgraphConfigBySubgraphName.get('subgraph-l'); + const l = subgraphConfigBySubgraphName.get('subgraph-l'); expect(l).toBeDefined(); expect(k!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -435,7 +434,7 @@ describe('Entity tests', () => { ]), ); expect(l!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -461,22 +460,20 @@ describe('Entity tests', () => { }); test('that the correct configuration is returned for implicit entities with multiple valid and invalid keys across several graphs', () => { - const result = federateSubgraphsSuccess( + const { subgraphConfigBySubgraphName } = federateSubgraphsSuccess( [subgraphO, subgraphP, subgraphQ, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - - const o = result.subgraphConfigBySubgraphName.get('subgraph-o'); + const o = subgraphConfigBySubgraphName.get('subgraph-o'); expect(o).toBeDefined(); - const p = result.subgraphConfigBySubgraphName.get('subgraph-p'); + const p = subgraphConfigBySubgraphName.get('subgraph-p'); expect(p).toBeDefined(); - const q = result.subgraphConfigBySubgraphName.get('subgraph-q'); + const q = subgraphConfigBySubgraphName.get('subgraph-q'); expect(q).toBeDefined(); - const r = result.subgraphConfigBySubgraphName.get('subgraph-r'); + const r = subgraphConfigBySubgraphName.get('subgraph-r'); expect(r).toBeDefined(); expect(o!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -516,7 +513,7 @@ describe('Entity tests', () => { ]), ); expect(p!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -532,7 +529,7 @@ describe('Entity tests', () => { ]), ); expect(q!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -564,7 +561,7 @@ describe('Entity tests', () => { ]), ); expect(r!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -579,12 +576,11 @@ describe('Entity tests', () => { }); test('that resolvable false is correctly propagated in the ConfigurationData', () => { - const result = federateSubgraphsSuccess([subgraphS], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - const s = result.subgraphConfigBySubgraphName.get('subgraph-s'); + const { subgraphConfigBySubgraphName } = federateSubgraphsSuccess([subgraphS], ROUTER_COMPATIBILITY_VERSION_ONE); + const s = subgraphConfigBySubgraphName.get('subgraph-s'); expect(s).toBeDefined(); expect(s!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -609,12 +605,14 @@ describe('Entity tests', () => { ); }); - test('that if a target key can be satisfied, it will included in the router configuration #1.1', () => { - const result = federateSubgraphsSuccess([subgraphU, subgraphV], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + test('that if a target key can be satisfied, it will be included in the router configuration #1.1', () => { + const { federatedGraphSchema, subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphU, subgraphV], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { a: Int! @@ -629,12 +627,12 @@ describe('Entity tests', () => { `, ), ); - const u = result.subgraphConfigBySubgraphName.get('subgraph-u'); + const u = subgraphConfigBySubgraphName.get('subgraph-u'); expect(u).toBeDefined(); - const v = result.subgraphConfigBySubgraphName.get('subgraph-v'); + const v = subgraphConfigBySubgraphName.get('subgraph-v'); expect(v).toBeDefined(); expect(u!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -658,7 +656,7 @@ describe('Entity tests', () => { ]), ); expect(v!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -672,12 +670,14 @@ describe('Entity tests', () => { ); }); - test('that if a target key can be satisfied, it will included in the router configuration #1.2', () => { - const result = federateSubgraphsSuccess([subgraphV, subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + test('that if a target key can be satisfied, it will be included in the router configuration #1.2', () => { + const { federatedGraphSchema, subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphV, subgraphU], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { a: Int! @@ -692,12 +692,12 @@ describe('Entity tests', () => { `, ), ); - const u = result.subgraphConfigBySubgraphName.get('subgraph-u'); + const u = subgraphConfigBySubgraphName.get('subgraph-u'); expect(u).toBeDefined(); - const v = result.subgraphConfigBySubgraphName.get('subgraph-v'); + const v = subgraphConfigBySubgraphName.get('subgraph-v'); expect(v).toBeDefined(); expect(u!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -721,7 +721,7 @@ describe('Entity tests', () => { ]), ); expect(v!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -735,12 +735,14 @@ describe('Entity tests', () => { ); }); - test('that if a target key can be satisfied, it will included in the router configuration #2.1', () => { - const result = federateSubgraphsSuccess([subgraphW, subgraphX, subgraphY], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + test('that if a target key can be satisfied, it will be included in the router configuration #2.1', () => { + const { federatedGraphSchema, subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphW, subgraphX, subgraphY], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { a: Int! @@ -763,19 +765,17 @@ describe('Entity tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope `, ), ); - const w = result.subgraphConfigBySubgraphName.get('subgraph-w'); + const w = subgraphConfigBySubgraphName.get('subgraph-w'); expect(w).toBeDefined(); - const x = result.subgraphConfigBySubgraphName.get('subgraph-x'); + const x = subgraphConfigBySubgraphName.get('subgraph-x'); expect(x).toBeDefined(); - const y = result.subgraphConfigBySubgraphName.get('subgraph-y'); + const y = subgraphConfigBySubgraphName.get('subgraph-y'); expect(y).toBeDefined(); expect(w!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -817,7 +817,7 @@ describe('Entity tests', () => { ]), ); expect(x!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -838,7 +838,7 @@ describe('Entity tests', () => { ]), ); expect(y!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -873,12 +873,14 @@ describe('Entity tests', () => { ); }); - test('that if a target key can be satisfied, it will included in the router configuration #2.2', () => { - const result = federateSubgraphsSuccess([subgraphW, subgraphY, subgraphX], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + test('that if a target key can be satisfied, it will be included in the router configuration #2.2', () => { + const { federatedGraphSchema, subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphW, subgraphY, subgraphX], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { a: Int! @@ -901,19 +903,17 @@ describe('Entity tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope `, ), ); - const w = result.subgraphConfigBySubgraphName.get('subgraph-w'); + const w = subgraphConfigBySubgraphName.get('subgraph-w'); expect(w).toBeDefined(); - const x = result.subgraphConfigBySubgraphName.get('subgraph-x'); + const x = subgraphConfigBySubgraphName.get('subgraph-x'); expect(x).toBeDefined(); - const y = result.subgraphConfigBySubgraphName.get('subgraph-y'); + const y = subgraphConfigBySubgraphName.get('subgraph-y'); expect(y).toBeDefined(); expect(w!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -955,7 +955,7 @@ describe('Entity tests', () => { ]), ); expect(x!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -976,7 +976,7 @@ describe('Entity tests', () => { ]), ); expect(y!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -1011,12 +1011,14 @@ describe('Entity tests', () => { ); }); - test('that if a target key can be satisfied, it will included in the router configuration #2.3', () => { - const result = federateSubgraphsSuccess([subgraphX, subgraphW, subgraphY], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + test('that if a target key can be satisfied, it will be included in the router configuration #2.3', () => { + const { federatedGraphSchema, subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphX, subgraphW, subgraphY], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { a: Int! @@ -1039,19 +1041,17 @@ describe('Entity tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope `, ), ); - const w = result.subgraphConfigBySubgraphName.get('subgraph-w'); + const w = subgraphConfigBySubgraphName.get('subgraph-w'); expect(w).toBeDefined(); - const x = result.subgraphConfigBySubgraphName.get('subgraph-x'); + const x = subgraphConfigBySubgraphName.get('subgraph-x'); expect(x).toBeDefined(); - const y = result.subgraphConfigBySubgraphName.get('subgraph-y'); + const y = subgraphConfigBySubgraphName.get('subgraph-y'); expect(y).toBeDefined(); expect(w!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -1093,7 +1093,7 @@ describe('Entity tests', () => { ]), ); expect(x!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -1114,7 +1114,7 @@ describe('Entity tests', () => { ]), ); expect(y!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -1149,12 +1149,14 @@ describe('Entity tests', () => { ); }); - test('that if a target key can be satisfied, it will included in the router configuration #2.4', () => { - const result = federateSubgraphsSuccess([subgraphX, subgraphY, subgraphW], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + test('that if a target key can be satisfied, it will be included in the router configuration #2.4', () => { + const { federatedGraphSchema, subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphX, subgraphY, subgraphW], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { a: Int! @@ -1177,19 +1179,17 @@ describe('Entity tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope `, ), ); - const w = result.subgraphConfigBySubgraphName.get('subgraph-w'); + const w = subgraphConfigBySubgraphName.get('subgraph-w'); expect(w).toBeDefined(); - const x = result.subgraphConfigBySubgraphName.get('subgraph-x'); + const x = subgraphConfigBySubgraphName.get('subgraph-x'); expect(x).toBeDefined(); - const y = result.subgraphConfigBySubgraphName.get('subgraph-y'); + const y = subgraphConfigBySubgraphName.get('subgraph-y'); expect(y).toBeDefined(); expect(w!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -1231,7 +1231,7 @@ describe('Entity tests', () => { ]), ); expect(x!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -1252,7 +1252,7 @@ describe('Entity tests', () => { ]), ); expect(y!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -1287,12 +1287,14 @@ describe('Entity tests', () => { ); }); - test('that if a target key can be satisfied, it will included in the router configuration #2.5', () => { - const result = federateSubgraphsSuccess([subgraphY, subgraphW, subgraphX], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + test('that if a target key can be satisfied, it will be included in the router configuration #2.5', () => { + const { federatedGraphSchema, subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphY, subgraphW, subgraphX], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { a: Int! @@ -1315,19 +1317,17 @@ describe('Entity tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope `, ), ); - const w = result.subgraphConfigBySubgraphName.get('subgraph-w'); + const w = subgraphConfigBySubgraphName.get('subgraph-w'); expect(w).toBeDefined(); - const x = result.subgraphConfigBySubgraphName.get('subgraph-x'); + const x = subgraphConfigBySubgraphName.get('subgraph-x'); expect(x).toBeDefined(); - const y = result.subgraphConfigBySubgraphName.get('subgraph-y'); + const y = subgraphConfigBySubgraphName.get('subgraph-y'); expect(y).toBeDefined(); expect(w!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -1369,7 +1369,7 @@ describe('Entity tests', () => { ]), ); expect(x!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -1390,7 +1390,7 @@ describe('Entity tests', () => { ]), ); expect(y!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -1425,12 +1425,14 @@ describe('Entity tests', () => { ); }); - test('that if a target key can be satisfied, it will included in the router configuration #2.6', () => { - const result = federateSubgraphsSuccess([subgraphY, subgraphX, subgraphW], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + test('that if a target key can be satisfied, it will be included in the router configuration #2.6', () => { + const { federatedGraphSchema, subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphY, subgraphX, subgraphW], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { a: Int! @@ -1453,19 +1455,17 @@ describe('Entity tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope `, ), ); - const w = result.subgraphConfigBySubgraphName.get('subgraph-w'); + const w = subgraphConfigBySubgraphName.get('subgraph-w'); expect(w).toBeDefined(); - const x = result.subgraphConfigBySubgraphName.get('subgraph-x'); + const x = subgraphConfigBySubgraphName.get('subgraph-x'); expect(x).toBeDefined(); - const y = result.subgraphConfigBySubgraphName.get('subgraph-y'); + const y = subgraphConfigBySubgraphName.get('subgraph-y'); expect(y).toBeDefined(); expect(w!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -1507,7 +1507,7 @@ describe('Entity tests', () => { ]), ); expect(x!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -1528,7 +1528,7 @@ describe('Entity tests', () => { ]), ); expect(y!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { diff --git a/composition/tests/v1/entity-interface.test.ts b/composition/tests/v1/entity-interface.test.ts index 4ca3091b78..9594d885c5 100644 --- a/composition/tests/v1/entity-interface.test.ts +++ b/composition/tests/v1/entity-interface.test.ts @@ -12,10 +12,11 @@ import { SimpleFieldData, Subgraph, SubgraphName, + TypeName, undefinedEntityInterfaceImplementationsError, } from '../../src'; import { describe, expect, test } from 'vitest'; -import { versionOneRouterDefinitions, versionTwoRouterDefinitions } from './utils/utils'; +import { SCHEMA_QUERY_DEFINITION } from './utils/utils'; import { Kind, parse } from 'graphql'; import { @@ -27,11 +28,10 @@ import { describe('Entity Interface Tests', () => { test('that an @interfaceObject does not need to contribute new fields', () => { - const result = federateSubgraphsSuccess([subgraphC, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphC, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { age: Int! @@ -48,19 +48,16 @@ describe('Entity Interface Tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that fields contributed by an interface object are added to each concrete type', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { age: Int! @@ -77,20 +74,18 @@ describe('Entity Interface Tests', () => { type Query { interface: Interface! } - - scalar openfed__Scope `, ), ); }); test('that interface objects produce the correct engine configuration', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - const subgraphConfigBySubgraphName = result.subgraphConfigBySubgraphName; - expect(subgraphConfigBySubgraphName).toBeDefined(); + const { federatedGraphSchema, subgraphConfigBySubgraphName } = federateSubgraphsSuccess( + [subgraphA, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); expect(subgraphConfigBySubgraphName.get('subgraph-a')!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Interface', { @@ -114,7 +109,7 @@ describe('Entity Interface Tests', () => { ]), ); expect(subgraphConfigBySubgraphName.get('subgraph-b')!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -188,12 +183,14 @@ describe('Entity Interface Tests', () => { }); test('that an entity Interface with a @key defining resolvable: false does not need to define all implementations', () => { - const result = federateSubgraphsSuccess([subgraphG, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(0); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema, warnings } = federateSubgraphsSuccess( + [subgraphG, subgraphH], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(warnings).toHaveLength(0); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityOne implements Interface { id: ID! @@ -218,11 +215,10 @@ describe('Entity Interface Tests', () => { }); test('that @interfaceObject works correctly with implicit key checks #.1.1', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphI, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { id: ID! @@ -254,19 +250,16 @@ describe('Entity Interface Tests', () => { name: String! two: Int! } - - scalar openfed__Scope `, ), ); }); test('that @interfaceObject works correctly with implicit key checks #1.2', () => { - const result = federateSubgraphsSuccess([subgraphJ, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphJ, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { id: ID! @@ -298,8 +291,6 @@ describe('Entity Interface Tests', () => { name: String! two: Int! } - - scalar openfed__Scope `, ), ); diff --git a/composition/tests/v1/events.test.ts b/composition/tests/v1/events.test.ts index 7bed5ee317..7e42334772 100644 --- a/composition/tests/v1/events.test.ts +++ b/composition/tests/v1/events.test.ts @@ -24,8 +24,6 @@ import { noBaseDefinitionForExtensionError, nonExternalKeyFieldNamesEventDrivenErrorMessage, nonKeyFieldNamesEventDrivenErrorMessage, - NormalizationSuccess, - normalizeSubgraphFromString, OBJECT, parse, PROVIDER_ID, @@ -36,14 +34,23 @@ import { Subgraph, subgraphValidationError, SUBJECTS, + TypeName, undefinedEventSubjectsArgumentErrorMessage, undefinedRequiredArgumentsErrorMessage, unexpectedDirectiveArgumentErrorMessage, } from '../../src'; import { - versionOneFullEventDefinitions, - versionOnePersistedDirectiveDefinitions, - versionOneSubscriptionEventDefinitions, + EDFS_NATS_PUBLISH_DIRECTIVE, + EDFS_NATS_REQUEST_DIRECTIVE, + EDFS_NATS_STREAM_CONFIGURATION_INPUT, + EDFS_NATS_SUBSCRIBE_DIRECTIVE, + EDFS_PUBLISH_RESULT_OBJECT, + EXTERNAL_DIRECTIVE, + KEY_DIRECTIVE, + OPENFED_FIELD_SET, + SCHEMA_ALL_ROOTS_DEFINITION, + SCHEMA_QUERY_SUBSCRIPTION_DEFINITION, + SCHEMA_SUBSCRIPTION_DEFINITION, } from './utils/utils'; import { federateSubgraphsFailure, @@ -57,9 +64,12 @@ import { describe('events Configuration tests', () => { describe('Normalization tests', () => { test('that events configuration is correctly generated', () => { - const result = normalizeSubgraphSuccess(subgraphA, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName, schema } = normalizeSubgraphSuccess( + subgraphA, + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Query', { @@ -143,9 +153,14 @@ describe('events Configuration tests', () => { ], ]), ); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneFullEventDefinitions + + SCHEMA_ALL_ROOTS_DEFINITION + + EDFS_NATS_PUBLISH_DIRECTIVE + + EDFS_NATS_REQUEST_DIRECTIVE + + EDFS_NATS_SUBSCRIBE_DIRECTIVE + + EXTERNAL_DIRECTIVE + + KEY_DIRECTIVE + ` type Entity @key(fields: "id", resolvable: false) { id: ID! @external @@ -163,32 +178,18 @@ describe('events Configuration tests', () => { entitySubscription(id: ID!): Entity! @edfs__natsSubscribe(subjects: ["entities.{{ args.id }}"], providerId: "my-provider") entitySubscriptionTwo(firstID: ID!, secondID: ID!): Entity! @edfs__natsSubscribe(subjects: ["firstSub.{{ args.firstID }}", "secondSub.{{ args.secondID }}"], providerId: "double", streamConfiguration: {consumerName: "consumer", streamName: "streamName", consumerInactiveThreshold: 300}) } - - input edfs__NatsStreamConfiguration { - consumerInactiveThreshold: Int! = 30 - consumerName: String! - streamName: String! - } - - type edfs__PublishResult { - success: Boolean! - } - - scalar openfed__FieldSet - `, + ` + + EDFS_NATS_STREAM_CONFIGURATION_INPUT + + EDFS_PUBLISH_RESULT_OBJECT + + OPENFED_FIELD_SET, ), ); }); test('that events configuration is correctly generated if Subscription is renamed', () => { - const result = normalizeSubgraphFromString( - subgraphStringB, - true, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName } = normalizeSubgraphSuccess(nbaaa, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Subscription', { @@ -221,14 +222,9 @@ describe('events Configuration tests', () => { }); test('that events configuration is correctly generated if providerId is specified', () => { - const result = normalizeSubgraphFromString( - subgraphStringC, - true, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName } = normalizeSubgraphSuccess(ncaaa, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Query', { @@ -303,16 +299,16 @@ describe('events Configuration tests', () => { }); test('that errors are returned if an event directive is invalid #1', () => { - const result = normalizeSubgraphFailure(subgraphN, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(2); + const { errors } = normalizeSubgraphFailure(subgraphN, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(2); const rootFieldPath = 'Subscription.entitySubscription'; - expect(result.errors[0]).toStrictEqual( + expect(errors[0]).toStrictEqual( invalidEventDirectiveError(EDFS_NATS_SUBSCRIBE, rootFieldPath, [ invalidEventSubjectsItemErrorMessage(SUBJECTS), invalidEventProviderIdErrorMessage, ]), ); - expect(result.errors[1]).toStrictEqual( + expect(errors[1]).toStrictEqual( invalidDirectiveError(EDFS_NATS_SUBSCRIBE, rootFieldPath, FIRST_ORDINAL, [ invalidArgumentValueErrorMessage('[1]', `@${EDFS_NATS_SUBSCRIBE}`, SUBJECTS, '[String!]!'), invalidArgumentValueErrorMessage('false', `@${EDFS_NATS_SUBSCRIBE}`, PROVIDER_ID, 'String!'), @@ -323,11 +319,11 @@ describe('events Configuration tests', () => { }); test('that errors are returned if an event directive is invalid #2', () => { - const result = normalizeSubgraphFailure(subgraphR, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); + const { errors } = normalizeSubgraphFailure(subgraphR, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); const directiveName = 'edfs__natsSubscribe'; const rootFieldPath = 'Subscription.entitySubscription'; - expect(result.errors[0]).toStrictEqual( + expect(errors[0]).toStrictEqual( invalidDirectiveError(directiveName, rootFieldPath, FIRST_ORDINAL, [ undefinedRequiredArgumentsErrorMessage(directiveName, ['subjects'], []), ]), @@ -335,17 +331,17 @@ describe('events Configuration tests', () => { }); test('that an error is returned if edfs__NatsStreamConfiguration is improperly defined', () => { - const result = normalizeSubgraphFailure(subgraphP, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphP, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDrivenGraphError([invalidNatsStreamConfigurationDefinitionErrorMessage]), ); }); test('that an error is returned if streamConfiguration input is invalid #1', () => { - const result = normalizeSubgraphFailure(subgraphQ, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphQ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__natsSubscribe', 'Subscription.entitySubscription', [ invalidNatsStreamInputFieldsErrorMessage(['streamName'], ['consumerName'], [], ['invalidField']), ]), @@ -353,9 +349,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if streamConfiguration input is invalid #2', () => { - const result = normalizeSubgraphFailure(subgraphS, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphS, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__natsSubscribe', 'Subscription.entitySubscription', [ invalidNatsStreamInputFieldsErrorMessage([], [], ['consumerName', 'streamName'], []), ]), @@ -363,9 +359,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if streamConfiguration input is invalid #3', () => { - const result = normalizeSubgraphFailure(subgraphT, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphT, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__natsSubscribe', 'Subscription.entitySubscription', [ invalidNatsStreamInputFieldsErrorMessage( ['consumerName', 'streamName'], @@ -380,7 +376,7 @@ describe('events Configuration tests', () => { test('that edfs__NatsStreamConfiguration does not need to be defined if @edfs__natsSubscribe is not defined', () => { const result = normalizeSubgraphSuccess(subgraphU, ROUTER_COMPATIBILITY_VERSION_ONE); expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -462,10 +458,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a NATS subscribe subject references an invalid argument', () => { - const result = normalizeSubgraphFailure(subgraphW, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphW, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__natsSubscribe', 'Subscription.entitySubscription', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), ]), @@ -473,10 +468,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a NATS request subject references an invalid argument', () => { - const result = normalizeSubgraphFailure(subgraphX, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphX, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__natsRequest', 'Query.entityRequest', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), ]), @@ -484,9 +478,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a NATS publish subject references an invalid argument', () => { - const result = normalizeSubgraphFailure(subgraphY, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphY, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__natsPublish', 'Mutation.entityPublish', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), ]), @@ -494,9 +488,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a Kafka subscribe subject references an invalid argument', () => { - const result = normalizeSubgraphFailure(subgraphZ, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphZ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__kafkaSubscribe', 'Subscription.entitySubscription', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), ]), @@ -504,9 +498,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a Kafka publish subject references an invalid argument', () => { - const result = normalizeSubgraphFailure(subgraphAA, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAA, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__kafkaPublish', 'Mutation.entityPublish', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), ]), @@ -514,9 +508,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a NATS subscribe subject references two invalid arguments', () => { - const result = normalizeSubgraphFailure(subgraphAB, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAB, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__natsSubscribe', 'Subscription.entitySubscription', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), undefinedEventSubjectsArgumentErrorMessage('alsoinvalid'), @@ -525,9 +519,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a NATS request subject references two invalid arguments', () => { - const result = normalizeSubgraphFailure(subgraphAC, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAC, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__natsRequest', 'Query.entityRequest', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), undefinedEventSubjectsArgumentErrorMessage('alsoinvalid'), @@ -536,9 +530,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a NATS publish subject references two invalid arguments', () => { - const result = normalizeSubgraphFailure(subgraphAD, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAD, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__natsPublish', 'Mutation.entityPublish', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), undefinedEventSubjectsArgumentErrorMessage('alsoinvalid'), @@ -547,9 +541,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a Kafka subscribe subject references two invalid arguments', () => { - const result = normalizeSubgraphFailure(subgraphAE, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAE, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__kafkaSubscribe', 'Subscription.entitySubscription', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), undefinedEventSubjectsArgumentErrorMessage('alsoinvalid'), @@ -558,9 +552,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a Kafka publish subject references two invalid arguments', () => { - const result = normalizeSubgraphFailure(subgraphAF, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAF, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__kafkaPublish', 'Mutation.entityPublish', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), undefinedEventSubjectsArgumentErrorMessage('alsoinvalid'), @@ -570,9 +564,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a NATS subscribe subject references a valid argument and an invalid one', () => { - const result = normalizeSubgraphFailure(subgraphAG, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAG, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__natsSubscribe', 'Subscription.entitySubscription', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), ]), @@ -580,9 +574,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a NATS request subject references a valid argument and an invalid one', () => { - const result = normalizeSubgraphFailure(subgraphAH, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAH, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__natsRequest', 'Query.entityRequest', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), ]), @@ -590,90 +584,79 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a NATS request subject uses streamConfiguration and there is a wrong definition of edfs__NatsStreamConfiguration', () => { - const result = normalizeSubgraphFailure(subgraphAN, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAN, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDrivenGraphError([invalidNatsStreamConfigurationDefinitionErrorMessage]), ); }); test('that no error is returned if a NATS request subject is without streamConfiguration and there is a wrong definition of edfs__NatsStreamConfiguration', () => { - const result = normalizeSubgraphSuccess(subgraphAO, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphAO, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneSubscriptionEventDefinitions + + SCHEMA_SUBSCRIPTION_DEFINITION + + EDFS_NATS_SUBSCRIBE_DIRECTIVE + + EXTERNAL_DIRECTIVE + + KEY_DIRECTIVE + ` type Entity @key(fields: "id", resolvable: false) { id: ID! @external } type Subscription { - entitySubscription(id: ID!): Entity! @edfs__natsSubscribe( - subjects: ["entities.{{ args.id }}"] - ) - } - - input edfs__NatsStreamConfiguration { - consumerInactiveThreshold: Int! = 30 - consumerName: String! - streamName: String! + entitySubscription(id: ID!): Entity! @edfs__natsSubscribe(subjects: ["entities.{{ args.id }}"]) } - - scalar openfed__FieldSet - `, + ` + + EDFS_NATS_STREAM_CONFIGURATION_INPUT + + OPENFED_FIELD_SET, ), ); }); test('that no error is returned if a NATS request subject is with a streamConfiguration and there is a correct definition of edfs__NatsStreamConfiguration', () => { - const result = normalizeSubgraphSuccess(subgraphAP, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphAP, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneSubscriptionEventDefinitions + + SCHEMA_SUBSCRIPTION_DEFINITION + + EDFS_NATS_SUBSCRIBE_DIRECTIVE + + EXTERNAL_DIRECTIVE + + KEY_DIRECTIVE + ` type Entity @key(fields: "id", resolvable: false) { id: ID! @external } type Subscription { - entitySubscription(id: ID!): Entity! @edfs__natsSubscribe( - subjects: ["entities.{{ args.id }}"], - streamConfiguration: {consumerInactiveThreshold: 300, consumerName: "consumer", streamName: "streamName"} - ) + entitySubscription(id: ID!): Entity! @edfs__natsSubscribe(subjects: ["entities.{{ args.id }}"], streamConfiguration: {consumerInactiveThreshold: 300, consumerName: "consumer", streamName: "streamName"}) } - - input edfs__NatsStreamConfiguration { - consumerInactiveThreshold: Int! = 30 - consumerName: String! - streamName: String! - } - - scalar openfed__FieldSet - `, + ` + + EDFS_NATS_STREAM_CONFIGURATION_INPUT + + OPENFED_FIELD_SET, ), ); }); test('that an error is returned if a NATS request subject is with a streamConfiguration and there is a definition of edfs__NatsStreamConfiguration without default consumerInactiveThreshold', () => { - const result = normalizeSubgraphFailure(subgraphAQ, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAQ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDrivenGraphError([invalidNatsStreamConfigurationDefinitionErrorMessage]), ); }); test('that an error is returned if a NATS request subject is with a streamConfiguration and there is a definition of edfs__NatsStreamConfiguration with an incorrect consumerInactiveThreshold default value', () => { - const result = normalizeSubgraphFailure(subgraphAR, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAR, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDrivenGraphError([invalidNatsStreamConfigurationDefinitionErrorMessage]), ); }); test('that an error is returned if a NATS publish subject references a valid argument and an invalid one', () => { - const result = normalizeSubgraphFailure(subgraphAI, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAI, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__natsPublish', 'Mutation.entityPublish', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), ]), @@ -681,9 +664,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a Kafka subscribe subject references a valid argument and an invalid one', () => { - const result = normalizeSubgraphFailure(subgraphAL, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAL, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__kafkaSubscribe', 'Subscription.entitySubscription', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), ]), @@ -691,9 +674,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a Kafka publish subject references a valid argument and an invalid one', () => { - const result = normalizeSubgraphFailure(subgraphAM, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAM, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__kafkaPublish', 'Mutation.entityPublish', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), ]), @@ -701,9 +684,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a Redis subscribe subject references a valid argument and an invalid one', () => { - const result = normalizeSubgraphFailure(subgraphAS, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAS, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__redisSubscribe', 'Subscription.entitySubscription', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), ]), @@ -711,9 +694,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a Redis publish subject references a valid argument and an invalid one', () => { - const result = normalizeSubgraphFailure(subgraphAT, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAT, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__redisPublish', 'Mutation.entityPublish', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), ]), @@ -721,9 +704,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a Redis subscribe subject references two invalid arguments', () => { - const result = normalizeSubgraphFailure(subgraphAU, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAU, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__redisSubscribe', 'Subscription.entitySubscription', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), undefinedEventSubjectsArgumentErrorMessage('alsoinvalid'), @@ -732,9 +715,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a Redis publish subject references two invalid arguments', () => { - const result = normalizeSubgraphFailure(subgraphAV, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphAV, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidEventDirectiveError('edfs__redisPublish', 'Mutation.entityPublish', [ undefinedEventSubjectsArgumentErrorMessage('invalid'), undefinedEventSubjectsArgumentErrorMessage('alsoinvalid'), @@ -745,7 +728,7 @@ describe('events Configuration tests', () => { test('that Redis configuration is correctly generated', () => { const result = normalizeSubgraphSuccess(subgraphAW, ROUTER_COMPATIBILITY_VERSION_ONE); expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Entity', { @@ -804,10 +787,9 @@ describe('events Configuration tests', () => { describe('Federation tests', () => { test('that an error is returned if the subgraph includes fields that are not part of an entity key', () => { - const result = federateSubgraphsFailure([subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( subgraphValidationError('subgraph-c', [ invalidEventDrivenGraphError([ nonKeyFieldNamesEventDrivenErrorMessage(new Map([['Entity.name', 'name']])), @@ -817,10 +799,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if the subgraph includes fields that are part of an entity key but not declared external', () => { - const result = federateSubgraphsFailure([subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( subgraphValidationError('subgraph-d', [ invalidEventDrivenGraphError([ nonExternalKeyFieldNamesEventDrivenErrorMessage(new Map([['Entity.id', 'id']])), @@ -830,10 +811,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if the subgraph contains root type fields that do not define their respective events directives', () => { - const result = federateSubgraphsFailure([subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( subgraphValidationError('subgraph-e', [ invalidEventDrivenGraphError([ invalidRootTypeFieldEventsDirectivesErrorMessage( @@ -849,10 +829,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if the subgraph contains root type fields that do not return valid types', () => { - const result = federateSubgraphsFailure([subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( subgraphValidationError('subgraph-f', [ invalidEventDrivenGraphError([ invalidRootTypeFieldResponseTypesEventDrivenErrorMessage( @@ -864,10 +843,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if the subgraph contains root type fields that return a nullable or list type', () => { - const result = federateSubgraphsFailure([subgraphM], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphM], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( subgraphValidationError('subgraph-m', [ invalidEventDrivenGraphError([ invalidRootTypeFieldResponseTypesEventDrivenErrorMessage( @@ -882,10 +860,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if an entity key is defined without resolvable: false', () => { - const result = federateSubgraphsFailure([subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( subgraphValidationError('subgraph-g', [ invalidEventDrivenGraphError([ invalidKeyFieldSetsEventDrivenErrorMessage(new Map([['Entity', ['id']]])), @@ -895,10 +872,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if the events graph contains a non-entity object extension', () => { - const result = federateSubgraphsFailure([subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(3); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(3); + expect(errors[0]).toStrictEqual( allExternalFieldInstancesError( 'Entity', new Map>([ @@ -907,22 +883,20 @@ describe('events Configuration tests', () => { ]), ), ); - expect(result.errors[1]).toStrictEqual(noBaseDefinitionForExtensionError(OBJECT, OBJECT)); - expect(result.errors[2]).toStrictEqual( + expect(errors[1]).toStrictEqual(noBaseDefinitionForExtensionError(OBJECT, OBJECT)); + expect(errors[2]).toStrictEqual( allExternalFieldInstancesError(OBJECT, new Map>([['id', ['subgraph-h']]])), ); }); test('that an interface implemented by an entity is a valid root type response named type', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphV], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphV], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - `schema { - query: Query - subscription: Subscription - }` + - versionOnePersistedDirectiveDefinitions + + SCHEMA_QUERY_SUBSCRIPTION_DEFINITION + ` type Entity implements Interface { id: ID! @@ -950,16 +924,17 @@ describe('events Configuration tests', () => { }); test('that a union of which an entity is a member is a valid root type response named type', () => { - const result = federateSubgraphsSuccess([subgraphJ, subgraphV], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphJ, subgraphV], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( `schema { query: Query subscription: Subscription - }` + - versionOnePersistedDirectiveDefinitions + - ` + } + type Entity { id: ID! object: Object @@ -984,10 +959,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if there are invalid eventsDirective definitions', () => { - const result = federateSubgraphsFailure([subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( subgraphValidationError('subgraph-k', [ invalidEventDrivenGraphError([ invalidRootTypeFieldEventsDirectivesErrorMessage( @@ -1006,10 +980,9 @@ describe('events Configuration tests', () => { }); test('that an error is returned if a mutation type field does not return "edfs__PublishResult"', () => { - const result = federateSubgraphsFailure([subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( subgraphValidationError('subgraph-l', [ invalidEventDrivenGraphError([ invalidEventDrivenMutationResponseTypeErrorMessage( @@ -1055,41 +1028,49 @@ const subgraphA: Subgraph = { `), }; -const subgraphStringB = ` - schema { - subscription: Subscriptions - } - - type Subscriptions { - entitySubscription(id: ID!): Entity! @edfs__natsSubscribe(subjects: ["entities.{{ args.id }}"]) - } - - type Entity @key(fields: "id", resolvable: false) { - id: ID! @external - } -`; - -const subgraphStringC = ` - type Query { - findEntity(id: ID!): Entity! @edfs__natsRequest(subject: "findEntity.{{ args.id }}", providerId: "myQuerySourceName") - } - - type edfs__PublishResult { - success: Boolean! - } - - type Mutation { - updateEntity(id: ID!, name: String!): edfs__PublishResult! @edfs__natsPublish(subject: "updateEntity.{{ args.id }}", providerId: "myMutationSourceName") - } - - type Subscription { - entitySubscription(id: ID!): Entity! @edfs__natsSubscribe(subjects: ["entities.{{ args.id }}"], providerId: "mySubscriptionSourceName") - } +const nbaaa: Subgraph = { + name: 'nbaaa', + url: '', + definitions: parse(` + schema { + subscription: Subscriptions + } + + type Entity @key(fields: "id", resolvable: false) { + id: ID! @external + } + + type Subscriptions { + entitySubscription(id: ID!): Entity! @edfs__natsSubscribe(subjects: ["entities.{{ args.id }}"]) + } + `), +}; - type Entity @key(fields: "id", resolvable: false) { - id: ID! @external - } -`; +const ncaaa: Subgraph = { + name: 'ncaaa', + url: '', + definitions: parse(` + type Query { + findEntity(id: ID!): Entity! @edfs__natsRequest(subject: "findEntity.{{ args.id }}", providerId: "myQuerySourceName") + } + + type edfs__PublishResult { + success: Boolean! + } + + type Mutation { + updateEntity(id: ID!, name: String!): edfs__PublishResult! @edfs__natsPublish(subject: "updateEntity.{{ args.id }}", providerId: "myMutationSourceName") + } + + type Subscription { + entitySubscription(id: ID!): Entity! @edfs__natsSubscribe(subjects: ["entities.{{ args.id }}"], providerId: "mySubscriptionSourceName") + } + + type Entity @key(fields: "id", resolvable: false) { + id: ID! @external + } + `), +}; const subgraphC: Subgraph = { name: 'subgraph-c', @@ -1711,7 +1692,7 @@ const subgraphAG: Subgraph = { }; const subgraphAH: Subgraph = { - name: 'subgraph-aH', + name: 'subgraph-ah', url: '', definitions: parse(` type Query { @@ -1969,47 +1950,3 @@ const subgraphAW: Subgraph = { } `), }; - -const subgraphAX: Subgraph = { - name: 'subgraph-ax', - url: '', - definitions: parse(` - type Entity @key(fields: "id", resolvable: false) { - id: ID! @external - } - - type Mutation { - redisMutation: edfs__PublishResult! @edfs__redisPublish(channel: "entityAdded", providerId: "myRedis", providerId: "myRedis2") - } - - type Subscription { - redisSubscription: Entity! @edfs__redisSubscribe(channels: ["entityAdded", "entityUpdated"], providerId: "myRedis", channels: ["entityAdded1", "entityUpdated1"]) - } - - type edfs__PublishResult { - success: Boolean! - } - `), -}; - -const subgraphAY: Subgraph = { - name: 'subgraph-ay', - url: '', - definitions: parse(` - type Entity @key(fields: "id", resolvable: false) { - id: ID! @external - } - - type Mutation { - redisMutation: edfs__PublishResult! @edfs__redisPublish(channel: "entityAdded", providerId: "myRedis", wrongArgument: "test") - } - - type Subscription { - redisSubscription: Entity! @edfs__redisSubscribe(channels: ["entityAdded", "entityUpdated"], providerId: "myRedis", anotherWrongArgument: "test2") - } - - type edfs__PublishResult { - success: Boolean! - } - `), -}; diff --git a/composition/tests/v1/federation-factory.test.ts b/composition/tests/v1/federation-factory.test.ts index fa0eb362bf..fddc49c6ed 100644 --- a/composition/tests/v1/federation-factory.test.ts +++ b/composition/tests/v1/federation-factory.test.ts @@ -1,9 +1,9 @@ import { - BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME, incompatibleParentTypeMergeError, INPUT_OBJECT, InputObjectDefinitionData, invalidSubgraphNamesError, + KEY, noBaseDefinitionForExtensionError, noQueryRootTypeError, OBJECT, @@ -12,23 +12,25 @@ import { ROUTER_COMPATIBILITY_VERSION_ONE, SCALAR, ScalarDefinitionData, + SHAREABLE, Subgraph, SubgraphName, - V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME, } from '../../src'; import { describe, expect, test } from 'vitest'; import { - schemaQueryDefinition, - versionOnePersistedBaseSchema, - versionOneRouterDefinitions, - versionTwoRouterDefinitions, - versionTwoRouterDirectiveDefinitions, + AUTHENTICATED_DIRECTIVE, + INACCESSIBLE_DIRECTIVE, + OPENFED_FIELD_SET, + OPENFED_SCOPE, + REQUIRES_SCOPES_DIRECTIVE, + SCHEMA_ALL_ROOTS_DEFINITION, + SCHEMA_QUERY_DEFINITION, + TAG_DIRECTIVE, } from './utils/utils'; import fs from 'node:fs'; import path, { join } from 'node:path'; import { fileURLToPath } from 'node:url'; import { - documentNodeToNormalizedString, federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, @@ -85,21 +87,16 @@ describe('FederationFactory tests', () => { }); test('that the demo subgraphs federate to generate the correct federated graph', () => { - const result = federateSubgraphsSuccess( + const { federatedGraphSchema } = federateSubgraphsSuccess( [demoEmployees, demoFamily, demoHobbies, demoProducts], ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - ` - schema { - query: Query - mutation: Mutation - subscription: Subscription - } - ` + - versionTwoRouterDirectiveDefinitions + - ` + SCHEMA_ALL_ROOTS_DEFINITION + + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + + ` type Alligator implements Animal & Pet { class: Class! dangerous: String! @@ -432,18 +429,21 @@ describe('FederationFactory tests', () => { type Travelling { countriesLived: [Country!]! } - - scalar openfed__Scope - `, + ` + + OPENFED_SCOPE, ), ); }); test('that subgraphs are federated #1', () => { - const result = federateSubgraphsSuccess([pandas, products, reviews, users], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [pandas, products, reviews, users], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Panda { favoriteFood: String @tag(name: "nom-nom-nom") @@ -516,8 +516,6 @@ describe('FederationFactory tests', () => { name: String totalProductsCreated: Int } - - scalar openfed__Scope `, ), ); @@ -530,7 +528,7 @@ describe('FederationFactory tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Move { hasEffect: Boolean! @@ -554,8 +552,6 @@ describe('FederationFactory tests', () => { name: String pokemon: [Pokemon!]! } - - scalar openfed__Scope `, ), ); @@ -566,20 +562,14 @@ describe('FederationFactory tests', () => { const subgraphBConfig = subgraphConfigBySubgraphName.get(subgraphB.name); expect(subgraphBConfig).toBeDefined(); - expect(subgraphAConfig!.directiveDefinitionByDirectiveName).toHaveLength(22); - expect(subgraphBConfig!.directiveDefinitionByDirectiveName).toHaveLength(23); + expect(subgraphAConfig!.directiveDefinitionByName).toHaveLength(2); + expect(subgraphAConfig!.directiveDefinitionByName.has(KEY)).toBe(true); + expect(subgraphAConfig!.directiveDefinitionByName.has(SHAREABLE)).toBe(true); - for (const directiveName of BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.keys()) { - expect(subgraphAConfig!.directiveDefinitionByDirectiveName.has(directiveName)); - expect(subgraphBConfig!.directiveDefinitionByDirectiveName.has(directiveName)); - } - - for (const directiveName of V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.keys()) { - expect(subgraphAConfig!.directiveDefinitionByDirectiveName.has(directiveName)); - expect(subgraphBConfig!.directiveDefinitionByDirectiveName.has(directiveName)); - } - - expect(subgraphBConfig!.directiveDefinitionByDirectiveName.has('a')); + expect(subgraphBConfig!.directiveDefinitionByName).toHaveLength(3); + expect(subgraphBConfig!.directiveDefinitionByName.has('a')).toBe(true); + expect(subgraphBConfig!.directiveDefinitionByName.has(KEY)).toBe(true); + expect(subgraphBConfig!.directiveDefinitionByName.has(SHAREABLE)).toBe(true); }); test('that extension orphans return an error', () => { @@ -589,10 +579,10 @@ describe('FederationFactory tests', () => { }); test('that root types are promoted', () => { - const result = federateSubgraphsSuccess([subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(documentNodeToNormalizedString(result.federatedGraphAST)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOnePersistedBaseSchema + + SCHEMA_QUERY_DEFINITION + ` type Query { string: String @@ -603,26 +593,26 @@ describe('FederationFactory tests', () => { }); test('that version one subgraph is assigned correctly', () => { - const result = federateSubgraphsSuccess([subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); + const { subgraphConfigBySubgraphName } = federateSubgraphsSuccess([subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - const subgraphConfig = result.subgraphConfigBySubgraphName.get(subgraphE.name); + const subgraphConfig = subgraphConfigBySubgraphName.get(subgraphE.name); expect(subgraphConfig).toBeDefined(); expect(subgraphConfig?.isVersionTwo).toBe(false); }); test('that version two subgraph is assigned correctly', () => { - const result = federateSubgraphsSuccess([subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); + const { subgraphConfigBySubgraphName } = federateSubgraphsSuccess([subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - const subgraphConfig = result.subgraphConfigBySubgraphName.get(subgraphJ.name); + const subgraphConfig = subgraphConfigBySubgraphName.get(subgraphJ.name); expect(subgraphConfig).toBeDefined(); expect(subgraphConfig?.isVersionTwo).toBe(true); }); test('that custom root types are renamed', () => { - const result = federateSubgraphsSuccess([subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(documentNodeToNormalizedString(result.federatedGraphAST)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOnePersistedBaseSchema + + SCHEMA_QUERY_DEFINITION + ` type Query { string: String @@ -633,10 +623,10 @@ describe('FederationFactory tests', () => { }); test('that _Any, _Entity, _Service, _service, _entities, are not included in the federated graph', () => { - const result = federateSubgraphsSuccess([subgraphG, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(documentNodeToNormalizedString(result.federatedGraphAST)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphG, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOnePersistedBaseSchema + + SCHEMA_QUERY_DEFINITION + ` type Query { string: String @@ -651,10 +641,15 @@ describe('FederationFactory tests', () => { }); test('that @tag and @inaccessible persist correctly #1.1', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphJ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + + TAG_DIRECTIVE + ` type Entity { enum: Enum! @@ -700,14 +695,12 @@ describe('FederationFactory tests', () => { scalar Scalar @tag(name: "scalar1") @tag(name: "scalar2") @inaccessible union Union = Entity | Object - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { enum: Enum! @@ -737,10 +730,15 @@ describe('FederationFactory tests', () => { }); test('that @tag and @inaccessible persist correctly #1.2', () => { - const result = federateSubgraphsSuccess([subgraphJ, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphJ, subgraphI], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + + TAG_DIRECTIVE + ` type Entity { enum: Enum! @@ -786,14 +784,12 @@ describe('FederationFactory tests', () => { scalar Scalar @tag(name: "scalar1") @tag(name: "scalar2") @inaccessible union Union = Entity | Object - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` type Entity { enum: Enum! @@ -826,10 +822,9 @@ describe('FederationFactory tests', () => { const result = federateSubgraphsSuccess([subgraphK, subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` directive @executableDirective(optionalArgInAll: Float, requiredArgInAll: String!, requiredArgInSome: Int!) on FIELD - directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION type Query { dummy: String @@ -840,10 +835,10 @@ describe('FederationFactory tests', () => { }); test('that all nested entity keys are considered to be shareable', () => { - const result = federateSubgraphsSuccess([subgraphM, subgraphN], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphM, subgraphN], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type InnerNestedObject { fieldOne: String! @@ -868,18 +863,16 @@ describe('FederationFactory tests', () => { nestedObjectOne: NestedObjectOne! nestedObjectTwo: NestedObjectTwo! } - - scalar openfed__Scope `, ), ); }); test('that _entities and _service are removed even if a root type is renamed', () => { - const result = federateSubgraphsSuccess([subgraphF, subgraphO], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(documentNodeToNormalizedString(result.federatedGraphAST)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphF, subgraphO], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOnePersistedBaseSchema + + SCHEMA_QUERY_DEFINITION + ` type Query { string: String @@ -978,10 +971,10 @@ describe('FederationFactory tests', () => { }); test('that renaming a root type also renames field return types of the same type #1.1', () => { - const result = federateSubgraphsSuccess([subgraphV, subgraphW], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toStrictEqual( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphV, subgraphW], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toStrictEqual( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type NestedObject { query: [[[[Query!]]]]! @@ -1004,10 +997,10 @@ describe('FederationFactory tests', () => { }); test('that renaming a root type also renames field return types of the same type #1.2', () => { - const result = federateSubgraphsSuccess([subgraphW, subgraphV], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toStrictEqual( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphW, subgraphV], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toStrictEqual( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type NestedObject { query: [[[[Query!]]]]! @@ -1030,10 +1023,10 @@ describe('FederationFactory tests', () => { }); test('that renaming a root type also renames field return types of the same type #2.1', () => { - const result = federateSubgraphsSuccess([subgraphV, subgraphX], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toStrictEqual( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphV, subgraphX], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toStrictEqual( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type NestedObject { query: [[[[Query!]]]]! @@ -1057,10 +1050,10 @@ describe('FederationFactory tests', () => { }); test('that renaming a root type also renames field return types of the same type #2.2', () => { - const result = federateSubgraphsSuccess([subgraphX, subgraphV], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toStrictEqual( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphX, subgraphV], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toStrictEqual( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type NestedObject { query: [[[[Query!]]]]! @@ -1111,7 +1104,8 @@ const demoProducts: Subgraph = { const subgraphA: Subgraph = { name: 'subgraph-a', url: '', - definitions: parse(` + definitions: parse( + ` directive @external on FIELD_DEFINITION | OBJECT directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT directive @provides(fields: String!) on FIELD_DEFINITION @@ -1137,9 +1131,8 @@ const subgraphA: Subgraph = { name: String! @shareable pp: Int! @shareable } - - scalar openfed__FieldSet - `), + ` + OPENFED_FIELD_SET, + ), }; const subgraphB: Subgraph = { diff --git a/composition/tests/v1/normalization.test.ts b/composition/tests/v1/normalization.test.ts index be67a1970e..934f1c1c35 100644 --- a/composition/tests/v1/normalization.test.ts +++ b/composition/tests/v1/normalization.test.ts @@ -48,10 +48,14 @@ import { readFileSync } from 'fs'; import { join } from 'node:path'; import { describe, expect, test } from 'vitest'; import { - baseDirectiveDefinitions, - schemaQueryDefinition, - versionOneBaseSchema, - versionTwoBaseSchema, + AUTHENTICATED_DIRECTIVE, + KEY_DIRECTIVE, + OPENFED_FIELD_SET, + OPENFED_SCOPE, + REQUIRES_SCOPES_DIRECTIVE, + SCHEMA_QUERY_DEFINITION, + SHAREABLE_DIRECTIVE, + TAG_DIRECTIVE, } from './utils/utils'; import { normalizeString, normalizeSubgraphSuccess, schemaToSortedNormalizedString } from '../utils/utils'; import { Kind, parse } from 'graphql'; @@ -59,16 +63,15 @@ import { printTypeNode } from '@graphql-tools/merge'; describe('Normalization tests', () => { test('that an unparsable graph returns an error', () => { - const result = normalizeSubgraphFromString('', true, ROUTER_COMPATIBILITY_VERSION_ONE) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0].message).toContain( + const { errors } = normalizeSubgraphFromString('', true, ROUTER_COMPATIBILITY_VERSION_ONE) as NormalizationFailure; + expect(errors).toHaveLength(1); + expect(errors[0].message).toContain( `The subgraph has syntax errors and could not be parsed.\n` + ` The reason provided was: Syntax Error`, ); }); test('that an undefined type that is referenced in the schema returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Example { field: Unknown @@ -77,13 +80,12 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(undefinedTypeError('Unknown')); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(undefinedTypeError('Unknown')); }); test('that the base scalars are identified', () => { - const result = normalizeSubgraphFromString( + const { schema } = normalizeSubgraphFromString( ` type Example { boolean: Boolean! @@ -96,17 +98,14 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationSuccess; - expect(result.success).toBe(true); - const subgraphString = result.subgraphString; - expect(normalizeString(subgraphString!)).toBe( + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneBaseSchema + - ` + ` type Example { boolean: Boolean! float: Float - int: Int! id: ID + int: Int! string: String! }`, ), @@ -114,7 +113,7 @@ describe('Normalization tests', () => { }); test('that undefined directives return an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Example { string: String @UnknownDirective @@ -123,13 +122,12 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(undefinedDirectiveError('UnknownDirective', 'Example.string')); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(undefinedDirectiveError('UnknownDirective', 'Example.string')); }); test('that duplicate directive definitions return an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` directive @KnownDirective on FIELD_DEFINITION directive @KnownDirective on FIELD_DEFINITION @@ -141,13 +139,12 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateDirectiveDefinitionError('KnownDirective')); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateDirectiveDefinitionError('KnownDirective')); }); test('that extending an entity with its key field is valid', () => { - const result = normalizeSubgraphFromString( + const { schema } = normalizeSubgraphFromString( ` type Entity @key(fields: "id") { name: String! @@ -160,23 +157,22 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationSuccess; - expect(result.success).toBe(true); - const subgraphString = result.subgraphString; - expect(normalizeString(subgraphString!)).toBe( + expect(schemaToSortedNormalizedString(schema!)).toBe( normalizeString( - versionOneBaseSchema + + KEY_DIRECTIVE + ` type Entity @key(fields: "id") { - name: String! id: ID! + name: String! } - `, + ` + + OPENFED_FIELD_SET, ), ); }); test('that extending an object with the key directive is valid', () => { - const result = normalizeSubgraphFromString( + const { schema } = normalizeSubgraphFromString( ` type Entity { id: ID! @@ -189,23 +185,22 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationSuccess; - expect(result.success).toBe(true); - const subgraphString = result.subgraphString; - expect(normalizeString(subgraphString!)).toBe( + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneBaseSchema + + KEY_DIRECTIVE + ` type Entity @key(fields: "id") { id: ID! name: String! } - `, + ` + + OPENFED_FIELD_SET, ), ); }); test('that an undefined key field returns an error #1', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Entity @key(fields: "unknown") { name: String! @@ -214,9 +209,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, 'Entity', FIRST_ORDINAL, [ undefinedFieldInFieldSetErrorMessage('unknown', 'Entity', 'unknown'), ]), @@ -224,7 +218,7 @@ describe('Normalization tests', () => { }); test('that an undefined key field returns an error #2', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Entity { id: ID! @@ -237,9 +231,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, 'Entity', FIRST_ORDINAL, [ undefinedFieldInFieldSetErrorMessage('unknown', 'Entity', 'unknown'), ]), @@ -247,7 +240,7 @@ describe('Normalization tests', () => { }); test('that an undefined key field returns an error #3', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` extend type Entity @key(fields: "unknown") { name: String! @@ -256,9 +249,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, 'Entity', FIRST_ORDINAL, [ undefinedFieldInFieldSetErrorMessage('unknown', 'Entity', 'unknown'), ]), @@ -266,7 +258,7 @@ describe('Normalization tests', () => { }); test('that extending an entity with the same key directive does not duplicate the directive', () => { - const result = normalizeSubgraphFromString( + const { schema } = normalizeSubgraphFromString( ` type Entity @key(fields: "id") { id: ID! @@ -279,23 +271,22 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationSuccess; - expect(result.success).toBe(true); - const subgraphString = result.subgraphString; - expect(normalizeString(subgraphString!)).toBe( + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneBaseSchema + + KEY_DIRECTIVE + ` type Entity @key(fields: "id") { id: ID! name: String! } - `, + ` + + OPENFED_FIELD_SET, ), ); }); test('that enums are normalized', () => { - const result = normalizeSubgraphFromString( + const { schema } = normalizeSubgraphFromString( ` directive @CustomDirectiveOne on ENUM directive @CustomDirectiveTwo on ENUM_VALUE @@ -316,16 +307,13 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationSuccess; - expect(result.success).toBe(true); - const subgraphString = result.subgraphString; - expect(normalizeString(subgraphString!)).toBe( + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneBaseSchema + - ` + ` + directive @CustomDirectiveFour on ENUM_VALUE directive @CustomDirectiveOne on ENUM - directive @CustomDirectiveTwo on ENUM_VALUE directive @CustomDirectiveThree on ENUM - directive @CustomDirectiveFour on ENUM_VALUE + directive @CustomDirectiveTwo on ENUM_VALUE enum Alphabet @CustomDirectiveOne @CustomDirectiveThree { A @@ -339,7 +327,7 @@ describe('Normalization tests', () => { }); test('that extending an enum with a value that already exists returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` enum Alphabet { A @@ -355,13 +343,12 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateEnumValueDefinitionError('Alphabet', 'D')); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateEnumValueDefinitionError('Alphabet', 'D')); }); test('that redefining an enum returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` enum Alphabet { A @@ -374,13 +361,12 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateTypeDefinitionError(ENUM, 'Alphabet')); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateTypeDefinitionError(ENUM, 'Alphabet')); }); test('that interfaces are normalized', () => { - const result = normalizeSubgraphFromString( + const { schema } = normalizeSubgraphFromString( ` directive @CustomDirectiveOne on INTERFACE directive @CustomDirectiveTwo on FIELD_DEFINITION @@ -399,28 +385,25 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationSuccess; - expect(result.success).toBe(true); - const subgraphString = result.subgraphString; - expect(normalizeString(subgraphString!)).toBe( + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneBaseSchema + - ` + ` + directive @CustomDirectiveFour on FIELD_DEFINITION directive @CustomDirectiveOne on INTERFACE - directive @CustomDirectiveTwo on FIELD_DEFINITION directive @CustomDirectiveThree on INTERFACE - directive @CustomDirectiveFour on FIELD_DEFINITION + directive @CustomDirectiveTwo on FIELD_DEFINITION interface Human @CustomDirectiveOne @CustomDirectiveThree { - name: String age: Int @CustomDirectiveTwo height: Int @CustomDirectiveFour + name: String }`, ), ); }); test('that Input Objects are normalized', () => { - const result = normalizeSubgraphFromString( + const { schema } = normalizeSubgraphFromString( ` directive @CustomDirectiveOne on INPUT_OBJECT directive @CustomDirectiveTwo on INPUT_FIELD_DEFINITION @@ -439,28 +422,25 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationSuccess; - expect(result.success).toBe(true); - const subgraphString = result.subgraphString; - expect(normalizeString(subgraphString!)).toBe( + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneBaseSchema + - ` + ` + directive @CustomDirectiveFour on INPUT_FIELD_DEFINITION directive @CustomDirectiveOne on INPUT_OBJECT - directive @CustomDirectiveTwo on INPUT_FIELD_DEFINITION directive @CustomDirectiveThree on INPUT_OBJECT - directive @CustomDirectiveFour on INPUT_FIELD_DEFINITION + directive @CustomDirectiveTwo on INPUT_FIELD_DEFINITION input Input @CustomDirectiveOne @CustomDirectiveThree { - name: String age: Int @CustomDirectiveTwo height: Int @CustomDirectiveFour + name: String }`, ), ); }); test('that object types are normalized successfully', () => { - const result = normalizeSubgraphFromString( + const { schema } = normalizeSubgraphFromString( ` type Object { name: String! @@ -473,22 +453,19 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationSuccess; - expect(result.success).toBe(true); - const subgraphString = result.subgraphString; - expect(normalizeString(subgraphString!)).toBe( + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneBaseSchema + - ` + ` type Object { - name: String! age: Int! + name: String! }`, ), ); }); test('that an object with no fields returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Object { } @@ -496,9 +473,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0].message).toBe( + expect(errors).toHaveLength(1); + expect(errors[0].message).toBe( `The subgraph has syntax errors and could not be parsed.\n` + ` The reason provided was: Syntax Error: Expected Name, found "}".`, ); @@ -521,8 +497,7 @@ describe('Normalization tests', () => { const subgraphString = result.subgraphString; expect(normalizeString(subgraphString!)).toBe( normalizeString( - versionOneBaseSchema + - ` + ` directive @CustomDirectiveOne on SCALAR directive @CustomDirectiveTwo on SCALAR @@ -558,8 +533,6 @@ describe('Normalization tests', () => { type Pepper { age: Int } - - scalar openfed__FieldSet `, true, ROUTER_COMPATIBILITY_VERSION_ONE, @@ -568,8 +541,7 @@ describe('Normalization tests', () => { const subgraphString = result.subgraphString; expect(normalizeString(subgraphString!)).toBe( normalizeString( - versionOneBaseSchema + - ` + ` directive @CustomDirectiveOne on UNION directive @CustomDirectiveTwo on UNION @@ -586,15 +558,13 @@ describe('Normalization tests', () => { type Pepper { age: Int } - - scalar openfed__FieldSet `, ), ); }); test('that a union without members returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` union Cats = @@ -605,29 +575,27 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0].message).toBe( + expect(errors).toHaveLength(1); + expect(errors[0].message).toBe( `The subgraph has syntax errors and could not be parsed.\n` + ` The reason provided was: Syntax Error: Unexpected Name "Pepper".`, ); }); test('that undefined union members return an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` union Cats = Pepper `, true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(undefinedTypeError('Pepper')); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(undefinedTypeError('Pepper')); }); test('Should return an error when a enum has values with type Int', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` enum UserRole { ADMIN @@ -638,15 +606,14 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors[0].message).toBe( + expect(errors[0].message).toBe( `The subgraph has syntax errors and could not be parsed.\n` + ` The reason provided was: Syntax Error: Expected Name, found Int "1".`, ); }); test('Should return an error when a enum has duplicate values', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` enum UserRole { ADMIN @@ -657,13 +624,12 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateEnumValueDefinitionError('UserRole', 'ADMIN')); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateEnumValueDefinitionError('UserRole', 'ADMIN')); }); test('Should return an error when a enum values have special characters', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` enum Continent { AFR!CA @@ -674,8 +640,7 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors[0].message).toBe( + expect(errors[0].message).toBe( `The subgraph has syntax errors and could not be parsed.\n` + ` The reason provided was: Syntax Error: Expected Name, found "!".`, ); @@ -692,7 +657,7 @@ describe('Normalization tests', () => { }); test('Should normalize type extensions', () => { - const result = normalizeSubgraphFromString( + const { schema } = normalizeSubgraphFromString( ` directive @tag(name: String!) repeatable on FIELD_DEFINITION @@ -719,16 +684,20 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationSuccess; - expect(result.success).toBe(true); - const subgraphString = result.subgraphString; - expect(normalizeString(subgraphString!)).toBe( + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneBaseSchema + + KEY_DIRECTIVE + + TAG_DIRECTIVE + ` + type DeliveryEstimates { + estimatedDelivery: String + fastestDelivery: String + } + type Product @key(fields: "id") { - id: ID! @tag(name: "hi-from-inventory") - dimensions: ProductDimension delivery(zip: String): DeliveryEstimates + dimensions: ProductDimension + id: ID! @tag(name: "hi-from-inventory") name: String } @@ -736,17 +705,14 @@ describe('Normalization tests', () => { size: String weight: Float @tag(name: "hi-from-inventory-value-type-field") } - - type DeliveryEstimates { - estimatedDelivery: String - fastestDelivery: String - }`, + ` + + OPENFED_FIELD_SET, ), ); }); test('Should normalize root type extensions', () => { - const result = normalizeSubgraphFromString( + const { schema } = normalizeSubgraphFromString( ` directive @tag(name: String!) repeatable on FIELD_DEFINITION @@ -781,11 +747,11 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + + KEY_DIRECTIVE + + TAG_DIRECTIVE + ` type Product @key(fields: "id") @key(fields: "sku package") @key(fields: "sku variation { id }") { createdBy: User @@ -814,67 +780,57 @@ describe('Normalization tests', () => { email: ID! totalProductsCreated: Int } - - scalar openfed__FieldSet - `, + ` + + OPENFED_FIELD_SET, ), ); }); test('that undefined version two directives are injected', () => { - const schema = readFileSync(join(__dirname, 'test-data/testNormalization.graphql'), { + const sdl = readFileSync(join(__dirname, 'test-data/testNormalization.graphql'), { encoding: 'utf8', }); - const result = normalizeSubgraphFromString(schema, true, ROUTER_COMPATIBILITY_VERSION_ONE) as NormalizationSuccess; - expect(result.success).toBe(true); - const subgraphString = result.subgraphString; - expect(normalizeString(subgraphString!)).toBe( + const { schema } = normalizeSubgraphFromString(sdl, true, ROUTER_COMPATIBILITY_VERSION_ONE) as NormalizationSuccess; + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionTwoBaseSchema + + SCHEMA_QUERY_DEFINITION + + `directive @hello on FIELD_DEFINITION` + + KEY_DIRECTIVE + + `directive @myDirective(a: String!) on FIELD_DEFINITION` + + SHAREABLE_DIRECTIVE + + TAG_DIRECTIVE + ` - directive @myDirective(a: String!) on FIELD_DEFINITION - directive @hello on FIELD_DEFINITION - - type Query { - allProducts: [ProductItf] - product(id: ID!): ProductItf - } - - interface SkuItf { - sku: String - } - - interface ProductItf implements SkuItf { - id: ID! - sku: String - name: String - package: String - variation: ProductVariation - dimensions: ProductDimension - createdBy: User - hidden: String - oldField: String @deprecated(reason: "refactored out") - } - type Product implements ProductItf & SkuItf @key(fields: "id") @key(fields: "sku package") @key(fields: "sku variation { id }") { + createdBy: User + dimensions: ProductDimension + hidden: String id: ID! @tag(name: "hi-from-products") - sku: String name: String @hello + oldField: String package: String - variation: ProductVariation - dimensions: ProductDimension - createdBy: User - hidden: String reviewsScore: Float! @shareable - oldField: String + sku: String + variation: ProductVariation } - enum ShippingClass { - STANDARD - EXPRESS + type ProductDimension { + size: String @shareable + weight: Float @shareable + } + + interface ProductItf implements SkuItf { + createdBy: User + dimensions: ProductDimension + hidden: String + id: ID! + name: String + oldField: String @deprecated(reason: "refactored out") + package: String + sku: String + variation: ProductVariation } type ProductVariation { @@ -882,15 +838,25 @@ describe('Normalization tests', () => { name: String } - type ProductDimension { - size: String @shareable - weight: Float @shareable + type Query { + allProducts: [ProductItf] + product(id: ID!): ProductItf + } + + enum ShippingClass { + EXPRESS + STANDARD + } + + interface SkuItf { + sku: String } type User @key(fields: "email") { email: ID! totalProductsCreated: Int @shareable - }`, + }` + + OPENFED_FIELD_SET, ), ); }); @@ -917,7 +883,7 @@ describe('Normalization tests', () => { }); test('Should give errors when key directive points to a field which doesnt exist', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type User @key(fields: "id") { name: String! @@ -927,15 +893,14 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, 'User', FIRST_ORDINAL, [undefinedFieldInFieldSetErrorMessage('id', 'User', 'id')]), ); }); test('Should give errors when key directive is applied to a enum', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` enum User @key(fields: "name") { USER1 @@ -945,15 +910,14 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, 'User', FIRST_ORDINAL, [invalidDirectiveLocationErrorMessage(KEY, ENUM_UPPER)]), ); }); test('Should give errors when key directive is applied to an Input', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` input User @key(fields: "name") { name: String! @@ -963,10 +927,9 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( - invalidDirectiveError('key', 'User', FIRST_ORDINAL, [ + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( + invalidDirectiveError(KEY, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(KEY, INPUT_OBJECT_UPPER), ]), ); @@ -984,7 +947,7 @@ describe('Normalization tests', () => { }); test('that declaring the @tag directive on a parent without the required name argument returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type User @tag { name: String! @@ -994,15 +957,14 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(TAG, 'User', FIRST_ORDINAL, [undefinedRequiredArgumentsErrorMessage(TAG, [NAME], [])]), ); }); test('that declaring the @tag directive on a child without the required name argument returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type User { name: String! @tag @@ -1012,9 +974,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError('tag', 'User.name', FIRST_ORDINAL, [ undefinedRequiredArgumentsErrorMessage(TAG, [NAME], []), ]), @@ -1033,7 +994,7 @@ describe('Normalization tests', () => { }); test('Should give errors when external directive is applied to a interface', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` interface User @external { name: String! @@ -1043,9 +1004,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(EXTERNAL, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(EXTERNAL, INTERFACE_UPPER), ]), @@ -1053,7 +1013,7 @@ describe('Normalization tests', () => { }); test('Should give errors when external directive is applied to an enum', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` enum User @external { USER1 @@ -1063,9 +1023,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(EXTERNAL, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(EXTERNAL, ENUM_UPPER), ]), @@ -1073,7 +1032,7 @@ describe('Normalization tests', () => { }); test('Should give errors when external directive is applied to a input', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` input User @external { name: String! @@ -1083,9 +1042,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(EXTERNAL, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(EXTERNAL, INPUT_OBJECT_UPPER), ]), @@ -1109,7 +1067,7 @@ describe('Normalization tests', () => { }); test('that an error is returned if @provides refers to a non-existent field', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Review @key(fields : "id") { id: String! @@ -1124,16 +1082,15 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0].message).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0].message).toStrictEqual( `The following "provides" directive is invalid:\n On field "Review.user":\n -` + undefinedFieldInFieldSetErrorMessage('age', 'User', 'age'), ); }); test('that declaring the @provides directive without the required fields argument returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Review @key(fields : "id") { id: String! @@ -1148,9 +1105,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(PROVIDES, 'Review.user', FIRST_ORDINAL, [ undefinedRequiredArgumentsErrorMessage(PROVIDES, [FIELDS], []), ]), @@ -1158,7 +1114,7 @@ describe('Normalization tests', () => { }); test('Should give errors when provides directive is applied to a object', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type User @provides(fields : "age") { name: String! @@ -1168,9 +1124,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(PROVIDES, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(PROVIDES, OBJECT_UPPER), ]), @@ -1178,7 +1133,7 @@ describe('Normalization tests', () => { }); test('Should give errors when provides directive is applied to a interface', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` interface User @provides(fields : "age") { name: String! @@ -1188,9 +1143,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(PROVIDES, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(PROVIDES, INTERFACE_UPPER), ]), @@ -1198,7 +1152,7 @@ describe('Normalization tests', () => { }); test('Should give errors when provides directive is applied to a enum', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` enum User @provides(fields : "age") { USER1 @@ -1208,9 +1162,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(PROVIDES, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(PROVIDES, ENUM_UPPER), ]), @@ -1218,7 +1171,7 @@ describe('Normalization tests', () => { }); test('Should give errors when provides directive is applied to a input', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` input User @provides(fields : "age") { name: String! @@ -1228,9 +1181,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(PROVIDES, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(PROVIDES, INPUT_OBJECT_UPPER), ]), @@ -1249,7 +1201,7 @@ describe('Normalization tests', () => { }); test('Should give errors if the requires directive points to a field which does not exist ', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Product @key(fields : "id") { id: String! @@ -1260,9 +1212,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidProvidesOrRequiresDirectivesError(REQUIRES, [ ` On field "Product.shippingCost":\n -` + undefinedFieldInFieldSetErrorMessage('age', 'Product', 'age'), ]), @@ -1281,7 +1232,7 @@ describe('Normalization tests', () => { }); test('Should give errors when requires directive is applied to a object', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type User @requires(fields : "age") { name: String! @@ -1291,9 +1242,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(REQUIRES, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(REQUIRES, OBJECT_UPPER), ]), @@ -1301,7 +1251,7 @@ describe('Normalization tests', () => { }); test('Should give errors when requires directive is applied to a interface', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` interface User @requires(fields : "age") { name: String! @@ -1311,9 +1261,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(REQUIRES, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(REQUIRES, INTERFACE_UPPER), ]), @@ -1321,7 +1270,7 @@ describe('Normalization tests', () => { }); test('Should give errors when requires directive is applied to a enum', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` enum User @requires(fields : "age") { USER1 @@ -1331,9 +1280,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(REQUIRES, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(REQUIRES, ENUM_UPPER), ]), @@ -1341,7 +1289,7 @@ describe('Normalization tests', () => { }); test('Should give errors when provides directive is applied to a input', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` input User @requires(fields : "age") { name: String! @@ -1351,9 +1299,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(REQUIRES, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(REQUIRES, INPUT_OBJECT_UPPER), ]), @@ -1383,7 +1330,7 @@ describe('Normalization tests', () => { }); test('that providing @shareable directive with an argument returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type User @shareable(fields: "email") { email: String @@ -1393,9 +1340,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(SHAREABLE, 'User', FIRST_ORDINAL, [ unexpectedDirectiveArgumentErrorMessage(SHAREABLE, [FIELDS]), ]), @@ -1403,7 +1349,7 @@ describe('Normalization tests', () => { }); test('that declaring @shareable on an interface returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` interface User @shareable { name: String! @@ -1413,9 +1359,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(SHAREABLE, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(SHAREABLE, INTERFACE_UPPER), ]), @@ -1423,7 +1368,7 @@ describe('Normalization tests', () => { }); test('that declaring @shareable on an enum returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` enum User @shareable { USER1 @@ -1433,9 +1378,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(SHAREABLE, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(SHAREABLE, ENUM_UPPER), ]), @@ -1443,7 +1387,7 @@ describe('Normalization tests', () => { }); test('that declaring @shareable on an input object returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` input User @shareable { name: String! @@ -1453,9 +1397,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(SHAREABLE, 'User', FIRST_ORDINAL, [ invalidDirectiveLocationErrorMessage(SHAREABLE, INPUT_OBJECT_UPPER), ]), @@ -1504,7 +1447,7 @@ describe('Normalization tests', () => { }); test('that declaring the @inaccessible directive with an argument returns an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type User @inaccessible(fields: "name") { email: String @@ -1514,9 +1457,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(INACCESSIBLE, 'User', FIRST_ORDINAL, [ unexpectedDirectiveArgumentErrorMessage(INACCESSIBLE, [FIELDS]), ]), @@ -1566,7 +1508,7 @@ describe('Normalization tests', () => { }); test('that invalid fields in composite keys return an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Entity @key(fields: "id email") @key(fields: "id organization { id details { id age } }") { id: ID! @@ -1587,9 +1529,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, 'Entity', numberToOrdinal(2), [ undefinedFieldInFieldSetErrorMessage('id organization { id details { id age } }', 'Details', 'age'), ]), @@ -1597,7 +1538,7 @@ describe('Normalization tests', () => { }); test('that an empty selection set in a composite key returns a parse error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Entity @key(fields: "id email") @key(fields: "id organization { id details { } }") { id: ID! @@ -1618,9 +1559,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, 'Entity', numberToOrdinal(2), [ unparsableFieldSetErrorMessage( 'id organization { id details { } }', @@ -1631,7 +1571,7 @@ describe('Normalization tests', () => { }); test('that an error is returned if a composite type selection does not define a selection set of its own #1.1', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Entity @key(fields: "id email") @key(fields: "id organization { id details }") { id: ID! @@ -1652,9 +1592,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, 'Entity', numberToOrdinal(2), [ invalidSelectionSetErrorMessage('id organization { id details }', ['Organization.details'], 'Details', OBJECT), ]), @@ -1662,7 +1601,7 @@ describe('Normalization tests', () => { }); test('that an error is returned if a composite type selection does not define a selection set of its own #1.2', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Entity @key(fields: "id email") @key(fields: "id organization { details id }") { id: ID! @@ -1683,9 +1622,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toBeDefined(); - expect(result.errors[0]).toStrictEqual( + expect(errors).toBeDefined(); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, 'Entity', '2nd', [ invalidSelectionSetErrorMessage('id organization { details id }', ['Organization.details'], 'Details', OBJECT), ]), @@ -1693,7 +1631,7 @@ describe('Normalization tests', () => { }); test('that an error is returned if a composite type selection does not define a selection set of its own #2.1', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Entity @key(fields: "id email") @key(fields: "id organization { uuid details }") { id: ID! @@ -1714,9 +1652,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, 'Entity', numberToOrdinal(2), [ invalidSelectionSetErrorMessage( 'id organization { uuid details }', @@ -1729,7 +1666,7 @@ describe('Normalization tests', () => { }); test('that an error is returned if a composite type selection does not define a selection set of its own #2.2', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Entity @key(fields: "id email") @key(fields: "id organization { details uuid }") { id: ID! @@ -1750,9 +1687,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toBeDefined(); - expect(result.errors[0]).toStrictEqual( + expect(errors).toBeDefined(); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, 'Entity', '2nd', [ invalidSelectionSetErrorMessage( 'id organization { details uuid }', @@ -1788,11 +1724,10 @@ describe('Normalization tests', () => { name: String! } `); - expect(result.success).toBe(true); }); test('that if multiple nested objects with invalid fields are passed in composite keys gives an error', () => { - const result = normalizeSubgraphFromString( + const { errors } = normalizeSubgraphFromString( ` type Entity @key(fields: "id email") @key(fields: "id organization { details { id } somethingElse { id } }") { id: ID! @@ -1818,9 +1753,8 @@ describe('Normalization tests', () => { true, ROUTER_COMPATIBILITY_VERSION_ONE, ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidDirectiveError(KEY, 'Entity', numberToOrdinal(2), [ undefinedFieldInFieldSetErrorMessage( 'id organization { details { id } somethingElse { id } }', @@ -1832,53 +1766,32 @@ describe('Normalization tests', () => { }); test('that a subgraph is normalized correctly', () => { - const result = normalizeSubgraphSuccess(nab, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.schema)).toBe( - normalizeString(` - directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR - directive @composeDirective(name: String!) repeatable on SCHEMA - directive @extends on INTERFACE | OBJECT - directive @external on FIELD_DEFINITION | OBJECT - directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION - directive @interfaceObject on OBJECT - directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT - directive @override(from: String!) on FIELD_DEFINITION - directive @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION - directive @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION - directive @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR - directive @shareable repeatable on FIELD_DEFINITION | OBJECT - directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION - + const { schema } = normalizeSubgraphSuccess(nab, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( + normalizeString( + AUTHENTICATED_DIRECTIVE + + REQUIRES_SCOPES_DIRECTIVE + + ` enum Enum @requiresScopes(scopes: [["read:enum"]]) { VALUE } - """ - This is the description for Interface - """ + """This is the description for Interface""" interface Interface @requiresScopes(scopes: [["read:private"]]) { field(argumentOne: String!): Enum! @authenticated } - """ - This is the description for Object - """ + """This is the description for Object""" type Object implements Interface @requiresScopes(scopes: [["read:object"]]) { - """ - This is the description for Object.field - """ + """This is the description for Object.field""" field( - """ - This is the description for the argumentOne argument of Object.field - """ + """This is the description for the argumentOne argument of Object.field""" argumentOne: String! ): Enum! } - - scalar openfed__FieldSet - - scalar openfed__Scope - `), + ` + + OPENFED_SCOPE, + ), ); }); diff --git a/composition/tests/v1/resolvability.test.ts b/composition/tests/v1/resolvability.test.ts index c65d74398b..fc114082c8 100644 --- a/composition/tests/v1/resolvability.test.ts +++ b/composition/tests/v1/resolvability.test.ts @@ -17,14 +17,8 @@ import { unresolvablePathError, } from '../../src'; import { describe, expect, test } from 'vitest'; +import { INACCESSIBLE_DIRECTIVE, SCHEMA_QUERY_DEFINITION } from './utils/utils'; import { - versionOnePersistedBaseSchema, - versionOnePersistedDirectiveDefinitions, - versionOneRouterDefinitions, - versionTwoRouterDefinitions, -} from './utils/utils'; -import { - documentNodeToNormalizedString, federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, @@ -33,11 +27,10 @@ import { describe('Field resolvability tests', () => { test('that shared queries that return a nested type that is only resolvable over multiple subgraphs are valid', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Nested { nest: Nested2 @@ -59,8 +52,6 @@ describe('Field resolvability tests', () => { type Query { query: Nested } - - scalar openfed__Scope `, ), ); @@ -208,16 +199,15 @@ describe('Field resolvability tests', () => { subgraphNames: new Set(['subgraph-g']), typeName: 'Friend', }; - const result = federateSubgraphsFailure([subgraphD, subgraphF, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(2); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphD, subgraphF, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(2); + expect(errors[0]).toStrictEqual( unresolvablePathError( fieldDataOne, generateResolvabilityErrorReasons({ rootFieldData, unresolvableFieldData: fieldDataOne }), ), ); - expect(result.errors[1]).toStrictEqual( + expect(errors[1]).toStrictEqual( unresolvablePathError( fieldDataTwo, generateResolvabilityErrorReasons({ rootFieldData, unresolvableFieldData: fieldDataTwo }), @@ -226,11 +216,10 @@ describe('Field resolvability tests', () => { }); test('that shared queries that return a type that is only resolvable over multiple subgraphs are valid', () => { - const result = federateSubgraphsSuccess([subgraphD, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphD, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Friend { age: Int! @@ -240,19 +229,16 @@ describe('Field resolvability tests', () => { type Query { friend: Friend } - - scalar openfed__Scope `, ), ); }); test('that shared queries that return an interface that is only resolvable over multiple subgraphs are valid', () => { - const result = federateSubgraphsSuccess([subgraphH, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphH, subgraphI], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Friend implements Human { age: Int! @@ -284,10 +270,9 @@ describe('Field resolvability tests', () => { subgraphNames: new Set(['subgraph-j']), typeName: 'Friend', }; - const result = federateSubgraphsFailure([subgraphI, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphI, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( unresolvablePathError( unresolvableFieldData, generateResolvabilityErrorReasons({ rootFieldData, unresolvableFieldData }), @@ -307,10 +292,9 @@ describe('Field resolvability tests', () => { subgraphNames: new Set(['subgraph-l']), typeName: 'Cat', }; - const result = federateSubgraphsFailure([subgraphK, subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphK, subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( unresolvablePathError( unresolvableFieldData, generateResolvabilityErrorReasons({ rootFieldData, unresolvableFieldData }), @@ -319,11 +303,10 @@ describe('Field resolvability tests', () => { }); test('that shared queries that return a union that is only resolvable over multiple subgraphs are valid', () => { - const result = federateSubgraphsSuccess([subgraphM, subgraphN], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphM, subgraphN], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Enemy { name: String! @@ -355,9 +338,9 @@ describe('Field resolvability tests', () => { subgraphNames: new Set(['subgraph-p']), typeName: 'Enemy', }; - const result = federateSubgraphsFailure([subgraphO, subgraphP], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphO, subgraphP], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( unresolvablePathError( unresolvableFieldData, generateResolvabilityErrorReasons({ rootFieldData, unresolvableFieldData }), @@ -366,12 +349,20 @@ describe('Field resolvability tests', () => { }); test('that an entity ancestor provides access to an otherwise unreachable field', () => { - const result = federateSubgraphsSuccess([subgraphQ, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(documentNodeToNormalizedString(result.federatedGraphAST)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphQ, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOnePersistedBaseSchema + + SCHEMA_QUERY_DEFINITION + ` + type NestedObject { + age: Int! + name: String! + } + + type Object { + nestedObject: NestedObject! + } + type Query { entity: SometimesEntity! } @@ -380,26 +371,16 @@ describe('Field resolvability tests', () => { id: ID! object: Object! } - - type Object { - nestedObject: NestedObject! - } - - type NestedObject { - name: String! - age: Int! - } `, ), ); }); test('that a nested self-referential type does not create an infinite validation loop', () => { - const result = federateSubgraphsSuccess([subgraphS, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphS, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Friend { name: String! @@ -417,19 +398,16 @@ describe('Field resolvability tests', () => { friend: Friend object: Object! } - - scalar openfed__Scope `, ), ); }); test('that unreachable interface implementations do not return an error', () => { - const result = federateSubgraphsSuccess([subgraphT, subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphT, subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { field: String! @@ -452,11 +430,13 @@ describe('Field resolvability tests', () => { }); test('that extensions do not affect resolvability', () => { - const result = federateSubgraphsSuccess([subgraphX, subgraphY, subgraphZ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphX, subgraphY, subgraphZ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -487,17 +467,18 @@ describe('Field resolvability tests', () => { }); test('that a root field cycle does not affect resolvability', () => { - const result = federateSubgraphsSuccess([subgraphAA, subgraphAB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAA, subgraphAB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( ` schema { query: Query mutation: Mutation - }` + - versionOnePersistedDirectiveDefinitions + - ` + } + type Mutation { mutation: Mutation! } @@ -625,11 +606,13 @@ describe('Field resolvability tests', () => { }); test('that entity resolve chains (leapfrogging) are valid', () => { - const result = federateSubgraphsSuccess([subgraphAK, subgraphAL, subgraphAM], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAK, subgraphAL, subgraphAM], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityOne { entityTwo: EntityTwo @@ -655,19 +638,16 @@ describe('Field resolvability tests', () => { type Query { entityOne: EntityOne! } - - scalar openfed__Scope `, ), ); }); test('that cyclical references are valid', () => { - const result = federateSubgraphsSuccess([subgraphAN], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphAN], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type A { b: B! @@ -693,11 +673,13 @@ describe('Field resolvability tests', () => { }); test('that revisited fields do not produce false positives #1', () => { - const result = federateSubgraphsSuccess([subgraphAP, subgraphAQ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAP, subgraphAQ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityOne { age: Int! @@ -725,11 +707,10 @@ describe('Field resolvability tests', () => { }); test('that revisited fields do not produce false positives #2', () => { - const result = federateSubgraphsSuccess([subgraphAR], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphAR], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type NestedObjectOne { name: String! @@ -762,7 +743,7 @@ describe('Field resolvability tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -791,19 +772,20 @@ describe('Field resolvability tests', () => { type Query { objectOne: ObjectOne! } - - scalar openfed__Scope `, ), ); }); test('that inaccessible concrete types that implement an interface are not assessed by the resolvability graph', () => { - const result = federateSubgraphsSuccess([subgraphAU, subgraphAV], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAU, subgraphAV], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Entity implements Interface { age: Int! @@ -824,19 +806,19 @@ describe('Field resolvability tests', () => { type Query { interface: Interface! } - - scalar openfed__Scope `, ), ); }); test('that interface objects do not create false positives #1.1', () => { - const result = federateSubgraphsSuccess([subgraphAW, subgraphAX], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAW, subgraphAX], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityOne implements Interface { age: Int! @@ -861,18 +843,19 @@ describe('Field resolvability tests', () => { entityOne: [EntityOne!]! entityTwo: [EntityTwo!]! } - - scalar openfed__Scope `, ), ); }); test('that interface objects do not create false positives #1.2', () => { - const result = federateSubgraphsSuccess([subgraphAX, subgraphAW], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAX, subgraphAW], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityOne implements Interface { age: Int! @@ -897,19 +880,19 @@ describe('Field resolvability tests', () => { entityOne: [EntityOne!]! entityTwo: [EntityTwo!]! } - - scalar openfed__Scope `, ), ); }); test('that interface objects can contribute implicit keys #1.1', () => { - const result = federateSubgraphsSuccess([subgraphAY, subgraphAX, subgraphAW], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAY, subgraphAX, subgraphAW], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityOne implements Interface { age: Int! @@ -936,19 +919,19 @@ describe('Field resolvability tests', () => { entityOne: [EntityOne!]! entityTwo: [EntityTwo!]! } - - scalar openfed__Scope `, ), ); }); test('that interface objects can contribute implicit keys #1.2', () => { - const result = federateSubgraphsSuccess([subgraphAW, subgraphAX, subgraphAY], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAW, subgraphAX, subgraphAY], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityOne implements Interface { age: Int! @@ -975,19 +958,19 @@ describe('Field resolvability tests', () => { entityOne: [EntityOne!]! entityTwo: [EntityTwo!]! } - - scalar openfed__Scope `, ), ); }); test('that interface objects can contribute implicit keys #1.3', () => { - const result = federateSubgraphsSuccess([subgraphAY, subgraphAW, subgraphAX], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAY, subgraphAW, subgraphAX], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityOne implements Interface { age: Int! @@ -1014,19 +997,20 @@ describe('Field resolvability tests', () => { entityOne: [EntityOne!]! entityTwo: [EntityTwo!]! } - - scalar openfed__Scope `, ), ); }); test('that inaccessible fields are not considered for resolvability', () => { - const result = federateSubgraphsSuccess([subgraphAZ, subgraphAO], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAZ, subgraphAO], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` type Entity { age: Int! @@ -1037,8 +1021,6 @@ describe('Field resolvability tests', () => { type Query { entities: [Entity!]! } - - scalar openfed__Scope `, ), ); @@ -1051,7 +1033,7 @@ describe('Field resolvability tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityOne { age: Int! @@ -1069,19 +1051,19 @@ describe('Field resolvability tests', () => { type Query { entityOne: EntityOne! } - - scalar openfed__Scope `, ), ); }); - test('that shared entity fields frm a root field do not produce false positives', () => { - const result = federateSubgraphsSuccess([subgraphBF, subgraphBG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + test('that shared entity fields from a root field do not produce false positives', () => { + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphBF, subgraphBG], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -1093,19 +1075,19 @@ describe('Field resolvability tests', () => { type Query { entity: Entity! } - - scalar openfed__Scope `, ), ); }); test('that interface objects satisfied by implicit keys do not produce false positives', () => { - const result = federateSubgraphsSuccess([subgraphBH, subgraphBI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphBH, subgraphBI], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Interface { id: ID! @@ -1127,8 +1109,6 @@ describe('Field resolvability tests', () => { type Query { entity: Entity! } - - scalar openfed__Scope `, ), ); @@ -1168,7 +1148,7 @@ describe('Field resolvability tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type EntityOne { age: Int! @@ -1196,8 +1176,6 @@ describe('Field resolvability tests', () => { type Query { entity: EntityOne! } - - scalar openfed__Scope `, ), ); @@ -1266,7 +1244,7 @@ describe('Field resolvability tests', () => { ); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { age: Int! @@ -1300,7 +1278,7 @@ describe('Field resolvability tests', () => { const { federatedGraphSchema } = federateSubgraphsSuccess([aaaa, aaab], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { id: ID! @@ -1345,8 +1323,6 @@ describe('Field resolvability tests', () => { type Query { objectA: Output! } - - scalar openfed__Scope `, ), ); @@ -1356,7 +1332,7 @@ describe('Field resolvability tests', () => { const { federatedGraphSchema } = federateSubgraphsSuccess([baaa, baab], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type ObjectA { a: ID @@ -1390,7 +1366,7 @@ describe('Field resolvability tests', () => { const { federatedGraphSchema } = federateSubgraphsSuccess([caaa, caab], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type ObjectA { a: ID @@ -1420,7 +1396,7 @@ describe('Field resolvability tests', () => { const { federatedGraphSchema } = federateSubgraphsSuccess([daaa, daab], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { id: ID! @@ -1454,8 +1430,6 @@ describe('Field resolvability tests', () => { type Query { interface: Interface } - - scalar openfed__Scope `, ), ); @@ -1465,7 +1439,7 @@ describe('Field resolvability tests', () => { const { federatedGraphSchema } = federateSubgraphsSuccess([eaaa, eaab], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -1517,7 +1491,7 @@ describe('Field resolvability tests', () => { const { federatedGraphSchema } = federateSubgraphsSuccess([eaaa, eaac, eaad], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity { id: ID! @@ -1683,7 +1657,7 @@ describe('Field resolvability tests', () => { const { federatedGraphSchema } = federateSubgraphsSuccess([gaaa, gaab], ROUTER_COMPATIBILITY_VERSION_ONE); expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { object: Object! diff --git a/composition/tests/v1/router-configuration.test.ts b/composition/tests/v1/router-configuration.test.ts index 282cc6e442..77cc991361 100644 --- a/composition/tests/v1/router-configuration.test.ts +++ b/composition/tests/v1/router-configuration.test.ts @@ -5,6 +5,7 @@ import { ConfigurationData, ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph, + TypeName, } from '../../src'; import fs from 'node:fs'; import path, { join } from 'node:path'; @@ -19,11 +20,9 @@ const __dirname = path.dirname(__filename); describe('Router Configuration tests', () => { describe('Normalization tests', () => { test('that the router configuration for employees.graphql is correctly generated', () => { - const result = normalizeSubgraphSuccess(employees, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - const configurationDataMap = result.configurationDataByTypeName; - expect(configurationDataMap).toStrictEqual( - new Map([ + const { configurationDataByTypeName } = normalizeSubgraphSuccess(employees, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Query', { @@ -153,10 +152,9 @@ describe('Router Configuration tests', () => { }); test('that the router configuration for family.graphql is correctly generated', () => { - const result = normalizeSubgraphSuccess(family, ROUTER_COMPATIBILITY_VERSION_ONE); - const configurationDataMap = result.configurationDataByTypeName; - expect(configurationDataMap).toStrictEqual( - new Map([ + const { configurationDataByTypeName } = normalizeSubgraphSuccess(family, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Query', { @@ -251,10 +249,9 @@ describe('Router Configuration tests', () => { }); test('that the router configuration for hobbies.graphql is correctly generated', () => { - const result = normalizeSubgraphSuccess(hobbies, ROUTER_COMPATIBILITY_VERSION_ONE); - const configurationDataMap = result.configurationDataByTypeName; - expect(configurationDataMap).toStrictEqual( - new Map([ + const { configurationDataByTypeName } = normalizeSubgraphSuccess(hobbies, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Exercise', { @@ -334,10 +331,9 @@ describe('Router Configuration tests', () => { }); test('that the router configuration for products.graphql is correctly generated', () => { - const result = normalizeSubgraphSuccess(products, ROUTER_COMPATIBILITY_VERSION_ONE); - const configurationDataMap = result.configurationDataByTypeName; - expect(configurationDataMap).toStrictEqual( - new Map([ + const { configurationDataByTypeName } = normalizeSubgraphSuccess(products, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Query', { @@ -418,10 +414,9 @@ describe('Router Configuration tests', () => { }); test('that FieldSet configuration is generated', () => { - const result = normalizeSubgraphSuccess(subgraphA, ROUTER_COMPATIBILITY_VERSION_ONE); - const configurationDataMap = result.configurationDataByTypeName; - expect(configurationDataMap).toStrictEqual( - new Map([ + const { configurationDataByTypeName } = normalizeSubgraphSuccess(subgraphA, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Entity', { @@ -473,9 +468,9 @@ describe('Router Configuration tests', () => { }); test('that entity interfaces produce the correct configuration', () => { - const result = normalizeSubgraphSuccess(subgraphB, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName } = normalizeSubgraphSuccess(subgraphB, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Entity', { @@ -501,9 +496,9 @@ describe('Router Configuration tests', () => { }); test('that interface objects produce the correct configuration', () => { - const result = normalizeSubgraphSuccess(subgraphC, ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName } = normalizeSubgraphSuccess(subgraphC, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Interface', { @@ -520,10 +515,9 @@ describe('Router Configuration tests', () => { }); test('that nested external fields that are part of a key FieldSet are added to configuration', () => { - const result = normalizeSubgraphSuccess(subgraphD, ROUTER_COMPATIBILITY_VERSION_ONE); - const configurationData = result.configurationDataByTypeName; - expect(configurationData).toStrictEqual( - new Map([ + const { configurationDataByTypeName } = normalizeSubgraphSuccess(subgraphD, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Entity', { @@ -687,7 +681,7 @@ describe('Router Configuration tests', () => { ) as BatchNormalizationSuccess; expect(result.success).toBe(true); expect(result.internalSubgraphBySubgraphName.get('monolith')!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -699,7 +693,7 @@ describe('Router Configuration tests', () => { ]), ); expect(result.internalSubgraphBySubgraphName.get('reviews')!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { @@ -727,7 +721,7 @@ describe('Router Configuration tests', () => { ]), ); expect(result.internalSubgraphBySubgraphName.get('users')!.configurationDataByTypeName).toStrictEqual( - new Map([ + new Map([ [ 'Query', { diff --git a/composition/tests/v1/types/arguments.test.ts b/composition/tests/v1/types/arguments.test.ts index 940bcc549e..98f663f311 100644 --- a/composition/tests/v1/types/arguments.test.ts +++ b/composition/tests/v1/types/arguments.test.ts @@ -20,11 +20,12 @@ import { subgraphValidationError, } from '../../../src'; import { describe, expect, test } from 'vitest'; -import { stringToTypeNode, versionOneRouterDefinitions, versionTwoRouterDefinitions } from '../utils/utils'; +import { SCHEMA_QUERY_DEFINITION, stringToTypeNode, TAG_DIRECTIVE } from '../utils/utils'; import { federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, + normalizeSubgraphFailure, schemaToSortedNormalizedString, } from '../../utils/utils'; import { Kind } from 'graphql'; @@ -34,14 +35,13 @@ describe('Argument federation tests', () => { const argumentCoords = 'Object.field(input: ...)'; test('that equal arguments merge', () => { - const result = federateSubgraphsSuccess( + const { federatedGraphSchema } = federateSubgraphsSuccess( [subgraphWithArgument('subgraph-a', 'String'), subgraphWithArgument('subgraph-b', 'String')], ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { field(input: String): String @@ -49,22 +49,19 @@ describe('Argument federation tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that arguments merge into their most restrictive form #1', () => { - const result = federateSubgraphsSuccess( + const { federatedGraphSchema } = federateSubgraphsSuccess( [subgraphWithArgument('subgraph-a', 'Float!'), subgraphWithArgument('subgraph-b', 'Float')], ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { field(input: Float!): String @@ -73,22 +70,19 @@ describe('Argument federation tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that if not all arguments have a default value, the default value is ignored', () => { - const result = federateSubgraphsSuccess( + const { federatedGraphSchema } = federateSubgraphsSuccess( [subgraphWithArgument('subgraph-a', 'Int'), subgraphWithArgumentAndDefaultValue('subgraph-b', 'Int', '1337')], ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { field(input: Int): String @@ -97,25 +91,22 @@ describe('Argument federation tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that if all arguments have the same default value, the default value is included', () => { - const result = federateSubgraphsSuccess( + const { federatedGraphSchema } = federateSubgraphsSuccess( [ subgraphWithArgumentAndDefaultValue('subgraph-a', 'Boolean', 'false'), subgraphWithArgumentAndDefaultValue('subgraph-b', 'Boolean', 'false'), ], ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { field(input: Boolean = false): String @@ -124,14 +115,12 @@ describe('Argument federation tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); - test('that if arguments of the same name are not the same type, an error is returned`', () => { + test('that if arguments of the same name are not the same type, an error is returned', () => { const { errors } = federateSubgraphsFailure( [subgraphWithArgument('subgraph-a', STRING_SCALAR), subgraphWithArgument('subgraph-b', FLOAT_SCALAR)], ROUTER_COMPATIBILITY_VERSION_ONE, @@ -163,7 +152,7 @@ describe('Argument federation tests', () => { ); }); - test('that if arguments have different boolean default values, an error is returned`', () => { + test('that if arguments have different boolean default values, an error is returned', () => { const { errors } = federateSubgraphsFailure( [ subgraphWithArgumentAndDefaultValue('subgraph-a', 'Boolean', 'true'), @@ -178,16 +167,15 @@ describe('Argument federation tests', () => { }); test('that if arguments have incompatible default values, an error is returned', () => { - const result = federateSubgraphsFailure( + const { errors } = federateSubgraphsFailure( [ subgraphWithArgumentAndDefaultValue('subgraph-a', BOOLEAN_SCALAR, '1'), subgraphWithArgumentAndDefaultValue('subgraph-b', BOOLEAN_SCALAR, 'false'), ], ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( subgraphValidationError('subgraph-a', [ incompatibleInputValueDefaultValueTypeError(prefix, argumentCoords, BOOLEAN_SCALAR, '1'), ]), @@ -195,11 +183,10 @@ describe('Argument federation tests', () => { }); test('that if an argument is optional but not included in all subgraphs, it is not present in the federated graph', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { field(optionalInAll: Boolean, requiredInAll: Int!, requiredOrOptionalInAll: String!): String @@ -212,8 +199,6 @@ describe('Argument federation tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); @@ -251,41 +236,10 @@ describe('Argument federation tests', () => { }); test('that if an argument is not a valid input type or defined more than once, an error is returned', () => { - const result = normalizeSubgraphFromString( - ` - enum Enum { - A - B - C - } - - input Input { - a: String! - b: Int! - c: Float! - } - - interface Interface { - a: String! - } - - type AnotherObject implements Interface { - a: String! - b: Int! - c: Float! - } - - type Object { - field(argOne: Enum!, argTwo: Input!, argThree: [Interface!]! argThree: String!, argOne: Enum!): String! - } - `, - true, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(2); - expect(result.errors[0]).toStrictEqual(duplicateArgumentsError('Object.field', ['argThree', 'argOne'])); - expect(result.errors[1]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(naaaa, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(2); + expect(errors[0]).toStrictEqual(duplicateArgumentsError('Object.field', ['argThree', 'argOne'])); + expect(errors[1]).toStrictEqual( invalidNamedTypeError({ data: { kind: 'InputValueDefinition', @@ -300,19 +254,20 @@ describe('Argument federation tests', () => { }); test('that arguments are accounted for when merging extension and base definitions', () => { - const result = federateSubgraphsSuccess([subgraphD, subgraphE, subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphD, subgraphE, subgraphF], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Entity implements Interface @tag(name: "subgraph-f") { - field( - four: String = null @tag(name: "object"), + field(four: String = null @tag(name: "object"), one: Int = null @tag(name: "extension"), three: String = null @deprecated(reason: "just because"), - two: Int = null @tag(name: "extension") @tag(name: "object") - ): String + two: Int = null @tag(name: "extension") @tag(name: "object")): String id: ID! } @@ -355,14 +310,19 @@ describe('Argument federation tests', () => { }); test('that the @deprecated directive is persisted on Arguments in the federated schema #1.1', () => { - const result = federateSubgraphsSuccess([subgraphG, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphG, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Identifiable { - field("""one"""one: Int!three: String @deprecated(reason: "Just because")"""two"""two: String): String + field( + """one""" + one: Int! + three: String @deprecated(reason: "Just because") + """two""" + two: String + ): String id: Int! test: Float! } @@ -380,14 +340,19 @@ describe('Argument federation tests', () => { }); test('that the @deprecated directive is persisted on Arguments in the federated schema #1.2', () => { - const result = federateSubgraphsSuccess([subgraphH, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphH, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Entity implements Identifiable { - field("""one"""one: Int!three: String @deprecated(reason: "Just because")"""two"""two: String): String + field( + """one""" + one: Int! + three: String @deprecated(reason: "Just because") + """two""" + two: String + ): String id: Int! test: Float! } @@ -555,3 +520,35 @@ const subgraphH: Subgraph = { } `), }; + +const naaaa: Subgraph = { + name: 'naaaa', + url: '', + definitions: parse(` + enum Enum { + A + B + C + } + + input Input { + a: String! + b: Int! + c: Float! + } + + interface Interface { + a: String! + } + + type AnotherObject implements Interface { + a: String! + b: Int! + c: Float! + } + + type Object { + field(argOne: Enum!, argTwo: Input!, argThree: [Interface!]! argThree: String!, argOne: Enum!): String! + } + `), +}; diff --git a/composition/tests/v1/types/enums.test.ts b/composition/tests/v1/types/enums.test.ts index e2ddac9590..de0720374c 100644 --- a/composition/tests/v1/types/enums.test.ts +++ b/composition/tests/v1/types/enums.test.ts @@ -5,389 +5,234 @@ import { incompatibleSharedEnumError, noBaseDefinitionForExtensionError, noDefinedEnumValuesError, - NormalizationFailure, - NormalizationSuccess, - normalizeSubgraph, parse, ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph, } from '../../../src'; import { describe, expect, test } from 'vitest'; -import { - baseDirectiveDefinitions, - schemaQueryDefinition, - versionOneRouterDefinitions, - versionTwoRouterDefinitions, -} from '../utils/utils'; +import { INACCESSIBLE_DIRECTIVE, SCHEMA_QUERY_DEFINITION, TAG_DIRECTIVE } from '../utils/utils'; import { federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, + normalizeSubgraphFailure, + normalizeSubgraphSuccess, schemaToSortedNormalizedString, } from '../../utils/utils'; describe('Enum tests', () => { describe('Normalization tests', () => { test('that an Enum extension orphan is valid', () => { - const result = normalizeSubgraph( - subgraphQ.definitions, - subgraphQ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphQ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` enum Enum { A } - - scalar openfed__FieldSet `, ), ); }); test('that an Enum can be extended #1', () => { - const result = normalizeSubgraph( - subgraphS.definitions, - subgraphS.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphS, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` enum Enum { A B } - - scalar openfed__FieldSet `, ), ); }); test('that an Enum can be extended #2', () => { - const result = normalizeSubgraph( - subgraphT.definitions, - subgraphT.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphT, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` enum Enum { A B } - - scalar openfed__FieldSet `, ), ); }); test('that an Enum stub can be extended #1', () => { - const result = normalizeSubgraph( - subgraphV.definitions, - subgraphV.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphV, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` enum Enum { A } - - scalar openfed__FieldSet `, ), ); }); test('that an Enum stub can be extended #2', () => { - const result = normalizeSubgraph( - subgraphW.definitions, - subgraphW.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphW, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` enum Enum { A } - - scalar openfed__FieldSet `, ), ); }); test('that an Enum stub can be extended #3', () => { - const result = normalizeSubgraph( - subgraphX.definitions, - subgraphX.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphX, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` enum Enum @tag(name: "name") { A } - - scalar openfed__FieldSet `, ), ); }); test('that an Enum stub can be extended #4', () => { - const result = normalizeSubgraph( - subgraphY.definitions, - subgraphY.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphY, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` enum Enum @tag(name: "name") { A } - - scalar openfed__FieldSet `, ), ); }); test('that an Enum stub can be extended #5', () => { - const result = normalizeSubgraph( - subgraphZ.definitions, - subgraphZ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphZ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` enum Enum @tag(name: "name") { A } - - scalar openfed__FieldSet `, ), ); }); test('that an Enum can be extended with just a directive #1', () => { - const result = normalizeSubgraph( - subgraphAA.definitions, - subgraphAA.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphAA, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` enum Enum @tag(name: "name") { A } - - scalar openfed__FieldSet `, ), ); }); test('that an Enum can be extended with just a directive #2', () => { - const result = normalizeSubgraph( - subgraphAB.definitions, - subgraphAB.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphAB, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` enum Enum @tag(name: "name") { A } - - scalar openfed__FieldSet `, ), ); }); test('that an Enum extension can be extended with just a directive #1', () => { - const result = normalizeSubgraph( - subgraphAC.definitions, - subgraphAC.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphAC, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` enum Enum @tag(name: "name") { A } - - scalar openfed__FieldSet `, ), ); }); test('that an Enum extension can be extended with just a directive #2', () => { - const result = normalizeSubgraph( - subgraphAD.definitions, - subgraphAD.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphAD, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` enum Enum @tag(name: "name") { A } - - scalar openfed__FieldSet `, ), ); }); test('that an error is returned if a final Enum defines no Enum Values', () => { - const result = normalizeSubgraph( - subgraphI.definitions, - subgraphI.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noDefinedEnumValuesError(ENUM)); + const { errors } = normalizeSubgraphFailure(subgraphI, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noDefinedEnumValuesError(ENUM)); }); test('that an error is returned if a final Enum extension defines no Enum Values', () => { - const result = normalizeSubgraph( - subgraphJ.definitions, - subgraphJ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noDefinedEnumValuesError(ENUM)); + const { errors } = normalizeSubgraphFailure(subgraphJ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noDefinedEnumValuesError(ENUM)); }); test('that an error is returned if a final extended Enum defines no Enum Values #1', () => { - const result = normalizeSubgraph( - subgraphK.definitions, - subgraphK.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noDefinedEnumValuesError(ENUM)); + const { errors } = normalizeSubgraphFailure(subgraphK, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noDefinedEnumValuesError(ENUM)); }); test('that an error is returned if a final extended Enum defines no Enum Values #2', () => { - const result = normalizeSubgraph( - subgraphL.definitions, - subgraphL.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noDefinedEnumValuesError(ENUM)); + const { errors } = normalizeSubgraphFailure(subgraphL, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noDefinedEnumValuesError(ENUM)); }); test('that an error is returned if an Enum defines a duplicate Enum Value', () => { - const result = normalizeSubgraph( - subgraphM.definitions, - subgraphM.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateEnumValueDefinitionError(ENUM, 'A')); + const { errors } = normalizeSubgraphFailure(subgraphM, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateEnumValueDefinitionError(ENUM, 'A')); }); test('that an error is returned if an Enum extension defines a duplicate Enum Value', () => { - const result = normalizeSubgraph( - subgraphN.definitions, - subgraphN.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateEnumValueDefinitionError(ENUM, 'A')); + const { errors } = normalizeSubgraphFailure(subgraphN, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateEnumValueDefinitionError(ENUM, 'A')); }); test('that an error is returned if an extended Enum defines a duplicate Enum Value #1', () => { - const result = normalizeSubgraph( - subgraphO.definitions, - subgraphO.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateEnumValueDefinitionError(ENUM, 'A')); + const { errors } = normalizeSubgraphFailure(subgraphO, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateEnumValueDefinitionError(ENUM, 'A')); }); test('that an error is returned if an extended Enum defines a duplicate Enum Value #2', () => { - const result = normalizeSubgraph( - subgraphP.definitions, - subgraphP.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateEnumValueDefinitionError(ENUM, 'A')); + const { errors } = normalizeSubgraphFailure(subgraphP, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateEnumValueDefinitionError(ENUM, 'A')); }); }); @@ -395,17 +240,19 @@ describe('Enum tests', () => { const parentName = 'Instruction'; test('that an error is returned if federation results in an Enum extension orphan', () => { - const result = federateSubgraphsFailure([subgraphR, subgraphQ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(ENUM, ENUM)); + const { errors } = federateSubgraphsFailure([subgraphR, subgraphQ], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(ENUM, ENUM)); }); test('that an Enum type and extension definition federate successfully #1.1', () => { - const result = federateSubgraphsSuccess([subgraphR, subgraphQ, subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphR, subgraphQ, subgraphU], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` enum Enum { A @@ -421,11 +268,13 @@ describe('Enum tests', () => { }); test('that an Enum type and extension definition federate successfully #1.2', () => { - const result = federateSubgraphsSuccess([subgraphR, subgraphU, subgraphQ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphR, subgraphU, subgraphQ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` enum Enum { A @@ -441,11 +290,13 @@ describe('Enum tests', () => { }); test('that Enums merge by union if unused in Input Fields or Arguments', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` enum Instruction { FIGHT @@ -457,19 +308,19 @@ describe('Enum tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that Enums merge by intersection if used as an Input Field', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphC], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` enum Instruction { FIGHT @@ -483,19 +334,19 @@ describe('Enum tests', () => { input TrainerBattle { actions: Instruction! } - - scalar openfed__Scope `, ), ); }); test('that Enums merge by intersection if used as an Argument', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphF], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type BattleAction { baseAction(input: Instruction): Boolean! @@ -508,19 +359,19 @@ describe('Enum tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that Enums must be consistent if used as both an input and output', () => { - const result = federateSubgraphsSuccess([subgraphC, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphC, subgraphD], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type BattleAction { baseAction: Instruction! @@ -539,25 +390,26 @@ describe('Enum tests', () => { input TrainerBattle { actions: Instruction! } - - scalar openfed__Scope `, ), ); }); test('that an error is returned if an inconsistent Enum is used as both input and output', () => { - const result = federateSubgraphsFailure([subgraphC, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(incompatibleSharedEnumError(parentName)); + const { errors } = federateSubgraphsFailure([subgraphC, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(incompatibleSharedEnumError(parentName)); }); test('that declaring an Enum Value as inaccessible prevents an Enum inconsistency error #1.1', () => { - const result = federateSubgraphsSuccess([subgraphG, subgraphH], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphG, subgraphH], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` enum Enum { A @@ -569,14 +421,12 @@ describe('Enum tests', () => { enum(enum: Enum!): Enum! enumTwo(enum: Enum!): Enum! } - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` enum Enum { A @@ -593,11 +443,14 @@ describe('Enum tests', () => { }); test('that declaring an Enum Value as inaccessible prevents an Enum inconsistency error #1.2', () => { - const result = federateSubgraphsSuccess([subgraphH, subgraphG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphClientSchema, federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphH, subgraphG], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` enum Enum { A @@ -609,14 +462,12 @@ describe('Enum tests', () => { enum(enum: Enum!): Enum! enumTwo(enum: Enum!): Enum! } - - scalar openfed__Scope `, ), ); - expect(schemaToSortedNormalizedString(result.federatedGraphClientSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphClientSchema)).toBe( normalizeString( - schemaQueryDefinition + + SCHEMA_QUERY_DEFINITION + ` enum Enum { A @@ -633,10 +484,12 @@ describe('Enum tests', () => { }); test('that an Enum has subgraphs data', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); + const { parentDefinitionDataByTypeName } = federateSubgraphsSuccess( + [subgraphA, subgraphC], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); - const enumDef = result.parentDefinitionDataByTypeName.get('Instruction') as EnumDefinitionData; + const enumDef = parentDefinitionDataByTypeName.get('Instruction') as EnumDefinitionData; expect(enumDef.subgraphNames.size).toBe(2); expect(enumDef.subgraphNames).toContain(subgraphA.name); diff --git a/composition/tests/v1/types/inputs.test.ts b/composition/tests/v1/types/inputs.test.ts index c7d2697725..12cc1c679a 100644 --- a/composition/tests/v1/types/inputs.test.ts +++ b/composition/tests/v1/types/inputs.test.ts @@ -1,13 +1,11 @@ import { duplicateInputFieldDefinitionError, - FederationFailure, incompatibleInputValueDefaultValueTypeError, INPUT_OBJECT, InputValueData, invalidNamedTypeError, invalidRequiredInputValueError, noInputValueDefinitionsError, - NormalizationFailure, NormalizationSuccess, normalizeSubgraph, ObjectDefinitionData, @@ -17,12 +15,13 @@ import { subgraphValidationError, } from '../../../src'; import { describe, expect, test } from 'vitest'; -import { baseDirectiveDefinitions, stringToTypeNode, versionOneRouterDefinitions } from '../utils/utils'; +import { SCHEMA_QUERY_DEFINITION, stringToTypeNode, TAG_DIRECTIVE } from '../utils/utils'; import { federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, normalizeSubgraphFailure, + normalizeSubgraphSuccess, schemaToSortedNormalizedString, } from '../../utils/utils'; import { Kind } from 'graphql'; @@ -30,365 +29,216 @@ import { Kind } from 'graphql'; describe('Input tests', () => { describe('Normalization tests', () => { test('that an Input Object extension orphan is valid', () => { - const result = normalizeSubgraph( - subgraphM.definitions, - subgraphM.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphM, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` input Input { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Input Object can be extended #1', () => { - const result = normalizeSubgraph( - subgraphN.definitions, - subgraphN.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphN, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` input Input { age: Int! name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Input Object can be extended #2', () => { - const result = normalizeSubgraph( - subgraphO.definitions, - subgraphO.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphO, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` input Input { age: Int! name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Input Object stub can be extended #1', () => { - const result = normalizeSubgraph( - subgraphP.definitions, - subgraphP.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphP, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` input Input { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Input Object stub can be extended #2', () => { - const result = normalizeSubgraph( - subgraphQ.definitions, - subgraphQ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphQ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` input Input { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Input Object stub can be extended #3', () => { - const result = normalizeSubgraph( - subgraphR.definitions, - subgraphR.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphR, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` input Input @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Input Object stub can be extended #4', () => { - const result = normalizeSubgraph( - subgraphS.definitions, - subgraphS.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphS, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` input Input @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Input Object stub can be extended #5', () => { - const result = normalizeSubgraph( - subgraphT.definitions, - subgraphT.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphT, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` input Input @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Input Object can be extended with just a directive #1', () => { - const result = normalizeSubgraph( - subgraphU.definitions, - subgraphU.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphU, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` input Input @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Input Object can be extended with just a directive #2', () => { - const result = normalizeSubgraph( - subgraphV.definitions, - subgraphV.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphV, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` input Input @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Input Object extension can be extended with just a directive #1', () => { - const result = normalizeSubgraph( - subgraphW.definitions, - subgraphW.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphW, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` input Input @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Input Object extension can be extended with just a directive #2', () => { - const result = normalizeSubgraph( - subgraphX.definitions, - subgraphX.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphX, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` input Input @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an error is returned if a final Input Object does not define any values', () => { - const result = normalizeSubgraph( - subgraphE.definitions, - subgraphE.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noInputValueDefinitionsError('Input')); + const { errors } = normalizeSubgraphFailure(subgraphE, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noInputValueDefinitionsError('Input')); }); test('that an error is returned if a final Input Object extension does not define values', () => { - const result = normalizeSubgraph( - subgraphF.definitions, - subgraphF.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noInputValueDefinitionsError('Input')); + const { errors } = normalizeSubgraphFailure(subgraphF, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noInputValueDefinitionsError('Input')); }); test('that an error is returned if a final extended Input Object does not define any values #1', () => { - const result = normalizeSubgraph( - subgraphG.definitions, - subgraphG.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noInputValueDefinitionsError('Input')); + const { errors } = normalizeSubgraphFailure(subgraphG, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noInputValueDefinitionsError('Input')); }); test('that an error is returned if a final extended Input Object does not define any values #2', () => { - const result = normalizeSubgraph( - subgraphH.definitions, - subgraphH.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noInputValueDefinitionsError('Input')); + const { errors } = normalizeSubgraphFailure(subgraphH, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noInputValueDefinitionsError('Input')); }); test('that an error is returned if a an Input Object defines a duplicate value', () => { - const result = normalizeSubgraph( - subgraphI.definitions, - subgraphI.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateInputFieldDefinitionError('Input', 'name')); + const { errors } = normalizeSubgraphFailure(subgraphI, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateInputFieldDefinitionError('Input', 'name')); }); test('that an error is returned if a an Input Object extension defines a duplicate value #1', () => { - const result = normalizeSubgraph( - subgraphJ.definitions, - subgraphJ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateInputFieldDefinitionError('Input', 'name')); + const { errors } = normalizeSubgraphFailure(subgraphJ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateInputFieldDefinitionError('Input', 'name')); }); test('that an error is returned if a an extended Input Object defines a duplicate value #1', () => { - const result = normalizeSubgraph( - subgraphK.definitions, - subgraphK.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateInputFieldDefinitionError('Input', 'name')); + const { errors } = normalizeSubgraphFailure(subgraphK, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateInputFieldDefinitionError('Input', 'name')); }); test('that an error is returned if a an extended Input Object defines a duplicate value #2', () => { - const result = normalizeSubgraph( - subgraphL.definitions, - subgraphL.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateInputFieldDefinitionError('Input', 'name')); + const { errors } = normalizeSubgraphFailure(subgraphL, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateInputFieldDefinitionError('Input', 'name')); }); test('that an error is returned if an Input field returns an output node type', () => { @@ -410,10 +260,13 @@ describe('Input tests', () => { describe('Federation tests', () => { test('that Input Objects merge by intersection if the removed values are nullable', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Query { dummy: String! @@ -429,9 +282,9 @@ describe('Input tests', () => { }); test('that a required Input Object value that is omitted from the federated graph returns an error', () => { - const result = federateSubgraphsFailure([subgraphA, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = federateSubgraphsFailure([subgraphA, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidRequiredInputValueError( INPUT_OBJECT, 'TechnicalMachine', @@ -445,11 +298,10 @@ describe('Input tests', () => { }); test('that @deprecated is persisted on an Input field', () => { - const result = federateSubgraphsSuccess([subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess([subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input { id: ID @@ -465,14 +317,13 @@ describe('Input tests', () => { }); test('that Float Input field accept integer default values', () => { - const result = federateSubgraphsSuccess( + const { federatedGraphSchema } = federateSubgraphsSuccess( [subgraphWithInputField('subgraph', 'Float = 1')], ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` input Input { field: Float = 1 @@ -500,13 +351,12 @@ describe('Input tests', () => { }); test.skip('that an error is returned if a required Input field uses an object default value', () => { - const result = federateSubgraphsFailure( + const { errors } = federateSubgraphsFailure( [subgraphWithInputField('subgraph', 'String! = { field: "value" }')], ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( subgraphValidationError('subgraph', [ incompatibleInputValueDefaultValueTypeError('Input field "name"', 'Input.name', 'String!', 'null'), ]), diff --git a/composition/tests/v1/types/interfaces.test.ts b/composition/tests/v1/types/interfaces.test.ts index 324146e857..cd74d5af63 100644 --- a/composition/tests/v1/types/interfaces.test.ts +++ b/composition/tests/v1/types/interfaces.test.ts @@ -8,10 +8,6 @@ import { invalidInterfaceImplementationError, noBaseDefinitionForExtensionError, noFieldDefinitionsError, - NormalizationFailure, - NormalizationSuccess, - normalizeSubgraph, - normalizeSubgraphFromString, OBJECT, parse, ROUTER_COMPATIBILITY_VERSION_ONE, @@ -21,410 +17,235 @@ import { unimplementedInterfaceOutputTypeWarning, } from '../../../src'; import { describe, expect, test } from 'vitest'; -import { - baseDirectiveDefinitions, - schemaQueryDefinition, - versionOneRouterDefinitions, - versionTwoRouterDefinitions, -} from '../utils/utils'; +import { INACCESSIBLE_DIRECTIVE, SCHEMA_QUERY_DEFINITION, TAG_DIRECTIVE } from '../utils/utils'; import { federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, + normalizeSubgraphFailure, + normalizeSubgraphSuccess, schemaToSortedNormalizedString, } from '../../utils/utils'; describe('Interface tests', () => { describe('Normalization tests', () => { test('that an Interface extension orphan is valid', () => { - const result = normalizeSubgraph( - subgraphR.definitions, - subgraphR.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphR, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` interface Interface { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Interface can be extended #1', () => { - const result = normalizeSubgraph( - subgraphAE.definitions, - subgraphAE.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphAE, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` interface Interface { age: Int! name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Interface can be extended #2', () => { - const result = normalizeSubgraph( - subgraphAF.definitions, - subgraphAF.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphAF, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` interface Interface { age: Int! name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Interface stub can be extended #1', () => { - const result = normalizeSubgraph( - subgraphV.definitions, - subgraphV.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphV, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` interface Interface { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Interface stub can be extended #2', () => { - const result = normalizeSubgraph( - subgraphW.definitions, - subgraphW.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphW, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` interface Interface { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Interface stub can be extended #3', () => { - const result = normalizeSubgraph( - subgraphX.definitions, - subgraphX.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphX, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` interface Interface @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Interface stub can be extended #4', () => { - const result = normalizeSubgraph( - subgraphY.definitions, - subgraphY.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphY, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` interface Interface @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Interface stub can be extended #5', () => { - const result = normalizeSubgraph( - subgraphZ.definitions, - subgraphZ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphZ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` interface Interface @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Interface can be extended with just a directive #1', () => { - const result = normalizeSubgraph( - subgraphAA.definitions, - subgraphAA.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphAA, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` interface Interface @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Interface can be extended with just a directive #2', () => { - const result = normalizeSubgraph( - subgraphAB.definitions, - subgraphAB.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphAB, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` interface Interface @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Interface extension can be extended with just a directive #1', () => { - const result = normalizeSubgraph( - subgraphAC.definitions, - subgraphAC.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphAC, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` interface Interface @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Interface extension can be extended with just a directive #2', () => { - const result = normalizeSubgraph( - subgraphAD.definitions, - subgraphAD.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphAD, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` interface Interface @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an error is returned if a final Interface does not define any Fields', () => { - const result = normalizeSubgraph( - subgraphI.definitions, - subgraphI.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noFieldDefinitionsError(INTERFACE, INTERFACE)); + const { errors } = normalizeSubgraphFailure(subgraphI, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noFieldDefinitionsError(INTERFACE, INTERFACE)); }); test('that an error is returned if a final Interface extension does not define any Fields', () => { - const result = normalizeSubgraph( - subgraphJ.definitions, - subgraphJ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noFieldDefinitionsError(INTERFACE, INTERFACE)); + const { errors } = normalizeSubgraphFailure(subgraphJ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noFieldDefinitionsError(INTERFACE, INTERFACE)); }); test('that an error is returned if a final extended Interface does not define any Fields #1', () => { - const result = normalizeSubgraph( - subgraphK.definitions, - subgraphK.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noFieldDefinitionsError(INTERFACE, INTERFACE)); + const { errors } = normalizeSubgraphFailure(subgraphK, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noFieldDefinitionsError(INTERFACE, INTERFACE)); }); test('that an error is returned if a final extended Interface does not define any Fields #2', () => { - const result = normalizeSubgraph( - subgraphL.definitions, - subgraphL.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noFieldDefinitionsError(INTERFACE, INTERFACE)); + const { errors } = normalizeSubgraphFailure(subgraphL, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noFieldDefinitionsError(INTERFACE, INTERFACE)); }); test('that an error is returned if an Interface defines a duplicate Field', () => { - const result = normalizeSubgraph( - subgraphM.definitions, - subgraphM.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateFieldDefinitionError(INTERFACE, INTERFACE, 'name')); + const { errors } = normalizeSubgraphFailure(subgraphM, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateFieldDefinitionError(INTERFACE, INTERFACE, 'name')); }); test('that an error is returned if an Interface extension defines a duplicate Field', () => { - const result = normalizeSubgraph( - subgraphN.definitions, - subgraphN.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateFieldDefinitionError(INTERFACE, INTERFACE, 'name')); + const { errors } = normalizeSubgraphFailure(subgraphN, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateFieldDefinitionError(INTERFACE, INTERFACE, 'name')); }); test('that an error is returned if an extended Interface defines a duplicate Field #1', () => { - const result = normalizeSubgraph( - subgraphO.definitions, - subgraphO.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateFieldDefinitionError(INTERFACE, INTERFACE, 'name')); + const { errors } = normalizeSubgraphFailure(subgraphO, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateFieldDefinitionError(INTERFACE, INTERFACE, 'name')); }); test('that an error is returned if an extended Interface defines a duplicate Field #2', () => { - const result = normalizeSubgraph( - subgraphP.definitions, - subgraphP.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateFieldDefinitionError(INTERFACE, INTERFACE, 'name')); + const { errors } = normalizeSubgraphFailure(subgraphP, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateFieldDefinitionError(INTERFACE, INTERFACE, 'name')); }); test('that errors are returned if implemented Interface Fields are invalid #1', () => { - const result = normalizeSubgraphFromString( - ` - interface Animal { - name: String! - sounds(species: String!): [String!] - } - - interface Pet implements Animal { - age: Int! - isDog: Boolean! - name: String! - sounds(species: String): [String]! - } - - type Cat implements Pet & Animal { - isDog: Boolean! @inaccessible - isPurring: Boolean! - sounds: [String!]! - } - `, - true, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(2); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(naaaa, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(2); + expect(errors[0]).toStrictEqual( invalidInterfaceImplementationError( 'Pet', INTERFACE, @@ -453,7 +274,7 @@ describe('Interface tests', () => { ]), ), ); - expect(result.errors[1]).toStrictEqual( + expect(errors[1]).toStrictEqual( invalidInterfaceImplementationError( 'Cat', OBJECT, @@ -510,38 +331,9 @@ describe('Interface tests', () => { }); test('that errors are returned if implemented interface fields are invalid #2', () => { - const result = normalizeSubgraphFromString( - ` - interface Animal { - name: String! - sound(a: String!, b: Int, c: Float, d: Boolean): String! - } - - interface Pet implements Animal { - age: Int! - sound(a: Int, b: String!): String! - } - - extend interface Pet { - price: Float - name: String! - } - - type Cat implements Pet & Animal { - isPurring: Boolean! - sound(e: Int!): String! - } - - extend type Cat { - name: String! - } - `, - true, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(2); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(nbaaa, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(2); + expect(errors[0]).toStrictEqual( invalidInterfaceImplementationError( 'Pet', INTERFACE, @@ -570,7 +362,7 @@ describe('Interface tests', () => { ]), ), ); - expect(result.errors[1]).toStrictEqual( + expect(errors[1]).toStrictEqual( invalidInterfaceImplementationError( 'Cat', OBJECT, @@ -617,15 +409,9 @@ describe('Interface tests', () => { }); test('that an error is returned if a type attempts to implement a type that is not an interface', () => { - const result = normalizeSubgraph( - subgraphG.definitions, - subgraphG.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphG, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidImplementedTypeError( OBJECT, new Map([ @@ -637,43 +423,24 @@ describe('Interface tests', () => { }); test('that an error is returned if an interface attempts to implement itself', () => { - const result = normalizeSubgraph( - subgraphH.definitions, - subgraphH.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(selfImplementationError('Interface')); + const { errors } = normalizeSubgraphFailure(subgraphH, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(selfImplementationError('Interface')); }); // TODO currently a warning until @inaccessible and entity interfaces are handled test('that a warning is returned if a Field returns an Interface without any implementations', () => { - const result = normalizeSubgraph( - subgraphAM.definitions, - subgraphAM.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(result.warnings).toHaveLength(1); - expect(result.warnings![0]).toStrictEqual(unimplementedInterfaceOutputTypeWarning(subgraphAM.name, 'Interface')); - expect(result.warnings![0].subgraph.name).toBe(subgraphAM.name); + const { warnings } = normalizeSubgraphSuccess(subgraphAM, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(warnings).toHaveLength(1); + expect(warnings![0]).toStrictEqual(unimplementedInterfaceOutputTypeWarning(subgraphAM.name, 'Interface')); + expect(warnings![0].subgraph.name).toBe(subgraphAM.name); }); - test('that an Interface without implementations is valid if it not used as an output type', () => { - const result = normalizeSubgraph( - subgraphAN.definitions, - subgraphAN.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + test('that an Interface without implementations is valid if it is not used as an output type', () => { + const { schema } = normalizeSubgraphSuccess(subgraphAN, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - schemaQueryDefinition + - baseDirectiveDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { name: String! @@ -682,8 +449,6 @@ describe('Interface tests', () => { type Query { dummy: String! } - - scalar openfed__FieldSet `, ), ); @@ -692,11 +457,13 @@ describe('Interface tests', () => { describe('Federation tests', () => { test('that an Interface type and extension definition federate successfully #1.1', () => { - const result = federateSubgraphsSuccess([subgraphQ, subgraphR, subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphQ, subgraphR, subgraphU], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -711,12 +478,14 @@ describe('Interface tests', () => { ); }); - test('that an Interface type and extension definition federate successfully #1.1', () => { - const result = federateSubgraphsSuccess([subgraphQ, subgraphU, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + test('that an Interface type and extension definition federate successfully #1.2', () => { + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphQ, subgraphU, subgraphR], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -732,11 +501,13 @@ describe('Interface tests', () => { }); test('that Interfaces merge by union', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Character { age: Int! @@ -760,19 +531,19 @@ describe('Interface tests', () => { isFriend: Boolean! name: String! } - - scalar openfed__Scope `, ), ); }); test('that Interfaces and implementations merge by union', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphC], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Character { age: Int! @@ -794,19 +565,19 @@ describe('Interface tests', () => { isFriend: Boolean! name: String! } - - scalar openfed__Scope `, ), ); }); test('that nested Interfaces merge by union', () => { - const result = federateSubgraphsSuccess([subgraphC, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphC, subgraphD], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Character { isFriend: Boolean! @@ -825,18 +596,15 @@ describe('Interface tests', () => { isFriend: Boolean! name: String! } - - scalar openfed__Scope `, ), ); }); - test('that errors are returned if implemented Interface Fields are invalid #1', () => { - const result = federateSubgraphsFailure([subgraphE, subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(2); - expect(result.errors[0]).toStrictEqual( + test('that errors are returned if implemented Interface Fields are invalid #2', () => { + const { errors } = federateSubgraphsFailure([subgraphE, subgraphF], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(2); + expect(errors[0]).toStrictEqual( invalidInterfaceImplementationError( 'Cat', OBJECT, @@ -858,7 +626,7 @@ describe('Interface tests', () => { ]), ), ); - expect(result.errors[1]).toStrictEqual( + expect(errors[1]).toStrictEqual( invalidInterfaceImplementationError( 'Dog', OBJECT, @@ -911,18 +679,19 @@ describe('Interface tests', () => { }); test('that an error is returned if federation results in an Interface extension orphan', () => { - const result = federateSubgraphsFailure([subgraphQ, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(INTERFACE, INTERFACE)); + const { errors } = federateSubgraphsFailure([subgraphQ, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(INTERFACE, INTERFACE)); }); test('that a V1 Interface with @extends directive federates with a base definition #1.1', () => { - const result = federateSubgraphsSuccess([subgraphQ, subgraphS, subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphQ, subgraphS, subgraphU], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -938,11 +707,13 @@ describe('Interface tests', () => { }); test('that a V1 Interface with @extends directive federates with a base definition #1.2', () => { - const result = federateSubgraphsSuccess([subgraphQ, subgraphU, subgraphS], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphQ, subgraphU, subgraphS], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface Interface { age: Int! @@ -958,32 +729,32 @@ describe('Interface tests', () => { }); test('that an error is returned if federation results in a V1 Interface with @extends directive orphan #1', () => { - const result = federateSubgraphsFailure([subgraphQ, subgraphS], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(INTERFACE, INTERFACE)); + const { errors } = federateSubgraphsFailure([subgraphQ, subgraphS], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(INTERFACE, INTERFACE)); }); test('that an error is returned if federation results in a V1 Interface with @extends directive orphan #2.1', () => { - const result = federateSubgraphsFailure([subgraphQ, subgraphR, subgraphS], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(INTERFACE, INTERFACE)); + const { errors } = federateSubgraphsFailure([subgraphQ, subgraphR, subgraphS], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(INTERFACE, INTERFACE)); }); test('that an error is returned if federation results in a V1 Interface with @extends directive orphan #2.2', () => { - const result = federateSubgraphsFailure([subgraphQ, subgraphS, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(INTERFACE, INTERFACE)); + const { errors } = federateSubgraphsFailure([subgraphQ, subgraphS, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(INTERFACE, INTERFACE)); }); test('that a V2 Interface @extends directive orphan is valid #1', () => { - const result = federateSubgraphsSuccess([subgraphQ, subgraphT], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphQ, subgraphT], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` scalar Dummy @inaccessible @@ -994,19 +765,20 @@ describe('Interface tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a V2 Interface @extends directive orphan is valid with another base type #1.1', () => { - const result = federateSubgraphsSuccess([subgraphQ, subgraphT, subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphQ, subgraphT, subgraphU], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` scalar Dummy @inaccessible @@ -1018,19 +790,20 @@ describe('Interface tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a V2 Interface @extends directive orphan is valid with another base type #1.2', () => { - const result = federateSubgraphsSuccess([subgraphQ, subgraphT, subgraphU], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphQ, subgraphU, subgraphT], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` scalar Dummy @inaccessible @@ -1042,19 +815,20 @@ describe('Interface tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a V2 Interface @extends directive orphan is valid with another extension #1.1', () => { - const result = federateSubgraphsSuccess([subgraphQ, subgraphR, subgraphT], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphQ, subgraphR, subgraphT], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` scalar Dummy @inaccessible @@ -1065,19 +839,20 @@ describe('Interface tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a V2 Interface @extends directive orphan is valid with another extension #1.2', () => { - const result = federateSubgraphsSuccess([subgraphQ, subgraphT, subgraphR], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphQ, subgraphT, subgraphR], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + INACCESSIBLE_DIRECTIVE + ` scalar Dummy @inaccessible @@ -1088,19 +863,19 @@ describe('Interface tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that Field named types can coerce implementing types into Interfaces #1.1', () => { - const result = federateSubgraphsSuccess([subgraphAG, subgraphAH], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAG, subgraphAH], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface AnotherInterface { name: String! @@ -1122,19 +897,19 @@ describe('Interface tests', () => { type Query { interface: Interface! } - - scalar openfed__Scope `, ), ); }); test('that Field named types can coerce implementing types into Interfaces #1.2', () => { - const result = federateSubgraphsSuccess([subgraphAH, subgraphAG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAH, subgraphAG], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface AnotherInterface { name: String! @@ -1156,19 +931,19 @@ describe('Interface tests', () => { type Query { interface: Interface! } - - scalar openfed__Scope `, ), ); }); test('that Field named types can coerce a single implementing type into Interfaces #2.1', () => { - const result = federateSubgraphsSuccess([subgraphAI, subgraphAK, subgraphAL], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAI, subgraphAK, subgraphAL], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface AnotherInterface { name: String! @@ -1190,19 +965,19 @@ describe('Interface tests', () => { anotherInterface: AnotherInterface! interface: [Interface] } - - scalar openfed__Scope `, ), ); }); test('that Field named types can coerce a single implementing types into Interfaces #2.2', () => { - const result = federateSubgraphsSuccess([subgraphAL, subgraphAK, subgraphAI], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAL, subgraphAK, subgraphAI], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` interface AnotherInterface { name: String! @@ -1224,21 +999,18 @@ describe('Interface tests', () => { anotherInterface: AnotherInterface! interface: [Interface] } - - scalar openfed__Scope `, ), ); }); test('that Field named types cannot coerce more than one implementing type into Interfaces #3.1', () => { - const result = federateSubgraphsFailure( + const { errors } = federateSubgraphsFailure( [subgraphAI, subgraphAJ, subgraphAK, subgraphAL], ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(2); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(2); + expect(errors[0]).toStrictEqual( incompatibleFederatedFieldNamedTypeError( 'Query.anotherInterface', new Map>([ @@ -1249,7 +1021,7 @@ describe('Interface tests', () => { ]), ), ); - expect(result.errors[1]).toStrictEqual( + expect(errors[1]).toStrictEqual( incompatibleFederatedFieldNamedTypeError( 'Query.interface', new Map>([ @@ -1262,13 +1034,12 @@ describe('Interface tests', () => { }); test('that Field named types cannot coerce more than one implementing type into Interfaces #3.2', () => { - const result = federateSubgraphsFailure( + const { errors } = federateSubgraphsFailure( [subgraphAL, subgraphAK, subgraphAJ, subgraphAI], ROUTER_COMPATIBILITY_VERSION_ONE, ); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(2); - expect(result.errors[0]).toStrictEqual( + expect(errors).toHaveLength(2); + expect(errors[0]).toStrictEqual( incompatibleFederatedFieldNamedTypeError( 'Query.anotherInterface', new Map>([ @@ -1279,7 +1050,7 @@ describe('Interface tests', () => { ]), ), ); - expect(result.errors[1]).toStrictEqual( + expect(errors[1]).toStrictEqual( incompatibleFederatedFieldNamedTypeError( 'Query.interface', new Map>([ @@ -1882,3 +1653,57 @@ const subgraphAN: Subgraph = { } `), }; + +const naaaa: Subgraph = { + name: 'naaaa', + url: '', + definitions: parse(` + interface Animal { + name: String! + sounds(species: String!): [String!] + } + + interface Pet implements Animal { + age: Int! + isDog: Boolean! + name: String! + sounds(species: String): [String]! + } + + type Cat implements Pet & Animal { + isDog: Boolean! @inaccessible + isPurring: Boolean! + sounds: [String!]! + } + `), +}; + +const nbaaa: Subgraph = { + name: 'nbaaa', + url: '', + definitions: parse(` + interface Animal { + name: String! + sound(a: String!, b: Int, c: Float, d: Boolean): String! + } + + interface Pet implements Animal { + age: Int! + sound(a: Int, b: String!): String! + } + + extend interface Pet { + price: Float + name: String! + } + + type Cat implements Pet & Animal { + isPurring: Boolean! + sound(e: Int!): String! + } + + extend type Cat { + name: String! + } + `), +}; diff --git a/composition/tests/v1/types/objects.test.ts b/composition/tests/v1/types/objects.test.ts index 05b960d337..ea27db4a65 100644 --- a/composition/tests/v1/types/objects.test.ts +++ b/composition/tests/v1/types/objects.test.ts @@ -7,27 +7,21 @@ import { invalidNamedTypeError, noBaseDefinitionForExtensionError, noFieldDefinitionsError, - NormalizationFailure, NormalizationSuccess, - normalizeSubgraph, normalizeSubgraphFromString, OBJECT, parse, ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph, + TypeName, } from '../../../src'; -import { - baseDirectiveDefinitions, - stringToTypeNode, - versionOneBaseSchema, - versionOneRouterDefinitions, - versionTwoRouterDefinitions, -} from '../utils/utils'; +import { SCHEMA_QUERY_DEFINITION, stringToTypeNode, TAG_DIRECTIVE } from '../utils/utils'; import { federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, normalizeSubgraphFailure, + normalizeSubgraphSuccess, schemaToSortedNormalizedString, } from '../../utils/utils'; import { Kind } from 'graphql'; @@ -35,379 +29,223 @@ import { Kind } from 'graphql'; describe('Object tests', () => { describe('Normalization tests', () => { test('that an Object extension orphan is valid', () => { - const result = normalizeSubgraph( - subgraphJ.definitions, - subgraphJ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphJ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` type Object { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Object can be extended #1', () => { - const result = normalizeSubgraph( - subgraphN.definitions, - subgraphN.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphN, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` type Object { age: Int! name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Object can be extended #2', () => { - const result = normalizeSubgraph( - subgraphO.definitions, - subgraphO.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphO, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` type Object { age: Int! name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Object stub can be extended #1', () => { - const result = normalizeSubgraph( - subgraphP.definitions, - subgraphP.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphP, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` type Object { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Object stub can be extended #2', () => { - const result = normalizeSubgraph( - subgraphQ.definitions, - subgraphQ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphQ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` type Object { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Object stub can be extended #3', () => { - const result = normalizeSubgraph( - subgraphR.definitions, - subgraphR.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphR, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Object stub can be extended #4', () => { - const result = normalizeSubgraph( - subgraphS.definitions, - subgraphS.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphS, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Object stub can be extended #5', () => { - const result = normalizeSubgraph( - subgraphT.definitions, - subgraphT.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphT, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Object can be extended with just a directive #1', () => { - const result = normalizeSubgraph( - subgraphU.definitions, - subgraphU.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphU, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Object can be extended with just a directive #2', () => { - const result = normalizeSubgraph( - subgraphV.definitions, - subgraphV.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphV, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Object extension can be extended with just a directive #1', () => { - const result = normalizeSubgraph( - subgraphW.definitions, - subgraphW.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphW, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an Object extension can be extended with just a directive #2', () => { - const result = normalizeSubgraph( - subgraphX.definitions, - subgraphX.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphX, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object @tag(name: "name") { name: String! } - - scalar openfed__FieldSet `, ), ); }); test('that an error is returned if a final Object defines no Fields', () => { - const result = normalizeSubgraph( - subgraphA.definitions, - subgraphA.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noFieldDefinitionsError(OBJECT, OBJECT)); + const { errors } = normalizeSubgraphFailure(subgraphA, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noFieldDefinitionsError(OBJECT, OBJECT)); }); test('that an error is returned if a final Object extension defines no Fields', () => { - const result = normalizeSubgraph( - subgraphB.definitions, - subgraphB.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noFieldDefinitionsError(OBJECT, OBJECT)); + const { errors } = normalizeSubgraphFailure(subgraphB, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noFieldDefinitionsError(OBJECT, OBJECT)); }); test('that an error is returned if a final extended Object defines no Fields #1', () => { - const result = normalizeSubgraph( - subgraphC.definitions, - subgraphC.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noFieldDefinitionsError(OBJECT, OBJECT)); + const { errors } = normalizeSubgraphFailure(subgraphC, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noFieldDefinitionsError(OBJECT, OBJECT)); }); test('that an error is returned if a final extended Object defines no Fields #2', () => { - const result = normalizeSubgraph( - subgraphD.definitions, - subgraphD.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noFieldDefinitionsError(OBJECT, OBJECT)); + const { errors } = normalizeSubgraphFailure(subgraphD, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noFieldDefinitionsError(OBJECT, OBJECT)); }); test('that an error is returned if an Object defines a duplicate Field', () => { - const result = normalizeSubgraph( - subgraphE.definitions, - subgraphE.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateFieldDefinitionError(OBJECT, OBJECT, 'name')); + const { errors } = normalizeSubgraphFailure(subgraphE, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateFieldDefinitionError(OBJECT, OBJECT, 'name')); }); test('that an error is returned if an Object extension defines a duplicate Field', () => { - const result = normalizeSubgraph( - subgraphF.definitions, - subgraphF.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateFieldDefinitionError(OBJECT, OBJECT, 'name')); + const { errors } = normalizeSubgraphFailure(subgraphF, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateFieldDefinitionError(OBJECT, OBJECT, 'name')); }); test('that an error is returned if an extended Object defines a duplicate Field #1', () => { - const result = normalizeSubgraph( - subgraphG.definitions, - subgraphG.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateFieldDefinitionError(OBJECT, OBJECT, 'name')); + const { errors } = normalizeSubgraphFailure(subgraphG, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateFieldDefinitionError(OBJECT, OBJECT, 'name')); }); test('that an error is returned if an extended Object defines a duplicate Field #2', () => { - const result = normalizeSubgraph( - subgraphH.definitions, - subgraphH.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateFieldDefinitionError(OBJECT, OBJECT, 'name')); + const { errors } = normalizeSubgraphFailure(subgraphH, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateFieldDefinitionError(OBJECT, OBJECT, 'name')); }); test('that a Query root type that defines no Fields is valid', () => { - const result = normalizeSubgraphFromString( - ` - type Query - `, - true, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(normalizeString(result.subgraphString)).toBe( + const { schema } = normalizeSubgraphSuccess(naaaa, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneBaseSchema + + SCHEMA_QUERY_DEFINITION + ` type Query `, @@ -416,22 +254,10 @@ describe('Object tests', () => { }); test('that a renamed Query root type that defines no Fields is valid', () => { - const result = normalizeSubgraphFromString( - ` - schema { - query: Queries - } - - type Queries - `, - true, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(normalizeString(result.subgraphString)).toBe( + const { schema } = normalizeSubgraphSuccess(nbaaa, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - versionOneBaseSchema + - ` + ` schema { query: Queries } @@ -444,7 +270,7 @@ describe('Object tests', () => { }); test('that an error is returned if a field returns an input node type', () => { - const { errors } = normalizeSubgraphFailure(naa, ROUTER_COMPATIBILITY_VERSION_ONE); + const { errors } = normalizeSubgraphFailure(ncaaa, ROUTER_COMPATIBILITY_VERSION_ONE); expect(errors).toHaveLength(1); expect(errors[0]).toStrictEqual( invalidNamedTypeError({ @@ -462,11 +288,13 @@ describe('Object tests', () => { describe('Federation tests', () => { test('that an Object type and extension definition federate successfully #1.1', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphJ, subgraphM], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphJ, subgraphM], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -482,11 +310,13 @@ describe('Object tests', () => { }); test('that an Object type and extension definition federate successfully #1.2', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphM, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphM, subgraphJ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -502,18 +332,19 @@ describe('Object tests', () => { }); test('that an error is returned if federation results in an Object extension orphan', () => { - const result = federateSubgraphsFailure([subgraphI, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(OBJECT, OBJECT)); + const { errors } = federateSubgraphsFailure([subgraphI, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(OBJECT, OBJECT)); }); test('that a V1 Object with @extends directive federates with a base definition #1.1', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphK, subgraphM], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphK, subgraphM], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -529,11 +360,13 @@ describe('Object tests', () => { }); test('that a V1 Object with @extends directive federates with a base definition #1.2', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphM, subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphM, subgraphK], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -549,32 +382,31 @@ describe('Object tests', () => { }); test('that an error is returned if federation results in a V1 Object with @extends directive orphan #1', () => { - const result = federateSubgraphsFailure([subgraphI, subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(OBJECT, OBJECT)); + const { errors } = federateSubgraphsFailure([subgraphI, subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(OBJECT, OBJECT)); }); test('that an error is returned if federation results in a V1 Object with @extends directive orphan #2.1', () => { - const result = federateSubgraphsFailure([subgraphI, subgraphJ, subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(OBJECT, OBJECT)); + const { errors } = federateSubgraphsFailure([subgraphI, subgraphJ, subgraphK], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(OBJECT, OBJECT)); }); test('that an error is returned if federation results in a V1 Object with @extends directive orphan #2.2', () => { - const result = federateSubgraphsFailure([subgraphI, subgraphK, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(OBJECT, OBJECT)); + const { errors } = federateSubgraphsFailure([subgraphI, subgraphK, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(OBJECT, OBJECT)); }); test('that a V2 Object @extends directive orphan is valid #1', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphL], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -583,19 +415,19 @@ describe('Object tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a V2 Object @extends directive orphan is valid with another base type #1.1', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphL, subgraphM], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphL, subgraphM], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -605,19 +437,19 @@ describe('Object tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a V2 Object @extends directive orphan is valid with another base type #1.2', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphL, subgraphM], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphL, subgraphM], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { age: Int! @@ -627,19 +459,19 @@ describe('Object tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a V2 Object @extends directive orphan is valid with another extension #1.1', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphJ, subgraphL], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphJ, subgraphL], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -648,19 +480,19 @@ describe('Object tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); }); test('that a V2 Object @extends directive orphan is valid with another extension #1.2', () => { - const result = federateSubgraphsSuccess([subgraphI, subgraphL, subgraphJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphI, subgraphL, subgraphJ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Object { name: String! @@ -669,8 +501,6 @@ describe('Object tests', () => { type Query { dummy: String! } - - scalar openfed__Scope `, ), ); @@ -679,23 +509,9 @@ describe('Object tests', () => { describe('Router configuration tests', () => { test('that an object extended within the same graph generates the correct router configuration', () => { - const result = normalizeSubgraphFromString( - ` - type Object { - name: String! - } - - extend type Object { - age: Int! - } - `, - true, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - - expect(result.success).toBe(true); - expect(result.configurationDataByTypeName).toStrictEqual( - new Map([ + const { configurationDataByTypeName } = normalizeSubgraphSuccess(ndaaa, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(configurationDataByTypeName).toStrictEqual( + new Map([ [ 'Object', { @@ -710,6 +526,54 @@ describe('Object tests', () => { }); }); +const naaaa: Subgraph = { + name: 'naaaa', + url: '', + definitions: parse(` + type Query + `), +}; + +const nbaaa: Subgraph = { + name: 'nbaaa', + url: '', + definitions: parse(` + schema { + query: Queries + } + + type Queries + `), +}; + +const ncaaa: Subgraph = { + name: 'ncaaa', + url: '', + definitions: parse(` + type Object { + field: Input! + } + + input Input { + name: String! + } + `), +}; + +const ndaaa: Subgraph = { + name: 'ndaaa', + url: '', + definitions: parse(` + type Object { + name: String! + } + + extend type Object { + age: Int! + } + `), +}; + const subgraphA: Subgraph = { name: 'subgraph-a', url: '', @@ -985,17 +849,3 @@ const subgraphX: Subgraph = { } `), }; - -const naa: Subgraph = { - name: 'naa', - url: '', - definitions: parse(` - type Object { - field: Input! - } - - input Input { - name: String! - } - `), -}; diff --git a/composition/tests/v1/types/scalars.test.ts b/composition/tests/v1/types/scalars.test.ts index ec41dd1f98..f0cbefe00b 100644 --- a/composition/tests/v1/types/scalars.test.ts +++ b/composition/tests/v1/types/scalars.test.ts @@ -1,70 +1,51 @@ import { describe, expect, test } from 'vitest'; import { noBaseScalarDefinitionError, - NormalizationFailure, - NormalizationSuccess, - normalizeSubgraph, ROUTER_COMPATIBILITY_VERSION_ONE, SCALAR, ScalarDefinitionData, Subgraph, } from '../../../src'; import { parse } from 'graphql'; -import { baseDirectiveDefinitions, versionOneRouterDefinitions } from '../utils/utils'; -import { federateSubgraphsSuccess, normalizeString, schemaToSortedNormalizedString } from '../../utils/utils'; +import { SCHEMA_QUERY_DEFINITION, TAG_DIRECTIVE } from '../utils/utils'; +import { + federateSubgraphsSuccess, + normalizeString, + normalizeSubgraphFailure, + normalizeSubgraphSuccess, + schemaToSortedNormalizedString, +} from '../../utils/utils'; describe('Scalar tests', () => { describe('Normalization tests', () => { test('that a Scalar can be extended #1', () => { - const result = normalizeSubgraph( - subgraphA.definitions, - subgraphA.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphA, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` scalar Scalar @tag(name: "name") - - scalar openfed__FieldSet `, ), ); }); test('that a Scalar can be extended #2', () => { - const result = normalizeSubgraph( - subgraphB.definitions, - subgraphB.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphB, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` scalar Scalar @tag(name: "name") - - scalar openfed__FieldSet `, ), ); }); test('that an error is returned if a subgraph contains a Scalar extension orphan', () => { - const result = normalizeSubgraph( - subgraphC.definitions, - subgraphC.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noBaseScalarDefinitionError(SCALAR)); + const { errors } = normalizeSubgraphFailure(subgraphC, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noBaseScalarDefinitionError(SCALAR)); }); }); @@ -74,7 +55,8 @@ describe('Scalar tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Query { dummy: String! @@ -87,11 +69,14 @@ describe('Scalar tests', () => { }); test('that a Scalar federates successfully #1.2', () => { - const result = federateSubgraphsSuccess([subgraphD, subgraphF, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphD, subgraphF, subgraphE], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + + TAG_DIRECTIVE + ` type Query { dummy: String! @@ -104,9 +89,11 @@ describe('Scalar tests', () => { }); test('that a Scalar has subgraphs data', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - - const scalarDef = result.parentDefinitionDataByTypeName.get('Scalar') as ScalarDefinitionData; + const { parentDefinitionDataByTypeName } = federateSubgraphsSuccess( + [subgraphA, subgraphB, subgraphD], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + const scalarDef = parentDefinitionDataByTypeName.get('Scalar') as ScalarDefinitionData; expect(scalarDef.subgraphNames.size).toBe(2); expect(scalarDef.subgraphNames).toContain(subgraphA.name); expect(scalarDef.subgraphNames).toContain(subgraphB.name); diff --git a/composition/tests/v1/types/unions.test.ts b/composition/tests/v1/types/unions.test.ts index 5dd78ed13c..6b68d2a926 100644 --- a/composition/tests/v1/types/unions.test.ts +++ b/composition/tests/v1/types/unions.test.ts @@ -3,9 +3,6 @@ import { invalidUnionMemberTypeError, noBaseDefinitionForExtensionError, noDefinedUnionMembersError, - NormalizationFailure, - NormalizationSuccess, - normalizeSubgraph, OBJECT, ROUTER_COMPATIBILITY_VERSION_ONE, Subgraph, @@ -15,52 +12,38 @@ import { } from '../../../src'; import { parse } from 'graphql'; import { describe, expect, test } from 'vitest'; -import { baseDirectiveDefinitions, versionOneRouterDefinitions, versionTwoRouterDefinitions } from '../utils/utils'; +import { SCHEMA_QUERY_DEFINITION, TAG_DIRECTIVE } from '../utils/utils'; import { federateSubgraphsFailure, federateSubgraphsSuccess, normalizeString, + normalizeSubgraphFailure, + normalizeSubgraphSuccess, schemaToSortedNormalizedString, } from '../../utils/utils'; describe('Union tests', () => { describe('Normalization tests', () => { test('that a Union extension orphan is valid', () => { - const result = normalizeSubgraph( - subgraphI.definitions, - subgraphI.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphI, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` type Object { name: String! } union Union = Object - - scalar openfed__FieldSet `, ), ); }); test('that a Union can be extended #1', () => { - const result = normalizeSubgraph( - subgraphJ.definitions, - subgraphJ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphJ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` type AnotherObject { name: String! } @@ -70,25 +53,16 @@ describe('Union tests', () => { } union Union = AnotherObject | Object - - scalar openfed__FieldSet `, ), ); }); test('that a Union can be extended #2', () => { - const result = normalizeSubgraph( - subgraphK.definitions, - subgraphK.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphK, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` type AnotherObject { name: String! } @@ -98,335 +72,205 @@ describe('Union tests', () => { } union Union = AnotherObject | Object - - scalar openfed__FieldSet `, ), ); }); test('that a Union stub can be extended #1', () => { - const result = normalizeSubgraph( - subgraphL.definitions, - subgraphL.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphL, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` type Object { name: String! } union Union = Object - - scalar openfed__FieldSet `, ), ); }); test('that a Union stub can be extended #2', () => { - const result = normalizeSubgraph( - subgraphM.definitions, - subgraphM.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphM, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + - ` + ` type Object { name: String! } union Union = Object - - scalar openfed__FieldSet `, ), ); }); test('that a Union stub can be extended #3', () => { - const result = normalizeSubgraph( - subgraphN.definitions, - subgraphN.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphN, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object { name: String! } union Union @tag(name: "name") = Object - - scalar openfed__FieldSet `, ), ); }); test('that a Union stub can be extended #4', () => { - const result = normalizeSubgraph( - subgraphO.definitions, - subgraphO.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphO, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object { name: String! } union Union @tag(name: "name") = Object - - scalar openfed__FieldSet `, ), ); }); test('that a Union stub can be extended #5', () => { - const result = normalizeSubgraph( - subgraphP.definitions, - subgraphP.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphP, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object { name: String! } union Union @tag(name: "name") = Object - - scalar openfed__FieldSet `, ), ); }); test('that a Union can be extended with just a directive #1', () => { - const result = normalizeSubgraph( - subgraphQ.definitions, - subgraphQ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphQ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object { name: String! } union Union @tag(name: "name") = Object - - scalar openfed__FieldSet `, ), ); }); test('that a Union can be extended with just a directive #2', () => { - const result = normalizeSubgraph( - subgraphR.definitions, - subgraphR.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphR, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object { name: String! } union Union @tag(name: "name") = Object - - scalar openfed__FieldSet `, ), ); }); test('that a Union extension can be extended with just a directive #1', () => { - const result = normalizeSubgraph( - subgraphS.definitions, - subgraphS.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphS, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object { name: String! } union Union @tag(name: "name") = Object - - scalar openfed__FieldSet `, ), ); }); test('that a Union extension can be extended with just a directive #2', () => { - const result = normalizeSubgraph( - subgraphT.definitions, - subgraphT.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationSuccess; - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.schema)).toBe( + const { schema } = normalizeSubgraphSuccess(subgraphT, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(schemaToSortedNormalizedString(schema)).toBe( normalizeString( - baseDirectiveDefinitions + + TAG_DIRECTIVE + ` type Object { name: String! } union Union @tag(name: "name") = Object - - scalar openfed__FieldSet `, ), ); }); test('that an error is returned if a final Union defines no Union Members', () => { - const result = normalizeSubgraph( - subgraphU.definitions, - subgraphU.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noDefinedUnionMembersError(UNION)); + const { errors } = normalizeSubgraphFailure(subgraphU, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noDefinedUnionMembersError(UNION)); }); test('that an error is returned if a final Union extension defines no Union Members', () => { - const result = normalizeSubgraph( - subgraphV.definitions, - subgraphV.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noDefinedUnionMembersError(UNION)); + const { errors } = normalizeSubgraphFailure(subgraphV, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noDefinedUnionMembersError(UNION)); }); test('that an error is returned if a final extended Union defines no Union Members #1', () => { - const result = normalizeSubgraph( - subgraphW.definitions, - subgraphW.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noDefinedUnionMembersError(UNION)); + const { errors } = normalizeSubgraphFailure(subgraphW, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noDefinedUnionMembersError(UNION)); }); test('that an error is returned if a final extended Union defines no Union Members #2', () => { - const result = normalizeSubgraph( - subgraphX.definitions, - subgraphX.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noDefinedUnionMembersError(UNION)); + const { errors } = normalizeSubgraphFailure(subgraphX, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noDefinedUnionMembersError(UNION)); }); test('that an error is returned if a Union defines a duplicate Union Member', () => { - const result = normalizeSubgraph( - subgraphY.definitions, - subgraphY.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateUnionMemberDefinitionError(UNION, OBJECT)); + const { errors } = normalizeSubgraphFailure(subgraphY, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateUnionMemberDefinitionError(UNION, OBJECT)); }); test('that an error is returned if a Union extension defines a duplicate Union Member', () => { - const result = normalizeSubgraph( - subgraphZ.definitions, - subgraphZ.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateUnionMemberDefinitionError(UNION, OBJECT)); + const { errors } = normalizeSubgraphFailure(subgraphZ, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateUnionMemberDefinitionError(UNION, OBJECT)); }); test('that an error is returned if an extended Union defines a duplicate Union Member #1', () => { - const result = normalizeSubgraph( - subgraphAA.definitions, - subgraphAA.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateUnionMemberDefinitionError(UNION, OBJECT)); + const { errors } = normalizeSubgraphFailure(subgraphAA, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateUnionMemberDefinitionError(UNION, OBJECT)); }); test('that an error is returned if an extended Union defines a duplicate Union Member #2', () => { - const result = normalizeSubgraph( - subgraphAB.definitions, - subgraphAB.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(duplicateUnionMemberDefinitionError(UNION, OBJECT)); + const { errors } = normalizeSubgraphFailure(subgraphAB, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(duplicateUnionMemberDefinitionError(UNION, OBJECT)); }); test('that an error is returned if non-Objects are defined as Union Members', () => { - const result = normalizeSubgraph( - subgraphF.definitions, - subgraphF.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( + const { errors } = normalizeSubgraphFailure(subgraphF, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual( invalidUnionMemberTypeError('Union', [ '"Interface", which is type "Interface"', '"Scalar", which is type "Scalar"', @@ -437,41 +281,27 @@ describe('Union tests', () => { }); test('that an error is returned if non-objects are defined as union members through an extension', () => { - const result = normalizeSubgraph( - subgraphG.definitions, - subgraphG.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( - invalidUnionMemberTypeError('Union', ['"Scalar", which is type "Scalar"']), - ); + const { errors } = normalizeSubgraphFailure(subgraphG, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(invalidUnionMemberTypeError('Union', ['"Scalar", which is type "Scalar"'])); }); test('that an error is returned if non-objects are defined as union members and the union is extended', () => { - const result = normalizeSubgraph( - subgraphH.definitions, - subgraphH.name, - undefined, - ROUTER_COMPATIBILITY_VERSION_ONE, - ) as NormalizationFailure; - expect(result.success).toBe(false); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( - invalidUnionMemberTypeError('Union', ['"Scalar", which is type "Scalar"']), - ); + const { errors } = normalizeSubgraphFailure(subgraphH, ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(invalidUnionMemberTypeError('Union', ['"Scalar", which is type "Scalar"'])); }); }); describe('Federation tests', () => { test('that a Union type and extension definition federate successfully #1.1', () => { - const result = federateSubgraphsSuccess([subgraphAC, subgraphAD, subgraphAE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAC, subgraphAD, subgraphAE], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type AnotherObject { name: String! @@ -492,11 +322,13 @@ describe('Union tests', () => { }); test('that a Union type and extension definition federate successfully #1.2', () => { - const result = federateSubgraphsSuccess([subgraphAC, subgraphAE, subgraphAD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAC, subgraphAE, subgraphAD], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type AnotherObject { name: String! @@ -517,17 +349,19 @@ describe('Union tests', () => { }); test('that an error is returned if federation results in a Union extension orphan', () => { - const result = federateSubgraphsFailure([subgraphAC, subgraphAE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(UNION, UNION)); + const { errors } = federateSubgraphsFailure([subgraphAC, subgraphAE], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(noBaseDefinitionForExtensionError(UNION, UNION)); }); test('that unions merge by union #1.1', () => { - const result = federateSubgraphsSuccess([subgraphA, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphA, subgraphB], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Bulbasaur { name: String! @@ -564,11 +398,13 @@ describe('Union tests', () => { }); test('that unions merge by union #1.2', () => { - const result = federateSubgraphsSuccess([subgraphB, subgraphA], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphB, subgraphA], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Bulbasaur { name: String! @@ -605,65 +441,47 @@ describe('Union tests', () => { }); test('that an error is returned if a union has no members #1.1', () => { - const result = federateSubgraphsFailure([subgraphB, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( - subgraphValidationError('subgraph-c', [noDefinedUnionMembersError('Starters')]), - ); + const { errors } = federateSubgraphsFailure([subgraphB, subgraphC], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(subgraphValidationError('subgraph-c', [noDefinedUnionMembersError('Starters')])); }); test('that an error is returned if a union has no members #1.1', () => { - const result = federateSubgraphsFailure([subgraphC, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.errors).toHaveLength(1); - expect(result.errors[0]).toStrictEqual( - subgraphValidationError('subgraph-c', [noDefinedUnionMembersError('Starters')]), - ); + const { errors } = federateSubgraphsFailure([subgraphC, subgraphB], ROUTER_COMPATIBILITY_VERSION_ONE); + expect(errors).toHaveLength(1); + expect(errors[0]).toStrictEqual(subgraphValidationError('subgraph-c', [noDefinedUnionMembersError('Starters')])); }); test('that union extensions federate correctly #1.1', () => { - const result = federateSubgraphsSuccess([subgraphD, subgraphE], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphD, subgraphE], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - 001 Kanto - """ + """001 Kanto""" type Bulbasaur { - """ - The Kanto Pokemon's name - """ + """The Kanto Pokemon's name""" name: String! } - """ - 004 of 150 - """ + """004 of 150""" type Charmander { - """ - The Kanto Pokemon's name - """ + """The Kanto Pokemon's name""" name: String! } - """ - 152 - """ + """152""" type Chikorita { - """ - The Pokemon's name - """ + """The Pokemon's name""" name: String! } - """ - 155 - """ + """155""" type Cyndaquil { - """ - The Pokemon's name - """ + """The Pokemon's name""" name: String! } @@ -671,28 +489,18 @@ describe('Union tests', () => { starters: [Starters!]! } - """ - 007 Kanto - """ + """007 Kanto""" type Squirtle { - """ - The Pokemon's English name - """ + """The Pokemon's English name""" name: String! } - """ - The union of Pokemon starters (English names) - """ + """The union of Pokemon starters (English names)""" union Starters = Bulbasaur | Charmander | Chikorita | Cyndaquil | Squirtle | Totodile - """ - 158 - """ + """158""" type Totodile { - """ - The Pokemon's name - """ + """The Pokemon's name""" name: String! } `, @@ -701,49 +509,35 @@ describe('Union tests', () => { }); test('that Union extensions federate correctly #1.2', () => { - const result = federateSubgraphsSuccess([subgraphE, subgraphD], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphE, subgraphD], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionOneRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` - """ - 001 Kanto - """ + """001 Kanto""" type Bulbasaur { - """ - The Kanto Pokemon's name - """ + """The Kanto Pokemon's name""" name: String! } - """ - 004 of 150 - """ + """004 of 150""" type Charmander { - """ - The Kanto Pokemon's name - """ + """The Kanto Pokemon's name""" name: String! } - """ - 152 - """ + """152""" type Chikorita { - """ - The Pokemon's name - """ + """The Pokemon's name""" name: String! } - """ - 155 - """ + """155""" type Cyndaquil { - """ - The Pokemon's name - """ + """The Pokemon's name""" name: String! } @@ -751,28 +545,18 @@ describe('Union tests', () => { starters: [Starters!]! } - """ - 007 Kanto - """ + """007 Kanto""" type Squirtle { - """ - The Pokemon's English name - """ + """The Pokemon's English name""" name: String! } - """ - The union of Pokemon starters (English names) - """ + """The union of Pokemon starters (English names)""" union Starters = Bulbasaur | Charmander | Chikorita | Cyndaquil | Squirtle | Totodile - """ - 158 - """ + """158""" type Totodile { - """ - The Pokemon's name - """ + """The Pokemon's name""" name: String! } `, @@ -781,11 +565,13 @@ describe('Union tests', () => { }); test('that Field named types can coerce Union Members into Unions #1.1', () => { - const result = federateSubgraphsSuccess([subgraphAF, subgraphAG], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAF, subgraphAG], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type MemberOne { name: String! @@ -807,19 +593,19 @@ describe('Union tests', () => { } union Union = MemberOne | MemberTwo - - scalar openfed__Scope `, ), ); }); test('that Field named types can coerce Union Members into Unions #1.2', () => { - const result = federateSubgraphsSuccess([subgraphAG, subgraphAF], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAG, subgraphAF], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type MemberOne { name: String! @@ -841,19 +627,19 @@ describe('Union tests', () => { } union Union = MemberOne | MemberTwo - - scalar openfed__Scope `, ), ); }); test('that Field named types can coerce Union Members into Unions #2.1', () => { - const result = federateSubgraphsSuccess([subgraphAH, subgraphAI, subgraphAJ], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAH, subgraphAI, subgraphAJ], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type MemberOne { name: String! @@ -868,19 +654,19 @@ describe('Union tests', () => { } union Union = MemberOne | MemberTwo - - scalar openfed__Scope `, ), ); }); test('that Field named types can coerce Union Members into Unions #3.1', () => { - const result = federateSubgraphsSuccess([subgraphAK, subgraphAL], ROUTER_COMPATIBILITY_VERSION_ONE); - expect(result.success).toBe(true); - expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( + const { federatedGraphSchema } = federateSubgraphsSuccess( + [subgraphAK, subgraphAL], + ROUTER_COMPATIBILITY_VERSION_ONE, + ); + expect(schemaToSortedNormalizedString(federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Book { title: String! @@ -910,8 +696,6 @@ describe('Union tests', () => { } union ViewerMedia = Book | Movie | Song - - scalar openfed__Scope `, ), ); @@ -922,7 +706,7 @@ describe('Union tests', () => { expect(result.success).toBe(true); expect(schemaToSortedNormalizedString(result.federatedGraphSchema)).toBe( normalizeString( - versionTwoRouterDefinitions + + SCHEMA_QUERY_DEFINITION + ` type Book { title: String! @@ -952,8 +736,6 @@ describe('Union tests', () => { } union ViewerMedia = Book | Movie | Song - - scalar openfed__Scope `, ), ); diff --git a/composition/tests/v1/utils/utils.ts b/composition/tests/v1/utils/utils.ts index 5bf84b1bab..7d73097af9 100644 --- a/composition/tests/v1/utils/utils.ts +++ b/composition/tests/v1/utils/utils.ts @@ -1,54 +1,135 @@ import { MutableIntermediateTypeNode, MutableTypeNode } from '../../../src'; import { Kind, TypeNode } from 'graphql/index'; -// The V1 definitions that are required during normalization -export const versionOneBaseSchema = ` - directive @deprecated(reason: String = "No longer supported") on ARGUMENT_DEFINITION | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION - directive @extends on INTERFACE | OBJECT - directive @external on FIELD_DEFINITION | OBJECT - directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT - directive @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION - directive @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION - directive @specifiedBy(url: String!) on SCALAR - directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION +export const AUTHENTICATED_DIRECTIVE = ` + directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR +`; - scalar openfed__FieldSet +export const CONFIGURE_DESCRIPTION_DIRECTIVE = ` + directive @openfed__configureDescription(descriptionOverride: String, propagate: Boolean! = true) on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | SCHEMA | UNION `; -export const baseDirectiveDefinitions = ` - directive @extends on INTERFACE | OBJECT - directive @external on FIELD_DEFINITION | OBJECT - directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT - directive @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION - directive @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION - directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION +export const EDFS_NATS_PUBLISH_DIRECTIVE = ` + directive @edfs__natsPublish(providerId: String! = "default", subject: String!) on FIELD_DEFINITION +`; + +export const EDFS_NATS_REQUEST_DIRECTIVE = ` + directive @edfs__natsRequest(providerId: String! = "default", subject: String!) on FIELD_DEFINITION +`; + +export const EDFS_NATS_SUBSCRIBE_DIRECTIVE = ` + directive @edfs__natsSubscribe(providerId: String! = "default", streamConfiguration: edfs__NatsStreamConfiguration, subjects: [String!]!) on FIELD_DEFINITION +`; + +export const EDFS_NATS_STREAM_CONFIGURATION_INPUT = ` + input edfs__NatsStreamConfiguration { + consumerInactiveThreshold: Int! = 30 + consumerName: String! + streamName: String! + } +`; + +export const EDFS_PUBLISH_RESULT_OBJECT = ` + type edfs__PublishResult { + success: Boolean! + } `; -export const baseDirectiveDefinitionsWithConfigureDescription = ` +export const EXTENDS_DIRECTIVE = ` directive @extends on INTERFACE | OBJECT +`; + +export const EXTERNAL_DIRECTIVE = ` directive @external on FIELD_DEFINITION | OBJECT +`; + +export const INACCESSIBLE_DIRECTIVE = ` + directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION + | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION +`; + +export const INTERFACE_OBJECT_DIRECTIVE = ` + directive @interfaceObject on OBJECT +`; + +export const REQUEST_FETCH_REASONS_DIRECTIVE = ` + directive @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT +`; + +export const REQUIRES_SCOPES_DIRECTIVE = ` + directive @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR +`; + +export const KEY_DIRECTIVE = ` directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT - directive @openfed__configureDescription(descriptionOverride: String, propagate: Boolean! = true) on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | SCHEMA | UNION - directive @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION +`; + +export const OPENFED_FIELD_SET = ` scalar openfed__FieldSet`; + +export const OPENFED_SCOPE = ` scalar openfed__Scope`; + +export const OPENFED_SUBSCRIPTION_FIELD_CONDITION = ` + input openfed__SubscriptionFieldCondition { + fieldPath: String! + values: [openfed__SubscriptionFilterValue]! + } +`; + +export const OPENFED_SUBSCRIPTION_FILTER_CONDITION = ` + input openfed__SubscriptionFilterCondition { + AND: [openfed__SubscriptionFilterCondition!] + IN: openfed__SubscriptionFieldCondition + NOT: openfed__SubscriptionFilterCondition + OR: [openfed__SubscriptionFilterCondition!] + } +`; + +export const OPENFED_SUBSCRIPTION_FILTER_VALUE = ` + scalar openfed__SubscriptionFilterValue +`; + +export const ONE_OF_DIRECTIVE = ` + directive @oneOf on INPUT_OBJECT +`; + +export const REQUIRES_DIRECTIVE = ` directive @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION +`; + +export const SEMANTIC_NON_NULL_DIRECTIVE = ` + directive @semanticNonNull(levels: [Int!]! = [0]) on FIELD_DEFINITION +`; + +export const SHAREABLE_DIRECTIVE = ` + directive @shareable repeatable on FIELD_DEFINITION | OBJECT +`; + +export const SUBSCRIPTION_FILTER_DIRECTIVE = ` + directive @openfed__subscriptionFilter(condition: openfed__SubscriptionFilterCondition!) on FIELD_DEFINITION +`; + +export const TAG_DIRECTIVE = ` directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION `; -export const baseDirectiveDefinitionsWithSemanticNonNull = ` +// The V1 definitions that are required during normalization +export const versionOneBaseSchema = ` + directive @deprecated(reason: String = "No longer supported") on ARGUMENT_DEFINITION | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION directive @extends on INTERFACE | OBJECT directive @external on FIELD_DEFINITION | OBJECT directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT directive @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION directive @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION - directive @semanticNonNull(levels: [Int!]! = [0]) on FIELD_DEFINITION + directive @specifiedBy(url: String!) on SCALAR directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION + + scalar openfed__FieldSet `; -export const baseDirectiveDefinitionsWithRequireFetchReasons = ` +export const baseDirectiveDefinitions = ` directive @extends on INTERFACE | OBJECT directive @external on FIELD_DEFINITION | OBJECT directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT - directive @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT directive @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION directive @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION @@ -70,38 +151,32 @@ export const versionTwoDirectiveDefinitions = ` directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION `; -// The V1 definitions that are persisted in the raw federated schema -export const versionOnePersistedBaseSchema = ` - directive @deprecated(reason: String = "No longer supported") on ARGUMENT_DEFINITION | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION - directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION +export const SCHEMA_QUERY_DEFINITION = ` + schema { + query: Query + } `; -// The V2 definitions that are required during normalization -export const versionTwoBaseSchema = - versionOneBaseSchema + - ` - directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR - directive @composeDirective(name: String!) repeatable on SCHEMA - directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION - directive @interfaceObject on OBJECT - directive @override(from: String!) on FIELD_DEFINITION - directive @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR - directive @shareable repeatable on FIELD_DEFINITION | OBJECT - - scalar openfed__Scope +export const SCHEMA_QUERY_SUBSCRIPTION_DEFINITION = ` + schema { + query: Query + subscription: Subscription + } `; -export const schemaQueryDefinition = ` -schema { - query: Query -}`; +export const SCHEMA_ALL_ROOTS_DEFINITION = ` + schema { + query: Query + mutation: Mutation + subscription: Subscription + } +`; -export const fullDefaultSchemaDefinition = ` -schema { - query: Query - mutation: Mutation - subscription: Subscription -}`; +export const SCHEMA_SUBSCRIPTION_DEFINITION = ` + schema { + subscription: Subscription + } +`; export const versionOnePersistedDirectiveDefinitions = ` directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION @@ -113,29 +188,6 @@ export const eventDirectiveDefinitions = ` directive @edfs__natsSubscribe(providerId: String! = "default", streamConfiguration: edfs__NatsStreamConfiguration, subjects: [String!]!) on FIELD_DEFINITION `; -export const semanticNonNullDefinition = `directive @semanticNonNull(levels: [Int!]! = [0]) on FIELD_DEFINITION`; - -export const versionOneRouterDefinitions = schemaQueryDefinition + versionOnePersistedDirectiveDefinitions; - -export const versionOneRouterDefinitionsWithSemanticNonNull = - schemaQueryDefinition + semanticNonNullDefinition + versionOnePersistedDirectiveDefinitions; - -export const versionOneRouterContractDefinitions = - schemaQueryDefinition + - `directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION` + - versionOnePersistedDirectiveDefinitions; - -export const versionOneFullEventDefinitions = - fullDefaultSchemaDefinition + eventDirectiveDefinitions + baseDirectiveDefinitions; - -export const versionOneSubscriptionEventDefinitions = - ` -schema { - subscription: Subscription -} -directive @edfs__natsSubscribe(providerId: String! = "default", streamConfiguration: edfs__NatsStreamConfiguration, subjects: [String!]!) on FIELD_DEFINITION -` + baseDirectiveDefinitions; - export const versionTwoRouterDirectiveDefinitions = ` directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION @@ -143,8 +195,6 @@ export const versionTwoRouterDirectiveDefinitions = ` directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION `; -export const versionTwoRouterDefinitions = schemaQueryDefinition + versionTwoRouterDirectiveDefinitions; - export function stringToTypeNode(input: string): TypeNode { input = input.replaceAll('[', ''); let typeNode: MutableIntermediateTypeNode; diff --git a/controlplane/test/breaking-changes.test.ts b/controlplane/test/breaking-changes.test.ts index fc8dedbd99..0a0358e0de 100644 --- a/controlplane/test/breaking-changes.test.ts +++ b/controlplane/test/breaking-changes.test.ts @@ -111,7 +111,9 @@ describe('BreakingChanges', () => { expect(schemaChanges.nonBreakingChanges.length).toBe(1); expect(schemaChanges.nonBreakingChanges[0].message).toBe("Directive 'shareable' was added to field 'User.name'"); expect(schemaChanges.nonBreakingChanges[0].path).toBe('User.name.shareable'); - expect(schemaChanges.nonBreakingChanges[0].changeType).toBe(SchemaChangeType.DIRECTIVE_USAGE_FIELD_DEFINITION_ADDED); + expect(schemaChanges.nonBreakingChanges[0].changeType).toBe( + SchemaChangeType.DIRECTIVE_USAGE_FIELD_DEFINITION_ADDED, + ); } }); @@ -125,9 +127,13 @@ describe('BreakingChanges', () => { if (schemaChanges.kind === 'success') { expect(schemaChanges.nonBreakingChanges.length).toBe(1); - expect(schemaChanges.nonBreakingChanges[0].message).toBe("Directive 'shareable' was removed from field 'User.name'"); + expect(schemaChanges.nonBreakingChanges[0].message).toBe( + "Directive 'shareable' was removed from field 'User.name'", + ); expect(schemaChanges.nonBreakingChanges[0].path).toBe('User.name.shareable'); - expect(schemaChanges.nonBreakingChanges[0].changeType).toBe(SchemaChangeType.DIRECTIVE_USAGE_FIELD_DEFINITION_REMOVED); + expect(schemaChanges.nonBreakingChanges[0].changeType).toBe( + SchemaChangeType.DIRECTIVE_USAGE_FIELD_DEFINITION_REMOVED, + ); } }); @@ -140,10 +146,27 @@ describe('BreakingChanges', () => { expect(schemaChanges.kind).toBe('success'); if (schemaChanges.kind === 'success') { - expect(schemaChanges.nonBreakingChanges.length).toBe(1); - expect(schemaChanges.nonBreakingChanges[0].message).toBe("Directive 'key' was added to object 'User'"); - expect(schemaChanges.nonBreakingChanges[0].path).toBe('User.key'); - expect(schemaChanges.nonBreakingChanges[0].changeType).toBe(SchemaChangeType.DIRECTIVE_USAGE_OBJECT_ADDED); + expect(schemaChanges.nonBreakingChanges).toHaveLength(3); + expect(schemaChanges.nonBreakingChanges).toStrictEqual([ + { + message: "Type 'openfed__FieldSet' was added", + changeType: SchemaChangeType.TYPE_ADDED, + path: 'openfed__FieldSet', + isBreaking: false, + }, + { + message: "Directive 'key' was added to object 'User'", + changeType: SchemaChangeType.DIRECTIVE_USAGE_OBJECT_ADDED, + path: 'User.key', + isBreaking: false, + }, + { + message: "Directive 'key' was added", + changeType: SchemaChangeType.DIRECTIVE_ADDED, + path: '@key', + isBreaking: false, + }, + ]); } }); diff --git a/controlplane/test/contracts.test.ts b/controlplane/test/contracts.test.ts index 606cfb566a..71117f6cc3 100644 --- a/controlplane/test/contracts.test.ts +++ b/controlplane/test/contracts.test.ts @@ -22,7 +22,7 @@ import { SetupTest, } from './test-util.js'; -const schemaDefinition = `schema {\n query: Query\n}\n\n` +const schemaDefinition = `schema {\n query: Query\n}\n\n`; let dbname = ''; vi.mock('../src/core/clickhouse/index.js', () => { @@ -162,7 +162,7 @@ describe('Contract tests', () => { }); test('that an error is returned if a contract is created with both excluded and included tags', async () => { - const { client, server, } = await SetupTest({ dbname, chClient }); + const { client, server } = await SetupTest({ dbname, chClient }); const subgraphName = genID('subgraph'); const fedGraphName = genID('fedGraph'); @@ -1038,9 +1038,12 @@ describe('Contract tests', () => { namespace: DEFAULT_NAMESPACE, }); expect(sdlResponse.response?.code).toEqual(EnumStatusCode.OK); - expect(sdlResponse.clientSchema).toEqual(schemaDefinition + `type Query { + expect(sdlResponse.clientSchema).toEqual( + schemaDefinition + + `type Query { hello: String! -}`); +}`, + ); await client.publishFederatedSubgraph({ name: subgraphName, @@ -1156,10 +1159,13 @@ describe('Contract tests', () => { namespace: DEFAULT_NAMESPACE, }); expect(sdlResponse.response?.code).toEqual(EnumStatusCode.OK); - expect(sdlResponse.clientSchema).toEqual(schemaDefinition + `type Query { + expect(sdlResponse.clientSchema).toEqual( + schemaDefinition + + `type Query { hello: String! test: String! -}`); +}`, + ); await client.deleteFederatedSubgraph({ subgraphName: subgraph2Name, @@ -1171,9 +1177,12 @@ describe('Contract tests', () => { namespace: DEFAULT_NAMESPACE, }); expect(sdlResponse2.response?.code).toEqual(EnumStatusCode.OK); - expect(sdlResponse2.clientSchema).toEqual(schemaDefinition + `type Query { + expect(sdlResponse2.clientSchema).toEqual( + schemaDefinition + + `type Query { hello: String! -}`); +}`, + ); await server.close(); }); @@ -1289,10 +1298,13 @@ describe('Contract tests', () => { namespace: DEFAULT_NAMESPACE, }); expect(sdlResponse.response?.code).toEqual(EnumStatusCode.OK); - expect(sdlResponse.clientSchema).toEqual(schemaDefinition + `type Query { + expect(sdlResponse.clientSchema).toEqual( + schemaDefinition + + `type Query { hello: String! test: String! -}`); +}`, + ); await client.moveSubgraph({ name: subgraph2Name, @@ -1305,9 +1317,12 @@ describe('Contract tests', () => { namespace: DEFAULT_NAMESPACE, }); expect(sdlResponse2.response?.code).toEqual(EnumStatusCode.OK); - expect(sdlResponse2.clientSchema).toEqual(schemaDefinition + `type Query { + expect(sdlResponse2.clientSchema).toEqual( + schemaDefinition + + `type Query { hello: String! -}`); +}`, + ); await server.close(); }); @@ -1349,10 +1364,13 @@ describe('Contract tests', () => { namespace: DEFAULT_NAMESPACE, }); expect(sdlResponse.response?.code).toEqual(EnumStatusCode.OK); - expect(sdlResponse.clientSchema).toEqual(schemaDefinition + `type Query { + expect(sdlResponse.clientSchema).toEqual( + schemaDefinition + + `type Query { hello: String! test: String! -}`); +}`, + ); const publishRes2 = await client.publishMonograph({ name: monographName, @@ -1366,9 +1384,12 @@ describe('Contract tests', () => { namespace: DEFAULT_NAMESPACE, }); expect(sdlResponse2.response?.code).toEqual(EnumStatusCode.OK); - expect(sdlResponse2.clientSchema).toEqual(schemaDefinition + `type Query { + expect(sdlResponse2.clientSchema).toEqual( + schemaDefinition + + `type Query { hello: String! -}`); +}`, + ); await server.close(); }); @@ -1429,10 +1450,13 @@ describe('Contract tests', () => { namespace: DEFAULT_NAMESPACE, }); expect(sdlResponse.response?.code).toEqual(EnumStatusCode.OK); - expect(sdlResponse.clientSchema).toEqual(schemaDefinition + `type Query { + expect(sdlResponse.clientSchema).toEqual( + schemaDefinition + + `type Query { hello: String! test: String! -}`); +}`, + ); const updateRes = await client.updateFederatedGraph({ name: fedGraphName, @@ -1690,6 +1714,7 @@ describe('Contract tests', () => { query: Query mutation: Mutation } + directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION @@ -1949,12 +1974,9 @@ describe('Contract tests', () => { query: Query mutation: Mutation } - directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR - directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION - directive @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR + directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION - - scalar openfed__Scope + directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION type Query { internalUser(id: ID!): InternalUser! @tag(name: "dev-only") @@ -2054,12 +2076,8 @@ describe('Contract tests', () => { mutation: Mutation } - directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR - directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION - directive @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION - - scalar openfed__Scope + directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION type Query { internalUser(id: ID!): InternalUser! @tag(name: "dev-only") diff --git a/controlplane/test/graphql/federationV2/composedFederatedV2Graph.graphql b/controlplane/test/graphql/federationV2/composedFederatedV2Graph.graphql index 94f947d98a..a4f08b0d02 100644 --- a/controlplane/test/graphql/federationV2/composedFederatedV2Graph.graphql +++ b/controlplane/test/graphql/federationV2/composedFederatedV2Graph.graphql @@ -2,19 +2,11 @@ schema { query: Query } -directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR - -directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION - -directive @requiresScopes( - scopes: [[openfed__Scope!]!]! -) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR - directive @tag( name: String! ) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION -scalar openfed__Scope +directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION type Query { allPandas: [Panda] diff --git a/controlplane/test/namespace.test.ts b/controlplane/test/namespace.test.ts index 67e88f093d..1c2612eea6 100644 --- a/controlplane/test/namespace.test.ts +++ b/controlplane/test/namespace.test.ts @@ -12,8 +12,6 @@ const expectedFederatedGraphSDL = `schema { query: Query } -directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION - type Query { hello: String! }`; diff --git a/router-tests/testenv/testdata/config.json b/router-tests/testenv/testdata/config.json index 0a8ed3db23..04dc2d4862 100644 --- a/router-tests/testenv/testdata/config.json +++ b/router-tests/testenv/testdata/config.json @@ -202,7 +202,7 @@ "serviceSdl": "extend schema\n @link(\n url: \"https://specs.apollo.dev/federation/v2.5\"\n import: [\n \"@authenticated\"\n \"@composeDirective\"\n \"@external\"\n \"@extends\"\n \"@inaccessible\"\n \"@interfaceObject\"\n \"@override\"\n \"@provides\"\n \"@key\"\n \"@requires\"\n \"@requiresScopes\"\n \"@shareable\"\n \"@tag\"\n ]\n )\n\ndirective @goField(\n forceResolver: Boolean\n name: String\n omittable: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ndirective @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT\n\ntype Query {\n employee(id: Int!): Employee @openfed__requireFetchReasons\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"\n `currentTime` will return a stream of `Time` objects.\n \"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable @openfed__requireFetchReasons {\n id: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n surname: String! @shareable\n pastLocations: [City!]!\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n details: Details! @shareable\n id: Int!\n tag: String!\n role: RoleType!\n notes: String @shareable\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n # From the `availability` service. Only defined for use in @requires\n isAvailable: Boolean @external\n rootFieldThrowsError: String @goField(forceResolver: true)\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String @goField(forceResolver: true)\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}" }, "upstreamSchema": { - "key": "f2b1446f72e924e28cc681fe379e74d874d662bd" + "key": "73e7c8ef50d3dc0c5d564e34702baf455be9cee3" } }, "requestTimeoutSeconds": "10", @@ -361,7 +361,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ntype Details {\n forename: String! @shareable\n middlename: String @deprecated\n surname: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n details: Details @shareable\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n" }, "upstreamSchema": { - "key": "6618be4cd5102db58a9821e09dfa49eec9262146" + "key": "108c9f39d7ccac8d103053910a07c758f472df43" } }, "requestTimeoutSeconds": "10", @@ -492,7 +492,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ndirective @goField(\n forceResolver: Boolean\n name: String\n omittable: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n category: ExerciseType!\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n name: String!\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n languages: [ProgrammingLanguage!]!\n}\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n countriesLived: [Country!]!\n}\n\ninterface Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n hobbies: [Hobby!]\n}\n\ntype SDK @key(fields: \"upc\") {\n upc: ID!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ntype Subscription {\n countHob(max: Int! intervalMilliseconds: Int!): Int!\n}" }, "upstreamSchema": { - "key": "68291c651cf7b5b50afb169bd12d2cd1ebf4ded6" + "key": "6f2131dd12f912ee7f5a965938039527994be676" } }, "requestTimeoutSeconds": "10", @@ -625,7 +625,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\nschema {\n query: Queries\n mutation: Mutation\n}\n\ntype Queries {\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int! numOfB: Int!): [Thing!]! @shareable\n}\n\ntype Mutation {\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n}\n\ntype Thing @shareable {\n a: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE,\n ENTITY,\n MISCELLANEOUS,\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]){\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n products: [ProductName!]!\n notes: String @override(from: \"employees\")\n}\n\nunion Products = Consultancy | Cosmo | Documentation\n\ntype Consultancy @key(fields: \"upc\") {\n upc: ID!\n name: ProductName!\n}\n\ntype Cosmo @key(fields: \"upc\") {\n upc: ID!\n name: ProductName!\n repositoryURL: String!\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n" }, "upstreamSchema": { - "key": "c8cc058566134270eaf1cf6638137eec5a7de07e" + "key": "acbfd8f3662503e41417bfd29f5a0579e8cff323" } }, "requestTimeoutSeconds": "10", @@ -1588,7 +1588,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Query {\n \"Returns the value of the received HTTP header.\"\n headerValue(name: String!): String!\n \"Returns the value of the given key in the WS initial payload.\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"Returns response after the given delay\"\n delay(response: String!, ms: Int!): String!\n\n bigResponse(\n artificialDelay: Int! = 0\n bigObjects: Int! = 100\n nestedObjects: Int! = 100\n deeplyNestedObjects: Int! = 100\n ): [BigObject!]!\n\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n\n bigAbstractResponse: BigAbstractResponse\n\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n\n floatField(arg: Float): Float\n\n sharedThings(numOfA: Int! numOfB: Int!): [Thing!]! @shareable\n\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n}\n\ntype Secret {\n value: String\n}\n\ntype Thing @shareable {\n b: String!\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"The value of the string.\"\n value: String!\n \"The timestamp when the response was generated.\"\n unixTime: Int!\n \"Sequence number\"\n seq: Int!\n \"Total number of responses to be sent\"\n total: Int!\n initialPayload: Map\n}\n\ntype Subscription {\n \"Returns a stream with the value of the received HTTP header.\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"Returns a stream with the value of value of the given key in the WS initial payload.\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"Returns a stream with the value of the WS initial payload.\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n fieldThrowsError: String\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}" }, "upstreamSchema": { - "key": "20c8fc085a72213ac5bb4a25387d3a7bb35749ec" + "key": "5c5a237ac1f0c1d67ae52534584ee8116d4cc474" } }, "requestTimeoutSeconds": "10", @@ -1641,7 +1641,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean\n}\n" }, "upstreamSchema": { - "key": "477be83551370e0ad0af604baff3d200df87715f" + "key": "865e365ca4e3de8aec4ccd25e875ca9a82a7edde" } }, "requestTimeoutSeconds": "10", @@ -1694,7 +1694,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n currentMood: Mood!\n}\n" }, "upstreamSchema": { - "key": "cb7653f92b2599bd46ae73a84b8d7d5c359fb3b2" + "key": "10eccb92890a5709d24ac8c1293264d758b997c7" } }, "requestTimeoutSeconds": "10", @@ -1749,7 +1749,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n" }, "upstreamSchema": { - "key": "14e8ff1a04734f4e9f500e9fcc7cebd94008d2cd" + "key": "0c7a814514a54c0b54af7ea5fa33730a321921e6" } }, "requestTimeoutSeconds": "10", @@ -2425,20 +2425,20 @@ } } ], - "graphqlSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\nscalar openfed__Scope\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n APATHETIC @inaccessible\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}", + "graphqlSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\nscalar openfed__Scope\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n APATHETIC @inaccessible\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}", "stringStorage": { - "f2b1446f72e924e28cc681fe379e74d874d662bd": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype City {\n country: Country\n name: String!\n type: String!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n pastLocations: [City!]!\n surname: String! @shareable\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n details: Details! @shareable\n id: Int!\n isAvailable: Boolean @external\n notes: String @shareable\n role: RoleType!\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n rootFieldThrowsError: String @goField(forceResolver: true)\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n tag: String!\n updatedAt: String!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n title: [String!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ntype ErrorWrapper {\n errorField: String @goField(forceResolver: true)\n okField: String\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput FindEmployeeCriteria @oneOf {\n department: Department\n id: Int\n title: String\n}\n\ninterface IProduct {\n engineers: [Employee!]!\n upc: ID!\n}\n\ninterface Identifiable {\n id: Int! @openfed__requireFetchReasons\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Mutation {\n multipleUpload(files: [Upload!]!): Boolean!\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n updateEmployeeTag(id: Int!, tag: String!): Employee\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n title: [String!]!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ntype Query {\n employee(id: Int!): Employee @openfed__requireFetchReasons\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n}\n\ninterface RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n upc: ID!\n}\n\ntype Subscription {\n countEmp(intervalMilliseconds: Int!, max: Int!): Int!\n countEmp2(intervalMilliseconds: Int!, max: Int!): Int!\n countFor(count: Int!): Int!\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n}\n\ntype Time {\n timeStamp: String!\n unixTime: Int!\n}\n\nscalar Upload\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "6618be4cd5102db58a9821e09dfa49eec9262146": "schema {\n query: Query\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Alligator implements Animal & Pet {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ntype Cat implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\ntype Details {\n forename: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n middlename: String @deprecated\n nationality: Nationality!\n pets: [Pet]\n surname: String! @shareable\n}\n\ntype Dog implements Animal & Pet {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Employee @key(fields: \"id\") {\n details: Details @shareable\n id: Int!\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\ntype Mouse implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ninput NestedSearchInput {\n hasChildren: Boolean\n maritalStatus: MaritalStatus\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "68291c651cf7b5b50afb169bd12d2cd1ebf4ded6": "schema {\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ntype Employee @key(fields: \"id\") {\n hobbies: [Hobby!]\n id: Int!\n}\n\ntype Exercise implements Hobby {\n category: ExerciseType!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n CARD\n FPS\n ROGUELITE\n RPG\n SIMULATION\n STRATEGY\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ninterface Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\ntype Other implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n languages: [ProgrammingLanguage!]!\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ntype SDK @key(fields: \"upc\") {\n clientLanguages: [ProgrammingLanguage!]!\n upc: ID!\n}\n\ntype Subscription {\n countHob(intervalMilliseconds: Int!, max: Int!): Int!\n}\n\ntype Travelling implements Hobby {\n countriesLived: [Country!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "c8cc058566134270eaf1cf6638137eec5a7de07e": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"]) {\n query: Queries\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Consultancy @key(fields: \"upc\") {\n name: ProductName!\n upc: ID!\n}\n\ntype Cosmo @key(fields: \"upc\") {\n name: ProductName!\n repositoryURL: String!\n upc: ID!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n notes: String @override(from: \"employees\")\n products: [ProductName!]!\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\ntype MiscellaneousFact implements TopSecretFact {\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n title: String!\n}\n\ntype Mutation {\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n}\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\nunion Products = Consultancy | Cosmo | Documentation\n\ntype Queries {\n factTypes: [TopSecretFactType!]\n productTypes: [Products!]!\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]! @shareable\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n}\n\ntype Thing {\n a: String! @shareable\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\ninput TopSecretFactInput {\n description: FactContent!\n factType: TopSecretFactType!\n title: String!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "20c8fc085a72213ac5bb4a25387d3a7bb35749ec": "schema {\n query: Query\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype Employee @key(fields: \"id\") {\n fieldThrowsError: String\n id: Int!\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ninput InputArg {\n enum: EnumType\n enums: [EnumType!]\n string: String\n strings: [String!]\n}\n\ntype InputResponse {\n arg: String!\n}\n\ninput InputType {\n arg: String!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\nscalar Map\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype Query {\n bigAbstractResponse: BigAbstractResponse\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, deeplyNestedObjects: Int! = 100, nestedObjects: Int! = 100): [BigObject!]!\n \"\"\"Returns response after the given delay\"\"\"\n delay(ms: Int!, response: String!): String!\n floatField(arg: Float): Float\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n rootFieldWithInput(arg: InputArg!): String!\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]! @shareable\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype Secret {\n value: String\n}\n\ntype Subscription {\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype Thing {\n b: String! @shareable\n}\n\ntype TimestampedString {\n initialPayload: Map\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"The value of the string.\"\"\"\n value: String!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "477be83551370e0ad0af604baff3d200df87715f": "schema {\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean\n}\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "cb7653f92b2599bd46ae73a84b8d7d5c359fb3b2": "schema {\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Employee @key(fields: \"id\") {\n currentMood: Mood!\n id: Int!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "14e8ff1a04734f4e9f500e9fcc7cebd94008d2cd": "directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope" + "73e7c8ef50d3dc0c5d564e34702baf455be9cee3": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype City {\n country: Country\n name: String!\n type: String!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n pastLocations: [City!]!\n surname: String! @shareable\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n details: Details! @shareable\n id: Int!\n isAvailable: Boolean @external\n notes: String @shareable\n role: RoleType!\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n rootFieldThrowsError: String @goField(forceResolver: true)\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n tag: String!\n updatedAt: String!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n title: [String!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ntype ErrorWrapper {\n errorField: String @goField(forceResolver: true)\n okField: String\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput FindEmployeeCriteria @oneOf {\n department: Department\n id: Int\n title: String\n}\n\ninterface IProduct {\n engineers: [Employee!]!\n upc: ID!\n}\n\ninterface Identifiable {\n id: Int! @openfed__requireFetchReasons\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Mutation {\n multipleUpload(files: [Upload!]!): Boolean!\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n updateEmployeeTag(id: Int!, tag: String!): Employee\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n title: [String!]!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ntype Query {\n employee(id: Int!): Employee @openfed__requireFetchReasons\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n}\n\ninterface RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n upc: ID!\n}\n\ntype Subscription {\n countEmp(intervalMilliseconds: Int!, max: Int!): Int!\n countEmp2(intervalMilliseconds: Int!, max: Int!): Int!\n countFor(count: Int!): Int!\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n}\n\ntype Time {\n timeStamp: String!\n unixTime: Int!\n}\n\nscalar Upload\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", + "108c9f39d7ccac8d103053910a07c758f472df43": "schema {\n query: Query\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ntype Alligator implements Animal & Pet {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ntype Cat implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\ntype Details {\n forename: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n middlename: String @deprecated\n nationality: Nationality!\n pets: [Pet]\n surname: String! @shareable\n}\n\ntype Dog implements Animal & Pet {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Employee @key(fields: \"id\") {\n details: Details @shareable\n id: Int!\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\ntype Mouse implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ninput NestedSearchInput {\n hasChildren: Boolean\n maritalStatus: MaritalStatus\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "6f2131dd12f912ee7f5a965938039527994be676": "schema {\n subscription: Subscription\n}\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ntype Employee @key(fields: \"id\") {\n hobbies: [Hobby!]\n id: Int!\n}\n\ntype Exercise implements Hobby {\n category: ExerciseType!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n CARD\n FPS\n ROGUELITE\n RPG\n SIMULATION\n STRATEGY\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ninterface Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\ntype Other implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n languages: [ProgrammingLanguage!]!\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ntype SDK @key(fields: \"upc\") {\n clientLanguages: [ProgrammingLanguage!]!\n upc: ID!\n}\n\ntype Subscription {\n countHob(intervalMilliseconds: Int!, max: Int!): Int!\n}\n\ntype Travelling implements Hobby {\n countriesLived: [Country!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "acbfd8f3662503e41417bfd29f5a0579e8cff323": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"]) {\n query: Queries\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ntype Consultancy @key(fields: \"upc\") {\n name: ProductName!\n upc: ID!\n}\n\ntype Cosmo @key(fields: \"upc\") {\n name: ProductName!\n repositoryURL: String!\n upc: ID!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n notes: String @override(from: \"employees\")\n products: [ProductName!]!\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\ntype MiscellaneousFact implements TopSecretFact {\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n title: String!\n}\n\ntype Mutation {\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n}\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\nunion Products = Consultancy | Cosmo | Documentation\n\ntype Queries {\n factTypes: [TopSecretFactType!]\n productTypes: [Products!]!\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]! @shareable\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n}\n\ntype Thing {\n a: String! @shareable\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\ninput TopSecretFactInput {\n description: FactContent!\n factType: TopSecretFactType!\n title: String!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", + "5c5a237ac1f0c1d67ae52534584ee8116d4cc474": "schema {\n query: Query\n subscription: Subscription\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype Employee @key(fields: \"id\") {\n fieldThrowsError: String\n id: Int!\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ninput InputArg {\n enum: EnumType\n enums: [EnumType!]\n string: String\n strings: [String!]\n}\n\ntype InputResponse {\n arg: String!\n}\n\ninput InputType {\n arg: String!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\nscalar Map\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype Query {\n bigAbstractResponse: BigAbstractResponse\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, deeplyNestedObjects: Int! = 100, nestedObjects: Int! = 100): [BigObject!]!\n \"\"\"Returns response after the given delay\"\"\"\n delay(ms: Int!, response: String!): String!\n floatField(arg: Float): Float\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n rootFieldWithInput(arg: InputArg!): String!\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]! @shareable\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype Secret {\n value: String\n}\n\ntype Subscription {\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype Thing {\n b: String! @shareable\n}\n\ntype TimestampedString {\n initialPayload: Map\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"The value of the string.\"\"\"\n value: String!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", + "865e365ca4e3de8aec4ccd25e875ca9a82a7edde": "schema {\n mutation: Mutation\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean\n}\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "10eccb92890a5709d24ac8c1293264d758b997c7": "schema {\n mutation: Mutation\n}\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Employee @key(fields: \"id\") {\n currentMood: Mood!\n id: Int!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "0c7a814514a54c0b54af7ea5fa33730a321921e6": "directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet" }, "graphqlClientSchema": "type Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee!\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]!\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact!\n\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n\n \"\"\"Sequence number\"\"\"\n seq: Int!\n\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String!\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}" }, - "version": "4cc76867-9d27-4e53-b2c9-9cc879d958c3", + "version": "521cdb97-f19f-4c3e-bf3f-1511510f1bf0", "subgraphs": [ { "id": "0", @@ -2687,7 +2687,7 @@ "serviceSdl": "extend schema\n @link(\n url: \"https://specs.apollo.dev/federation/v2.5\"\n import: [\n \"@authenticated\"\n \"@composeDirective\"\n \"@external\"\n \"@extends\"\n \"@inaccessible\"\n \"@interfaceObject\"\n \"@override\"\n \"@provides\"\n \"@key\"\n \"@requires\"\n \"@requiresScopes\"\n \"@shareable\"\n \"@tag\"\n ]\n )\n\ndirective @goField(\n forceResolver: Boolean\n name: String\n omittable: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ndirective @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT\n\ntype Query {\n employee(id: Int!): Employee @openfed__requireFetchReasons\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"\n `currentTime` will return a stream of `Time` objects.\n \"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable @openfed__requireFetchReasons {\n id: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n surname: String! @shareable\n pastLocations: [City!]!\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n details: Details! @shareable\n id: Int!\n tag: String!\n role: RoleType!\n notes: String @shareable\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n # From the `availability` service. Only defined for use in @requires\n isAvailable: Boolean @external\n rootFieldThrowsError: String @goField(forceResolver: true)\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String @goField(forceResolver: true)\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}" }, "upstreamSchema": { - "key": "f2b1446f72e924e28cc681fe379e74d874d662bd" + "key": "73e7c8ef50d3dc0c5d564e34702baf455be9cee3" } }, "requestTimeoutSeconds": "10", @@ -2846,7 +2846,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ntype Details {\n forename: String! @shareable\n middlename: String @deprecated\n surname: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n details: Details @shareable\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n" }, "upstreamSchema": { - "key": "6618be4cd5102db58a9821e09dfa49eec9262146" + "key": "108c9f39d7ccac8d103053910a07c758f472df43" } }, "requestTimeoutSeconds": "10", @@ -2977,7 +2977,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ndirective @goField(\n forceResolver: Boolean\n name: String\n omittable: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n category: ExerciseType!\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n name: String!\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n languages: [ProgrammingLanguage!]!\n}\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n countriesLived: [Country!]!\n}\n\ninterface Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n hobbies: [Hobby!]\n}\n\ntype SDK @key(fields: \"upc\") {\n upc: ID!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ntype Subscription {\n countHob(max: Int! intervalMilliseconds: Int!): Int!\n}" }, "upstreamSchema": { - "key": "68291c651cf7b5b50afb169bd12d2cd1ebf4ded6" + "key": "6f2131dd12f912ee7f5a965938039527994be676" } }, "requestTimeoutSeconds": "10", @@ -3104,7 +3104,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\nschema {\n query: Queries\n mutation: Mutation\n}\n\n# dwedwedew\n\ntype Queries {\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n}\n\ntype Mutation {\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE,\n ENTITY,\n MISCELLANEOUS,\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]){\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n products: [ProductName!]!\n productCount: Int!\n notes: String @override(from: \"employees\")\n}\n\nunion Products = Consultancy | Cosmo | Documentation\n\ntype Consultancy @key(fields: \"upc\") {\n upc: ID!\n name: ProductName!\n}\n\ntype Cosmo @key(fields: \"upc\") {\n upc: ID!\n name: ProductName!\n repositoryURL: String!\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n" }, "upstreamSchema": { - "key": "f79d19db4b33b04020b6f36030f7cb2cb86662cf" + "key": "ae2f1af7c0ba46587f3fd229d25cb8e78212f91f" } }, "requestTimeoutSeconds": "10", @@ -4067,7 +4067,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Query {\n \"Returns the value of the received HTTP header.\"\n headerValue(name: String!): String!\n \"Returns the value of the given key in the WS initial payload.\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"Returns response after the given delay\"\n delay(response: String!, ms: Int!): String!\n\n bigResponse(\n artificialDelay: Int! = 0\n bigObjects: Int! = 100\n nestedObjects: Int! = 100\n deeplyNestedObjects: Int! = 100\n ): [BigObject!]!\n\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n\n bigAbstractResponse: BigAbstractResponse\n\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n\n floatField(arg: Float): Float\n\n sharedThings(numOfA: Int! numOfB: Int!): [Thing!]! @shareable\n\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n}\n\ntype Secret {\n value: String\n}\n\ntype Thing @shareable {\n b: String!\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"The value of the string.\"\n value: String!\n \"The timestamp when the response was generated.\"\n unixTime: Int!\n \"Sequence number\"\n seq: Int!\n \"Total number of responses to be sent\"\n total: Int!\n initialPayload: Map\n}\n\ntype Subscription {\n \"Returns a stream with the value of the received HTTP header.\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"Returns a stream with the value of value of the given key in the WS initial payload.\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"Returns a stream with the value of the WS initial payload.\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n fieldThrowsError: String\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}" }, "upstreamSchema": { - "key": "20c8fc085a72213ac5bb4a25387d3a7bb35749ec" + "key": "5c5a237ac1f0c1d67ae52534584ee8116d4cc474" } }, "requestTimeoutSeconds": "10", @@ -4120,7 +4120,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean\n}\n" }, "upstreamSchema": { - "key": "477be83551370e0ad0af604baff3d200df87715f" + "key": "865e365ca4e3de8aec4ccd25e875ca9a82a7edde" } }, "requestTimeoutSeconds": "10", @@ -4173,7 +4173,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n currentMood: Mood!\n}\n" }, "upstreamSchema": { - "key": "cb7653f92b2599bd46ae73a84b8d7d5c359fb3b2" + "key": "10eccb92890a5709d24ac8c1293264d758b997c7" } }, "requestTimeoutSeconds": "10", @@ -4228,7 +4228,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n" }, "upstreamSchema": { - "key": "14e8ff1a04734f4e9f500e9fcc7cebd94008d2cd" + "key": "0c7a814514a54c0b54af7ea5fa33730a321921e6" } }, "requestTimeoutSeconds": "10", @@ -4904,20 +4904,20 @@ } } ], - "graphqlSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\nscalar openfed__Scope\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n APATHETIC @inaccessible\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ntype Thing {\n b: String!\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n productCount: Int!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}", + "graphqlSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\nscalar openfed__Scope\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n APATHETIC @inaccessible\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ntype Thing {\n b: String!\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n productCount: Int!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}", "stringStorage": { - "f2b1446f72e924e28cc681fe379e74d874d662bd": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype City {\n country: Country\n name: String!\n type: String!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n pastLocations: [City!]!\n surname: String! @shareable\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n details: Details! @shareable\n id: Int!\n isAvailable: Boolean @external\n notes: String @shareable\n role: RoleType!\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n rootFieldThrowsError: String @goField(forceResolver: true)\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n tag: String!\n updatedAt: String!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n title: [String!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ntype ErrorWrapper {\n errorField: String @goField(forceResolver: true)\n okField: String\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput FindEmployeeCriteria @oneOf {\n department: Department\n id: Int\n title: String\n}\n\ninterface IProduct {\n engineers: [Employee!]!\n upc: ID!\n}\n\ninterface Identifiable {\n id: Int! @openfed__requireFetchReasons\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Mutation {\n multipleUpload(files: [Upload!]!): Boolean!\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n updateEmployeeTag(id: Int!, tag: String!): Employee\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n title: [String!]!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ntype Query {\n employee(id: Int!): Employee @openfed__requireFetchReasons\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n}\n\ninterface RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n upc: ID!\n}\n\ntype Subscription {\n countEmp(intervalMilliseconds: Int!, max: Int!): Int!\n countEmp2(intervalMilliseconds: Int!, max: Int!): Int!\n countFor(count: Int!): Int!\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n}\n\ntype Time {\n timeStamp: String!\n unixTime: Int!\n}\n\nscalar Upload\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "6618be4cd5102db58a9821e09dfa49eec9262146": "schema {\n query: Query\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Alligator implements Animal & Pet {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ntype Cat implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\ntype Details {\n forename: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n middlename: String @deprecated\n nationality: Nationality!\n pets: [Pet]\n surname: String! @shareable\n}\n\ntype Dog implements Animal & Pet {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Employee @key(fields: \"id\") {\n details: Details @shareable\n id: Int!\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\ntype Mouse implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ninput NestedSearchInput {\n hasChildren: Boolean\n maritalStatus: MaritalStatus\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "68291c651cf7b5b50afb169bd12d2cd1ebf4ded6": "schema {\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ntype Employee @key(fields: \"id\") {\n hobbies: [Hobby!]\n id: Int!\n}\n\ntype Exercise implements Hobby {\n category: ExerciseType!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n CARD\n FPS\n ROGUELITE\n RPG\n SIMULATION\n STRATEGY\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ninterface Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\ntype Other implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n languages: [ProgrammingLanguage!]!\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ntype SDK @key(fields: \"upc\") {\n clientLanguages: [ProgrammingLanguage!]!\n upc: ID!\n}\n\ntype Subscription {\n countHob(intervalMilliseconds: Int!, max: Int!): Int!\n}\n\ntype Travelling implements Hobby {\n countriesLived: [Country!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "f79d19db4b33b04020b6f36030f7cb2cb86662cf": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"]) {\n query: Queries\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Consultancy @key(fields: \"upc\") {\n name: ProductName!\n upc: ID!\n}\n\ntype Cosmo @key(fields: \"upc\") {\n name: ProductName!\n repositoryURL: String!\n upc: ID!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n notes: String @override(from: \"employees\")\n productCount: Int!\n products: [ProductName!]!\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\ntype MiscellaneousFact implements TopSecretFact {\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n title: String!\n}\n\ntype Mutation {\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n}\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\nunion Products = Consultancy | Cosmo | Documentation\n\ntype Queries {\n factTypes: [TopSecretFactType!]\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\ninput TopSecretFactInput {\n description: FactContent!\n factType: TopSecretFactType!\n title: String!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "20c8fc085a72213ac5bb4a25387d3a7bb35749ec": "schema {\n query: Query\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype Employee @key(fields: \"id\") {\n fieldThrowsError: String\n id: Int!\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ninput InputArg {\n enum: EnumType\n enums: [EnumType!]\n string: String\n strings: [String!]\n}\n\ntype InputResponse {\n arg: String!\n}\n\ninput InputType {\n arg: String!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\nscalar Map\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype Query {\n bigAbstractResponse: BigAbstractResponse\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, deeplyNestedObjects: Int! = 100, nestedObjects: Int! = 100): [BigObject!]!\n \"\"\"Returns response after the given delay\"\"\"\n delay(ms: Int!, response: String!): String!\n floatField(arg: Float): Float\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n rootFieldWithInput(arg: InputArg!): String!\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]! @shareable\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype Secret {\n value: String\n}\n\ntype Subscription {\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype Thing {\n b: String! @shareable\n}\n\ntype TimestampedString {\n initialPayload: Map\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"The value of the string.\"\"\"\n value: String!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "477be83551370e0ad0af604baff3d200df87715f": "schema {\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean\n}\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "cb7653f92b2599bd46ae73a84b8d7d5c359fb3b2": "schema {\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Employee @key(fields: \"id\") {\n currentMood: Mood!\n id: Int!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "14e8ff1a04734f4e9f500e9fcc7cebd94008d2cd": "directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope" + "73e7c8ef50d3dc0c5d564e34702baf455be9cee3": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype City {\n country: Country\n name: String!\n type: String!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n pastLocations: [City!]!\n surname: String! @shareable\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n details: Details! @shareable\n id: Int!\n isAvailable: Boolean @external\n notes: String @shareable\n role: RoleType!\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n rootFieldThrowsError: String @goField(forceResolver: true)\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n tag: String!\n updatedAt: String!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n title: [String!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ntype ErrorWrapper {\n errorField: String @goField(forceResolver: true)\n okField: String\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput FindEmployeeCriteria @oneOf {\n department: Department\n id: Int\n title: String\n}\n\ninterface IProduct {\n engineers: [Employee!]!\n upc: ID!\n}\n\ninterface Identifiable {\n id: Int! @openfed__requireFetchReasons\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Mutation {\n multipleUpload(files: [Upload!]!): Boolean!\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n updateEmployeeTag(id: Int!, tag: String!): Employee\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n title: [String!]!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ntype Query {\n employee(id: Int!): Employee @openfed__requireFetchReasons\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n}\n\ninterface RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n upc: ID!\n}\n\ntype Subscription {\n countEmp(intervalMilliseconds: Int!, max: Int!): Int!\n countEmp2(intervalMilliseconds: Int!, max: Int!): Int!\n countFor(count: Int!): Int!\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n}\n\ntype Time {\n timeStamp: String!\n unixTime: Int!\n}\n\nscalar Upload\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", + "108c9f39d7ccac8d103053910a07c758f472df43": "schema {\n query: Query\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ntype Alligator implements Animal & Pet {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ntype Cat implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\ntype Details {\n forename: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n middlename: String @deprecated\n nationality: Nationality!\n pets: [Pet]\n surname: String! @shareable\n}\n\ntype Dog implements Animal & Pet {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Employee @key(fields: \"id\") {\n details: Details @shareable\n id: Int!\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\ntype Mouse implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ninput NestedSearchInput {\n hasChildren: Boolean\n maritalStatus: MaritalStatus\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "6f2131dd12f912ee7f5a965938039527994be676": "schema {\n subscription: Subscription\n}\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ntype Employee @key(fields: \"id\") {\n hobbies: [Hobby!]\n id: Int!\n}\n\ntype Exercise implements Hobby {\n category: ExerciseType!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n CARD\n FPS\n ROGUELITE\n RPG\n SIMULATION\n STRATEGY\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ninterface Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\ntype Other implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n languages: [ProgrammingLanguage!]!\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ntype SDK @key(fields: \"upc\") {\n clientLanguages: [ProgrammingLanguage!]!\n upc: ID!\n}\n\ntype Subscription {\n countHob(intervalMilliseconds: Int!, max: Int!): Int!\n}\n\ntype Travelling implements Hobby {\n countriesLived: [Country!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "ae2f1af7c0ba46587f3fd229d25cb8e78212f91f": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"]) {\n query: Queries\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ntype Consultancy @key(fields: \"upc\") {\n name: ProductName!\n upc: ID!\n}\n\ntype Cosmo @key(fields: \"upc\") {\n name: ProductName!\n repositoryURL: String!\n upc: ID!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n notes: String @override(from: \"employees\")\n productCount: Int!\n products: [ProductName!]!\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\ntype MiscellaneousFact implements TopSecretFact {\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n title: String!\n}\n\ntype Mutation {\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n}\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\nunion Products = Consultancy | Cosmo | Documentation\n\ntype Queries {\n factTypes: [TopSecretFactType!]\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\ninput TopSecretFactInput {\n description: FactContent!\n factType: TopSecretFactType!\n title: String!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", + "5c5a237ac1f0c1d67ae52534584ee8116d4cc474": "schema {\n query: Query\n subscription: Subscription\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype Employee @key(fields: \"id\") {\n fieldThrowsError: String\n id: Int!\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ninput InputArg {\n enum: EnumType\n enums: [EnumType!]\n string: String\n strings: [String!]\n}\n\ntype InputResponse {\n arg: String!\n}\n\ninput InputType {\n arg: String!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\nscalar Map\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype Query {\n bigAbstractResponse: BigAbstractResponse\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, deeplyNestedObjects: Int! = 100, nestedObjects: Int! = 100): [BigObject!]!\n \"\"\"Returns response after the given delay\"\"\"\n delay(ms: Int!, response: String!): String!\n floatField(arg: Float): Float\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n rootFieldWithInput(arg: InputArg!): String!\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]! @shareable\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype Secret {\n value: String\n}\n\ntype Subscription {\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype Thing {\n b: String! @shareable\n}\n\ntype TimestampedString {\n initialPayload: Map\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"The value of the string.\"\"\"\n value: String!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", + "865e365ca4e3de8aec4ccd25e875ca9a82a7edde": "schema {\n mutation: Mutation\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean\n}\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "10eccb92890a5709d24ac8c1293264d758b997c7": "schema {\n mutation: Mutation\n}\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Employee @key(fields: \"id\") {\n currentMood: Mood!\n id: Int!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "0c7a814514a54c0b54af7ea5fa33730a321921e6": "directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet" }, "graphqlClientSchema": "type Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee!\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]!\n factTypes: [TopSecretFactType!]\n\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n secret: Secret\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact!\n\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ntype Thing {\n b: String!\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n\n \"\"\"Sequence number\"\"\"\n seq: Int!\n\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String!\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n productCount: Int!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}" }, - "version": "c4072d6e-b93a-402d-900a-6703f44344af", + "version": "54b6b921-ba36-4ee0-92e6-04166331641f", "subgraphs": [ { "id": "0", diff --git a/router-tests/testenv/testdata/configWithEdfs.json b/router-tests/testenv/testdata/configWithEdfs.json index 5fd58ff22b..9452311f6e 100644 --- a/router-tests/testenv/testdata/configWithEdfs.json +++ b/router-tests/testenv/testdata/configWithEdfs.json @@ -13,7 +13,11 @@ "employees", "products", "teammates", - "firstEmployee" + "firstEmployee", + "findEmployeesBy" + ], + "requireFetchReasonsFieldNames": [ + "employee" ] }, { @@ -71,7 +75,8 @@ "fieldNames": [ "upc", "engineers", - "lead" + "lead", + "isLeadAvailable" ] }, { @@ -97,6 +102,9 @@ "typeName": "Identifiable", "fieldNames": [ "id" + ], + "requireFetchReasonsFieldNames": [ + "id" ] }, { @@ -191,10 +199,10 @@ }, "federation": { "enabled": true, - "serviceSdl": "extend schema\n @link(\n url: \"https://specs.apollo.dev/federation/v2.5\"\n import: [\n \"@authenticated\"\n \"@composeDirective\"\n \"@external\"\n \"@extends\"\n \"@inaccessible\"\n \"@interfaceObject\"\n \"@override\"\n \"@provides\"\n \"@key\"\n \"@requires\"\n \"@requiresScopes\"\n \"@shareable\"\n \"@tag\"\n ]\n )\n\ndirective @goField(\n forceResolver: Boolean\n name: String\n omittable: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"\n `currentTime` will return a stream of `Time` objects.\n \"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n surname: String! @shareable\n pastLocations: [City!]!\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n details: Details! @shareable\n id: Int!\n tag: String!\n role: RoleType!\n notes: String @shareable\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n # From the `availability` service. Only defined for use in @requires\n isAvailable: Boolean! @external\n rootFieldThrowsError: String @goField(forceResolver: true)\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String @goField(forceResolver: true)\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n}\n" + "serviceSdl": "extend schema\n @link(\n url: \"https://specs.apollo.dev/federation/v2.5\"\n import: [\n \"@authenticated\"\n \"@composeDirective\"\n \"@external\"\n \"@extends\"\n \"@inaccessible\"\n \"@interfaceObject\"\n \"@override\"\n \"@provides\"\n \"@key\"\n \"@requires\"\n \"@requiresScopes\"\n \"@shareable\"\n \"@tag\"\n ]\n )\n\ndirective @goField(\n forceResolver: Boolean\n name: String\n omittable: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ndirective @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT\n\ntype Query {\n employee(id: Int!): Employee @openfed__requireFetchReasons\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"\n `currentTime` will return a stream of `Time` objects.\n \"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable @openfed__requireFetchReasons {\n id: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n surname: String! @shareable\n pastLocations: [City!]!\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n details: Details! @shareable\n id: Int!\n tag: String!\n role: RoleType!\n notes: String @shareable\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n # From the `availability` service. Only defined for use in @requires\n isAvailable: Boolean @external\n rootFieldThrowsError: String @goField(forceResolver: true)\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String @goField(forceResolver: true)\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}" }, "upstreamSchema": { - "key": "2ebeba33065ef483f119d0097b7cfab1bfe2e1a7" + "key": "73e7c8ef50d3dc0c5d564e34702baf455be9cee3" } }, "requestTimeoutSeconds": "10", @@ -232,6 +240,11 @@ "typeName": "Consultancy", "fieldName": "isLeadAvailable", "selectionSet": "lead { isAvailable }" + }, + { + "typeName": "Cosmo", + "fieldName": "isLeadAvailable", + "selectionSet": "lead { isAvailable }" } ] }, @@ -348,7 +361,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ntype Details {\n forename: String! @shareable\n middlename: String @deprecated\n surname: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n details: Details @shareable\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n" }, "upstreamSchema": { - "key": "6618be4cd5102db58a9821e09dfa49eec9262146" + "key": "108c9f39d7ccac8d103053910a07c758f472df43" } }, "requestTimeoutSeconds": "10", @@ -479,7 +492,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ndirective @goField(\n forceResolver: Boolean\n name: String\n omittable: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n category: ExerciseType!\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n name: String!\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n languages: [ProgrammingLanguage!]!\n}\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n countriesLived: [Country!]!\n}\n\ninterface Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n hobbies: [Hobby!]\n}\n\ntype SDK @key(fields: \"upc\") {\n upc: ID!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ntype Subscription {\n countHob(max: Int! intervalMilliseconds: Int!): Int!\n}" }, "upstreamSchema": { - "key": "68291c651cf7b5b50afb169bd12d2cd1ebf4ded6" + "key": "6f2131dd12f912ee7f5a965938039527994be676" } }, "requestTimeoutSeconds": "10", @@ -612,7 +625,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\nschema {\n query: Queries\n mutation: Mutation\n}\n\ntype Queries {\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int! numOfB: Int!): [Thing!]! @shareable\n}\n\ntype Mutation {\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n}\n\ntype Thing @shareable {\n a: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE,\n ENTITY,\n MISCELLANEOUS,\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]){\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n products: [ProductName!]!\n notes: String @override(from: \"employees\")\n}\n\nunion Products = Consultancy | Cosmo | Documentation\n\ntype Consultancy @key(fields: \"upc\") {\n upc: ID!\n name: ProductName!\n}\n\ntype Cosmo @key(fields: \"upc\") {\n upc: ID!\n name: ProductName!\n repositoryURL: String!\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n" }, "upstreamSchema": { - "key": "c8cc058566134270eaf1cf6638137eec5a7de07e" + "key": "acbfd8f3662503e41417bfd29f5a0579e8cff323" } }, "requestTimeoutSeconds": "10", @@ -1575,7 +1588,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Query {\n \"Returns the value of the received HTTP header.\"\n headerValue(name: String!): String!\n \"Returns the value of the given key in the WS initial payload.\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"Returns response after the given delay\"\n delay(response: String!, ms: Int!): String!\n\n bigResponse(\n artificialDelay: Int! = 0\n bigObjects: Int! = 100\n nestedObjects: Int! = 100\n deeplyNestedObjects: Int! = 100\n ): [BigObject!]!\n\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n\n bigAbstractResponse: BigAbstractResponse\n\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n\n floatField(arg: Float): Float\n\n sharedThings(numOfA: Int! numOfB: Int!): [Thing!]! @shareable\n\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n}\n\ntype Secret {\n value: String\n}\n\ntype Thing @shareable {\n b: String!\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"The value of the string.\"\n value: String!\n \"The timestamp when the response was generated.\"\n unixTime: Int!\n \"Sequence number\"\n seq: Int!\n \"Total number of responses to be sent\"\n total: Int!\n initialPayload: Map\n}\n\ntype Subscription {\n \"Returns a stream with the value of the received HTTP header.\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"Returns a stream with the value of value of the given key in the WS initial payload.\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"Returns a stream with the value of the WS initial payload.\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n fieldThrowsError: String\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}" }, "upstreamSchema": { - "key": "20c8fc085a72213ac5bb4a25387d3a7bb35749ec" + "key": "5c5a237ac1f0c1d67ae52534584ee8116d4cc474" } }, "requestTimeoutSeconds": "10", @@ -1625,10 +1638,10 @@ }, "federation": { "enabled": true, - "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean!\n}\n" + "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean\n}\n" }, "upstreamSchema": { - "key": "0327ed440f0c9e1684722cbb987bc8d3283c5532" + "key": "865e365ca4e3de8aec4ccd25e875ca9a82a7edde" } }, "requestTimeoutSeconds": "10", @@ -1681,7 +1694,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n currentMood: Mood!\n}\n" }, "upstreamSchema": { - "key": "cb7653f92b2599bd46ae73a84b8d7d5c359fb3b2" + "key": "10eccb92890a5709d24ac8c1293264d758b997c7" } }, "requestTimeoutSeconds": "10", @@ -1736,7 +1749,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n" }, "upstreamSchema": { - "key": "14e8ff1a04734f4e9f500e9fcc7cebd94008d2cd" + "key": "0c7a814514a54c0b54af7ea5fa33730a321921e6" } }, "requestTimeoutSeconds": "10", @@ -2110,7 +2123,7 @@ "fieldName": "filteredEmployeeUpdatedMyRedis", "argumentsConfiguration": [ { - "name": "id", + "name": "ids", "sourceType": "FIELD_ARGUMENT" } ], @@ -2119,7 +2132,7 @@ "fieldPath": [ "id" ], - "json": "[1,3,4,7,11]" + "json": "[\"{{ args.ids }}\"]" } } }, @@ -2153,6 +2166,16 @@ } ] }, + { + "typeName": "Query", + "fieldName": "findEmployeesBy", + "argumentsConfiguration": [ + { + "name": "criteria", + "sourceType": "FIELD_ARGUMENT" + } + ] + }, { "typeName": "Query", "fieldName": "findEmployees", @@ -2901,21 +2924,21 @@ } } ], - "graphqlSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\nscalar openfed__Scope\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n employeeFromEvent(id: Int!): Employee!\n employeeFromEventMyNats(employeeID: Int!): Employee!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n updateEmployeeMyKafka(employeeID: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyNats(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedis(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedisOnCustomChannel(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n employeeUpdated(employeeID: Int!): Employee!\n employeeUpdatedMyKafka(employeeID: Int!): Employee!\n employeeUpdatedMyNats(id: Int!): Employee!\n employeeUpdatedNatsStream(id: Int!): Employee!\n employeeUpdatedMyRedis(id: Int!): Employee!\n employeeUpdates: Employee!\n filteredEmployeeUpdated(id: Int!): Employee!\n filteredEmployeeUpdatedMyKafka(employeeID: ID!): Employee!\n filteredEmployeeUpdatedMyKafkaWithListFieldArguments(firstIds: [ID!]!, secondIds: [ID!]!): Employee!\n filteredEmployeeUpdatedMyKafkaWithNestedListFieldArgument(input: KafkaInput!): Employee!\n filteredEmployeeUpdatedMyRedis(id: ID!): Employee!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n APATHETIC @inaccessible\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\nscalar openfed__SubscriptionFilterValue\n\ninput openfed__SubscriptionFieldCondition {\n fieldPath: String!\n values: [openfed__SubscriptionFilterValue]!\n}\n\ninput openfed__SubscriptionFilterCondition {\n AND: [openfed__SubscriptionFilterCondition!]\n IN: openfed__SubscriptionFieldCondition\n NOT: openfed__SubscriptionFilterCondition\n OR: [openfed__SubscriptionFilterCondition!]\n}\n\ninput UpdateEmployeeInput {\n name: String\n email: String\n}\n\ninput KafkaInput {\n ids: [Int!]!\n}\n\ntype edfs__PublishResult {\n success: Boolean!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean!\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}", + "graphqlSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\nscalar openfed__Scope\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n employeeFromEvent(id: Int!): Employee!\n employeeFromEventMyNats(employeeID: Int!): Employee!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n updateEmployeeMyKafka(employeeID: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyNats(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedis(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedisOnCustomChannel(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n employeeUpdated(employeeID: Int!): Employee!\n employeeUpdatedMyKafka(employeeID: Int!): Employee!\n employeeUpdatedMyNats(id: Int!): Employee!\n employeeUpdatedNatsStream(id: Int!): Employee!\n employeeUpdatedMyRedis(id: Int!): Employee!\n employeeUpdates: Employee!\n filteredEmployeeUpdated(id: Int!): Employee!\n filteredEmployeeUpdatedMyKafka(employeeID: ID!): Employee!\n filteredEmployeeUpdatedMyKafkaWithListFieldArguments(firstIds: [ID!]!, secondIds: [ID!]!): Employee!\n filteredEmployeeUpdatedMyKafkaWithNestedListFieldArgument(input: KafkaInput!): Employee!\n filteredEmployeeUpdatedMyRedis(ids: [ID!]!): Employee!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n APATHETIC @inaccessible\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ninput UpdateEmployeeInput {\n name: String\n email: String\n}\n\ninput KafkaInput {\n ids: [Int!]!\n}\n\ntype edfs__PublishResult {\n success: Boolean!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}", "stringStorage": { - "2ebeba33065ef483f119d0097b7cfab1bfe2e1a7": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype City {\n country: Country\n name: String!\n type: String!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n lead: Employee!\n upc: ID!\n}\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n pastLocations: [City!]!\n surname: String! @shareable\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n details: Details! @shareable\n id: Int!\n isAvailable: Boolean! @external\n notes: String @shareable\n role: RoleType!\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n rootFieldThrowsError: String @goField(forceResolver: true)\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n tag: String!\n updatedAt: String!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n title: [String!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ntype ErrorWrapper {\n errorField: String @goField(forceResolver: true)\n okField: String\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninterface IProduct {\n engineers: [Employee!]!\n upc: ID!\n}\n\ninterface Identifiable {\n id: Int!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Mutation {\n multipleUpload(files: [Upload!]!): Boolean!\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n updateEmployeeTag(id: Int!, tag: String!): Employee\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n title: [String!]!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n firstEmployee: Employee! @tag(name: \"internal\")\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n}\n\ninterface RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n upc: ID!\n}\n\ntype Subscription {\n countEmp(intervalMilliseconds: Int!, max: Int!): Int!\n countEmp2(intervalMilliseconds: Int!, max: Int!): Int!\n countFor(count: Int!): Int!\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n}\n\ntype Time {\n timeStamp: String!\n unixTime: Int!\n}\n\nscalar Upload\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "6618be4cd5102db58a9821e09dfa49eec9262146": "schema {\n query: Query\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Alligator implements Animal & Pet {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ntype Cat implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\ntype Details {\n forename: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n middlename: String @deprecated\n nationality: Nationality!\n pets: [Pet]\n surname: String! @shareable\n}\n\ntype Dog implements Animal & Pet {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Employee @key(fields: \"id\") {\n details: Details @shareable\n id: Int!\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\ntype Mouse implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ninput NestedSearchInput {\n hasChildren: Boolean\n maritalStatus: MaritalStatus\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "68291c651cf7b5b50afb169bd12d2cd1ebf4ded6": "schema {\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ntype Employee @key(fields: \"id\") {\n hobbies: [Hobby!]\n id: Int!\n}\n\ntype Exercise implements Hobby {\n category: ExerciseType!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n CARD\n FPS\n ROGUELITE\n RPG\n SIMULATION\n STRATEGY\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ninterface Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\ntype Other implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n languages: [ProgrammingLanguage!]!\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ntype SDK @key(fields: \"upc\") {\n clientLanguages: [ProgrammingLanguage!]!\n upc: ID!\n}\n\ntype Subscription {\n countHob(intervalMilliseconds: Int!, max: Int!): Int!\n}\n\ntype Travelling implements Hobby {\n countriesLived: [Country!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "c8cc058566134270eaf1cf6638137eec5a7de07e": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"]) {\n query: Queries\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Consultancy @key(fields: \"upc\") {\n name: ProductName!\n upc: ID!\n}\n\ntype Cosmo @key(fields: \"upc\") {\n name: ProductName!\n repositoryURL: String!\n upc: ID!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n notes: String @override(from: \"employees\")\n products: [ProductName!]!\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\ntype MiscellaneousFact implements TopSecretFact {\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n title: String!\n}\n\ntype Mutation {\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n}\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\nunion Products = Consultancy | Cosmo | Documentation\n\ntype Queries {\n factTypes: [TopSecretFactType!]\n productTypes: [Products!]!\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]! @shareable\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n}\n\ntype Thing {\n a: String! @shareable\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\ninput TopSecretFactInput {\n description: FactContent!\n factType: TopSecretFactType!\n title: String!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "20c8fc085a72213ac5bb4a25387d3a7bb35749ec": "schema {\n query: Query\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype Employee @key(fields: \"id\") {\n fieldThrowsError: String\n id: Int!\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ninput InputArg {\n enum: EnumType\n enums: [EnumType!]\n string: String\n strings: [String!]\n}\n\ntype InputResponse {\n arg: String!\n}\n\ninput InputType {\n arg: String!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\nscalar Map\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype Query {\n bigAbstractResponse: BigAbstractResponse\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, deeplyNestedObjects: Int! = 100, nestedObjects: Int! = 100): [BigObject!]!\n \"\"\"Returns response after the given delay\"\"\"\n delay(ms: Int!, response: String!): String!\n floatField(arg: Float): Float\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n rootFieldWithInput(arg: InputArg!): String!\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]! @shareable\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype Secret {\n value: String\n}\n\ntype Subscription {\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype Thing {\n b: String! @shareable\n}\n\ntype TimestampedString {\n initialPayload: Map\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"The value of the string.\"\"\"\n value: String!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "0327ed440f0c9e1684722cbb987bc8d3283c5532": "schema {\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean!\n}\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "cb7653f92b2599bd46ae73a84b8d7d5c359fb3b2": "schema {\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Employee @key(fields: \"id\") {\n currentMood: Mood!\n id: Int!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "14e8ff1a04734f4e9f500e9fcc7cebd94008d2cd": "directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "1ea9d2a6e116faae6ece1507db3dc79851ed7dfe": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @edfs__kafkaPublish(providerId: String! = \"default\", topic: String!) on FIELD_DEFINITION\n\ndirective @edfs__kafkaSubscribe(providerId: String! = \"default\", topics: [String!]!) on FIELD_DEFINITION\n\ndirective @edfs__natsPublish(providerId: String! = \"default\", subject: String!) on FIELD_DEFINITION\n\ndirective @edfs__natsRequest(providerId: String! = \"default\", subject: String!) on FIELD_DEFINITION\n\ndirective @edfs__natsSubscribe(providerId: String! = \"default\", streamConfiguration: edfs__NatsStreamConfiguration, subjects: [String!]!) on FIELD_DEFINITION\n\ndirective @edfs__redisPublish(channel: String!, providerId: String! = \"default\") on FIELD_DEFINITION\n\ndirective @edfs__redisSubscribe(channels: [String!]!, providerId: String! = \"default\") on FIELD_DEFINITION\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @openfed__subscriptionFilter(condition: openfed__SubscriptionFilterCondition!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Employee @key(fields: \"id\", resolvable: false) {\n id: Int! @external\n}\n\ninput KafkaInput {\n ids: [Int!]!\n}\n\ntype Mutation {\n updateEmployeeMyKafka(employeeID: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__kafkaPublish(topic: \"employeeUpdated\", providerId: \"my-kafka\")\n updateEmployeeMyNats(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__natsPublish(subject: \"employeeUpdatedMyNats.{{ args.id }}\", providerId: \"my-nats\")\n updateEmployeeMyRedis(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__redisPublish(channel: \"employeeUpdatedMyRedis\", providerId: \"my-redis\")\n updateEmployeeMyRedisOnCustomChannel(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__redisPublish(channel: \"employeeUpdatedMyRedis.{{ args.id }}\", providerId: \"my-redis\")\n}\n\ntype Query {\n employeeFromEvent(id: Int!): Employee! @edfs__natsRequest(subject: \"getEmployee.{{ args.id }}\")\n employeeFromEventMyNats(employeeID: Int!): Employee! @edfs__natsRequest(subject: \"getEmployeeMyNats.{{ args.employeeID }}\", providerId: \"my-nats\")\n}\n\ntype Subscription {\n employeeUpdated(employeeID: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdated.{{ args.employeeID }}\"])\n employeeUpdatedMyKafka(employeeID: Int!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\")\n employeeUpdatedMyNats(id: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdatedMyNats.{{ args.id }}\", \"employeeUpdatedMyNatsTwo.{{ args.id }}\"], providerId: \"my-nats\")\n employeeUpdatedMyRedis(id: Int!): Employee! @edfs__redisSubscribe(channels: [\"employeeUpdatedMyRedis.{{ args.id }}\"], providerId: \"my-redis\")\n employeeUpdatedNatsStream(id: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdated.{{ args.id }}\"], streamConfiguration: {consumerName: \"consumerName\", streamName: \"streamName\"})\n employeeUpdates: Employee! @edfs__redisSubscribe(channels: [\"employeeUpdatedMyRedis\"], providerId: \"my-redis\")\n filteredEmployeeUpdated(id: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdated.{{ args.id }}\"]) @openfed__subscriptionFilter(condition: {NOT: {IN: {fieldPath: \"id\", values: [2, 6, 9, 10, 12]}}})\n filteredEmployeeUpdatedMyKafka(employeeID: ID!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\") @openfed__subscriptionFilter(condition: {IN: {fieldPath: \"id\", values: [1, 3, 4, 7, 11]}})\n filteredEmployeeUpdatedMyKafkaWithListFieldArguments(firstIds: [ID!]!, secondIds: [ID!]!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\") @openfed__subscriptionFilter(condition: {IN: {fieldPath: \"id\", values: [\"{{ args.firstIds }}\", \"{{ args.secondIds }}\"]}})\n filteredEmployeeUpdatedMyKafkaWithNestedListFieldArgument(input: KafkaInput!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\") @openfed__subscriptionFilter(condition: {OR: [{IN: {fieldPath: \"id\", values: [\"{{ args.input.ids }}\"]}}, {IN: {fieldPath: \"id\", values: [\"1\"]}}]})\n filteredEmployeeUpdatedMyRedis(id: ID!): Employee! @edfs__redisSubscribe(channels: [\"employeeUpdatedMyRedis\"], providerId: \"my-redis\") @openfed__subscriptionFilter(condition: {IN: {fieldPath: \"id\", values: [1, 3, 4, 7, 11]}})\n}\n\ninput UpdateEmployeeInput {\n email: String\n name: String\n}\n\ninput edfs__NatsStreamConfiguration {\n consumerInactiveThreshold: Int! = 30\n consumerName: String!\n streamName: String!\n}\n\ntype edfs__PublishResult {\n success: Boolean!\n}\n\nscalar openfed__FieldSet\n\ninput openfed__SubscriptionFieldCondition {\n fieldPath: String!\n values: [openfed__SubscriptionFilterValue]!\n}\n\ninput openfed__SubscriptionFilterCondition {\n AND: [openfed__SubscriptionFilterCondition!]\n IN: openfed__SubscriptionFieldCondition\n NOT: openfed__SubscriptionFilterCondition\n OR: [openfed__SubscriptionFilterCondition!]\n}\n\nscalar openfed__SubscriptionFilterValue" + "73e7c8ef50d3dc0c5d564e34702baf455be9cee3": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype City {\n country: Country\n name: String!\n type: String!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n pastLocations: [City!]!\n surname: String! @shareable\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n details: Details! @shareable\n id: Int!\n isAvailable: Boolean @external\n notes: String @shareable\n role: RoleType!\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n rootFieldThrowsError: String @goField(forceResolver: true)\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n tag: String!\n updatedAt: String!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n title: [String!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ntype ErrorWrapper {\n errorField: String @goField(forceResolver: true)\n okField: String\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput FindEmployeeCriteria @oneOf {\n department: Department\n id: Int\n title: String\n}\n\ninterface IProduct {\n engineers: [Employee!]!\n upc: ID!\n}\n\ninterface Identifiable {\n id: Int! @openfed__requireFetchReasons\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Mutation {\n multipleUpload(files: [Upload!]!): Boolean!\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n updateEmployeeTag(id: Int!, tag: String!): Employee\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n title: [String!]!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ntype Query {\n employee(id: Int!): Employee @openfed__requireFetchReasons\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n}\n\ninterface RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n upc: ID!\n}\n\ntype Subscription {\n countEmp(intervalMilliseconds: Int!, max: Int!): Int!\n countEmp2(intervalMilliseconds: Int!, max: Int!): Int!\n countFor(count: Int!): Int!\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n}\n\ntype Time {\n timeStamp: String!\n unixTime: Int!\n}\n\nscalar Upload\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", + "108c9f39d7ccac8d103053910a07c758f472df43": "schema {\n query: Query\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ntype Alligator implements Animal & Pet {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ntype Cat implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\ntype Details {\n forename: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n middlename: String @deprecated\n nationality: Nationality!\n pets: [Pet]\n surname: String! @shareable\n}\n\ntype Dog implements Animal & Pet {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Employee @key(fields: \"id\") {\n details: Details @shareable\n id: Int!\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\ntype Mouse implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ninput NestedSearchInput {\n hasChildren: Boolean\n maritalStatus: MaritalStatus\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "6f2131dd12f912ee7f5a965938039527994be676": "schema {\n subscription: Subscription\n}\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ntype Employee @key(fields: \"id\") {\n hobbies: [Hobby!]\n id: Int!\n}\n\ntype Exercise implements Hobby {\n category: ExerciseType!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n CARD\n FPS\n ROGUELITE\n RPG\n SIMULATION\n STRATEGY\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ninterface Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\ntype Other implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n languages: [ProgrammingLanguage!]!\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ntype SDK @key(fields: \"upc\") {\n clientLanguages: [ProgrammingLanguage!]!\n upc: ID!\n}\n\ntype Subscription {\n countHob(intervalMilliseconds: Int!, max: Int!): Int!\n}\n\ntype Travelling implements Hobby {\n countriesLived: [Country!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "acbfd8f3662503e41417bfd29f5a0579e8cff323": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"]) {\n query: Queries\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ntype Consultancy @key(fields: \"upc\") {\n name: ProductName!\n upc: ID!\n}\n\ntype Cosmo @key(fields: \"upc\") {\n name: ProductName!\n repositoryURL: String!\n upc: ID!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n notes: String @override(from: \"employees\")\n products: [ProductName!]!\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\ntype MiscellaneousFact implements TopSecretFact {\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n title: String!\n}\n\ntype Mutation {\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n}\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\nunion Products = Consultancy | Cosmo | Documentation\n\ntype Queries {\n factTypes: [TopSecretFactType!]\n productTypes: [Products!]!\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]! @shareable\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n}\n\ntype Thing {\n a: String! @shareable\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\ninput TopSecretFactInput {\n description: FactContent!\n factType: TopSecretFactType!\n title: String!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", + "5c5a237ac1f0c1d67ae52534584ee8116d4cc474": "schema {\n query: Query\n subscription: Subscription\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype Employee @key(fields: \"id\") {\n fieldThrowsError: String\n id: Int!\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ninput InputArg {\n enum: EnumType\n enums: [EnumType!]\n string: String\n strings: [String!]\n}\n\ntype InputResponse {\n arg: String!\n}\n\ninput InputType {\n arg: String!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\nscalar Map\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype Query {\n bigAbstractResponse: BigAbstractResponse\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, deeplyNestedObjects: Int! = 100, nestedObjects: Int! = 100): [BigObject!]!\n \"\"\"Returns response after the given delay\"\"\"\n delay(ms: Int!, response: String!): String!\n floatField(arg: Float): Float\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n rootFieldWithInput(arg: InputArg!): String!\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]! @shareable\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype Secret {\n value: String\n}\n\ntype Subscription {\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype Thing {\n b: String! @shareable\n}\n\ntype TimestampedString {\n initialPayload: Map\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"The value of the string.\"\"\"\n value: String!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", + "865e365ca4e3de8aec4ccd25e875ca9a82a7edde": "schema {\n mutation: Mutation\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean\n}\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "10eccb92890a5709d24ac8c1293264d758b997c7": "schema {\n mutation: Mutation\n}\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Employee @key(fields: \"id\") {\n currentMood: Mood!\n id: Int!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "0c7a814514a54c0b54af7ea5fa33730a321921e6": "directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "3b3b9a0ef42a4f6cfa88cb39c72c12db2360c82f": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @edfs__kafkaPublish(providerId: String! = \"default\", topic: String!) on FIELD_DEFINITION\n\ndirective @edfs__kafkaSubscribe(providerId: String! = \"default\", topics: [String!]!) on FIELD_DEFINITION\n\ndirective @edfs__natsPublish(providerId: String! = \"default\", subject: String!) on FIELD_DEFINITION\n\ndirective @edfs__natsRequest(providerId: String! = \"default\", subject: String!) on FIELD_DEFINITION\n\ndirective @edfs__natsSubscribe(providerId: String! = \"default\", streamConfiguration: edfs__NatsStreamConfiguration, subjects: [String!]!) on FIELD_DEFINITION\n\ndirective @edfs__redisPublish(channel: String!, providerId: String! = \"default\") on FIELD_DEFINITION\n\ndirective @edfs__redisSubscribe(channels: [String!]!, providerId: String! = \"default\") on FIELD_DEFINITION\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @openfed__subscriptionFilter(condition: openfed__SubscriptionFilterCondition!) on FIELD_DEFINITION\n\ntype Employee @key(fields: \"id\", resolvable: false) {\n id: Int! @external\n}\n\ninput KafkaInput {\n ids: [Int!]!\n}\n\ntype Mutation {\n updateEmployeeMyKafka(employeeID: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__kafkaPublish(topic: \"employeeUpdated\", providerId: \"my-kafka\")\n updateEmployeeMyNats(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__natsPublish(subject: \"employeeUpdatedMyNats.{{ args.id }}\", providerId: \"my-nats\")\n updateEmployeeMyRedis(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__redisPublish(channel: \"employeeUpdatedMyRedis\", providerId: \"my-redis\")\n updateEmployeeMyRedisOnCustomChannel(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__redisPublish(channel: \"employeeUpdatedMyRedis.{{ args.id }}\", providerId: \"my-redis\")\n}\n\ntype Query {\n employeeFromEvent(id: Int!): Employee! @edfs__natsRequest(subject: \"getEmployee.{{ args.id }}\")\n employeeFromEventMyNats(employeeID: Int!): Employee! @edfs__natsRequest(subject: \"getEmployeeMyNats.{{ args.employeeID }}\", providerId: \"my-nats\")\n}\n\ntype Subscription {\n employeeUpdated(employeeID: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdated.{{ args.employeeID }}\"])\n employeeUpdatedMyKafka(employeeID: Int!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\")\n employeeUpdatedMyNats(id: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdatedMyNats.{{ args.id }}\", \"employeeUpdatedMyNatsTwo.{{ args.id }}\"], providerId: \"my-nats\")\n employeeUpdatedMyRedis(id: Int!): Employee! @edfs__redisSubscribe(channels: [\"employeeUpdatedMyRedis.{{ args.id }}\"], providerId: \"my-redis\")\n employeeUpdatedNatsStream(id: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdated.{{ args.id }}\"], streamConfiguration: {consumerName: \"consumerName\", streamName: \"streamName\"})\n employeeUpdates: Employee! @edfs__redisSubscribe(channels: [\"employeeUpdatedMyRedis\"], providerId: \"my-redis\")\n filteredEmployeeUpdated(id: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdated.{{ args.id }}\"]) @openfed__subscriptionFilter(condition: {NOT: {IN: {fieldPath: \"id\", values: [2, 6, 9, 10, 12]}}})\n filteredEmployeeUpdatedMyKafka(employeeID: ID!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\") @openfed__subscriptionFilter(condition: {IN: {fieldPath: \"id\", values: [1, 3, 4, 7, 11]}})\n filteredEmployeeUpdatedMyKafkaWithListFieldArguments(firstIds: [ID!]!, secondIds: [ID!]!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\") @openfed__subscriptionFilter(condition: {IN: {fieldPath: \"id\", values: [\"{{ args.firstIds }}\", \"{{ args.secondIds }}\"]}})\n filteredEmployeeUpdatedMyKafkaWithNestedListFieldArgument(input: KafkaInput!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\") @openfed__subscriptionFilter(condition: {OR: [{IN: {fieldPath: \"id\", values: [\"{{ args.input.ids }}\"]}}, {IN: {fieldPath: \"id\", values: [\"1\"]}}]})\n filteredEmployeeUpdatedMyRedis(ids: [ID!]!): Employee! @edfs__redisSubscribe(channels: [\"employeeUpdatedMyRedis\"], providerId: \"my-redis\") @openfed__subscriptionFilter(condition: {IN: {fieldPath: \"id\", values: [\"{{ args.ids }}\"]}})\n}\n\ninput UpdateEmployeeInput {\n email: String\n name: String\n}\n\ninput edfs__NatsStreamConfiguration {\n consumerInactiveThreshold: Int! = 30\n consumerName: String!\n streamName: String!\n}\n\ntype edfs__PublishResult {\n success: Boolean!\n}\n\nscalar openfed__FieldSet\n\ninput openfed__SubscriptionFieldCondition {\n fieldPath: String!\n values: [openfed__SubscriptionFilterValue]!\n}\n\ninput openfed__SubscriptionFilterCondition {\n AND: [openfed__SubscriptionFilterCondition!]\n IN: openfed__SubscriptionFieldCondition\n NOT: openfed__SubscriptionFilterCondition\n OR: [openfed__SubscriptionFilterCondition!]\n}\n\nscalar openfed__SubscriptionFilterValue" }, - "graphqlClientSchema": "type Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee!\n\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]!\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret\n employeeFromEvent(id: Int!): Employee!\n employeeFromEventMyNats(employeeID: Int!): Employee!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact!\n\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n updateEmployeeMyKafka(employeeID: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyNats(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedis(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedisOnCustomChannel(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n employeeUpdated(employeeID: Int!): Employee!\n employeeUpdatedMyKafka(employeeID: Int!): Employee!\n employeeUpdatedMyNats(id: Int!): Employee!\n employeeUpdatedNatsStream(id: Int!): Employee!\n employeeUpdatedMyRedis(id: Int!): Employee!\n employeeUpdates: Employee!\n filteredEmployeeUpdated(id: Int!): Employee!\n filteredEmployeeUpdatedMyKafka(employeeID: ID!): Employee!\n filteredEmployeeUpdatedMyKafkaWithListFieldArguments(firstIds: [ID!]!, secondIds: [ID!]!): Employee!\n filteredEmployeeUpdatedMyKafkaWithNestedListFieldArgument(input: KafkaInput!): Employee!\n filteredEmployeeUpdatedMyRedis(id: ID!): Employee!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n\n \"\"\"Sequence number\"\"\"\n seq: Int!\n\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\nscalar openfed__SubscriptionFilterValue\n\ninput openfed__SubscriptionFieldCondition {\n fieldPath: String!\n values: [openfed__SubscriptionFilterValue]!\n}\n\ninput openfed__SubscriptionFilterCondition {\n AND: [openfed__SubscriptionFilterCondition!]\n IN: openfed__SubscriptionFieldCondition\n NOT: openfed__SubscriptionFilterCondition\n OR: [openfed__SubscriptionFilterCondition!]\n}\n\ninput UpdateEmployeeInput {\n name: String\n email: String\n}\n\ninput KafkaInput {\n ids: [Int!]!\n}\n\ntype edfs__PublishResult {\n success: Boolean!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String!\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean!\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}" + "graphqlClientSchema": "type Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee!\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]!\n factTypes: [TopSecretFactType!]\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n secret: Secret\n employeeFromEvent(id: Int!): Employee!\n employeeFromEventMyNats(employeeID: Int!): Employee!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact!\n\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n updateEmployeeMyKafka(employeeID: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyNats(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedis(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedisOnCustomChannel(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n employeeUpdated(employeeID: Int!): Employee!\n employeeUpdatedMyKafka(employeeID: Int!): Employee!\n employeeUpdatedMyNats(id: Int!): Employee!\n employeeUpdatedNatsStream(id: Int!): Employee!\n employeeUpdatedMyRedis(id: Int!): Employee!\n employeeUpdates: Employee!\n filteredEmployeeUpdated(id: Int!): Employee!\n filteredEmployeeUpdatedMyKafka(employeeID: ID!): Employee!\n filteredEmployeeUpdatedMyKafkaWithListFieldArguments(firstIds: [ID!]!, secondIds: [ID!]!): Employee!\n filteredEmployeeUpdatedMyKafkaWithNestedListFieldArgument(input: KafkaInput!): Employee!\n filteredEmployeeUpdatedMyRedis(ids: [ID!]!): Employee!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ntype Thing {\n a: String!\n b: String!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n\n \"\"\"Sequence number\"\"\"\n seq: Int!\n\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ninput UpdateEmployeeInput {\n name: String\n email: String\n}\n\ninput KafkaInput {\n ids: [Int!]!\n}\n\ntype edfs__PublishResult {\n success: Boolean!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String!\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}" }, - "version": "b913410e-b7c8-4fa9-a314-834070d563e8", + "version": "8394ca4f-3c4c-4b96-b5c8-16ccfd96d800", "subgraphs": [ { "id": "0", @@ -2979,7 +3002,11 @@ "employees", "products", "teammates", - "firstEmployee" + "firstEmployee", + "findEmployeesBy" + ], + "requireFetchReasonsFieldNames": [ + "employee" ] }, { @@ -3037,7 +3064,8 @@ "fieldNames": [ "upc", "engineers", - "lead" + "lead", + "isLeadAvailable" ] }, { @@ -3063,6 +3091,9 @@ "typeName": "Identifiable", "fieldNames": [ "id" + ], + "requireFetchReasonsFieldNames": [ + "id" ] }, { @@ -3157,10 +3188,10 @@ }, "federation": { "enabled": true, - "serviceSdl": "extend schema\n @link(\n url: \"https://specs.apollo.dev/federation/v2.5\"\n import: [\n \"@authenticated\"\n \"@composeDirective\"\n \"@external\"\n \"@extends\"\n \"@inaccessible\"\n \"@interfaceObject\"\n \"@override\"\n \"@provides\"\n \"@key\"\n \"@requires\"\n \"@requiresScopes\"\n \"@shareable\"\n \"@tag\"\n ]\n )\n\ndirective @goField(\n forceResolver: Boolean\n name: String\n omittable: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"\n `currentTime` will return a stream of `Time` objects.\n \"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n surname: String! @shareable\n pastLocations: [City!]!\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n details: Details! @shareable\n id: Int!\n tag: String!\n role: RoleType!\n notes: String @shareable\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n # From the `availability` service. Only defined for use in @requires\n isAvailable: Boolean! @external\n rootFieldThrowsError: String @goField(forceResolver: true)\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String @goField(forceResolver: true)\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n}\n" + "serviceSdl": "extend schema\n @link(\n url: \"https://specs.apollo.dev/federation/v2.5\"\n import: [\n \"@authenticated\"\n \"@composeDirective\"\n \"@external\"\n \"@extends\"\n \"@inaccessible\"\n \"@interfaceObject\"\n \"@override\"\n \"@provides\"\n \"@key\"\n \"@requires\"\n \"@requiresScopes\"\n \"@shareable\"\n \"@tag\"\n ]\n )\n\ndirective @goField(\n forceResolver: Boolean\n name: String\n omittable: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\ndirective @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT\n\ntype Query {\n employee(id: Int!): Employee @openfed__requireFetchReasons\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"\n `currentTime` will return a stream of `Time` objects.\n \"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable @openfed__requireFetchReasons {\n id: Int!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n surname: String! @shareable\n pastLocations: [City!]!\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n details: Details! @shareable\n id: Int!\n tag: String!\n role: RoleType!\n notes: String @shareable\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n # From the `availability` service. Only defined for use in @requires\n isAvailable: Boolean @external\n rootFieldThrowsError: String @goField(forceResolver: true)\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String @goField(forceResolver: true)\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}" }, "upstreamSchema": { - "key": "2ebeba33065ef483f119d0097b7cfab1bfe2e1a7" + "key": "73e7c8ef50d3dc0c5d564e34702baf455be9cee3" } }, "requestTimeoutSeconds": "10", @@ -3198,6 +3229,11 @@ "typeName": "Consultancy", "fieldName": "isLeadAvailable", "selectionSet": "lead { isAvailable }" + }, + { + "typeName": "Cosmo", + "fieldName": "isLeadAvailable", + "selectionSet": "lead { isAvailable }" } ] }, @@ -3314,7 +3350,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ntype Details {\n forename: String! @shareable\n middlename: String @deprecated\n surname: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n details: Details @shareable\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n" }, "upstreamSchema": { - "key": "6618be4cd5102db58a9821e09dfa49eec9262146" + "key": "108c9f39d7ccac8d103053910a07c758f472df43" } }, "requestTimeoutSeconds": "10", @@ -3445,7 +3481,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ndirective @goField(\n forceResolver: Boolean\n name: String\n omittable: Boolean\n) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n category: ExerciseType!\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n name: String!\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n languages: [ProgrammingLanguage!]!\n}\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n countriesLived: [Country!]!\n}\n\ninterface Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n hobbies: [Hobby!]\n}\n\ntype SDK @key(fields: \"upc\") {\n upc: ID!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ntype Subscription {\n countHob(max: Int! intervalMilliseconds: Int!): Int!\n}" }, "upstreamSchema": { - "key": "68291c651cf7b5b50afb169bd12d2cd1ebf4ded6" + "key": "6f2131dd12f912ee7f5a965938039527994be676" } }, "requestTimeoutSeconds": "10", @@ -3572,7 +3608,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\nschema {\n query: Queries\n mutation: Mutation\n}\n\n# dwedwedew\n\ntype Queries {\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n}\n\ntype Mutation {\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE,\n ENTITY,\n MISCELLANEOUS,\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]){\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n products: [ProductName!]!\n productCount: Int!\n notes: String @override(from: \"employees\")\n}\n\nunion Products = Consultancy | Cosmo | Documentation\n\ntype Consultancy @key(fields: \"upc\") {\n upc: ID!\n name: ProductName!\n}\n\ntype Cosmo @key(fields: \"upc\") {\n upc: ID!\n name: ProductName!\n repositoryURL: String!\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n" }, "upstreamSchema": { - "key": "f79d19db4b33b04020b6f36030f7cb2cb86662cf" + "key": "ae2f1af7c0ba46587f3fd229d25cb8e78212f91f" } }, "requestTimeoutSeconds": "10", @@ -4535,7 +4571,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Query {\n \"Returns the value of the received HTTP header.\"\n headerValue(name: String!): String!\n \"Returns the value of the given key in the WS initial payload.\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"Returns response after the given delay\"\n delay(response: String!, ms: Int!): String!\n\n bigResponse(\n artificialDelay: Int! = 0\n bigObjects: Int! = 100\n nestedObjects: Int! = 100\n deeplyNestedObjects: Int! = 100\n ): [BigObject!]!\n\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n\n bigAbstractResponse: BigAbstractResponse\n\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n\n floatField(arg: Float): Float\n\n sharedThings(numOfA: Int! numOfB: Int!): [Thing!]! @shareable\n\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n}\n\ntype Secret {\n value: String\n}\n\ntype Thing @shareable {\n b: String!\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"The value of the string.\"\n value: String!\n \"The timestamp when the response was generated.\"\n unixTime: Int!\n \"Sequence number\"\n seq: Int!\n \"Total number of responses to be sent\"\n total: Int!\n initialPayload: Map\n}\n\ntype Subscription {\n \"Returns a stream with the value of the received HTTP header.\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"Returns a stream with the value of value of the given key in the WS initial payload.\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"Returns a stream with the value of the WS initial payload.\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n fieldThrowsError: String\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}" }, "upstreamSchema": { - "key": "20c8fc085a72213ac5bb4a25387d3a7bb35749ec" + "key": "5c5a237ac1f0c1d67ae52534584ee8116d4cc474" } }, "requestTimeoutSeconds": "10", @@ -4585,10 +4621,10 @@ }, "federation": { "enabled": true, - "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean!\n}\n" + "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean\n}\n" }, "upstreamSchema": { - "key": "0327ed440f0c9e1684722cbb987bc8d3283c5532" + "key": "865e365ca4e3de8aec4ccd25e875ca9a82a7edde" } }, "requestTimeoutSeconds": "10", @@ -4641,7 +4677,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n currentMood: Mood!\n}\n" }, "upstreamSchema": { - "key": "cb7653f92b2599bd46ae73a84b8d7d5c359fb3b2" + "key": "10eccb92890a5709d24ac8c1293264d758b997c7" } }, "requestTimeoutSeconds": "10", @@ -4696,7 +4732,7 @@ "serviceSdl": "extend schema\n@link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"])\n\n# Using a nested key field simply because it can showcase potential bug\n# vectors / Federation capabilities.\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n" }, "upstreamSchema": { - "key": "14e8ff1a04734f4e9f500e9fcc7cebd94008d2cd" + "key": "0c7a814514a54c0b54af7ea5fa33730a321921e6" } }, "requestTimeoutSeconds": "10", @@ -5070,7 +5106,7 @@ "fieldName": "filteredEmployeeUpdatedMyRedis", "argumentsConfiguration": [ { - "name": "id", + "name": "ids", "sourceType": "FIELD_ARGUMENT" } ], @@ -5079,7 +5115,7 @@ "fieldPath": [ "id" ], - "json": "[1,3,4,7,11]" + "json": "[\"{{ args.ids }}\"]" } } }, @@ -5113,6 +5149,16 @@ } ] }, + { + "typeName": "Query", + "fieldName": "findEmployeesBy", + "argumentsConfiguration": [ + { + "name": "criteria", + "sourceType": "FIELD_ARGUMENT" + } + ] + }, { "typeName": "Query", "fieldName": "findEmployees", @@ -5861,21 +5907,21 @@ } } ], - "graphqlSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\nscalar openfed__Scope\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n employeeFromEvent(id: Int!): Employee!\n employeeFromEventMyNats(employeeID: Int!): Employee!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n updateEmployeeMyKafka(employeeID: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyNats(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedis(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedisOnCustomChannel(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n employeeUpdated(employeeID: Int!): Employee!\n employeeUpdatedMyKafka(employeeID: Int!): Employee!\n employeeUpdatedMyNats(id: Int!): Employee!\n employeeUpdatedNatsStream(id: Int!): Employee!\n employeeUpdatedMyRedis(id: Int!): Employee!\n employeeUpdates: Employee!\n filteredEmployeeUpdated(id: Int!): Employee!\n filteredEmployeeUpdatedMyKafka(employeeID: ID!): Employee!\n filteredEmployeeUpdatedMyKafkaWithListFieldArguments(firstIds: [ID!]!, secondIds: [ID!]!): Employee!\n filteredEmployeeUpdatedMyKafkaWithNestedListFieldArgument(input: KafkaInput!): Employee!\n filteredEmployeeUpdatedMyRedis(id: ID!): Employee!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n APATHETIC @inaccessible\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ntype Thing {\n b: String!\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\nscalar openfed__SubscriptionFilterValue\n\ninput openfed__SubscriptionFieldCondition {\n fieldPath: String!\n values: [openfed__SubscriptionFilterValue]!\n}\n\ninput openfed__SubscriptionFilterCondition {\n AND: [openfed__SubscriptionFilterCondition!]\n IN: openfed__SubscriptionFieldCondition\n NOT: openfed__SubscriptionFilterCondition\n OR: [openfed__SubscriptionFilterCondition!]\n}\n\ninput UpdateEmployeeInput {\n name: String\n email: String\n}\n\ninput KafkaInput {\n ids: [Int!]!\n}\n\ntype edfs__PublishResult {\n success: Boolean!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean!\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n productCount: Int!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}", + "graphqlSchema": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\nscalar openfed__Scope\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n factTypes: [TopSecretFactType!]\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n employeeFromEvent(id: Int!): Employee!\n employeeFromEventMyNats(employeeID: Int!): Employee!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n updateEmployeeMyKafka(employeeID: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyNats(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedis(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedisOnCustomChannel(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n employeeUpdated(employeeID: Int!): Employee!\n employeeUpdatedMyKafka(employeeID: Int!): Employee!\n employeeUpdatedMyNats(id: Int!): Employee!\n employeeUpdatedNatsStream(id: Int!): Employee!\n employeeUpdatedMyRedis(id: Int!): Employee!\n employeeUpdates: Employee!\n filteredEmployeeUpdated(id: Int!): Employee!\n filteredEmployeeUpdatedMyKafka(employeeID: ID!): Employee!\n filteredEmployeeUpdatedMyKafkaWithListFieldArguments(firstIds: [ID!]!, secondIds: [ID!]!): Employee!\n filteredEmployeeUpdatedMyKafkaWithNestedListFieldArgument(input: KafkaInput!): Employee!\n filteredEmployeeUpdatedMyRedis(ids: [ID!]!): Employee!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated(reason: \"No longer supported\")\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n APATHETIC @inaccessible\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ntype Thing {\n b: String!\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ninput UpdateEmployeeInput {\n name: String\n email: String\n}\n\ninput KafkaInput {\n ids: [Int!]!\n}\n\ntype edfs__PublishResult {\n success: Boolean!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n productCount: Int!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n}", "stringStorage": { - "2ebeba33065ef483f119d0097b7cfab1bfe2e1a7": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype City {\n country: Country\n name: String!\n type: String!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n lead: Employee!\n upc: ID!\n}\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n pastLocations: [City!]!\n surname: String! @shareable\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n details: Details! @shareable\n id: Int!\n isAvailable: Boolean! @external\n notes: String @shareable\n role: RoleType!\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n rootFieldThrowsError: String @goField(forceResolver: true)\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n tag: String!\n updatedAt: String!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n title: [String!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ntype ErrorWrapper {\n errorField: String @goField(forceResolver: true)\n okField: String\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninterface IProduct {\n engineers: [Employee!]!\n upc: ID!\n}\n\ninterface Identifiable {\n id: Int!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Mutation {\n multipleUpload(files: [Upload!]!): Boolean!\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n updateEmployeeTag(id: Int!, tag: String!): Employee\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n title: [String!]!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ntype Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n firstEmployee: Employee! @tag(name: \"internal\")\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n}\n\ninterface RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n upc: ID!\n}\n\ntype Subscription {\n countEmp(intervalMilliseconds: Int!, max: Int!): Int!\n countEmp2(intervalMilliseconds: Int!, max: Int!): Int!\n countFor(count: Int!): Int!\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n}\n\ntype Time {\n timeStamp: String!\n unixTime: Int!\n}\n\nscalar Upload\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "6618be4cd5102db58a9821e09dfa49eec9262146": "schema {\n query: Query\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Alligator implements Animal & Pet {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ntype Cat implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\ntype Details {\n forename: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n middlename: String @deprecated\n nationality: Nationality!\n pets: [Pet]\n surname: String! @shareable\n}\n\ntype Dog implements Animal & Pet {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Employee @key(fields: \"id\") {\n details: Details @shareable\n id: Int!\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\ntype Mouse implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ninput NestedSearchInput {\n hasChildren: Boolean\n maritalStatus: MaritalStatus\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "68291c651cf7b5b50afb169bd12d2cd1ebf4ded6": "schema {\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ntype Employee @key(fields: \"id\") {\n hobbies: [Hobby!]\n id: Int!\n}\n\ntype Exercise implements Hobby {\n category: ExerciseType!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n CARD\n FPS\n ROGUELITE\n RPG\n SIMULATION\n STRATEGY\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ninterface Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\ntype Other implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n languages: [ProgrammingLanguage!]!\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ntype SDK @key(fields: \"upc\") {\n clientLanguages: [ProgrammingLanguage!]!\n upc: ID!\n}\n\ntype Subscription {\n countHob(intervalMilliseconds: Int!, max: Int!): Int!\n}\n\ntype Travelling implements Hobby {\n countriesLived: [Country!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "f79d19db4b33b04020b6f36030f7cb2cb86662cf": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"]) {\n query: Queries\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Consultancy @key(fields: \"upc\") {\n name: ProductName!\n upc: ID!\n}\n\ntype Cosmo @key(fields: \"upc\") {\n name: ProductName!\n repositoryURL: String!\n upc: ID!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n notes: String @override(from: \"employees\")\n productCount: Int!\n products: [ProductName!]!\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\ntype MiscellaneousFact implements TopSecretFact {\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n title: String!\n}\n\ntype Mutation {\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n}\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\nunion Products = Consultancy | Cosmo | Documentation\n\ntype Queries {\n factTypes: [TopSecretFactType!]\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\ninput TopSecretFactInput {\n description: FactContent!\n factType: TopSecretFactType!\n title: String!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "20c8fc085a72213ac5bb4a25387d3a7bb35749ec": "schema {\n query: Query\n subscription: Subscription\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype Employee @key(fields: \"id\") {\n fieldThrowsError: String\n id: Int!\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ninput InputArg {\n enum: EnumType\n enums: [EnumType!]\n string: String\n strings: [String!]\n}\n\ntype InputResponse {\n arg: String!\n}\n\ninput InputType {\n arg: String!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\nscalar Map\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype Query {\n bigAbstractResponse: BigAbstractResponse\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, deeplyNestedObjects: Int! = 100, nestedObjects: Int! = 100): [BigObject!]!\n \"\"\"Returns response after the given delay\"\"\"\n delay(ms: Int!, response: String!): String!\n floatField(arg: Float): Float\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n rootFieldWithInput(arg: InputArg!): String!\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]! @shareable\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype Secret {\n value: String\n}\n\ntype Subscription {\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype Thing {\n b: String! @shareable\n}\n\ntype TimestampedString {\n initialPayload: Map\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"The value of the string.\"\"\"\n value: String!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "0327ed440f0c9e1684722cbb987bc8d3283c5532": "schema {\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean!\n}\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "cb7653f92b2599bd46ae73a84b8d7d5c359fb3b2": "schema {\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Employee @key(fields: \"id\") {\n currentMood: Mood!\n id: Int!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "14e8ff1a04734f4e9f500e9fcc7cebd94008d2cd": "directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @composeDirective(name: String!) repeatable on SCHEMA\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @interfaceObject on OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", - "1ea9d2a6e116faae6ece1507db3dc79851ed7dfe": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @edfs__kafkaPublish(providerId: String! = \"default\", topic: String!) on FIELD_DEFINITION\n\ndirective @edfs__kafkaSubscribe(providerId: String! = \"default\", topics: [String!]!) on FIELD_DEFINITION\n\ndirective @edfs__natsPublish(providerId: String! = \"default\", subject: String!) on FIELD_DEFINITION\n\ndirective @edfs__natsRequest(providerId: String! = \"default\", subject: String!) on FIELD_DEFINITION\n\ndirective @edfs__natsSubscribe(providerId: String! = \"default\", streamConfiguration: edfs__NatsStreamConfiguration, subjects: [String!]!) on FIELD_DEFINITION\n\ndirective @edfs__redisPublish(channel: String!, providerId: String! = \"default\") on FIELD_DEFINITION\n\ndirective @edfs__redisSubscribe(channels: [String!]!, providerId: String! = \"default\") on FIELD_DEFINITION\n\ndirective @extends on INTERFACE | OBJECT\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @openfed__subscriptionFilter(condition: openfed__SubscriptionFilterCondition!) on FIELD_DEFINITION\n\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype Employee @key(fields: \"id\", resolvable: false) {\n id: Int! @external\n}\n\ninput KafkaInput {\n ids: [Int!]!\n}\n\ntype Mutation {\n updateEmployeeMyKafka(employeeID: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__kafkaPublish(topic: \"employeeUpdated\", providerId: \"my-kafka\")\n updateEmployeeMyNats(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__natsPublish(subject: \"employeeUpdatedMyNats.{{ args.id }}\", providerId: \"my-nats\")\n updateEmployeeMyRedis(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__redisPublish(channel: \"employeeUpdatedMyRedis\", providerId: \"my-redis\")\n updateEmployeeMyRedisOnCustomChannel(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__redisPublish(channel: \"employeeUpdatedMyRedis.{{ args.id }}\", providerId: \"my-redis\")\n}\n\ntype Query {\n employeeFromEvent(id: Int!): Employee! @edfs__natsRequest(subject: \"getEmployee.{{ args.id }}\")\n employeeFromEventMyNats(employeeID: Int!): Employee! @edfs__natsRequest(subject: \"getEmployeeMyNats.{{ args.employeeID }}\", providerId: \"my-nats\")\n}\n\ntype Subscription {\n employeeUpdated(employeeID: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdated.{{ args.employeeID }}\"])\n employeeUpdatedMyKafka(employeeID: Int!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\")\n employeeUpdatedMyNats(id: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdatedMyNats.{{ args.id }}\", \"employeeUpdatedMyNatsTwo.{{ args.id }}\"], providerId: \"my-nats\")\n employeeUpdatedMyRedis(id: Int!): Employee! @edfs__redisSubscribe(channels: [\"employeeUpdatedMyRedis.{{ args.id }}\"], providerId: \"my-redis\")\n employeeUpdatedNatsStream(id: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdated.{{ args.id }}\"], streamConfiguration: {consumerName: \"consumerName\", streamName: \"streamName\"})\n employeeUpdates: Employee! @edfs__redisSubscribe(channels: [\"employeeUpdatedMyRedis\"], providerId: \"my-redis\")\n filteredEmployeeUpdated(id: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdated.{{ args.id }}\"]) @openfed__subscriptionFilter(condition: {NOT: {IN: {fieldPath: \"id\", values: [2, 6, 9, 10, 12]}}})\n filteredEmployeeUpdatedMyKafka(employeeID: ID!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\") @openfed__subscriptionFilter(condition: {IN: {fieldPath: \"id\", values: [1, 3, 4, 7, 11]}})\n filteredEmployeeUpdatedMyKafkaWithListFieldArguments(firstIds: [ID!]!, secondIds: [ID!]!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\") @openfed__subscriptionFilter(condition: {IN: {fieldPath: \"id\", values: [\"{{ args.firstIds }}\", \"{{ args.secondIds }}\"]}})\n filteredEmployeeUpdatedMyKafkaWithNestedListFieldArgument(input: KafkaInput!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\") @openfed__subscriptionFilter(condition: {OR: [{IN: {fieldPath: \"id\", values: [\"{{ args.input.ids }}\"]}}, {IN: {fieldPath: \"id\", values: [\"1\"]}}]})\n filteredEmployeeUpdatedMyRedis(id: ID!): Employee! @edfs__redisSubscribe(channels: [\"employeeUpdatedMyRedis\"], providerId: \"my-redis\") @openfed__subscriptionFilter(condition: {IN: {fieldPath: \"id\", values: [1, 3, 4, 7, 11]}})\n}\n\ninput UpdateEmployeeInput {\n email: String\n name: String\n}\n\ninput edfs__NatsStreamConfiguration {\n consumerInactiveThreshold: Int! = 30\n consumerName: String!\n streamName: String!\n}\n\ntype edfs__PublishResult {\n success: Boolean!\n}\n\nscalar openfed__FieldSet\n\ninput openfed__SubscriptionFieldCondition {\n fieldPath: String!\n values: [openfed__SubscriptionFilterValue]!\n}\n\ninput openfed__SubscriptionFilterCondition {\n AND: [openfed__SubscriptionFilterCondition!]\n IN: openfed__SubscriptionFieldCondition\n NOT: openfed__SubscriptionFilterCondition\n OR: [openfed__SubscriptionFilterCondition!]\n}\n\nscalar openfed__SubscriptionFilterValue" - }, - "graphqlClientSchema": "type Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee!\n\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]!\n factTypes: [TopSecretFactType!]\n\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n secret: Secret\n employeeFromEvent(id: Int!): Employee!\n employeeFromEventMyNats(employeeID: Int!): Employee!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact!\n\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n updateEmployeeMyKafka(employeeID: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyNats(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedis(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedisOnCustomChannel(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n employeeUpdated(employeeID: Int!): Employee!\n employeeUpdatedMyKafka(employeeID: Int!): Employee!\n employeeUpdatedMyNats(id: Int!): Employee!\n employeeUpdatedNatsStream(id: Int!): Employee!\n employeeUpdatedMyRedis(id: Int!): Employee!\n employeeUpdates: Employee!\n filteredEmployeeUpdated(id: Int!): Employee!\n filteredEmployeeUpdatedMyKafka(employeeID: ID!): Employee!\n filteredEmployeeUpdatedMyKafkaWithListFieldArguments(firstIds: [ID!]!, secondIds: [ID!]!): Employee!\n filteredEmployeeUpdatedMyKafkaWithNestedListFieldArgument(input: KafkaInput!): Employee!\n filteredEmployeeUpdatedMyRedis(id: ID!): Employee!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ntype Thing {\n b: String!\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n\n \"\"\"Sequence number\"\"\"\n seq: Int!\n\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\nscalar openfed__SubscriptionFilterValue\n\ninput openfed__SubscriptionFieldCondition {\n fieldPath: String!\n values: [openfed__SubscriptionFilterValue]!\n}\n\ninput openfed__SubscriptionFilterCondition {\n AND: [openfed__SubscriptionFilterCondition!]\n IN: openfed__SubscriptionFieldCondition\n NOT: openfed__SubscriptionFilterCondition\n OR: [openfed__SubscriptionFilterCondition!]\n}\n\ninput UpdateEmployeeInput {\n name: String\n email: String\n}\n\ninput KafkaInput {\n ids: [Int!]!\n}\n\ntype edfs__PublishResult {\n success: Boolean!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String!\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean!\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n productCount: Int!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}" + "73e7c8ef50d3dc0c5d564e34702baf455be9cee3": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @openfed__requireFetchReasons repeatable on FIELD_DEFINITION | INTERFACE | OBJECT\n\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ntype City {\n country: Country\n name: String!\n type: String!\n}\n\ntype Consultancy @key(fields: \"upc\") {\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Cosmo implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n isLeadAvailable: Boolean @requires(fields: \"lead { isAvailable }\")\n lead: Employee!\n upc: ID!\n}\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ntype Details {\n forename: String! @shareable\n location: Country!\n pastLocations: [City!]!\n surname: String! @shareable\n}\n\ntype Employee implements Identifiable @key(fields: \"id\") {\n currentMood: Mood! @external\n derivedMood: Mood! @requires(fields: \"currentMood\")\n details: Details! @shareable\n id: Int!\n isAvailable: Boolean @external\n notes: String @shareable\n role: RoleType!\n rootFieldErrorWrapper: ErrorWrapper @goField(forceResolver: true)\n rootFieldThrowsError: String @goField(forceResolver: true)\n startDate: String! @requiresScopes(scopes: [[\"read:employee\", \"read:private\"], [\"read:all\"]])\n tag: String!\n updatedAt: String!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n engineerType: EngineerType!\n title: [String!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ntype ErrorWrapper {\n errorField: String @goField(forceResolver: true)\n okField: String\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput FindEmployeeCriteria @oneOf {\n department: Department\n id: Int\n title: String\n}\n\ninterface IProduct {\n engineers: [Employee!]!\n upc: ID!\n}\n\ninterface Identifiable {\n id: Int! @openfed__requireFetchReasons\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype Mutation {\n multipleUpload(files: [Upload!]!): Boolean!\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n updateEmployeeTag(id: Int!, tag: String!): Employee\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n operatorType: [OperationType!]!\n title: [String!]!\n}\n\nunion Products = Consultancy | Cosmo | SDK\n\ntype Query {\n employee(id: Int!): Employee @openfed__requireFetchReasons\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n firstEmployee: Employee! @tag(name: \"internal\")\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n}\n\ninterface RoleType {\n departments: [Department!]!\n employees: [Employee!]! @goField(forceResolver: true)\n title: [String!]!\n}\n\ntype SDK implements IProduct @key(fields: \"upc\") {\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n upc: ID!\n}\n\ntype Subscription {\n countEmp(intervalMilliseconds: Int!, max: Int!): Int!\n countEmp2(intervalMilliseconds: Int!, max: Int!): Int!\n countFor(count: Int!): Int!\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n}\n\ntype Time {\n timeStamp: String!\n unixTime: Int!\n}\n\nscalar Upload\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", + "108c9f39d7ccac8d103053910a07c758f472df43": "schema {\n query: Query\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ntype Alligator implements Animal & Pet {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\ntype Cat implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\ntype Details {\n forename: String! @shareable\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n middlename: String @deprecated\n nationality: Nationality!\n pets: [Pet]\n surname: String! @shareable\n}\n\ntype Dog implements Animal & Pet {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\ntype Employee @key(fields: \"id\") {\n details: Details @shareable\n id: Int!\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\ntype Mouse implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\ninput NestedSearchInput {\n hasChildren: Boolean\n maritalStatus: MaritalStatus\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Animal & Pet {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Query {\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "6f2131dd12f912ee7f5a965938039527994be676": "schema {\n subscription: Subscription\n}\n\ndirective @goField(forceResolver: Boolean, name: String, omittable: Boolean) on FIELD_DEFINITION | INPUT_FIELD_DEFINITION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Country @key(fields: \"key { name }\", resolvable: false) {\n key: CountryKey!\n}\n\ntype CountryKey {\n name: String!\n}\n\ntype Employee @key(fields: \"id\") {\n hobbies: [Hobby!]\n id: Int!\n}\n\ntype Exercise implements Hobby {\n category: ExerciseType!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n CARD\n FPS\n ROGUELITE\n RPG\n SIMULATION\n STRATEGY\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ninterface Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\ntype Other implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]! @goField(forceResolver: true)\n languages: [ProgrammingLanguage!]!\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ntype SDK @key(fields: \"upc\") {\n clientLanguages: [ProgrammingLanguage!]!\n upc: ID!\n}\n\ntype Subscription {\n countHob(intervalMilliseconds: Int!, max: Int!): Int!\n}\n\ntype Travelling implements Hobby {\n countriesLived: [Country!]!\n employees: [Employee!]! @goField(forceResolver: true)\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "ae2f1af7c0ba46587f3fd229d25cb8e78212f91f": "schema @link(url: \"https://specs.apollo.dev/federation/v2.5\", import: [\"@authenticated\", \"@composeDirective\", \"@external\", \"@extends\", \"@inaccessible\", \"@interfaceObject\", \"@override\", \"@provides\", \"@key\", \"@requires\", \"@requiresScopes\", \"@shareable\", \"@tag\"]) {\n query: Queries\n mutation: Mutation\n}\n\ndirective @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @override(from: String!) on FIELD_DEFINITION\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ntype Consultancy @key(fields: \"upc\") {\n name: ProductName!\n upc: ID!\n}\n\ntype Cosmo @key(fields: \"upc\") {\n name: ProductName!\n repositoryURL: String!\n upc: ID!\n}\n\ntype DirectiveFact implements TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n notes: String @override(from: \"employees\")\n productCount: Int!\n products: [ProductName!]!\n}\n\ntype EntityFact implements TopSecretFact @requiresScopes(scopes: [[\"read:entity\"]]) {\n description: FactContent!\n factType: TopSecretFactType\n title: String!\n}\n\nscalar FactContent @requiresScopes(scopes: [[\"read:scalar\"], [\"read:all\"]])\n\ntype MiscellaneousFact implements TopSecretFact {\n description: FactContent! @requiresScopes(scopes: [[\"read:miscellaneous\"]])\n factType: TopSecretFactType\n title: String!\n}\n\ntype Mutation {\n addFact(fact: TopSecretFactInput!): TopSecretFact! @requiresScopes(scopes: [[\"write:fact\"], [\"write:all\"]])\n}\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\nunion Products = Consultancy | Cosmo | Documentation\n\ntype Queries {\n factTypes: [TopSecretFactType!]\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]! @requiresScopes(scopes: [[\"read:fact\"], [\"read:all\"]])\n}\n\ninterface TopSecretFact @authenticated {\n description: FactContent!\n factType: TopSecretFactType\n}\n\ninput TopSecretFactInput {\n description: FactContent!\n factType: TopSecretFactType!\n title: String!\n}\n\nenum TopSecretFactType @authenticated {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", + "5c5a237ac1f0c1d67ae52534584ee8116d4cc474": "schema {\n query: Query\n subscription: Subscription\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\n\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype Employee @key(fields: \"id\") {\n fieldThrowsError: String\n id: Int!\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ninput InputArg {\n enum: EnumType\n enums: [EnumType!]\n string: String\n strings: [String!]\n}\n\ntype InputResponse {\n arg: String!\n}\n\ninput InputType {\n arg: String!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\nscalar Map\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype Query {\n bigAbstractResponse: BigAbstractResponse\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, deeplyNestedObjects: Int! = 100, nestedObjects: Int! = 100): [BigObject!]!\n \"\"\"Returns response after the given delay\"\"\"\n delay(ms: Int!, response: String!): String!\n floatField(arg: Float): Float\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n rootFieldWithInput(arg: InputArg!): String!\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n secret: Secret @requiresScopes(scopes: [[\"read:secret\"]])\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]! @shareable\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype Secret {\n value: String\n}\n\ntype Subscription {\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype Thing {\n b: String! @shareable\n}\n\ntype TimestampedString {\n initialPayload: Map\n \"\"\"Sequence number\"\"\"\n seq: Int!\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n \"\"\"The value of the string.\"\"\"\n value: String!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet\n\nscalar openfed__Scope", + "865e365ca4e3de8aec4ccd25e875ca9a82a7edde": "schema {\n mutation: Mutation\n}\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Employee @key(fields: \"id\") {\n id: Int!\n isAvailable: Boolean\n}\n\ntype Mutation {\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "10eccb92890a5709d24ac8c1293264d758b997c7": "schema {\n mutation: Mutation\n}\n\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Employee @key(fields: \"id\") {\n currentMood: Mood!\n id: Int!\n}\n\nenum Mood {\n APATHETIC @inaccessible\n HAPPY\n SAD\n}\n\ntype Mutation {\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "0c7a814514a54c0b54af7ea5fa33730a321921e6": "directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @link(as: String, for: link__Purpose, import: [link__Import], url: String!) repeatable on SCHEMA\n\ntype Country @key(fields: \"key { name }\") {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nscalar link__Import\n\nenum link__Purpose {\n EXECUTION\n SECURITY\n}\n\nscalar openfed__FieldSet", + "3b3b9a0ef42a4f6cfa88cb39c72c12db2360c82f": "schema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\ndirective @edfs__kafkaPublish(providerId: String! = \"default\", topic: String!) on FIELD_DEFINITION\n\ndirective @edfs__kafkaSubscribe(providerId: String! = \"default\", topics: [String!]!) on FIELD_DEFINITION\n\ndirective @edfs__natsPublish(providerId: String! = \"default\", subject: String!) on FIELD_DEFINITION\n\ndirective @edfs__natsRequest(providerId: String! = \"default\", subject: String!) on FIELD_DEFINITION\n\ndirective @edfs__natsSubscribe(providerId: String! = \"default\", streamConfiguration: edfs__NatsStreamConfiguration, subjects: [String!]!) on FIELD_DEFINITION\n\ndirective @edfs__redisPublish(channel: String!, providerId: String! = \"default\") on FIELD_DEFINITION\n\ndirective @edfs__redisSubscribe(channels: [String!]!, providerId: String! = \"default\") on FIELD_DEFINITION\n\ndirective @external on FIELD_DEFINITION | OBJECT\n\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\n\ndirective @openfed__subscriptionFilter(condition: openfed__SubscriptionFilterCondition!) on FIELD_DEFINITION\n\ntype Employee @key(fields: \"id\", resolvable: false) {\n id: Int! @external\n}\n\ninput KafkaInput {\n ids: [Int!]!\n}\n\ntype Mutation {\n updateEmployeeMyKafka(employeeID: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__kafkaPublish(topic: \"employeeUpdated\", providerId: \"my-kafka\")\n updateEmployeeMyNats(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__natsPublish(subject: \"employeeUpdatedMyNats.{{ args.id }}\", providerId: \"my-nats\")\n updateEmployeeMyRedis(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__redisPublish(channel: \"employeeUpdatedMyRedis\", providerId: \"my-redis\")\n updateEmployeeMyRedisOnCustomChannel(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult! @edfs__redisPublish(channel: \"employeeUpdatedMyRedis.{{ args.id }}\", providerId: \"my-redis\")\n}\n\ntype Query {\n employeeFromEvent(id: Int!): Employee! @edfs__natsRequest(subject: \"getEmployee.{{ args.id }}\")\n employeeFromEventMyNats(employeeID: Int!): Employee! @edfs__natsRequest(subject: \"getEmployeeMyNats.{{ args.employeeID }}\", providerId: \"my-nats\")\n}\n\ntype Subscription {\n employeeUpdated(employeeID: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdated.{{ args.employeeID }}\"])\n employeeUpdatedMyKafka(employeeID: Int!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\")\n employeeUpdatedMyNats(id: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdatedMyNats.{{ args.id }}\", \"employeeUpdatedMyNatsTwo.{{ args.id }}\"], providerId: \"my-nats\")\n employeeUpdatedMyRedis(id: Int!): Employee! @edfs__redisSubscribe(channels: [\"employeeUpdatedMyRedis.{{ args.id }}\"], providerId: \"my-redis\")\n employeeUpdatedNatsStream(id: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdated.{{ args.id }}\"], streamConfiguration: {consumerName: \"consumerName\", streamName: \"streamName\"})\n employeeUpdates: Employee! @edfs__redisSubscribe(channels: [\"employeeUpdatedMyRedis\"], providerId: \"my-redis\")\n filteredEmployeeUpdated(id: Int!): Employee! @edfs__natsSubscribe(subjects: [\"employeeUpdated.{{ args.id }}\"]) @openfed__subscriptionFilter(condition: {NOT: {IN: {fieldPath: \"id\", values: [2, 6, 9, 10, 12]}}})\n filteredEmployeeUpdatedMyKafka(employeeID: ID!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\") @openfed__subscriptionFilter(condition: {IN: {fieldPath: \"id\", values: [1, 3, 4, 7, 11]}})\n filteredEmployeeUpdatedMyKafkaWithListFieldArguments(firstIds: [ID!]!, secondIds: [ID!]!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\") @openfed__subscriptionFilter(condition: {IN: {fieldPath: \"id\", values: [\"{{ args.firstIds }}\", \"{{ args.secondIds }}\"]}})\n filteredEmployeeUpdatedMyKafkaWithNestedListFieldArgument(input: KafkaInput!): Employee! @edfs__kafkaSubscribe(topics: [\"employeeUpdated\", \"employeeUpdatedTwo\"], providerId: \"my-kafka\") @openfed__subscriptionFilter(condition: {OR: [{IN: {fieldPath: \"id\", values: [\"{{ args.input.ids }}\"]}}, {IN: {fieldPath: \"id\", values: [\"1\"]}}]})\n filteredEmployeeUpdatedMyRedis(ids: [ID!]!): Employee! @edfs__redisSubscribe(channels: [\"employeeUpdatedMyRedis\"], providerId: \"my-redis\") @openfed__subscriptionFilter(condition: {IN: {fieldPath: \"id\", values: [\"{{ args.ids }}\"]}})\n}\n\ninput UpdateEmployeeInput {\n email: String\n name: String\n}\n\ninput edfs__NatsStreamConfiguration {\n consumerInactiveThreshold: Int! = 30\n consumerName: String!\n streamName: String!\n}\n\ntype edfs__PublishResult {\n success: Boolean!\n}\n\nscalar openfed__FieldSet\n\ninput openfed__SubscriptionFieldCondition {\n fieldPath: String!\n values: [openfed__SubscriptionFilterValue]!\n}\n\ninput openfed__SubscriptionFilterCondition {\n AND: [openfed__SubscriptionFilterCondition!]\n IN: openfed__SubscriptionFieldCondition\n NOT: openfed__SubscriptionFilterCondition\n OR: [openfed__SubscriptionFilterCondition!]\n}\n\nscalar openfed__SubscriptionFilterValue" + }, + "graphqlClientSchema": "type Query {\n employee(id: Int!): Employee\n employeeAsList(id: Int!): [Employee]\n employees: [Employee]\n products: [Products!]!\n teammates(team: Department!): [Employee!]!\n firstEmployee: Employee!\n findEmployeesBy(criteria: FindEmployeeCriteria!): [Employee!]!\n\n \"\"\" This is a GraphQL query that retrieves a list of employees.\"\"\"\n findEmployees(criteria: SearchInput): [Employee!]!\n productTypes: [Products!]!\n topSecretFederationFacts: [TopSecretFact!]!\n factTypes: [TopSecretFactType!]\n\n \"\"\"Returns the value of the received HTTP header.\"\"\"\n headerValue(name: String!): String!\n\n \"\"\"Returns the value of the given key in the WS initial payload.\"\"\"\n initPayloadValue(key: String!): String!\n initialPayload: Map\n\n \"\"\"Returns response after the given delay\"\"\"\n delay(response: String!, ms: Int!): String!\n bigResponse(artificialDelay: Int! = 0, bigObjects: Int! = 100, nestedObjects: Int! = 100, deeplyNestedObjects: Int! = 100): [BigObject!]!\n longResponse(artificialDelay: Int! = 0, bytes: Int!): String\n bigAbstractResponse: BigAbstractResponse\n rootFieldWithListArg(arg: [String!]!): [String!]!\n rootFieldWithNestedListArg(arg: [[String!]!]!): [[String!]!]!\n rootFieldWithListOfInputArg(arg: [InputType!]!): [InputResponse!]!\n rootFieldWithListOfEnumArg(arg: [EnumType!]!): [EnumType!]!\n rootFieldWithInput(arg: InputArg!): String!\n floatField(arg: Float): Float\n sharedThings(numOfA: Int!, numOfB: Int!): [Thing!]!\n secret: Secret\n employeeFromEvent(id: Int!): Employee!\n employeeFromEventMyNats(employeeID: Int!): Employee!\n}\n\nscalar Upload\n\ntype Mutation {\n updateEmployeeTag(id: Int!, tag: String!): Employee\n singleUpload(file: Upload!): Boolean!\n singleUploadWithInput(arg: FileUpload!): Boolean!\n multipleUpload(files: [Upload!]!): Boolean!\n addFact(fact: TopSecretFactInput!): TopSecretFact!\n\n \"\"\" This mutation updates the availability status of an employee in the system.\n \"\"\"\n updateAvailability(employeeID: Int!, isAvailable: Boolean!): Employee!\n\n \"\"\" This mutation update the mood of an employee. \"\"\"\n updateMood(employeeID: Int!, mood: Mood!): Employee!\n updateEmployeeMyKafka(employeeID: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyNats(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedis(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n updateEmployeeMyRedisOnCustomChannel(id: Int!, update: UpdateEmployeeInput!): edfs__PublishResult!\n}\n\ninput FileUpload {\n nested: DeeplyNestedFileUpload\n nestedList: [Upload!]\n}\n\ninput DeeplyNestedFileUpload {\n file: Upload!\n}\n\ntype Subscription {\n \"\"\"`currentTime` will return a stream of `Time` objects.\"\"\"\n currentTime: Time!\n countEmp(max: Int!, intervalMilliseconds: Int!): Int!\n countEmp2(max: Int!, intervalMilliseconds: Int!): Int!\n countFor(count: Int!): Int!\n countHob(max: Int!, intervalMilliseconds: Int!): Int!\n\n \"\"\"Returns a stream with the value of the received HTTP header.\"\"\"\n headerValue(name: String!, repeat: Int): TimestampedString!\n\n \"\"\"\n Returns a stream with the value of value of the given key in the WS initial payload.\n \"\"\"\n initPayloadValue(key: String!, repeat: Int): TimestampedString!\n\n \"\"\"Returns a stream with the value of the WS initial payload.\"\"\"\n initialPayload(repeat: Int): Map\n returnsError: String\n employeeUpdated(employeeID: Int!): Employee!\n employeeUpdatedMyKafka(employeeID: Int!): Employee!\n employeeUpdatedMyNats(id: Int!): Employee!\n employeeUpdatedNatsStream(id: Int!): Employee!\n employeeUpdatedMyRedis(id: Int!): Employee!\n employeeUpdates: Employee!\n filteredEmployeeUpdated(id: Int!): Employee!\n filteredEmployeeUpdatedMyKafka(employeeID: ID!): Employee!\n filteredEmployeeUpdatedMyKafkaWithListFieldArguments(firstIds: [ID!]!, secondIds: [ID!]!): Employee!\n filteredEmployeeUpdatedMyKafkaWithNestedListFieldArgument(input: KafkaInput!): Employee!\n filteredEmployeeUpdatedMyRedis(ids: [ID!]!): Employee!\n}\n\nenum Department {\n ENGINEERING\n MARKETING\n OPERATIONS\n}\n\ninterface RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\nenum EngineerType {\n BACKEND\n FRONTEND\n FULLSTACK\n}\n\ninterface Identifiable {\n id: Int!\n}\n\nenum OperationType {\n FINANCE\n HUMAN_RESOURCES\n}\n\ntype Details {\n forename: String!\n location: Country!\n surname: String!\n pastLocations: [City!]!\n middlename: String @deprecated\n hasChildren: Boolean!\n maritalStatus: MaritalStatus\n nationality: Nationality!\n pets: [Pet]\n}\n\ntype City {\n type: String!\n name: String!\n country: Country\n}\n\ntype Country {\n key: CountryKey!\n language: String\n}\n\ntype CountryKey {\n name: String!\n}\n\nenum Mood {\n HAPPY\n SAD\n}\n\ntype ErrorWrapper {\n okField: String\n errorField: String\n}\n\ntype Time {\n unixTime: Int!\n timeStamp: String!\n}\n\nunion Products = Consultancy | Cosmo | SDK | Documentation\n\ninterface IProduct {\n upc: ID!\n engineers: [Employee!]!\n}\n\ntype Consultancy {\n upc: ID!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n}\n\ninput FindEmployeeCriteria @oneOf {\n id: Int\n department: Department\n title: String\n}\n\nenum Class {\n FISH\n MAMMAL\n REPTILE\n}\n\nenum Gender {\n FEMALE\n MALE\n UNKNOWN\n}\n\ninterface Animal {\n class: Class!\n gender: Gender!\n}\n\nenum CatType {\n HOME\n STREET\n}\n\nenum DogBreed {\n GOLDEN_RETRIEVER\n POODLE\n ROTTWEILER\n YORKSHIRE_TERRIER\n}\n\nenum MaritalStatus {\n ENGAGED\n MARRIED\n}\n\nenum Nationality {\n AMERICAN\n DUTCH\n ENGLISH\n GERMAN\n INDIAN\n SPANISH\n UKRAINIAN\n}\n\n\"\"\" Allows to filter employees by their details. \"\"\"\ninput SearchInput {\n hasPets: Boolean\n nationality: Nationality\n nested: NestedSearchInput\n}\n\ninput NestedSearchInput {\n maritalStatus: MaritalStatus\n hasChildren: Boolean\n}\n\nenum ExerciseType {\n CALISTHENICS\n HIKING\n SPORT\n STRENGTH_TRAINING\n}\n\ninterface Experience {\n yearsOfExperience: Float!\n}\n\nenum GameGenre {\n ADVENTURE\n BOARD\n FPS\n CARD\n RPG\n ROGUELITE\n SIMULATION\n STRATEGY\n}\n\nenum ProgrammingLanguage {\n CSHARP\n GO\n RUST\n TYPESCRIPT\n}\n\ninterface Hobby {\n employees: [Employee!]!\n}\n\ninput TopSecretFactInput {\n title: String!\n description: FactContent!\n factType: TopSecretFactType!\n}\n\nenum TopSecretFactType {\n DIRECTIVE\n ENTITY\n MISCELLANEOUS\n}\n\ninterface TopSecretFact {\n description: FactContent!\n factType: TopSecretFactType\n}\n\nscalar FactContent\n\nenum ProductName {\n CONSULTANCY\n COSMO\n ENGINE\n FINANCE\n HUMAN_RESOURCES\n MARKETING\n SDK\n}\n\ntype Documentation {\n url(product: ProductName!): String!\n urls(products: [ProductName!]!): [String!]!\n}\n\ntype Secret {\n value: String\n}\n\ntype Thing {\n b: String!\n}\n\ninput InputArg {\n enums: [EnumType!]\n enum: EnumType\n string: String\n strings: [String!]\n}\n\nenum EnumType {\n A\n B\n C\n}\n\ninput InputType {\n arg: String!\n}\n\ntype InputResponse {\n arg: String!\n}\n\nscalar Map\n\ntype TimestampedString {\n \"\"\"The value of the string.\"\"\"\n value: String!\n\n \"\"\"The timestamp when the response was generated.\"\"\"\n unixTime: Int!\n\n \"\"\"Sequence number\"\"\"\n seq: Int!\n\n \"\"\"Total number of responses to be sent\"\"\"\n total: Int!\n initialPayload: Map\n}\n\ntype BigObject {\n nestedObjects: [NestedObject!]!\n}\n\ntype NestedObject {\n deeplyNestedObjects: [DeeplyNestedObject!]!\n}\n\ntype DeeplyNestedObject {\n aFieldOnDeeplyNestedObject: String!\n bFieldOnDeeplyNestedObject: Int!\n cFieldOnDeeplyNestedObject: Boolean!\n dFieldOnDeeplyNestedObject: Float!\n eFieldOnDeeplyNestedObject: String!\n fFieldOnDeeplyNestedObject: Int!\n gFieldOnDeeplyNestedObject: Boolean!\n hFieldOnDeeplyNestedObject: Float!\n iFieldOnDeeplyNestedObject: String!\n jFieldOnDeeplyNestedObject: Int!\n kFieldOnDeeplyNestedObject: Boolean!\n lFieldOnDeeplyNestedObject: Float!\n mFieldOnDeeplyNestedObject: String!\n nFieldOnDeeplyNestedObject: Int!\n oFieldOnDeeplyNestedObject: Boolean!\n pFieldOnDeeplyNestedObject: Float!\n qFieldOnDeeplyNestedObject: String!\n rFieldOnDeeplyNestedObject: Int!\n sFieldOnDeeplyNestedObject: Boolean!\n tFieldOnDeeplyNestedObject: Float!\n uFieldOnDeeplyNestedObject: String!\n vFieldOnDeeplyNestedObject: Int!\n wFieldOnDeeplyNestedObject: Boolean!\n xFieldOnDeeplyNestedObject: Float!\n yFieldOnDeeplyNestedObject: String!\n zFieldOnDeeplyNestedObject: Int!\n}\n\nunion BigAbstractResponse = ABigObject | BBigObject | CBigObject | DBigObject | EBigObject | FBigObject | GBigObject | HBigObject | IBigObject | JBigObject | KBigObject | LBigObject | MBigObject | NBigObject | OBigObject | PBigObject | QBigObject | RBigObject | SBigObject | TBigObject | UBigObject | VBigObject | WBigObject | XBigObject | YBigObject | ZBigObject\n\ntype ABigObject {\n aFieldOnABigObject: String!\n bFieldOnABigObject: Int!\n cFieldOnABigObject: Boolean!\n dFieldOnABigObject: Float!\n eFieldOnABigObject: String!\n fFieldOnABigObject: Int!\n gFieldOnABigObject: Boolean!\n hFieldOnABigObject: Float!\n iFieldOnABigObject: String!\n jFieldOnABigObject: Int!\n kFieldOnABigObject: Boolean!\n lFieldOnABigObject: Float!\n mFieldOnABigObject: String!\n nFieldOnABigObject: Int!\n oFieldOnABigObject: Boolean!\n pFieldOnABigObject: Float!\n qFieldOnABigObject: String!\n rFieldOnABigObject: Int!\n sFieldOnABigObject: Boolean!\n tFieldOnABigObject: Float!\n uFieldOnABigObject: String!\n vFieldOnABigObject: Int!\n wFieldOnABigObject: Boolean!\n xFieldOnABigObject: Float!\n yFieldOnABigObject: String!\n zFieldOnABigObject: Int!\n}\n\ntype BBigObject {\n aFieldOnBBigObject: String!\n bFieldOnBBigObject: Int!\n cFieldOnBBigObject: Boolean!\n dFieldOnBBigObject: Float!\n eFieldOnBBigObject: String!\n fFieldOnBBigObject: Int!\n gFieldOnBBigObject: Boolean!\n hFieldOnBBigObject: Float!\n iFieldOnBBigObject: String!\n jFieldOnBBigObject: Int!\n kFieldOnBBigObject: Boolean!\n lFieldOnBBigObject: Float!\n mFieldOnBBigObject: String!\n nFieldOnBBigObject: Int!\n oFieldOnBBigObject: Boolean!\n pFieldOnBBigObject: Float!\n qFieldOnBBigObject: String!\n rFieldOnBBigObject: Int!\n sFieldOnBBigObject: Boolean!\n tFieldOnBBigObject: Float!\n uFieldOnBBigObject: String!\n vFieldOnBBigObject: Int!\n wFieldOnBBigObject: Boolean!\n xFieldOnBBigObject: Float!\n yFieldOnBBigObject: String!\n zFieldOnBBigObject: Int!\n}\n\ntype CBigObject {\n aFieldOnCBigObject: String!\n bFieldOnCBigObject: Int!\n cFieldOnCBigObject: Boolean!\n dFieldOnCBigObject: Float!\n eFieldOnCBigObject: String!\n fFieldOnCBigObject: Int!\n gFieldOnCBigObject: Boolean!\n hFieldOnCBigObject: Float!\n iFieldOnCBigObject: String!\n jFieldOnCBigObject: Int!\n kFieldOnCBigObject: Boolean!\n lFieldOnCBigObject: Float!\n mFieldOnCBigObject: String!\n nFieldOnCBigObject: Int!\n oFieldOnCBigObject: Boolean!\n pFieldOnCBigObject: Float!\n qFieldOnCBigObject: String!\n rFieldOnCBigObject: Int!\n sFieldOnCBigObject: Boolean!\n tFieldOnCBigObject: Float!\n uFieldOnCBigObject: String!\n vFieldOnCBigObject: Int!\n wFieldOnCBigObject: Boolean!\n xFieldOnCBigObject: Float!\n yFieldOnCBigObject: String!\n zFieldOnCBigObject: Int!\n}\n\ntype DBigObject {\n aFieldOnDBigObject: String!\n bFieldOnDBigObject: Int!\n cFieldOnDBigObject: Boolean!\n dFieldOnDBigObject: Float!\n eFieldOnDBigObject: String!\n fFieldOnDBigObject: Int!\n gFieldOnDBigObject: Boolean!\n hFieldOnDBigObject: Float!\n iFieldOnDBigObject: String!\n jFieldOnDBigObject: Int!\n kFieldOnDBigObject: Boolean!\n lFieldOnDBigObject: Float!\n mFieldOnDBigObject: String!\n nFieldOnDBigObject: Int!\n oFieldOnDBigObject: Boolean!\n pFieldOnDBigObject: Float!\n qFieldOnDBigObject: String!\n rFieldOnDBigObject: Int!\n sFieldOnDBigObject: Boolean!\n tFieldOnDBigObject: Float!\n uFieldOnDBigObject: String!\n vFieldOnDBigObject: Int!\n wFieldOnDBigObject: Boolean!\n xFieldOnDBigObject: Float!\n yFieldOnDBigObject: String!\n zFieldOnDBigObject: Int!\n}\n\ntype EBigObject {\n aFieldOnEBigObject: String!\n bFieldOnEBigObject: Int!\n cFieldOnEBigObject: Boolean!\n dFieldOnEBigObject: Float!\n eFieldOnEBigObject: String!\n fFieldOnEBigObject: Int!\n gFieldOnEBigObject: Boolean!\n hFieldOnEBigObject: Float!\n iFieldOnEBigObject: String!\n jFieldOnEBigObject: Int!\n kFieldOnEBigObject: Boolean!\n lFieldOnEBigObject: Float!\n mFieldOnEBigObject: String!\n nFieldOnEBigObject: Int!\n oFieldOnEBigObject: Boolean!\n pFieldOnEBigObject: Float!\n qFieldOnEBigObject: String!\n rFieldOnEBigObject: Int!\n sFieldOnEBigObject: Boolean!\n tFieldOnEBigObject: Float!\n uFieldOnEBigObject: String!\n vFieldOnEBigObject: Int!\n wFieldOnEBigObject: Boolean!\n xFieldOnEBigObject: Float!\n yFieldOnEBigObject: String!\n zFieldOnEBigObject: Int!\n}\n\ntype FBigObject {\n aFieldOnFBigObject: String!\n bFieldOnFBigObject: Int!\n cFieldOnFBigObject: Boolean!\n dFieldOnFBigObject: Float!\n eFieldOnFBigObject: String!\n fFieldOnFBigObject: Int!\n gFieldOnFBigObject: Boolean!\n hFieldOnFBigObject: Float!\n iFieldOnFBigObject: String!\n jFieldOnFBigObject: Int!\n kFieldOnFBigObject: Boolean!\n lFieldOnFBigObject: Float!\n mFieldOnFBigObject: String!\n nFieldOnFBigObject: Int!\n oFieldOnFBigObject: Boolean!\n pFieldOnFBigObject: Float!\n qFieldOnFBigObject: String!\n rFieldOnFBigObject: Int!\n sFieldOnFBigObject: Boolean!\n tFieldOnFBigObject: Float!\n uFieldOnFBigObject: String!\n vFieldOnFBigObject: Int!\n wFieldOnFBigObject: Boolean!\n xFieldOnFBigObject: Float!\n yFieldOnFBigObject: String!\n zFieldOnFBigObject: Int!\n}\n\ntype GBigObject {\n aFieldOnGBigObject: String!\n bFieldOnGBigObject: Int!\n cFieldOnGBigObject: Boolean!\n dFieldOnGBigObject: Float!\n eFieldOnGBigObject: String!\n fFieldOnGBigObject: Int!\n gFieldOnGBigObject: Boolean!\n hFieldOnGBigObject: Float!\n iFieldOnGBigObject: String!\n jFieldOnGBigObject: Int!\n kFieldOnGBigObject: Boolean!\n lFieldOnGBigObject: Float!\n mFieldOnGBigObject: String!\n nFieldOnGBigObject: Int!\n oFieldOnGBigObject: Boolean!\n pFieldOnGBigObject: Float!\n qFieldOnGBigObject: String!\n rFieldOnGBigObject: Int!\n sFieldOnGBigObject: Boolean!\n tFieldOnGBigObject: Float!\n uFieldOnGBigObject: String!\n vFieldOnGBigObject: Int!\n wFieldOnGBigObject: Boolean!\n xFieldOnGBigObject: Float!\n yFieldOnGBigObject: String!\n zFieldOnGBigObject: Int!\n}\n\ntype HBigObject {\n aFieldOnHBigObject: String!\n bFieldOnHBigObject: Int!\n cFieldOnHBigObject: Boolean!\n dFieldOnHBigObject: Float!\n eFieldOnHBigObject: String!\n fFieldOnHBigObject: Int!\n gFieldOnHBigObject: Boolean!\n hFieldOnHBigObject: Float!\n iFieldOnHBigObject: String!\n jFieldOnHBigObject: Int!\n kFieldOnHBigObject: Boolean!\n lFieldOnHBigObject: Float!\n mFieldOnHBigObject: String!\n nFieldOnHBigObject: Int!\n oFieldOnHBigObject: Boolean!\n pFieldOnHBigObject: Float!\n qFieldOnHBigObject: String!\n rFieldOnHBigObject: Int!\n sFieldOnHBigObject: Boolean!\n tFieldOnHBigObject: Float!\n uFieldOnHBigObject: String!\n vFieldOnHBigObject: Int!\n wFieldOnHBigObject: Boolean!\n xFieldOnHBigObject: Float!\n yFieldOnHBigObject: String!\n zFieldOnHBigObject: Int!\n}\n\ntype IBigObject {\n aFieldOnIBigObject: String!\n bFieldOnIBigObject: Int!\n cFieldOnIBigObject: Boolean!\n dFieldOnIBigObject: Float!\n eFieldOnIBigObject: String!\n fFieldOnIBigObject: Int!\n gFieldOnIBigObject: Boolean!\n hFieldOnIBigObject: Float!\n iFieldOnIBigObject: String!\n jFieldOnIBigObject: Int!\n kFieldOnIBigObject: Boolean!\n lFieldOnIBigObject: Float!\n mFieldOnIBigObject: String!\n nFieldOnIBigObject: Int!\n oFieldOnIBigObject: Boolean!\n pFieldOnIBigObject: Float!\n qFieldOnIBigObject: String!\n rFieldOnIBigObject: Int!\n sFieldOnIBigObject: Boolean!\n tFieldOnIBigObject: Float!\n uFieldOnIBigObject: String!\n vFieldOnIBigObject: Int!\n wFieldOnIBigObject: Boolean!\n xFieldOnIBigObject: Float!\n yFieldOnIBigObject: String!\n zFieldOnIBigObject: Int!\n}\n\ntype JBigObject {\n aFieldOnJBigObject: String!\n bFieldOnJBigObject: Int!\n cFieldOnJBigObject: Boolean!\n dFieldOnJBigObject: Float!\n eFieldOnJBigObject: String!\n fFieldOnJBigObject: Int!\n gFieldOnJBigObject: Boolean!\n hFieldOnJBigObject: Float!\n iFieldOnJBigObject: String!\n jFieldOnJBigObject: Int!\n kFieldOnJBigObject: Boolean!\n lFieldOnJBigObject: Float!\n mFieldOnJBigObject: String!\n nFieldOnJBigObject: Int!\n oFieldOnJBigObject: Boolean!\n pFieldOnJBigObject: Float!\n qFieldOnJBigObject: String!\n rFieldOnJBigObject: Int!\n sFieldOnJBigObject: Boolean!\n tFieldOnJBigObject: Float!\n uFieldOnJBigObject: String!\n vFieldOnJBigObject: Int!\n wFieldOnJBigObject: Boolean!\n xFieldOnJBigObject: Float!\n yFieldOnJBigObject: String!\n zFieldOnJBigObject: Int!\n}\n\ntype KBigObject {\n aFieldOnKBigObject: String!\n bFieldOnKBigObject: Int!\n cFieldOnKBigObject: Boolean!\n dFieldOnKBigObject: Float!\n eFieldOnKBigObject: String!\n fFieldOnKBigObject: Int!\n gFieldOnKBigObject: Boolean!\n hFieldOnKBigObject: Float!\n iFieldOnKBigObject: String!\n jFieldOnKBigObject: Int!\n kFieldOnKBigObject: Boolean!\n lFieldOnKBigObject: Float!\n mFieldOnKBigObject: String!\n nFieldOnKBigObject: Int!\n oFieldOnKBigObject: Boolean!\n pFieldOnKBigObject: Float!\n qFieldOnKBigObject: String!\n rFieldOnKBigObject: Int!\n sFieldOnKBigObject: Boolean!\n tFieldOnKBigObject: Float!\n uFieldOnKBigObject: String!\n vFieldOnKBigObject: Int!\n wFieldOnKBigObject: Boolean!\n xFieldOnKBigObject: Float!\n yFieldOnKBigObject: String!\n zFieldOnKBigObject: Int!\n}\n\ntype LBigObject {\n aFieldOnLBigObject: String!\n bFieldOnLBigObject: Int!\n cFieldOnLBigObject: Boolean!\n dFieldOnLBigObject: Float!\n eFieldOnLBigObject: String!\n fFieldOnLBigObject: Int!\n gFieldOnLBigObject: Boolean!\n hFieldOnLBigObject: Float!\n iFieldOnLBigObject: String!\n jFieldOnLBigObject: Int!\n kFieldOnLBigObject: Boolean!\n lFieldOnLBigObject: Float!\n mFieldOnLBigObject: String!\n nFieldOnLBigObject: Int!\n oFieldOnLBigObject: Boolean!\n pFieldOnLBigObject: Float!\n qFieldOnLBigObject: String!\n rFieldOnLBigObject: Int!\n sFieldOnLBigObject: Boolean!\n tFieldOnLBigObject: Float!\n uFieldOnLBigObject: String!\n vFieldOnLBigObject: Int!\n wFieldOnLBigObject: Boolean!\n xFieldOnLBigObject: Float!\n yFieldOnLBigObject: String!\n zFieldOnLBigObject: Int!\n}\n\ntype MBigObject {\n aFieldOnMBigObject: String!\n bFieldOnMBigObject: Int!\n cFieldOnMBigObject: Boolean!\n dFieldOnMBigObject: Float!\n eFieldOnMBigObject: String!\n fFieldOnMBigObject: Int!\n gFieldOnMBigObject: Boolean!\n hFieldOnMBigObject: Float!\n iFieldOnMBigObject: String!\n jFieldOnMBigObject: Int!\n kFieldOnMBigObject: Boolean!\n lFieldOnMBigObject: Float!\n mFieldOnMBigObject: String!\n nFieldOnMBigObject: Int!\n oFieldOnMBigObject: Boolean!\n pFieldOnMBigObject: Float!\n qFieldOnMBigObject: String!\n rFieldOnMBigObject: Int!\n sFieldOnMBigObject: Boolean!\n tFieldOnMBigObject: Float!\n uFieldOnMBigObject: String!\n vFieldOnMBigObject: Int!\n wFieldOnMBigObject: Boolean!\n xFieldOnMBigObject: Float!\n yFieldOnMBigObject: String!\n zFieldOnMBigObject: Int!\n}\n\ntype NBigObject {\n aFieldOnNBigObject: String!\n bFieldOnNBigObject: Int!\n cFieldOnNBigObject: Boolean!\n dFieldOnNBigObject: Float!\n eFieldOnNBigObject: String!\n fFieldOnNBigObject: Int!\n gFieldOnNBigObject: Boolean!\n hFieldOnNBigObject: Float!\n iFieldOnNBigObject: String!\n jFieldOnNBigObject: Int!\n kFieldOnNBigObject: Boolean!\n lFieldOnNBigObject: Float!\n mFieldOnNBigObject: String!\n nFieldOnNBigObject: Int!\n oFieldOnNBigObject: Boolean!\n pFieldOnNBigObject: Float!\n qFieldOnNBigObject: String!\n rFieldOnNBigObject: Int!\n sFieldOnNBigObject: Boolean!\n tFieldOnNBigObject: Float!\n uFieldOnNBigObject: String!\n vFieldOnNBigObject: Int!\n wFieldOnNBigObject: Boolean!\n xFieldOnNBigObject: Float!\n yFieldOnNBigObject: String!\n zFieldOnNBigObject: Int!\n}\n\ntype OBigObject {\n aFieldOnOBigObject: String!\n bFieldOnOBigObject: Int!\n cFieldOnOBigObject: Boolean!\n dFieldOnOBigObject: Float!\n eFieldOnOBigObject: String!\n fFieldOnOBigObject: Int!\n gFieldOnOBigObject: Boolean!\n hFieldOnOBigObject: Float!\n iFieldOnOBigObject: String!\n jFieldOnOBigObject: Int!\n kFieldOnOBigObject: Boolean!\n lFieldOnOBigObject: Float!\n mFieldOnOBigObject: String!\n nFieldOnOBigObject: Int!\n oFieldOnOBigObject: Boolean!\n pFieldOnOBigObject: Float!\n qFieldOnOBigObject: String!\n rFieldOnOBigObject: Int!\n sFieldOnOBigObject: Boolean!\n tFieldOnOBigObject: Float!\n uFieldOnOBigObject: String!\n vFieldOnOBigObject: Int!\n wFieldOnOBigObject: Boolean!\n xFieldOnOBigObject: Float!\n yFieldOnOBigObject: String!\n zFieldOnOBigObject: Int!\n}\n\ntype PBigObject {\n aFieldOnPBigObject: String!\n bFieldOnPBigObject: Int!\n cFieldOnPBigObject: Boolean!\n dFieldOnPBigObject: Float!\n eFieldOnPBigObject: String!\n fFieldOnPBigObject: Int!\n gFieldOnPBigObject: Boolean!\n hFieldOnPBigObject: Float!\n iFieldOnPBigObject: String!\n jFieldOnPBigObject: Int!\n kFieldOnPBigObject: Boolean!\n lFieldOnPBigObject: Float!\n mFieldOnPBigObject: String!\n nFieldOnPBigObject: Int!\n oFieldOnPBigObject: Boolean!\n pFieldOnPBigObject: Float!\n qFieldOnPBigObject: String!\n rFieldOnPBigObject: Int!\n sFieldOnPBigObject: Boolean!\n tFieldOnPBigObject: Float!\n uFieldOnPBigObject: String!\n vFieldOnPBigObject: Int!\n wFieldOnPBigObject: Boolean!\n xFieldOnPBigObject: Float!\n yFieldOnPBigObject: String!\n zFieldOnPBigObject: Int!\n}\n\ntype QBigObject {\n aFieldOnQBigObject: String!\n bFieldOnQBigObject: Int!\n cFieldOnQBigObject: Boolean!\n dFieldOnQBigObject: Float!\n eFieldOnQBigObject: String!\n fFieldOnQBigObject: Int!\n gFieldOnQBigObject: Boolean!\n hFieldOnQBigObject: Float!\n iFieldOnQBigObject: String!\n jFieldOnQBigObject: Int!\n kFieldOnQBigObject: Boolean!\n lFieldOnQBigObject: Float!\n mFieldOnQBigObject: String!\n nFieldOnQBigObject: Int!\n oFieldOnQBigObject: Boolean!\n pFieldOnQBigObject: Float!\n qFieldOnQBigObject: String!\n rFieldOnQBigObject: Int!\n sFieldOnQBigObject: Boolean!\n tFieldOnQBigObject: Float!\n uFieldOnQBigObject: String!\n vFieldOnQBigObject: Int!\n wFieldOnQBigObject: Boolean!\n xFieldOnQBigObject: Float!\n yFieldOnQBigObject: String!\n zFieldOnQBigObject: Int!\n}\n\ntype RBigObject {\n aFieldOnRBigObject: String!\n bFieldOnRBigObject: Int!\n cFieldOnRBigObject: Boolean!\n dFieldOnRBigObject: Float!\n eFieldOnRBigObject: String!\n fFieldOnRBigObject: Int!\n gFieldOnRBigObject: Boolean!\n hFieldOnRBigObject: Float!\n iFieldOnRBigObject: String!\n jFieldOnRBigObject: Int!\n kFieldOnRBigObject: Boolean!\n lFieldOnRBigObject: Float!\n mFieldOnRBigObject: String!\n nFieldOnRBigObject: Int!\n oFieldOnRBigObject: Boolean!\n pFieldOnRBigObject: Float!\n qFieldOnRBigObject: String!\n rFieldOnRBigObject: Int!\n sFieldOnRBigObject: Boolean!\n tFieldOnRBigObject: Float!\n uFieldOnRBigObject: String!\n vFieldOnRBigObject: Int!\n wFieldOnRBigObject: Boolean!\n xFieldOnRBigObject: Float!\n yFieldOnRBigObject: String!\n zFieldOnRBigObject: Int!\n}\n\ntype SBigObject {\n aFieldOnSBigObject: String!\n bFieldOnSBigObject: Int!\n cFieldOnSBigObject: Boolean!\n dFieldOnSBigObject: Float!\n eFieldOnSBigObject: String!\n fFieldOnSBigObject: Int!\n gFieldOnSBigObject: Boolean!\n hFieldOnSBigObject: Float!\n iFieldOnSBigObject: String!\n jFieldOnSBigObject: Int!\n kFieldOnSBigObject: Boolean!\n lFieldOnSBigObject: Float!\n mFieldOnSBigObject: String!\n nFieldOnSBigObject: Int!\n oFieldOnSBigObject: Boolean!\n pFieldOnSBigObject: Float!\n qFieldOnSBigObject: String!\n rFieldOnSBigObject: Int!\n sFieldOnSBigObject: Boolean!\n tFieldOnSBigObject: Float!\n uFieldOnSBigObject: String!\n vFieldOnSBigObject: Int!\n wFieldOnSBigObject: Boolean!\n xFieldOnSBigObject: Float!\n yFieldOnSBigObject: String!\n zFieldOnSBigObject: Int!\n}\n\ntype TBigObject {\n aFieldOnTBigObject: String!\n bFieldOnTBigObject: Int!\n cFieldOnTBigObject: Boolean!\n dFieldOnTBigObject: Float!\n eFieldOnTBigObject: String!\n fFieldOnTBigObject: Int!\n gFieldOnTBigObject: Boolean!\n hFieldOnTBigObject: Float!\n iFieldOnTBigObject: String!\n jFieldOnTBigObject: Int!\n kFieldOnTBigObject: Boolean!\n lFieldOnTBigObject: Float!\n mFieldOnTBigObject: String!\n nFieldOnTBigObject: Int!\n oFieldOnTBigObject: Boolean!\n pFieldOnTBigObject: Float!\n qFieldOnTBigObject: String!\n rFieldOnTBigObject: Int!\n sFieldOnTBigObject: Boolean!\n tFieldOnTBigObject: Float!\n uFieldOnTBigObject: String!\n vFieldOnTBigObject: Int!\n wFieldOnTBigObject: Boolean!\n xFieldOnTBigObject: Float!\n yFieldOnTBigObject: String!\n zFieldOnTBigObject: Int!\n}\n\ntype UBigObject {\n aFieldOnUBigObject: String!\n bFieldOnUBigObject: Int!\n cFieldOnUBigObject: Boolean!\n dFieldOnUBigObject: Float!\n eFieldOnUBigObject: String!\n fFieldOnUBigObject: Int!\n gFieldOnUBigObject: Boolean!\n hFieldOnUBigObject: Float!\n iFieldOnUBigObject: String!\n jFieldOnUBigObject: Int!\n kFieldOnUBigObject: Boolean!\n lFieldOnUBigObject: Float!\n mFieldOnUBigObject: String!\n nFieldOnUBigObject: Int!\n oFieldOnUBigObject: Boolean!\n pFieldOnUBigObject: Float!\n qFieldOnUBigObject: String!\n rFieldOnUBigObject: Int!\n sFieldOnUBigObject: Boolean!\n tFieldOnUBigObject: Float!\n uFieldOnUBigObject: String!\n vFieldOnUBigObject: Int!\n wFieldOnUBigObject: Boolean!\n xFieldOnUBigObject: Float!\n yFieldOnUBigObject: String!\n zFieldOnUBigObject: Int!\n}\n\ntype VBigObject {\n aFieldOnVBigObject: String!\n bFieldOnVBigObject: Int!\n cFieldOnVBigObject: Boolean!\n dFieldOnVBigObject: Float!\n eFieldOnVBigObject: String!\n fFieldOnVBigObject: Int!\n gFieldOnVBigObject: Boolean!\n hFieldOnVBigObject: Float!\n iFieldOnVBigObject: String!\n jFieldOnVBigObject: Int!\n kFieldOnVBigObject: Boolean!\n lFieldOnVBigObject: Float!\n mFieldOnVBigObject: String!\n nFieldOnVBigObject: Int!\n oFieldOnVBigObject: Boolean!\n pFieldOnVBigObject: Float!\n qFieldOnVBigObject: String!\n rFieldOnVBigObject: Int!\n sFieldOnVBigObject: Boolean!\n tFieldOnVBigObject: Float!\n uFieldOnVBigObject: String!\n vFieldOnVBigObject: Int!\n wFieldOnVBigObject: Boolean!\n xFieldOnVBigObject: Float!\n yFieldOnVBigObject: String!\n zFieldOnVBigObject: Int!\n}\n\ntype WBigObject {\n aFieldOnWBigObject: String!\n bFieldOnWBigObject: Int!\n cFieldOnWBigObject: Boolean!\n dFieldOnWBigObject: Float!\n eFieldOnWBigObject: String!\n fFieldOnWBigObject: Int!\n gFieldOnWBigObject: Boolean!\n hFieldOnWBigObject: Float!\n iFieldOnWBigObject: String!\n jFieldOnWBigObject: Int!\n kFieldOnWBigObject: Boolean!\n lFieldOnWBigObject: Float!\n mFieldOnWBigObject: String!\n nFieldOnWBigObject: Int!\n oFieldOnWBigObject: Boolean!\n pFieldOnWBigObject: Float!\n qFieldOnWBigObject: String!\n rFieldOnWBigObject: Int!\n sFieldOnWBigObject: Boolean!\n tFieldOnWBigObject: Float!\n uFieldOnWBigObject: String!\n vFieldOnWBigObject: Int!\n wFieldOnWBigObject: Boolean!\n xFieldOnWBigObject: Float!\n yFieldOnWBigObject: String!\n zFieldOnWBigObject: Int!\n}\n\ntype XBigObject {\n aFieldOnXBigObject: String!\n bFieldOnXBigObject: Int!\n cFieldOnXBigObject: Boolean!\n dFieldOnXBigObject: Float!\n eFieldOnXBigObject: String!\n fFieldOnXBigObject: Int!\n gFieldOnXBigObject: Boolean!\n hFieldOnXBigObject: Float!\n iFieldOnXBigObject: String!\n jFieldOnXBigObject: Int!\n kFieldOnXBigObject: Boolean!\n lFieldOnXBigObject: Float!\n mFieldOnXBigObject: String!\n nFieldOnXBigObject: Int!\n oFieldOnXBigObject: Boolean!\n pFieldOnXBigObject: Float!\n qFieldOnXBigObject: String!\n rFieldOnXBigObject: Int!\n sFieldOnXBigObject: Boolean!\n tFieldOnXBigObject: Float!\n uFieldOnXBigObject: String!\n vFieldOnXBigObject: Int!\n wFieldOnXBigObject: Boolean!\n xFieldOnXBigObject: Float!\n yFieldOnXBigObject: String!\n zFieldOnXBigObject: Int!\n}\n\ntype YBigObject {\n aFieldOnYBigObject: String!\n bFieldOnYBigObject: Int!\n cFieldOnYBigObject: Boolean!\n dFieldOnYBigObject: Float!\n eFieldOnYBigObject: String!\n fFieldOnYBigObject: Int!\n gFieldOnYBigObject: Boolean!\n hFieldOnYBigObject: Float!\n iFieldOnYBigObject: String!\n jFieldOnYBigObject: Int!\n kFieldOnYBigObject: Boolean!\n lFieldOnYBigObject: Float!\n mFieldOnYBigObject: String!\n nFieldOnYBigObject: Int!\n oFieldOnYBigObject: Boolean!\n pFieldOnYBigObject: Float!\n qFieldOnYBigObject: String!\n rFieldOnYBigObject: Int!\n sFieldOnYBigObject: Boolean!\n tFieldOnYBigObject: Float!\n uFieldOnYBigObject: String!\n vFieldOnYBigObject: Int!\n wFieldOnYBigObject: Boolean!\n xFieldOnYBigObject: Float!\n yFieldOnYBigObject: String!\n zFieldOnYBigObject: Int!\n}\n\ntype ZBigObject {\n aFieldOnZBigObject: String!\n bFieldOnZBigObject: Int!\n cFieldOnZBigObject: Boolean!\n dFieldOnZBigObject: Float!\n eFieldOnZBigObject: String!\n fFieldOnZBigObject: Int!\n gFieldOnZBigObject: Boolean!\n hFieldOnZBigObject: Float!\n iFieldOnZBigObject: String!\n jFieldOnZBigObject: Int!\n kFieldOnZBigObject: Boolean!\n lFieldOnZBigObject: Float!\n mFieldOnZBigObject: String!\n nFieldOnZBigObject: Int!\n oFieldOnZBigObject: Boolean!\n pFieldOnZBigObject: Float!\n qFieldOnZBigObject: String!\n rFieldOnZBigObject: Int!\n sFieldOnZBigObject: Boolean!\n tFieldOnZBigObject: Float!\n uFieldOnZBigObject: String!\n vFieldOnZBigObject: Int!\n wFieldOnZBigObject: Boolean!\n xFieldOnZBigObject: Float!\n yFieldOnZBigObject: String!\n zFieldOnZBigObject: Int!\n}\n\ninput UpdateEmployeeInput {\n name: String\n email: String\n}\n\ninput KafkaInput {\n ids: [Int!]!\n}\n\ntype edfs__PublishResult {\n success: Boolean!\n}\n\ntype Engineer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n engineerType: EngineerType!\n}\n\ntype Marketer implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n}\n\ntype Operator implements RoleType {\n departments: [Department!]!\n title: [String!]!\n employees: [Employee!]!\n operatorType: [OperationType!]!\n}\n\ntype Employee implements Identifiable {\n details: Details\n id: Int!\n tag: String!\n role: RoleType!\n notes: String\n updatedAt: String!\n startDate: String!\n currentMood: Mood!\n derivedMood: Mood!\n isAvailable: Boolean\n rootFieldThrowsError: String\n rootFieldErrorWrapper: ErrorWrapper\n hobbies: [Hobby!]\n products: [ProductName!]!\n productCount: Int!\n fieldThrowsError: String\n}\n\ntype Cosmo implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n lead: Employee!\n isLeadAvailable: Boolean\n name: ProductName!\n repositoryURL: String!\n}\n\ntype SDK implements IProduct {\n upc: ID!\n engineers: [Employee!]!\n owner: Employee!\n unicode: String!\n clientLanguages: [ProgrammingLanguage!]!\n}\n\ninterface Pet implements Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Alligator implements Pet & Animal {\n class: Class!\n dangerous: String!\n gender: Gender!\n name: String!\n}\n\ntype Cat implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n type: CatType!\n}\n\ntype Dog implements Pet & Animal {\n breed: DogBreed!\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Mouse implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Pony implements Pet & Animal {\n class: Class!\n gender: Gender!\n name: String!\n}\n\ntype Exercise implements Hobby {\n employees: [Employee!]!\n category: ExerciseType!\n}\n\ntype Flying implements Experience & Hobby {\n employees: [Employee!]!\n planeModels: [String!]!\n yearsOfExperience: Float!\n}\n\ntype Gaming implements Experience & Hobby {\n employees: [Employee!]!\n genres: [GameGenre!]!\n name: String!\n yearsOfExperience: Float!\n}\n\ntype Other implements Hobby {\n employees: [Employee!]!\n name: String!\n}\n\ntype Programming implements Hobby {\n employees: [Employee!]!\n languages: [ProgrammingLanguage!]!\n}\n\ntype Travelling implements Hobby {\n employees: [Employee!]!\n countriesLived: [Country!]!\n}\n\ntype DirectiveFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype EntityFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}\n\ntype MiscellaneousFact implements TopSecretFact {\n title: String!\n description: FactContent!\n factType: TopSecretFactType\n}" }, - "version": "6332a859-deb5-4809-9904-ff3f8a38cc50", + "version": "580cdb99-53d3-4afd-9cdb-e8e76527a0db", "subgraphs": [ { "id": "0", diff --git a/shared/src/router-config/builder.ts b/shared/src/router-config/builder.ts index 6d3064f9c1..9b797e0218 100644 --- a/shared/src/router-config/builder.ts +++ b/shared/src/router-config/builder.ts @@ -7,6 +7,7 @@ import { ROOT_TYPE_NAMES, ROUTER_COMPATIBILITY_VERSIONS, SupportedRouterCompatibilityVersion, + TypeName, } from '@wundergraph/composition'; import { GraphQLSubscriptionProtocol, @@ -72,7 +73,7 @@ export interface ComposedSubgraph { subscriptionProtocol?: SubscriptionProtocol | undefined; websocketSubprotocol?: WebsocketSubprotocol | undefined; // The intermediate representation of the engine configuration for the subgraph - configurationDataByTypeName?: Map; + configurationDataByTypeName?: Map; // The normalized GraphQL schema for the subgraph schema?: GraphQLSchema; } @@ -87,7 +88,7 @@ export interface ComposedSubgraphPlugin { protoSchema: string; mapping: GRPCMapping; // The intermediate representation of the engine configuration for the subgraph - configurationDataByTypeName?: Map; + configurationDataByTypeName?: Map; // The normalized GraphQL schema for the subgraph schema?: GraphQLSchema; imageReference?: ImageReference; @@ -102,7 +103,7 @@ export interface ComposedSubgraphGRPC { protoSchema: string; mapping: GRPCMapping; // The intermediate representation of the engine configuration for the subgraph - configurationDataByTypeName?: Map; + configurationDataByTypeName?: Map; // The normalized GraphQL schema for the subgraph schema?: GraphQLSchema; } diff --git a/shared/src/router-config/graphql-configuration.ts b/shared/src/router-config/graphql-configuration.ts index c69519e7be..b7b633dba1 100644 --- a/shared/src/router-config/graphql-configuration.ts +++ b/shared/src/router-config/graphql-configuration.ts @@ -29,6 +29,7 @@ import { PROVIDER_TYPE_REDIS, RequiredFieldConfiguration, SubscriptionCondition, + TypeName, } from '@wundergraph/composition'; export type DataSourceConfiguration = { @@ -110,7 +111,7 @@ function eventType(type: CompositionEventType) { } export function configurationDatasToDataSourceConfiguration( - dataByTypeName: Map, + dataByTypeName: Map, ): DataSourceConfiguration { const output: DataSourceConfiguration = { rootNodes: [], diff --git a/shared/test/__snapshots__/router.config.test.ts.snap b/shared/test/__snapshots__/router.config.test.ts.snap index 1aff87b4dc..d68b35dede 100644 --- a/shared/test/__snapshots__/router.config.test.ts.snap +++ b/shared/test/__snapshots__/router.config.test.ts.snap @@ -47,7 +47,7 @@ exports[`Router Config Builder > Build Subgraph schema > router.config.json 1`] "serviceSdl": "type Query @extends {\\n me: User\\n}\\n\\ntype User @key(fields: \\"id\\") {\\n id: ID!\\n name: String\\n username: String\\n}\\n" }, "upstreamSchema": { - "key": "26368136088fa936dcb2f977a25a3c3bdc8f369b" + "key": "cc8dd262f96b62f7173b9b50b3ce9b8671001446" } }, "requestTimeoutSeconds": "10", @@ -114,7 +114,7 @@ exports[`Router Config Builder > Build Subgraph schema > router.config.json 1`] "serviceSdl": "type Query @extends {\\n topProducts(first: Int = 5, random: Boolean): [Product]\\n}\\n\\ntype Product @key(fields: \\"upc\\") {\\n upc: String!\\n name: String\\n price: Int\\n weight: Int\\n}\\n\\ntype Subscription @extends {\\n updatedPrice: Product!\\n}\\n\\ntype Mutation @extends {\\n setPrice(upc: String!, price: Int!): Product\\n}\\n" }, "upstreamSchema": { - "key": "04d227115e43995a8fd784c6643b595305dcd5dc" + "key": "9cb34d1a909126f44f901bee5e86511d5d102803" } }, "requestTimeoutSeconds": "10", @@ -180,7 +180,7 @@ exports[`Router Config Builder > Build Subgraph schema > router.config.json 1`] "serviceSdl": "type Review @key(fields: \\"id\\") {\\n id: ID!\\n body: String\\n author: User @provides(fields: \\"username\\")\\n product: Product\\n}\\n\\ntype User @extends @key(fields: \\"id\\") {\\n id: ID! @external\\n username: String @external\\n reviews: [Review]\\n}\\n\\ntype Product @extends @key(fields: \\"upc\\") {\\n upc: String! @external\\n reviews: [Review]\\n}\\n" }, "upstreamSchema": { - "key": "e11be76baf22108836f0f59b56828dc6754fbaa0" + "key": "70591ef8ef0591333c31dec205b60b5868e7dc64" } }, "requestTimeoutSeconds": "10", @@ -247,7 +247,7 @@ exports[`Router Config Builder > Build Subgraph schema > router.config.json 1`] "serviceSdl": "type Product @extends @key(fields: \\"upc\\") {\\n upc: String! @external\\n weight: Int @external\\n price: Int @external\\n inStock: Boolean\\n shippingEstimate: Int @requires(fields: \\"price weight\\")\\n}\\n" }, "upstreamSchema": { - "key": "de5e83e9a0f6f72eef6748fadaa8c5af6ad3220e" + "key": "533f9b452710c4165bea8cc43f0250ae3b183984" } }, "requestTimeoutSeconds": "10", @@ -269,10 +269,10 @@ exports[`Router Config Builder > Build Subgraph schema > router.config.json 1`] ], "graphqlSchema": "type Query {}", "stringStorage": { - "26368136088fa936dcb2f977a25a3c3bdc8f369b": "schema {\\n query: Query\\n}\\n\\ndirective @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Query @extends {\\n me: User\\n}\\n\\ntype User @key(fields: \\"id\\") {\\n id: ID!\\n name: String\\n username: String\\n}\\n\\nscalar openfed__FieldSet", - "04d227115e43995a8fd784c6643b595305dcd5dc": "schema {\\n query: Query\\n mutation: Mutation\\n subscription: Subscription\\n}\\n\\ndirective @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Mutation @extends {\\n setPrice(price: Int!, upc: String!): Product\\n}\\n\\ntype Product @key(fields: \\"upc\\") {\\n name: String\\n price: Int\\n upc: String!\\n weight: Int\\n}\\n\\ntype Query @extends {\\n topProducts(first: Int = 5, random: Boolean): [Product]\\n}\\n\\ntype Subscription @extends {\\n updatedPrice: Product!\\n}\\n\\nscalar openfed__FieldSet", - "e11be76baf22108836f0f59b56828dc6754fbaa0": "directive @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Product @extends @key(fields: \\"upc\\") {\\n reviews: [Review]\\n upc: String! @external\\n}\\n\\ntype Review @key(fields: \\"id\\") {\\n author: User @provides(fields: \\"username\\")\\n body: String\\n id: ID!\\n product: Product\\n}\\n\\ntype User @extends @key(fields: \\"id\\") {\\n id: ID! @external\\n reviews: [Review]\\n username: String @external\\n}\\n\\nscalar openfed__FieldSet", - "de5e83e9a0f6f72eef6748fadaa8c5af6ad3220e": "directive @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Product @extends @key(fields: \\"upc\\") {\\n inStock: Boolean\\n price: Int @external\\n shippingEstimate: Int @requires(fields: \\"price weight\\")\\n upc: String! @external\\n weight: Int @external\\n}\\n\\nscalar openfed__FieldSet" + "cc8dd262f96b62f7173b9b50b3ce9b8671001446": "schema {\\n query: Query\\n}\\n\\ndirective @extends on INTERFACE | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ntype Query @extends {\\n me: User\\n}\\n\\ntype User @key(fields: \\"id\\") {\\n id: ID!\\n name: String\\n username: String\\n}\\n\\nscalar openfed__FieldSet", + "9cb34d1a909126f44f901bee5e86511d5d102803": "schema {\\n query: Query\\n mutation: Mutation\\n subscription: Subscription\\n}\\n\\ndirective @extends on INTERFACE | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ntype Mutation @extends {\\n setPrice(price: Int!, upc: String!): Product\\n}\\n\\ntype Product @key(fields: \\"upc\\") {\\n name: String\\n price: Int\\n upc: String!\\n weight: Int\\n}\\n\\ntype Query @extends {\\n topProducts(first: Int = 5, random: Boolean): [Product]\\n}\\n\\ntype Subscription @extends {\\n updatedPrice: Product!\\n}\\n\\nscalar openfed__FieldSet", + "70591ef8ef0591333c31dec205b60b5868e7dc64": "directive @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ntype Product @extends @key(fields: \\"upc\\") {\\n reviews: [Review]\\n upc: String! @external\\n}\\n\\ntype Review @key(fields: \\"id\\") {\\n author: User @provides(fields: \\"username\\")\\n body: String\\n id: ID!\\n product: Product\\n}\\n\\ntype User @extends @key(fields: \\"id\\") {\\n id: ID! @external\\n reviews: [Review]\\n username: String @external\\n}\\n\\nscalar openfed__FieldSet", + "533f9b452710c4165bea8cc43f0250ae3b183984": "directive @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ntype Product @extends @key(fields: \\"upc\\") {\\n inStock: Boolean\\n price: Int @external\\n shippingEstimate: Int @requires(fields: \\"price weight\\")\\n upc: String! @external\\n weight: Int @external\\n}\\n\\nscalar openfed__FieldSet" }, "graphqlClientSchema": "type Query {}" }, @@ -349,7 +349,7 @@ exports[`Router Config Builder > Build config with plugin subgraph > router.conf "serviceSdl": "type Query @extends {\\n me: User\\n}\\n\\ntype User @key(fields: \\"id\\") {\\n id: ID!\\n name: String\\n username: String\\n}\\n" }, "upstreamSchema": { - "key": "26368136088fa936dcb2f977a25a3c3bdc8f369b" + "key": "cc8dd262f96b62f7173b9b50b3ce9b8671001446" } }, "requestTimeoutSeconds": "10", @@ -416,7 +416,7 @@ exports[`Router Config Builder > Build config with plugin subgraph > router.conf "serviceSdl": "type Query @extends {\\n topProducts(first: Int = 5, random: Boolean): [Product]\\n}\\n\\ntype Product @key(fields: \\"upc\\") {\\n upc: String!\\n name: String\\n price: Int\\n weight: Int\\n}\\n\\ntype Subscription @extends {\\n updatedPrice: Product!\\n}\\n\\ntype Mutation @extends {\\n setPrice(upc: String!, price: Int!): Product\\n}\\n" }, "upstreamSchema": { - "key": "04d227115e43995a8fd784c6643b595305dcd5dc" + "key": "9cb34d1a909126f44f901bee5e86511d5d102803" } }, "requestTimeoutSeconds": "10", @@ -482,7 +482,7 @@ exports[`Router Config Builder > Build config with plugin subgraph > router.conf "serviceSdl": "type Review @key(fields: \\"id\\") {\\n id: ID!\\n body: String\\n author: User @provides(fields: \\"username\\")\\n product: Product\\n}\\n\\ntype User @extends @key(fields: \\"id\\") {\\n id: ID! @external\\n username: String @external\\n reviews: [Review]\\n}\\n\\ntype Product @extends @key(fields: \\"upc\\") {\\n upc: String! @external\\n reviews: [Review]\\n}\\n" }, "upstreamSchema": { - "key": "e11be76baf22108836f0f59b56828dc6754fbaa0" + "key": "70591ef8ef0591333c31dec205b60b5868e7dc64" } }, "requestTimeoutSeconds": "10", @@ -544,7 +544,7 @@ exports[`Router Config Builder > Build config with plugin subgraph > router.conf "serviceSdl": "type Product @extends @key(fields: \\"upc\\") {\\n upc: String! @external\\n weight: Int @external\\n price: Int @external\\n inStock: Boolean\\n shippingEstimate: Int @requires(fields: \\"price weight\\")\\n}\\n" }, "upstreamSchema": { - "key": "de5e83e9a0f6f72eef6748fadaa8c5af6ad3220e" + "key": "533f9b452710c4165bea8cc43f0250ae3b183984" }, "grpc": { "mapping": { @@ -588,10 +588,10 @@ exports[`Router Config Builder > Build config with plugin subgraph > router.conf ], "graphqlSchema": "type Query {}", "stringStorage": { - "26368136088fa936dcb2f977a25a3c3bdc8f369b": "schema {\\n query: Query\\n}\\n\\ndirective @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Query @extends {\\n me: User\\n}\\n\\ntype User @key(fields: \\"id\\") {\\n id: ID!\\n name: String\\n username: String\\n}\\n\\nscalar openfed__FieldSet", - "04d227115e43995a8fd784c6643b595305dcd5dc": "schema {\\n query: Query\\n mutation: Mutation\\n subscription: Subscription\\n}\\n\\ndirective @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Mutation @extends {\\n setPrice(price: Int!, upc: String!): Product\\n}\\n\\ntype Product @key(fields: \\"upc\\") {\\n name: String\\n price: Int\\n upc: String!\\n weight: Int\\n}\\n\\ntype Query @extends {\\n topProducts(first: Int = 5, random: Boolean): [Product]\\n}\\n\\ntype Subscription @extends {\\n updatedPrice: Product!\\n}\\n\\nscalar openfed__FieldSet", - "e11be76baf22108836f0f59b56828dc6754fbaa0": "directive @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Product @extends @key(fields: \\"upc\\") {\\n reviews: [Review]\\n upc: String! @external\\n}\\n\\ntype Review @key(fields: \\"id\\") {\\n author: User @provides(fields: \\"username\\")\\n body: String\\n id: ID!\\n product: Product\\n}\\n\\ntype User @extends @key(fields: \\"id\\") {\\n id: ID! @external\\n reviews: [Review]\\n username: String @external\\n}\\n\\nscalar openfed__FieldSet", - "de5e83e9a0f6f72eef6748fadaa8c5af6ad3220e": "directive @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Product @extends @key(fields: \\"upc\\") {\\n inStock: Boolean\\n price: Int @external\\n shippingEstimate: Int @requires(fields: \\"price weight\\")\\n upc: String! @external\\n weight: Int @external\\n}\\n\\nscalar openfed__FieldSet" + "cc8dd262f96b62f7173b9b50b3ce9b8671001446": "schema {\\n query: Query\\n}\\n\\ndirective @extends on INTERFACE | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ntype Query @extends {\\n me: User\\n}\\n\\ntype User @key(fields: \\"id\\") {\\n id: ID!\\n name: String\\n username: String\\n}\\n\\nscalar openfed__FieldSet", + "9cb34d1a909126f44f901bee5e86511d5d102803": "schema {\\n query: Query\\n mutation: Mutation\\n subscription: Subscription\\n}\\n\\ndirective @extends on INTERFACE | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ntype Mutation @extends {\\n setPrice(price: Int!, upc: String!): Product\\n}\\n\\ntype Product @key(fields: \\"upc\\") {\\n name: String\\n price: Int\\n upc: String!\\n weight: Int\\n}\\n\\ntype Query @extends {\\n topProducts(first: Int = 5, random: Boolean): [Product]\\n}\\n\\ntype Subscription @extends {\\n updatedPrice: Product!\\n}\\n\\nscalar openfed__FieldSet", + "70591ef8ef0591333c31dec205b60b5868e7dc64": "directive @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ntype Product @extends @key(fields: \\"upc\\") {\\n reviews: [Review]\\n upc: String! @external\\n}\\n\\ntype Review @key(fields: \\"id\\") {\\n author: User @provides(fields: \\"username\\")\\n body: String\\n id: ID!\\n product: Product\\n}\\n\\ntype User @extends @key(fields: \\"id\\") {\\n id: ID! @external\\n reviews: [Review]\\n username: String @external\\n}\\n\\nscalar openfed__FieldSet", + "533f9b452710c4165bea8cc43f0250ae3b183984": "directive @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ntype Product @extends @key(fields: \\"upc\\") {\\n inStock: Boolean\\n price: Int @external\\n shippingEstimate: Int @requires(fields: \\"price weight\\")\\n upc: String! @external\\n weight: Int @external\\n}\\n\\nscalar openfed__FieldSet" }, "graphqlClientSchema": "type Query {}" }, @@ -666,7 +666,7 @@ exports[`Router Config Builder > that the federatedClientSDL property is not pro "serviceSdl": "type Query {\\n accounts: [Account!]!\\n}\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n}" }, "upstreamSchema": { - "key": "71852430be20eb0aaee86a90ab19650150647219" + "key": "bfc3653bb145b8f0cf78d6102078aafe6656169e" } }, "requestTimeoutSeconds": "10", @@ -721,7 +721,7 @@ exports[`Router Config Builder > that the federatedClientSDL property is not pro "serviceSdl": "type Product {\\n upc: Int!\\n}\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n products: [Product]!\\n}" }, "upstreamSchema": { - "key": "7792956bbbbc1a32270a4136a1b5177d2613e20f" + "key": "993260a1cd52415930ea6b7f1fde13d20e922f7e" } }, "requestTimeoutSeconds": "10", @@ -734,10 +734,10 @@ exports[`Router Config Builder > that the federatedClientSDL property is not pro ] } ], - "graphqlSchema": "directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Query {\\n accounts: [Account!]!\\n}\\n\\ntype Account {\\n id: Int!\\n products: [Product]!\\n}\\n\\ntype Product {\\n upc: Int!\\n}", + "graphqlSchema": "type Query {\\n accounts: [Account!]!\\n}\\n\\ntype Account {\\n id: Int!\\n products: [Product]!\\n}\\n\\ntype Product {\\n upc: Int!\\n}", "stringStorage": { - "71852430be20eb0aaee86a90ab19650150647219": "schema {\\n query: Query\\n}\\n\\ndirective @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n}\\n\\ntype Query {\\n accounts: [Account!]!\\n}\\n\\nscalar openfed__FieldSet", - "7792956bbbbc1a32270a4136a1b5177d2613e20f": "directive @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n products: [Product]!\\n}\\n\\ntype Product {\\n upc: Int!\\n}\\n\\nscalar openfed__FieldSet" + "bfc3653bb145b8f0cf78d6102078aafe6656169e": "schema {\\n query: Query\\n}\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n}\\n\\ntype Query {\\n accounts: [Account!]!\\n}\\n\\nscalar openfed__FieldSet", + "993260a1cd52415930ea6b7f1fde13d20e922f7e": "directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n products: [Product]!\\n}\\n\\ntype Product {\\n upc: Int!\\n}\\n\\nscalar openfed__FieldSet" } }, "subgraphs": [ @@ -801,7 +801,7 @@ exports[`Router Config Builder > that the federatedClientSDL property is propaga "serviceSdl": "type Query {\\n accounts: [Account!]!\\n}\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n}" }, "upstreamSchema": { - "key": "71852430be20eb0aaee86a90ab19650150647219" + "key": "bfc3653bb145b8f0cf78d6102078aafe6656169e" } }, "requestTimeoutSeconds": "10", @@ -856,7 +856,7 @@ exports[`Router Config Builder > that the federatedClientSDL property is propaga "serviceSdl": "type Product {\\n upc: Int!\\n}\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n products: [Product]! @inaccessible\\n}" }, "upstreamSchema": { - "key": "b1a402c7daf53ae64e71597643e3ceb455c4ff74" + "key": "6b73a9206363fc22e76424c155c49e609fc6ebf2" } }, "requestTimeoutSeconds": "10", @@ -869,10 +869,10 @@ exports[`Router Config Builder > that the federatedClientSDL property is propaga ] } ], - "graphqlSchema": "directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\\n\\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\nscalar openfed__Scope\\n\\ntype Query {\\n accounts: [Account!]!\\n}\\n\\ntype Account {\\n id: Int!\\n products: [Product]!\\n}\\n\\ntype Product {\\n upc: Int!\\n}", + "graphqlSchema": "directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Query {\\n accounts: [Account!]!\\n}\\n\\ntype Account {\\n id: Int!\\n products: [Product]!\\n}\\n\\ntype Product {\\n upc: Int!\\n}", "stringStorage": { - "71852430be20eb0aaee86a90ab19650150647219": "schema {\\n query: Query\\n}\\n\\ndirective @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n}\\n\\ntype Query {\\n accounts: [Account!]!\\n}\\n\\nscalar openfed__FieldSet", - "b1a402c7daf53ae64e71597643e3ceb455c4ff74": "directive @authenticated on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\\n\\ndirective @composeDirective(name: String!) repeatable on SCHEMA\\n\\ndirective @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ndirective @interfaceObject on OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @override(from: String!) on FIELD_DEFINITION\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requiresScopes(scopes: [[openfed__Scope!]!]!) on ENUM | FIELD_DEFINITION | INTERFACE | OBJECT | SCALAR\\n\\ndirective @shareable repeatable on FIELD_DEFINITION | OBJECT\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n products: [Product]! @inaccessible\\n}\\n\\ntype Product {\\n upc: Int!\\n}\\n\\nscalar openfed__FieldSet\\n\\nscalar openfed__Scope" + "bfc3653bb145b8f0cf78d6102078aafe6656169e": "schema {\\n query: Query\\n}\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n}\\n\\ntype Query {\\n accounts: [Account!]!\\n}\\n\\nscalar openfed__FieldSet", + "6b73a9206363fc22e76424c155c49e609fc6ebf2": "directive @inaccessible on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n products: [Product]! @inaccessible\\n}\\n\\ntype Product {\\n upc: Int!\\n}\\n\\nscalar openfed__FieldSet" }, "graphqlClientSchema": "type Query {\\n accounts: [Account!]!\\n}\\n\\ntype Account {\\n id: Int!\\n}\\n\\ntype Product {\\n upc: Int!\\n}" }, @@ -937,7 +937,7 @@ exports[`Router Config Builder > that the federatedClientSDL property is propaga "serviceSdl": "type Query {\\n accounts: [Account!]!\\n}\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n}" }, "upstreamSchema": { - "key": "71852430be20eb0aaee86a90ab19650150647219" + "key": "bfc3653bb145b8f0cf78d6102078aafe6656169e" } }, "requestTimeoutSeconds": "10", @@ -992,7 +992,7 @@ exports[`Router Config Builder > that the federatedClientSDL property is propaga "serviceSdl": "type Product {\\n upc: Int!\\n}\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n products: [Product]! @tag(name: \\"test\\")\\n}" }, "upstreamSchema": { - "key": "b0d8fd1148ce938654fc21ef67d04364b633fc75" + "key": "baa5cc1f8e478b5a2897fc191952b3f2d3899264" } }, "requestTimeoutSeconds": "10", @@ -1007,8 +1007,8 @@ exports[`Router Config Builder > that the federatedClientSDL property is propaga ], "graphqlSchema": "directive @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Query {\\n accounts: [Account!]!\\n}\\n\\ntype Account {\\n id: Int!\\n products: [Product]!\\n}\\n\\ntype Product {\\n upc: Int!\\n}", "stringStorage": { - "71852430be20eb0aaee86a90ab19650150647219": "schema {\\n query: Query\\n}\\n\\ndirective @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n}\\n\\ntype Query {\\n accounts: [Account!]!\\n}\\n\\nscalar openfed__FieldSet", - "b0d8fd1148ce938654fc21ef67d04364b633fc75": "directive @extends on INTERFACE | OBJECT\\n\\ndirective @external on FIELD_DEFINITION | OBJECT\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @provides(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @requires(fields: openfed__FieldSet!) on FIELD_DEFINITION\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n products: [Product]! @tag(name: \\"test\\")\\n}\\n\\ntype Product {\\n upc: Int!\\n}\\n\\nscalar openfed__FieldSet" + "bfc3653bb145b8f0cf78d6102078aafe6656169e": "schema {\\n query: Query\\n}\\n\\ndirective @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n}\\n\\ntype Query {\\n accounts: [Account!]!\\n}\\n\\nscalar openfed__FieldSet", + "baa5cc1f8e478b5a2897fc191952b3f2d3899264": "directive @key(fields: openfed__FieldSet!, resolvable: Boolean = true) repeatable on INTERFACE | OBJECT\\n\\ndirective @tag(name: String!) repeatable on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION\\n\\ntype Account @key(fields: \\"id\\") {\\n id: Int!\\n products: [Product]! @tag(name: \\"test\\")\\n}\\n\\ntype Product {\\n upc: Int!\\n}\\n\\nscalar openfed__FieldSet" }, "graphqlClientSchema": "type Query {\\n accounts: [Account!]!\\n}\\n\\ntype Account {\\n id: Int!\\n products: [Product]!\\n}\\n\\ntype Product {\\n upc: Int!\\n}" },