{"version":3,"file":"vendor.graphql-language-service-interface.fcefadb4df1f72bd.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA0C;AAC+D;AAClG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP,sBAAsB,gCAAkB;AACxC,eAAe,gCAAkB;AACjC;AACA,sBAAsB,8BAAgB;AACtC,eAAe,8BAAgB;AAC/B;AACA,sBAAsB,kCAAoB,SAAS,sCAAe;AAClE,eAAe,kCAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA,gBAAgB,cAAc;AAC9B,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC3GoF;AACoD;AACmJ;AAC/L;AACiB;AACtG;AACP;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yBAAK,CAAC,wBAAK;AACnB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACO;AACP;AACA,+CAA+C,cAAc,QAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAS;AAC1B,eAAe,QAAQ;AACvB,cAAc,sBAAsB,+BAAkB,WAAW;AACjE,cAAc,yBAAyB,+BAAkB,WAAW;AACpE,cAAc,6BAA6B,+BAAkB,WAAW;AACxE,cAAc,yBAAyB,+BAAkB,WAAW;AACpE,cAAc,SAAS,SAAS,+BAAkB,cAAc;AAChE;AACA;AACA,iBAAiB,qBAAS;AAC1B,kBAAkB,qBAAS;AAC3B,sFAAsF,qBAAS;AAC/F;AACA;AACA,iBAAiB,qBAAS;AAC1B,iBAAiB,qBAAS;AAC1B,iBAAiB,qBAAS;AAC1B;AACA;AACA,iBAAiB,qBAAS;AAC1B,kBAAkB,qBAAS;AAC3B;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+BAAkB;AAC5C;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,iBAAiB,qBAAS;AAC1B,kBAAkB,qBAAS;AAC3B;AACA,iCAAiC,YAAY;AAC7C,4CAA4C,qBAAS;AACrD,kBAAkB,+BAAkB;AACpC,kBAAkB,+BAAkB;AACpC,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,iBAAiB,qBAAS;AAC1B,kBAAkB,qBAAS;AAC3B,kBAAkB,qBAAS;AAC3B,kBAAkB,qBAAS;AAC3B;AACA;AACA,iBAAiB,qBAAS;AAC1B,+BAA+B,mCAAY;AAC3C;AACA,eAAe,QAAQ;AACvB;AACA,kBAAkB,qBAAS;AAC3B,kBAAkB,qBAAS;AAC3B;AACA,qCAAqC,qBAAS;AAC9C;AACA;AACA,iBAAiB,qBAAS;AAC1B;AACA;AACA;AACA;AACA,kBAAkB,qBAAS;AAC3B,kBAAkB,qBAAS;AAC3B,kBAAkB,qBAAS;AAC3B;AACA,sCAAsC,qBAAS;AAC/C,yCAAyC,qBAAS;AAClD,yCAAyC,qBAAS;AAClD;AACA;AACA,iBAAiB,qBAAS;AAC1B;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA,QAAQ,sCAAe;AACvB;AACA;AACA,QAAQ,iCAAU,UAAU,sCAAe;AAC3C;AACA;AACA,QAAQ,oCAAa;AACrB,YAAY,sCAAe;AAC3B;AACA;AACA,YAAY,iCAAU,iBAAiB,sCAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,YAAY;AACjC;AACA,YAAY,sCAAe;AAC3B,wBAAwB,kCAAoB;AAC5C;AACA;AACA,wBAAwB,gCAAkB,EAAE,8BAAgB;AAC5D;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+BAAkB;AACxC;AACA;AACA;AACA;AACA;AACA,8CAA8C,6BAAgB;AAC9D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2BAA2B,mCAAY;AACvC;AACA,kCAAkC,kCAAe;AACjD;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+BAAkB;AACxC;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,gCAAgC,8BAAc;AAC9C,eAAe,QAAQ;AACvB;AACA;AACA,+BAA+B,8BAAc;AAC7C;AACA,sBAAsB,+BAAkB;AACxC,sBAAsB,8BAAc;AACpC,aAAa;AACb;AACA;AACA,+BAA+B,8BAAc;AAC7C;AACA,sBAAsB,+BAAkB;AACxC,sBAAsB,8BAAc;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,YAAY,iBAAiB,kCAAe;AACzE,yDAAyD,MAAM;AAC/D;AACA;AACA;AACA;AACA,+BAA+B,qBAAS;AACxC;AACA;AACA;AACA,+BAA+B,qBAAS;AACxC,0FAA0F,qBAAS;AACnG;AACA,sIAAsI,MAAM;AAC5I;AACA;AACA;AACA;AACA;AACA,gDAAgD,uCAAoB,+BAA+B,sBAAsB;AACzH;AACA;AACA,oCAAoC,uCAAoB,GAAG,8BAA8B;AACzF,2BAA2B;AAC3B;AACA;AACA,uIAAuI,MAAM;AAC7I;AACA;AACA;AACA;AACA;AACA,iDAAiD,oCAAiB,+BAA+B,uBAAuB;AACxH;AACA;AACA,oCAAoC,uCAAoB,GAAG,8BAA8B;AACzF,2BAA2B;AAC3B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,2DAA2D,MAAM;AACjE;AACA,qDAAqD,MAAM;AAC3D,mBAAmB,MAAM;AACzB;AACA,WAAW,QAAQ;AACnB;AACA;AACA,kBAAkB,+BAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,YAAY,qCAAc;AAC1B,iCAAiC,yCAAkB;AACnD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,oDAAoD,YAAY;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY,iBAAiB,kCAAe;AACpE;AACA,WAAW,QAAQ;AACnB,0BAA0B,mCAAY;AACtC;AACA;AACA;AACA,kBAAkB,+BAAkB;AACpC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAS;AACvC;AACA,QAAQ,sCAAe;AACvB,QAAQ,sCAAe;AACvB,QAAQ,0CAAc;AACtB,WAAW,QAAQ;AACnB;AACA;AACA,mCAAmC,iBAAiB,KAAK,8BAA8B;AACvF,cAAc,+BAAkB;AAChC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,wCAAwC;AACxC;AACA,2EAA2E,qBAAS;AACpF;AACA;AACA,2EAA2E,qBAAS;AACpF,gEAAgE,qBAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+BAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,YAAY;AACvB;AACO;AACP;AACA;AACA,2BAA2B,qBAAS;AACpC;AACA;AACA;AACA,sBAAsB,qBAAS;AAC/B;AACA,0BAA0B,iBAAI;AAC9B;AACA,iBAAiB;AACjB;AACA,0BAA0B,qBAAS;AACnC;AACA,iBAAiB;AACjB;AACA,0BAA0B,qBAAS;AACnC;AACA,8BAA8B,iBAAI;AAClC;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uBAAuB,YAAY,sBAAsB,8BAAW;AACpE,WAAW,QAAQ;AACnB;AACA;AACA,cAAc,+BAAkB;AAChC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA,kBAAkB,+BAAkB;AACpC,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,mBAAmB,4BAAY;AAC/B;AACA;AACA,qBAAqB,2BAAe;AACpC,oBAAoB,kBAAkB;AACtC,qBAAqB,2BAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB,qCAAqC,0CAAiB;AACtD,aAAa,qBAAS;AACtB;AACA;AACA,qBAAqB,qBAAS;AAC9B,8CAA8C,0CAAiB;AAC/D,qBAAqB,qBAAS;AAC9B,8CAA8C,0CAAiB;AAC/D;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY;AAChB;AACA,iBAAiB,qBAAS;AAC1B;AACA;AACA;AACA,iBAAiB,qBAAS;AAC1B;AACA;AACA,iBAAiB,qBAAS;AAC1B;AACA;AACA,iBAAiB,qBAAS;AAC1B,iBAAiB,qBAAS;AAC1B;AACA;AACA;AACA;AACA,iBAAiB,qBAAS;AAC1B,iBAAiB,qBAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAS;AAC1B,6BAA6B,mCAAY;AACzC;AACA,iBAAiB,qBAAS;AAC1B;AACA;AACA,iBAAiB,qBAAS;AAC1B;AACA;AACA,uCAAuC,uCAAoB;AAC3D;AACA;AACA,kCAAkC;AAClC,qBAAqB;AACrB;AACA;AACA,iBAAiB,qBAAS;AAC1B;AACA;AACA,wCAAwC,oCAAiB;AACzD;AACA;AACA,kCAAkC;AAClC,qBAAqB;AACrB;AACA;AACA,iBAAiB,qBAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAS;AACtC;AACA;AACA,6BAA6B,qBAAS;AACtC;AACA;AACA;AACA,6BAA6B,qBAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAS;AAC1B;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAS;AAC1B,iCAAiC,mCAAY;AAC7C;AACA,wCAAwC,kCAAe;AACvD;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAS;AAC1B,qCAAqC,sCAAe;AACpD;AACA,4CAA4C,8BAAW;AACvD;AACA,iBAAiB,qBAAS;AAC1B,mCAAmC,mCAAY;AAC/C;AACA,0CAA0C,yCAAsB;AAChE;AACA;AACA;AACA,iBAAiB,qBAAS;AAC1B;AACA;AACA;AACA,iBAAiB,qBAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC5rBA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AAC+E;AACxE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yDAAU;AACrB;AACA;AACA;AACA;AACA,WAAW,+DAAgB;AAC3B;AACO;AACP;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA,iEAAiE,KAAK;AACtE;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA,qEAAqE,KAAK;AAC1E;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtFmE;AACnC;AACgD;AACW;AACpF;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAK;AACpC;AACA,qBAAqB;AACrB;AACA;AACA;AACA,cAAc,wBAAK;AACnB;AACA;AACA,sBAAsB,uBAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,8CAA8C,sEAAuB;AACrE,iDAAiD,6BAAQ,eAAe,oDAAsB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,KAAK;AACzC;AACA;AACA,2BAA2B,gDAAK,KAAK,mDAAQ,oCAAoC,mDAAQ;AACzF,aAAa;AACb;AACA,KAAK;AACL;AACA;AACO,SAAS,uBAAQ;AACxB,mBAAmB,4BAAY;AAC/B;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,qBAAqB,2BAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gDAAK,KAAK,mDAAQ,mBAAmB,mDAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpH8C;AACoB;AAClE,QAAQ,kBAAkB,EAAE,iBAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,cAAc,wBAAK;AACnB;AACA;AACA;AACA;AACA;AACA,yBAAyB,yBAAK;AAC9B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,2BAA2B,+DAAgB;AAC3C,yBAAyB,+DAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe;AAClD,SAAS;AACT,wDAAwD;AACxD;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,SAAS;AACT;AACA,uDAAuD;AACvD;AACA;AACA;AACA,eAAe;AACf,4DAA4D;AAC5D;AACA;AACA;AACA,eAAe;AACf,uDAAuD;AACvD;AACA;AACA;AACA,eAAe;AACf,wDAAwD,iDAAiD;AACzG,yDAAyD;AACzD;AACA;AACA;AACA,eAAe;AACf,8DAA8D;AAC9D;AACA;AACA;AACA,eAAe;AACf,mDAAmD;AACnD;AACA;AACA,eAAe;AACf;AACA,mCAAmC,iDAAiD;AACpF,SAAS;AACT;AACA,mCAAmC,iDAAiD;AACpF,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1HuD;AACwB;AACxE;AACP,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC,kDAAkD,aAAa,QAAQ;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wBAAI;AACZ;AACA;AACA;AACA;AACA,QAAQ,wBAAI;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wBAAI;AACZ;AACA,IAAI,wBAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAI;AACR,IAAI,wBAAI;AACR;AACA,IAAI,wBAAI;AACR;AACA;AACA,IAAI,wBAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAI;AACR,IAAI,wBAAI;AACR;AACA;AACA;AACA;AACA;AACA,qBAAqB,iCAAc;AACnC;AACA,QAAQ,wBAAI;AACZ;AACA,0BAA0B,8BAAW;AACrC,QAAQ,wBAAI;AACZ;AACA,QAAQ,wBAAI;AACZ;AACA;AACA,QAAQ,wBAAI;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wBAAI;AACZ,QAAQ,wBAAI;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAI;AACR,IAAI,wBAAI;AACR,IAAI,wBAAI;AACR;AACA,SAAS,wBAAI;AACb;AACA;AACA;;ACnKA,IAAI,8BAAS,IAAI,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AAC0D;AACb;AAC6B;AACd;AACoB;AAC8E;AACpH;AAC4B;AACtE,QAAQ,sYAAsY,EAAE,iBAAI;AACpZ;AACA,KAAK,iBAAI,SAAS,uBAAU;AAC5B,KAAK,iBAAI,wBAAwB,uBAAU;AAC3C,KAAK,iBAAI,uBAAuB,uBAAU;AAC1C,KAAK,iBAAI,mBAAmB,uBAAU;AACtC,KAAK,iBAAI,0BAA0B,uBAAU;AAC7C,KAAK,iBAAI,wBAAwB,uBAAU;AAC3C,KAAK,iBAAI,yBAAyB,uBAAU;AAC5C,KAAK,iBAAI,gCAAgC,uBAAU;AACnD,KAAK,iBAAI,0BAA0B,uBAAU;AAC7C,KAAK,iBAAI,oBAAoB,uBAAU;AACvC,KAAK,iBAAI,6BAA6B,uBAAU;AAChD,KAAK,iBAAI,YAAY,uBAAU;AAC/B,wBAAwB,uBAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,IAAI;AACpD;AACA;AACA,eAAe,8BAAS;AACxB;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAoD;AACxE;AACA,iCAAiC,wBAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,8BAA8B,uBAAQ;AACtC;AACA;AACA,kCAAkC,mBAAmB;AACrD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qFAAqF,MAAM,EAAE,wBAAK,iBAAiB;AACnH,wBAAwB,QAAQ,EAAE,mBAAmB;AACrD;AACA;AACA,gCAAgC,wBAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC,SAAS;AACT;AACA;AACA,eAAe,8BAAS;AACxB;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,8BAAS;AACxB;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,8BAAS;AACxB;AACA;AACA;AACA,sBAAsB,wBAAK;AAC3B;AACA;AACA;AACA;AACA,yBAAyB,mEAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yCAAyC;AACxE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,8BAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,8BAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iCAAiC,oCAAoC;AACrE;AACA,SAAS;AACT;AACA;AACA,eAAe,8BAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iCAAiC,yCAAyC;AAC1E;AACA,SAAS;AACT;AACA;AACA,eAAe,8BAAS;AACxB,mBAAmB,UAAU;AAC7B,SAAS;AACT;AACA;AACA;;ACjPoC;AACS;AACb;AACC;AACS;AACkB;AACnB;AACzC","sources":["webpack://admin/./node_modules/graphql-language-service-interface/esm/autocompleteUtils.js","webpack://admin/./node_modules/graphql-language-service-interface/esm/getAutocompleteSuggestions.js","webpack://admin/./node_modules/graphql-language-service-interface/esm/getDefinition.js","webpack://admin/./node_modules/graphql-language-service-interface/esm/getDiagnostics.js","webpack://admin/./node_modules/graphql-language-service-interface/esm/getOutline.js","webpack://admin/./node_modules/graphql-language-service-interface/esm/getHoverInformation.js","webpack://admin/./node_modules/graphql-language-service-interface/esm/GraphQLLanguageService.js","webpack://admin/./node_modules/graphql-language-service-interface/esm/index.js"],"sourcesContent":["import { isCompositeType } from 'graphql';\nimport { SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef, } from 'graphql/type/introspection';\nexport function getDefinitionState(tokenState) {\n    let definitionState;\n    forEachState(tokenState, (state) => {\n        switch (state.kind) {\n            case 'Query':\n            case 'ShortQuery':\n            case 'Mutation':\n            case 'Subscription':\n            case 'FragmentDefinition':\n                definitionState = state;\n                break;\n        }\n    });\n    return definitionState;\n}\nexport function getFieldDef(schema, type, fieldName) {\n    if (fieldName === SchemaMetaFieldDef.name && schema.getQueryType() === type) {\n        return SchemaMetaFieldDef;\n    }\n    if (fieldName === TypeMetaFieldDef.name && schema.getQueryType() === type) {\n        return TypeMetaFieldDef;\n    }\n    if (fieldName === TypeNameMetaFieldDef.name && isCompositeType(type)) {\n        return TypeNameMetaFieldDef;\n    }\n    if ('getFields' in type) {\n        return type.getFields()[fieldName];\n    }\n    return null;\n}\nexport function forEachState(stack, fn) {\n    const reverseStateStack = [];\n    let state = stack;\n    while (state && state.kind) {\n        reverseStateStack.push(state);\n        state = state.prevState;\n    }\n    for (let i = reverseStateStack.length - 1; i >= 0; i--) {\n        fn(reverseStateStack[i]);\n    }\n}\nexport function objectValues(object) {\n    const keys = Object.keys(object);\n    const len = keys.length;\n    const values = new Array(len);\n    for (let i = 0; i < len; ++i) {\n        values[i] = object[keys[i]];\n    }\n    return values;\n}\nexport function hintList(token, list) {\n    return filterAndSortList(list, normalizeText(token.string));\n}\nfunction filterAndSortList(list, text) {\n    if (!text) {\n        return filterNonEmpty(list, entry => !entry.isDeprecated);\n    }\n    const byProximity = list.map(entry => ({\n        proximity: getProximity(normalizeText(entry.label), text),\n        entry,\n    }));\n    return filterNonEmpty(filterNonEmpty(byProximity, pair => pair.proximity <= 2), pair => !pair.entry.isDeprecated)\n        .sort((a, b) => (a.entry.isDeprecated ? 1 : 0) - (b.entry.isDeprecated ? 1 : 0) ||\n        a.proximity - b.proximity ||\n        a.entry.label.length - b.entry.label.length)\n        .map(pair => pair.entry);\n}\nfunction filterNonEmpty(array, predicate) {\n    const filtered = array.filter(predicate);\n    return filtered.length === 0 ? array : filtered;\n}\nfunction normalizeText(text) {\n    return text.toLowerCase().replace(/\\W/g, '');\n}\nfunction getProximity(suggestion, text) {\n    let proximity = lexicalDistance(text, suggestion);\n    if (suggestion.length > text.length) {\n        proximity -= suggestion.length - text.length - 1;\n        proximity += suggestion.indexOf(text) === 0 ? 0 : 0.5;\n    }\n    return proximity;\n}\nfunction lexicalDistance(a, b) {\n    let i;\n    let j;\n    const d = [];\n    const aLength = a.length;\n    const bLength = b.length;\n    for (i = 0; i <= aLength; i++) {\n        d[i] = [i];\n    }\n    for (j = 1; j <= bLength; j++) {\n        d[0][j] = j;\n    }\n    for (i = 1; i <= aLength; i++) {\n        for (j = 1; j <= bLength; j++) {\n            const cost = a[i - 1] === b[j - 1] ? 0 : 1;\n            d[i][j] = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost);\n            if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {\n                d[i][j] = Math.min(d[i][j], d[i - 2][j - 2] + cost);\n            }\n        }\n    }\n    return d[aLength][bLength];\n}\n//# sourceMappingURL=autocompleteUtils.js.map","import { CompletionItemKind, InsertTextFormat, } from 'vscode-languageserver-types';\nimport { isInterfaceType, GraphQLInterfaceType, GraphQLObjectType, Kind, DirectiveLocation, isListType, isNonNullType, } from 'graphql';\nimport { GraphQLBoolean, GraphQLEnumType, GraphQLInputObjectType, GraphQLList, SchemaMetaFieldDef, TypeMetaFieldDef, TypeNameMetaFieldDef, assertAbstractType, doTypesOverlap, getNamedType, getNullableType, isAbstractType, isCompositeType, isInputType, visit, parse, } from 'graphql';\nimport { CharacterStream, onlineParser, RuleKinds, } from 'graphql-language-service-parser';\nimport { forEachState, getDefinitionState, getFieldDef, hintList, objectValues, } from './autocompleteUtils';\nexport const SuggestionCommand = {\n    command: 'editor.action.triggerSuggest',\n    title: 'Suggestions',\n};\nconst collectFragmentDefs = (op) => {\n    const externalFragments = [];\n    if (op) {\n        visit(parse(op), {\n            FragmentDefinition(def) {\n                externalFragments.push(def);\n            },\n        });\n    }\n    return externalFragments;\n};\nexport function getAutocompleteSuggestions(schema, queryText, cursor, contextToken, fragmentDefs, options) {\n    var _a;\n    const opts = Object.assign(Object.assign({}, options), { schema });\n    const token = contextToken || getTokenAtPosition(queryText, cursor);\n    const state = token.state.kind === 'Invalid' ? token.state.prevState : token.state;\n    if (!state) {\n        return [];\n    }\n    const kind = state.kind;\n    const step = state.step;\n    const typeInfo = getTypeInfo(schema, token.state);\n    if (kind === RuleKinds.DOCUMENT) {\n        return hintList(token, [\n            { label: 'query', kind: CompletionItemKind.Function },\n            { label: 'mutation', kind: CompletionItemKind.Function },\n            { label: 'subscription', kind: CompletionItemKind.Function },\n            { label: 'fragment', kind: CompletionItemKind.Function },\n            { label: '{', kind: CompletionItemKind.Constructor },\n        ]);\n    }\n    if (kind === RuleKinds.IMPLEMENTS ||\n        (kind === RuleKinds.NAMED_TYPE &&\n            ((_a = state.prevState) === null || _a === void 0 ? void 0 : _a.kind) === RuleKinds.IMPLEMENTS)) {\n        return getSuggestionsForImplements(token, state, schema, queryText, typeInfo);\n    }\n    if (kind === RuleKinds.SELECTION_SET ||\n        kind === RuleKinds.FIELD ||\n        kind === RuleKinds.ALIASED_FIELD) {\n        return getSuggestionsForFieldNames(token, typeInfo, opts);\n    }\n    if (kind === RuleKinds.ARGUMENTS ||\n        (kind === RuleKinds.ARGUMENT && step === 0)) {\n        const argDefs = typeInfo.argDefs;\n        if (argDefs) {\n            return hintList(token, argDefs.map((argDef) => {\n                var _a;\n                return ({\n                    label: argDef.name,\n                    insertText: argDef.name + ': ',\n                    command: SuggestionCommand,\n                    detail: String(argDef.type),\n                    documentation: (_a = argDef.description) !== null && _a !== void 0 ? _a : undefined,\n                    kind: CompletionItemKind.Variable,\n                    type: argDef.type,\n                });\n            }));\n        }\n    }\n    if (kind === RuleKinds.OBJECT_VALUE ||\n        (kind === RuleKinds.OBJECT_FIELD && step === 0)) {\n        if (typeInfo.objectFieldDefs) {\n            const objectFields = objectValues(typeInfo.objectFieldDefs);\n            const completionKind = kind === RuleKinds.OBJECT_VALUE\n                ? CompletionItemKind.Value\n                : CompletionItemKind.Field;\n            return hintList(token, objectFields.map(field => {\n                var _a;\n                return ({\n                    label: field.name,\n                    detail: String(field.type),\n                    documentation: (_a = field.description) !== null && _a !== void 0 ? _a : undefined,\n                    kind: completionKind,\n                    type: field.type,\n                });\n            }));\n        }\n    }\n    if (kind === RuleKinds.ENUM_VALUE ||\n        (kind === RuleKinds.LIST_VALUE && step === 1) ||\n        (kind === RuleKinds.OBJECT_FIELD && step === 2) ||\n        (kind === RuleKinds.ARGUMENT && step === 2)) {\n        return getSuggestionsForInputValues(token, typeInfo, queryText, schema);\n    }\n    if (kind === RuleKinds.VARIABLE && step === 1) {\n        const namedInputType = getNamedType(typeInfo.inputType);\n        const variableDefinitions = getVariableCompletions(queryText, schema, token);\n        return hintList(token, variableDefinitions.filter(v => v.detail === (namedInputType === null || namedInputType === void 0 ? void 0 : namedInputType.name)));\n    }\n    if ((kind === RuleKinds.TYPE_CONDITION && step === 1) ||\n        (kind === RuleKinds.NAMED_TYPE &&\n            state.prevState != null &&\n            state.prevState.kind === RuleKinds.TYPE_CONDITION)) {\n        return getSuggestionsForFragmentTypeConditions(token, typeInfo, schema, kind);\n    }\n    if (kind === RuleKinds.FRAGMENT_SPREAD && step === 1) {\n        return getSuggestionsForFragmentSpread(token, typeInfo, schema, queryText, Array.isArray(fragmentDefs)\n            ? fragmentDefs\n            : collectFragmentDefs(fragmentDefs));\n    }\n    if ((kind === RuleKinds.VARIABLE_DEFINITION && step === 2) ||\n        (kind === RuleKinds.LIST_TYPE && step === 1) ||\n        (kind === RuleKinds.NAMED_TYPE &&\n            state.prevState &&\n            (state.prevState.kind === RuleKinds.VARIABLE_DEFINITION ||\n                state.prevState.kind === RuleKinds.LIST_TYPE ||\n                state.prevState.kind === RuleKinds.NON_NULL_TYPE))) {\n        return getSuggestionsForVariableDefinition(token, schema, kind);\n    }\n    if (kind === RuleKinds.DIRECTIVE) {\n        return getSuggestionsForDirective(token, state, schema, kind);\n    }\n    return [];\n}\nconst insertSuffix = ` {\\n  $1\\n}`;\nconst getInsertText = (field) => {\n    const type = field.type;\n    if (isCompositeType(type)) {\n        return insertSuffix;\n    }\n    if (isListType(type) && isCompositeType(type.ofType)) {\n        return insertSuffix;\n    }\n    if (isNonNullType(type)) {\n        if (isCompositeType(type.ofType)) {\n            return insertSuffix;\n        }\n        if (isListType(type.ofType) && isCompositeType(type.ofType.ofType)) {\n            return insertSuffix;\n        }\n    }\n    return null;\n};\nfunction getSuggestionsForFieldNames(token, typeInfo, options) {\n    var _a;\n    if (typeInfo.parentType) {\n        const parentType = typeInfo.parentType;\n        let fields = [];\n        if ('getFields' in parentType) {\n            fields = objectValues(parentType.getFields());\n        }\n        if (isCompositeType(parentType)) {\n            fields.push(TypeNameMetaFieldDef);\n        }\n        if (parentType === ((_a = options === null || options === void 0 ? void 0 : options.schema) === null || _a === void 0 ? void 0 : _a.getQueryType())) {\n            fields.push(SchemaMetaFieldDef, TypeMetaFieldDef);\n        }\n        return hintList(token, fields.map((field, index) => {\n            var _a;\n            const suggestion = {\n                sortText: String(index) + field.name,\n                label: field.name,\n                detail: String(field.type),\n                documentation: (_a = field.description) !== null && _a !== void 0 ? _a : undefined,\n                deprecated: Boolean(field.deprecationReason),\n                isDeprecated: Boolean(field.deprecationReason),\n                deprecationReason: field.deprecationReason,\n                kind: CompletionItemKind.Field,\n                type: field.type,\n            };\n            const insertText = getInsertText(field);\n            if (insertText) {\n                suggestion.insertText = field.name + insertText;\n                suggestion.insertTextFormat = InsertTextFormat.Snippet;\n                suggestion.command = SuggestionCommand;\n            }\n            return suggestion;\n        }));\n    }\n    return [];\n}\nfunction getSuggestionsForInputValues(token, typeInfo, queryText, schema) {\n    const namedInputType = getNamedType(typeInfo.inputType);\n    const queryVariables = getVariableCompletions(queryText, schema, token).filter(v => v.detail === namedInputType.name);\n    if (namedInputType instanceof GraphQLEnumType) {\n        const values = namedInputType.getValues();\n        return hintList(token, values\n            .map((value) => {\n            var _a;\n            return ({\n                label: value.name,\n                detail: String(namedInputType),\n                documentation: (_a = value.description) !== null && _a !== void 0 ? _a : undefined,\n                deprecated: Boolean(value.deprecationReason),\n                isDeprecated: Boolean(value.deprecationReason),\n                deprecationReason: value.deprecationReason,\n                kind: CompletionItemKind.EnumMember,\n                type: namedInputType,\n            });\n        })\n            .concat(queryVariables));\n    }\n    else if (namedInputType === GraphQLBoolean) {\n        return hintList(token, queryVariables.concat([\n            {\n                label: 'true',\n                detail: String(GraphQLBoolean),\n                documentation: 'Not false.',\n                kind: CompletionItemKind.Variable,\n                type: GraphQLBoolean,\n            },\n            {\n                label: 'false',\n                detail: String(GraphQLBoolean),\n                documentation: 'Not true.',\n                kind: CompletionItemKind.Variable,\n                type: GraphQLBoolean,\n            },\n        ]));\n    }\n    return queryVariables;\n}\nfunction getSuggestionsForImplements(token, tokenState, schema, documentText, typeInfo) {\n    if (tokenState.needsSeperator) {\n        return [];\n    }\n    const typeMap = schema.getTypeMap();\n    const schemaInterfaces = objectValues(typeMap).filter(isInterfaceType);\n    const schemaInterfaceNames = schemaInterfaces.map(({ name }) => name);\n    const inlineInterfaces = new Set();\n    runOnlineParser(documentText, (_, state) => {\n        var _a, _b, _c, _d, _e;\n        if (state.name) {\n            if (state.kind === RuleKinds.INTERFACE_DEF &&\n                !schemaInterfaceNames.includes(state.name)) {\n                inlineInterfaces.add(state.name);\n            }\n            if (state.kind === RuleKinds.NAMED_TYPE &&\n                ((_a = state.prevState) === null || _a === void 0 ? void 0 : _a.kind) === RuleKinds.IMPLEMENTS) {\n                if (typeInfo.interfaceDef) {\n                    const existingType = (_b = typeInfo.interfaceDef) === null || _b === void 0 ? void 0 : _b.getInterfaces().find(({ name }) => name === state.name);\n                    if (existingType) {\n                        return;\n                    }\n                    const type = schema.getType(state.name);\n                    const interfaceConfig = (_c = typeInfo.interfaceDef) === null || _c === void 0 ? void 0 : _c.toConfig();\n                    typeInfo.interfaceDef = new GraphQLInterfaceType(Object.assign(Object.assign({}, interfaceConfig), { interfaces: [\n                            ...interfaceConfig.interfaces,\n                            type ||\n                                new GraphQLInterfaceType({ name: state.name, fields: {} }),\n                        ] }));\n                }\n                else if (typeInfo.objectTypeDef) {\n                    const existingType = (_d = typeInfo.objectTypeDef) === null || _d === void 0 ? void 0 : _d.getInterfaces().find(({ name }) => name === state.name);\n                    if (existingType) {\n                        return;\n                    }\n                    const type = schema.getType(state.name);\n                    const objectTypeConfig = (_e = typeInfo.objectTypeDef) === null || _e === void 0 ? void 0 : _e.toConfig();\n                    typeInfo.objectTypeDef = new GraphQLObjectType(Object.assign(Object.assign({}, objectTypeConfig), { interfaces: [\n                            ...objectTypeConfig.interfaces,\n                            type ||\n                                new GraphQLInterfaceType({ name: state.name, fields: {} }),\n                        ] }));\n                }\n            }\n        }\n    });\n    const currentTypeToExtend = typeInfo.interfaceDef || typeInfo.objectTypeDef;\n    const siblingInterfaces = (currentTypeToExtend === null || currentTypeToExtend === void 0 ? void 0 : currentTypeToExtend.getInterfaces()) || [];\n    const siblingInterfaceNames = siblingInterfaces.map(({ name }) => name);\n    const possibleInterfaces = schemaInterfaces\n        .concat([...inlineInterfaces].map(name => ({ name })))\n        .filter(({ name }) => name !== (currentTypeToExtend === null || currentTypeToExtend === void 0 ? void 0 : currentTypeToExtend.name) &&\n        !siblingInterfaceNames.includes(name));\n    return hintList(token, possibleInterfaces.map(type => {\n        const result = {\n            label: type.name,\n            kind: CompletionItemKind.Interface,\n            type,\n        };\n        if (type === null || type === void 0 ? void 0 : type.description) {\n            result.documentation = type.description;\n        }\n        return result;\n    }));\n}\nfunction getSuggestionsForFragmentTypeConditions(token, typeInfo, schema, _kind) {\n    let possibleTypes;\n    if (typeInfo.parentType) {\n        if (isAbstractType(typeInfo.parentType)) {\n            const abstractType = assertAbstractType(typeInfo.parentType);\n            const possibleObjTypes = schema.getPossibleTypes(abstractType);\n            const possibleIfaceMap = Object.create(null);\n            possibleObjTypes.forEach(type => {\n                type.getInterfaces().forEach(iface => {\n                    possibleIfaceMap[iface.name] = iface;\n                });\n            });\n            possibleTypes = possibleObjTypes.concat(objectValues(possibleIfaceMap));\n        }\n        else {\n            possibleTypes = [typeInfo.parentType];\n        }\n    }\n    else {\n        const typeMap = schema.getTypeMap();\n        possibleTypes = objectValues(typeMap).filter(isCompositeType);\n    }\n    return hintList(token, possibleTypes.map(type => {\n        const namedType = getNamedType(type);\n        return {\n            label: String(type),\n            documentation: (namedType && namedType.description) || '',\n            kind: CompletionItemKind.Field,\n        };\n    }));\n}\nfunction getSuggestionsForFragmentSpread(token, typeInfo, schema, queryText, fragmentDefs) {\n    if (!queryText) {\n        return [];\n    }\n    const typeMap = schema.getTypeMap();\n    const defState = getDefinitionState(token.state);\n    const fragments = getFragmentDefinitions(queryText);\n    if (fragmentDefs && fragmentDefs.length > 0) {\n        fragments.push(...fragmentDefs);\n    }\n    const relevantFrags = fragments.filter(frag => typeMap[frag.typeCondition.name.value] &&\n        !(defState &&\n            defState.kind === RuleKinds.FRAGMENT_DEFINITION &&\n            defState.name === frag.name.value) &&\n        isCompositeType(typeInfo.parentType) &&\n        isCompositeType(typeMap[frag.typeCondition.name.value]) &&\n        doTypesOverlap(schema, typeInfo.parentType, typeMap[frag.typeCondition.name.value]));\n    return hintList(token, relevantFrags.map(frag => ({\n        label: frag.name.value,\n        detail: String(typeMap[frag.typeCondition.name.value]),\n        documentation: `fragment ${frag.name.value} on ${frag.typeCondition.name.value}`,\n        kind: CompletionItemKind.Field,\n        type: typeMap[frag.typeCondition.name.value],\n    })));\n}\nconst getParentDefinition = (state, kind) => {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n    if (((_a = state.prevState) === null || _a === void 0 ? void 0 : _a.kind) === kind) {\n        return state.prevState;\n    }\n    if (((_c = (_b = state.prevState) === null || _b === void 0 ? void 0 : _b.prevState) === null || _c === void 0 ? void 0 : _c.kind) === kind) {\n        return state.prevState.prevState;\n    }\n    if (((_f = (_e = (_d = state.prevState) === null || _d === void 0 ? void 0 : _d.prevState) === null || _e === void 0 ? void 0 : _e.prevState) === null || _f === void 0 ? void 0 : _f.kind) === kind) {\n        return state.prevState.prevState.prevState;\n    }\n    if (((_k = (_j = (_h = (_g = state.prevState) === null || _g === void 0 ? void 0 : _g.prevState) === null || _h === void 0 ? void 0 : _h.prevState) === null || _j === void 0 ? void 0 : _j.prevState) === null || _k === void 0 ? void 0 : _k.kind) === kind) {\n        return state.prevState.prevState.prevState.prevState;\n    }\n};\nexport function getVariableCompletions(queryText, schema, token) {\n    let variableName = null;\n    let variableType;\n    const definitions = Object.create({});\n    runOnlineParser(queryText, (_, state) => {\n        if ((state === null || state === void 0 ? void 0 : state.kind) === RuleKinds.VARIABLE && state.name) {\n            variableName = state.name;\n        }\n        if ((state === null || state === void 0 ? void 0 : state.kind) === RuleKinds.NAMED_TYPE && variableName) {\n            const parentDefinition = getParentDefinition(state, RuleKinds.TYPE);\n            if (parentDefinition === null || parentDefinition === void 0 ? void 0 : parentDefinition.type) {\n                variableType = schema.getType(parentDefinition === null || parentDefinition === void 0 ? void 0 : parentDefinition.type);\n            }\n        }\n        if (variableName && variableType) {\n            if (!definitions[variableName]) {\n                definitions[variableName] = {\n                    detail: variableType.toString(),\n                    insertText: token.string === '$' ? variableName : '$' + variableName,\n                    label: variableName,\n                    type: variableType,\n                    kind: CompletionItemKind.Variable,\n                };\n                variableName = null;\n                variableType = null;\n            }\n        }\n    });\n    return objectValues(definitions);\n}\nexport function getFragmentDefinitions(queryText) {\n    const fragmentDefs = [];\n    runOnlineParser(queryText, (_, state) => {\n        if (state.kind === RuleKinds.FRAGMENT_DEFINITION &&\n            state.name &&\n            state.type) {\n            fragmentDefs.push({\n                kind: RuleKinds.FRAGMENT_DEFINITION,\n                name: {\n                    kind: Kind.NAME,\n                    value: state.name,\n                },\n                selectionSet: {\n                    kind: RuleKinds.SELECTION_SET,\n                    selections: [],\n                },\n                typeCondition: {\n                    kind: RuleKinds.NAMED_TYPE,\n                    name: {\n                        kind: Kind.NAME,\n                        value: state.type,\n                    },\n                },\n            });\n        }\n    });\n    return fragmentDefs;\n}\nfunction getSuggestionsForVariableDefinition(token, schema, _kind) {\n    const inputTypeMap = schema.getTypeMap();\n    const inputTypes = objectValues(inputTypeMap).filter(isInputType);\n    return hintList(token, inputTypes.map((type) => ({\n        label: type.name,\n        documentation: type.description,\n        kind: CompletionItemKind.Variable,\n    })));\n}\nfunction getSuggestionsForDirective(token, state, schema, _kind) {\n    if (state.prevState && state.prevState.kind) {\n        const directives = schema\n            .getDirectives()\n            .filter(directive => canUseDirective(state.prevState, directive));\n        return hintList(token, directives.map(directive => ({\n            label: directive.name,\n            documentation: directive.description || '',\n            kind: CompletionItemKind.Function,\n        })));\n    }\n    return [];\n}\nexport function getTokenAtPosition(queryText, cursor) {\n    let styleAtCursor = null;\n    let stateAtCursor = null;\n    let stringAtCursor = null;\n    const token = runOnlineParser(queryText, (stream, state, style, index) => {\n        if (index === cursor.line) {\n            if (stream.getCurrentPosition() >= cursor.character) {\n                styleAtCursor = style;\n                stateAtCursor = Object.assign({}, state);\n                stringAtCursor = stream.current();\n                return 'BREAK';\n            }\n        }\n    });\n    return {\n        start: token.start,\n        end: token.end,\n        string: stringAtCursor || token.string,\n        state: stateAtCursor || token.state,\n        style: styleAtCursor || token.style,\n    };\n}\nexport function runOnlineParser(queryText, callback) {\n    const lines = queryText.split('\\n');\n    const parser = onlineParser();\n    let state = parser.startState();\n    let style = '';\n    let stream = new CharacterStream('');\n    for (let i = 0; i < lines.length; i++) {\n        stream = new CharacterStream(lines[i]);\n        while (!stream.eol()) {\n            style = parser.token(stream, state);\n            const code = callback(stream, state, style, i);\n            if (code === 'BREAK') {\n                break;\n            }\n        }\n        callback(stream, state, style, i);\n        if (!state.kind) {\n            state = parser.startState();\n        }\n    }\n    return {\n        start: stream.getStartOfToken(),\n        end: stream.getCurrentPosition(),\n        string: stream.current(),\n        state,\n        style,\n    };\n}\nexport function canUseDirective(state, directive) {\n    if (!state || !state.kind) {\n        return false;\n    }\n    const kind = state.kind;\n    const locations = directive.locations;\n    switch (kind) {\n        case RuleKinds.QUERY:\n            return locations.indexOf(DirectiveLocation.QUERY) !== -1;\n        case RuleKinds.MUTATION:\n            return locations.indexOf(DirectiveLocation.MUTATION) !== -1;\n        case RuleKinds.SUBSCRIPTION:\n            return locations.indexOf(DirectiveLocation.SUBSCRIPTION) !== -1;\n        case RuleKinds.FIELD:\n        case RuleKinds.ALIASED_FIELD:\n            return locations.indexOf(DirectiveLocation.FIELD) !== -1;\n        case RuleKinds.FRAGMENT_DEFINITION:\n            return locations.indexOf(DirectiveLocation.FRAGMENT_DEFINITION) !== -1;\n        case RuleKinds.FRAGMENT_SPREAD:\n            return locations.indexOf(DirectiveLocation.FRAGMENT_SPREAD) !== -1;\n        case RuleKinds.INLINE_FRAGMENT:\n            return locations.indexOf(DirectiveLocation.INLINE_FRAGMENT) !== -1;\n        case RuleKinds.SCHEMA_DEF:\n            return locations.indexOf(DirectiveLocation.SCHEMA) !== -1;\n        case RuleKinds.SCALAR_DEF:\n            return locations.indexOf(DirectiveLocation.SCALAR) !== -1;\n        case RuleKinds.OBJECT_TYPE_DEF:\n            return locations.indexOf(DirectiveLocation.OBJECT) !== -1;\n        case RuleKinds.FIELD_DEF:\n            return locations.indexOf(DirectiveLocation.FIELD_DEFINITION) !== -1;\n        case RuleKinds.INTERFACE_DEF:\n            return locations.indexOf(DirectiveLocation.INTERFACE) !== -1;\n        case RuleKinds.UNION_DEF:\n            return locations.indexOf(DirectiveLocation.UNION) !== -1;\n        case RuleKinds.ENUM_DEF:\n            return locations.indexOf(DirectiveLocation.ENUM) !== -1;\n        case RuleKinds.ENUM_VALUE:\n            return locations.indexOf(DirectiveLocation.ENUM_VALUE) !== -1;\n        case RuleKinds.INPUT_DEF:\n            return locations.indexOf(DirectiveLocation.INPUT_OBJECT) !== -1;\n        case RuleKinds.INPUT_VALUE_DEF:\n            const prevStateKind = state.prevState && state.prevState.kind;\n            switch (prevStateKind) {\n                case RuleKinds.ARGUMENTS_DEF:\n                    return (locations.indexOf(DirectiveLocation.ARGUMENT_DEFINITION) !== -1);\n                case RuleKinds.INPUT_DEF:\n                    return (locations.indexOf(DirectiveLocation.INPUT_FIELD_DEFINITION) !== -1);\n            }\n    }\n    return false;\n}\nexport function getTypeInfo(schema, tokenState) {\n    let argDef;\n    let argDefs;\n    let directiveDef;\n    let enumValue;\n    let fieldDef;\n    let inputType;\n    let objectTypeDef;\n    let objectFieldDefs;\n    let parentType;\n    let type;\n    let interfaceDef;\n    forEachState(tokenState, state => {\n        switch (state.kind) {\n            case RuleKinds.QUERY:\n            case 'ShortQuery':\n                type = schema.getQueryType();\n                break;\n            case RuleKinds.MUTATION:\n                type = schema.getMutationType();\n                break;\n            case RuleKinds.SUBSCRIPTION:\n                type = schema.getSubscriptionType();\n                break;\n            case RuleKinds.INLINE_FRAGMENT:\n            case RuleKinds.FRAGMENT_DEFINITION:\n                if (state.type) {\n                    type = schema.getType(state.type);\n                }\n                break;\n            case RuleKinds.FIELD:\n            case RuleKinds.ALIASED_FIELD: {\n                if (!type || !state.name) {\n                    fieldDef = null;\n                }\n                else {\n                    fieldDef = parentType\n                        ? getFieldDef(schema, parentType, state.name)\n                        : null;\n                    type = fieldDef ? fieldDef.type : null;\n                }\n                break;\n            }\n            case RuleKinds.SELECTION_SET:\n                parentType = getNamedType(type);\n                break;\n            case RuleKinds.DIRECTIVE:\n                directiveDef = state.name ? schema.getDirective(state.name) : null;\n                break;\n            case RuleKinds.INTERFACE_DEF:\n                if (state.name) {\n                    objectTypeDef = null;\n                    interfaceDef = new GraphQLInterfaceType({\n                        name: state.name,\n                        interfaces: [],\n                        fields: {},\n                    });\n                }\n                break;\n            case RuleKinds.OBJECT_TYPE_DEF:\n                if (state.name) {\n                    interfaceDef = null;\n                    objectTypeDef = new GraphQLObjectType({\n                        name: state.name,\n                        interfaces: [],\n                        fields: {},\n                    });\n                }\n                break;\n            case RuleKinds.ARGUMENTS: {\n                if (!state.prevState) {\n                    argDefs = null;\n                }\n                else {\n                    switch (state.prevState.kind) {\n                        case RuleKinds.FIELD:\n                            argDefs = fieldDef && fieldDef.args;\n                            break;\n                        case RuleKinds.DIRECTIVE:\n                            argDefs =\n                                directiveDef && directiveDef.args;\n                            break;\n                        case RuleKinds.ALIASED_FIELD: {\n                            const name = state.prevState && state.prevState.name;\n                            if (!name) {\n                                argDefs = null;\n                                break;\n                            }\n                            const field = parentType\n                                ? getFieldDef(schema, parentType, name)\n                                : null;\n                            if (!field) {\n                                argDefs = null;\n                                break;\n                            }\n                            argDefs = field.args;\n                            break;\n                        }\n                        default:\n                            argDefs = null;\n                            break;\n                    }\n                }\n                break;\n            }\n            case RuleKinds.ARGUMENT:\n                if (argDefs) {\n                    for (let i = 0; i < argDefs.length; i++) {\n                        if (argDefs[i].name === state.name) {\n                            argDef = argDefs[i];\n                            break;\n                        }\n                    }\n                }\n                inputType = argDef && argDef.type;\n                break;\n            case RuleKinds.ENUM_VALUE:\n                const enumType = getNamedType(inputType);\n                enumValue =\n                    enumType instanceof GraphQLEnumType\n                        ? enumType\n                            .getValues()\n                            .find((val) => val.value === state.name)\n                        : null;\n                break;\n            case RuleKinds.LIST_VALUE:\n                const nullableType = getNullableType(inputType);\n                inputType =\n                    nullableType instanceof GraphQLList ? nullableType.ofType : null;\n                break;\n            case RuleKinds.OBJECT_VALUE:\n                const objectType = getNamedType(inputType);\n                objectFieldDefs =\n                    objectType instanceof GraphQLInputObjectType\n                        ? objectType.getFields()\n                        : null;\n                break;\n            case RuleKinds.OBJECT_FIELD:\n                const objectField = state.name && objectFieldDefs ? objectFieldDefs[state.name] : null;\n                inputType = objectField && objectField.type;\n                break;\n            case RuleKinds.NAMED_TYPE:\n                if (state.name) {\n                    type = schema.getType(state.name);\n                }\n                break;\n        }\n    });\n    return {\n        argDef,\n        argDefs,\n        directiveDef,\n        enumValue,\n        fieldDef,\n        inputType,\n        objectFieldDefs,\n        parentType,\n        type,\n        interfaceDef,\n        objectTypeDef,\n    };\n}\n//# sourceMappingURL=getAutocompleteSuggestions.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nimport { locToRange, offsetToPosition, } from 'graphql-language-service-utils';\nexport const LANGUAGE = 'GraphQL';\nfunction assert(value, message) {\n    if (!value) {\n        throw new Error(message);\n    }\n}\nfunction getRange(text, node) {\n    const location = node.loc;\n    assert(location, 'Expected ASTNode to have a location.');\n    return locToRange(text, location);\n}\nfunction getPosition(text, node) {\n    const location = node.loc;\n    assert(location, 'Expected ASTNode to have a location.');\n    return offsetToPosition(text, location.start);\n}\nexport function getDefinitionQueryResultForNamedType(text, node, dependencies) {\n    return __awaiter(this, void 0, void 0, function* () {\n        const name = node.name.value;\n        const defNodes = dependencies.filter(({ definition }) => definition.name && definition.name.value === name);\n        if (defNodes.length === 0) {\n            throw Error(`Definition not found for GraphQL type ${name}`);\n        }\n        const definitions = defNodes.map(({ filePath, content, definition }) => getDefinitionForNodeDefinition(filePath || '', content, definition));\n        return {\n            definitions,\n            queryRange: definitions.map(_ => getRange(text, node)),\n        };\n    });\n}\nexport function getDefinitionQueryResultForFragmentSpread(text, fragment, dependencies) {\n    return __awaiter(this, void 0, void 0, function* () {\n        const name = fragment.name.value;\n        const defNodes = dependencies.filter(({ definition }) => definition.name.value === name);\n        if (defNodes.length === 0) {\n            throw Error(`Definition not found for GraphQL fragment ${name}`);\n        }\n        const definitions = defNodes.map(({ filePath, content, definition }) => getDefinitionForFragmentDefinition(filePath || '', content, definition));\n        return {\n            definitions,\n            queryRange: definitions.map(_ => getRange(text, fragment)),\n        };\n    });\n}\nexport function getDefinitionQueryResultForDefinitionNode(path, text, definition) {\n    return {\n        definitions: [getDefinitionForFragmentDefinition(path, text, definition)],\n        queryRange: definition.name ? [getRange(text, definition.name)] : [],\n    };\n}\nfunction getDefinitionForFragmentDefinition(path, text, definition) {\n    const name = definition.name;\n    if (!name) {\n        throw Error('Expected ASTNode to have a Name.');\n    }\n    return {\n        path,\n        position: getPosition(text, definition),\n        range: getRange(text, definition),\n        name: name.value || '',\n        language: LANGUAGE,\n        projectRoot: path,\n    };\n}\nfunction getDefinitionForNodeDefinition(path, text, definition) {\n    const name = definition.name;\n    assert(name, 'Expected ASTNode to have a Name.');\n    return {\n        path,\n        position: getPosition(text, definition),\n        range: getRange(text, definition),\n        name: name.value || '',\n        language: LANGUAGE,\n        projectRoot: path,\n    };\n}\n//# sourceMappingURL=getDefinition.js.map","import { print, validate, NoDeprecatedCustomRule, } from 'graphql';\nimport { parse } from 'graphql';\nimport { CharacterStream, onlineParser } from 'graphql-language-service-parser';\nimport { Range, validateWithCustomRules, Position, } from 'graphql-language-service-utils';\nexport const SEVERITY = {\n    Error: 'Error',\n    Warning: 'Warning',\n    Information: 'Information',\n    Hint: 'Hint',\n};\nexport const DIAGNOSTIC_SEVERITY = {\n    [SEVERITY.Error]: 1,\n    [SEVERITY.Warning]: 2,\n    [SEVERITY.Information]: 3,\n    [SEVERITY.Hint]: 4,\n};\nconst invariant = (condition, message) => {\n    if (!condition) {\n        throw new Error(message);\n    }\n};\nexport function getDiagnostics(query, schema = null, customRules, isRelayCompatMode, externalFragments) {\n    let ast = null;\n    if (externalFragments) {\n        if (typeof externalFragments === 'string') {\n            query += '\\n\\n' + externalFragments;\n        }\n        else {\n            query +=\n                '\\n\\n' +\n                    externalFragments.reduce((agg, node) => {\n                        agg += print(node) + '\\n\\n';\n                        return agg;\n                    }, '');\n        }\n    }\n    try {\n        ast = parse(query);\n    }\n    catch (error) {\n        const range = getRange(error.locations[0], query);\n        return [\n            {\n                severity: DIAGNOSTIC_SEVERITY.Error,\n                message: error.message,\n                source: 'GraphQL: Syntax',\n                range,\n            },\n        ];\n    }\n    return validateQuery(ast, schema, customRules, isRelayCompatMode);\n}\nexport function validateQuery(ast, schema = null, customRules, isRelayCompatMode) {\n    if (!schema) {\n        return [];\n    }\n    const validationErrorAnnotations = mapCat(validateWithCustomRules(schema, ast, customRules, isRelayCompatMode), error => annotations(error, DIAGNOSTIC_SEVERITY.Error, 'Validation'));\n    const deprecationWarningAnnotations = mapCat(validate(schema, ast, [NoDeprecatedCustomRule]), error => annotations(error, DIAGNOSTIC_SEVERITY.Warning, 'Deprecation'));\n    return validationErrorAnnotations.concat(deprecationWarningAnnotations);\n}\nfunction mapCat(array, mapper) {\n    return Array.prototype.concat.apply([], array.map(mapper));\n}\nfunction annotations(error, severity, type) {\n    if (!error.nodes) {\n        return [];\n    }\n    const highlightedNodes = [];\n    error.nodes.forEach(node => {\n        const highlightNode = node.kind !== 'Variable' && 'name' in node && node.name !== undefined\n            ? node.name\n            : 'variable' in node && node.variable !== undefined\n                ? node.variable\n                : node;\n        if (highlightNode) {\n            invariant(error.locations, 'GraphQL validation error requires locations.');\n            const loc = error.locations[0];\n            const highlightLoc = getLocation(highlightNode);\n            const end = loc.column + (highlightLoc.end - highlightLoc.start);\n            highlightedNodes.push({\n                source: `GraphQL: ${type}`,\n                message: error.message,\n                severity,\n                range: new Range(new Position(loc.line - 1, loc.column - 1), new Position(loc.line - 1, end)),\n            });\n        }\n    });\n    return highlightedNodes;\n}\nexport function getRange(location, queryText) {\n    const parser = onlineParser();\n    const state = parser.startState();\n    const lines = queryText.split('\\n');\n    invariant(lines.length >= location.line, 'Query text must have more lines than where the error happened');\n    let stream = null;\n    for (let i = 0; i < location.line; i++) {\n        stream = new CharacterStream(lines[i]);\n        while (!stream.eol()) {\n            const style = parser.token(stream, state);\n            if (style === 'invalidchar') {\n                break;\n            }\n        }\n    }\n    invariant(stream, 'Expected Parser stream to be available.');\n    const line = location.line - 1;\n    const start = stream.getStartOfToken();\n    const end = stream.getCurrentPosition();\n    return new Range(new Position(line, start), new Position(line, end));\n}\nfunction getLocation(node) {\n    const typeCastedNode = node;\n    const location = typeCastedNode.loc;\n    invariant(location, 'Expected ASTNode to have a location.');\n    return location;\n}\n//# sourceMappingURL=getDiagnostics.js.map","import { Kind, parse, visit, } from 'graphql';\nimport { offsetToPosition } from 'graphql-language-service-utils';\nconst { INLINE_FRAGMENT } = Kind;\nconst OUTLINEABLE_KINDS = {\n    Field: true,\n    OperationDefinition: true,\n    Document: true,\n    SelectionSet: true,\n    Name: true,\n    FragmentDefinition: true,\n    FragmentSpread: true,\n    InlineFragment: true,\n    ObjectTypeDefinition: true,\n    InputObjectTypeDefinition: true,\n    InterfaceTypeDefinition: true,\n    EnumTypeDefinition: true,\n    EnumValueDefinition: true,\n    InputValueDefinition: true,\n    FieldDefinition: true,\n};\nexport function getOutline(documentText) {\n    let ast;\n    try {\n        ast = parse(documentText);\n    }\n    catch (error) {\n        return null;\n    }\n    const visitorFns = outlineTreeConverter(documentText);\n    const outlineTrees = visit(ast, {\n        leave(node) {\n            if (visitorFns !== undefined && node.kind in visitorFns) {\n                return visitorFns[node.kind](node);\n            }\n            return null;\n        },\n    });\n    return { outlineTrees };\n}\nfunction outlineTreeConverter(docText) {\n    const meta = (node) => {\n        return {\n            representativeName: node.name,\n            startPosition: offsetToPosition(docText, node.loc.start),\n            endPosition: offsetToPosition(docText, node.loc.end),\n            kind: node.kind,\n            children: node.selectionSet || node.fields || node.values || node.arguments || [],\n        };\n    };\n    return {\n        Field: (node) => {\n            const tokenizedText = node.alias\n                ? [buildToken('plain', node.alias), buildToken('plain', ': ')]\n                : [];\n            tokenizedText.push(buildToken('plain', node.name));\n            return Object.assign({ tokenizedText }, meta(node));\n        },\n        OperationDefinition: (node) => (Object.assign({ tokenizedText: [\n                buildToken('keyword', node.operation),\n                buildToken('whitespace', ' '),\n                buildToken('class-name', node.name),\n            ] }, meta(node))),\n        Document: (node) => node.definitions,\n        SelectionSet: (node) => concatMap(node.selections, (child) => {\n            return child.kind === INLINE_FRAGMENT ? child.selectionSet : child;\n        }),\n        Name: (node) => node.value,\n        FragmentDefinition: (node) => (Object.assign({ tokenizedText: [\n                buildToken('keyword', 'fragment'),\n                buildToken('whitespace', ' '),\n                buildToken('class-name', node.name),\n            ] }, meta(node))),\n        InterfaceTypeDefinition: (node) => (Object.assign({ tokenizedText: [\n                buildToken('keyword', 'interface'),\n                buildToken('whitespace', ' '),\n                buildToken('class-name', node.name),\n            ] }, meta(node))),\n        EnumTypeDefinition: (node) => (Object.assign({ tokenizedText: [\n                buildToken('keyword', 'enum'),\n                buildToken('whitespace', ' '),\n                buildToken('class-name', node.name),\n            ] }, meta(node))),\n        EnumValueDefinition: (node) => (Object.assign({ tokenizedText: [buildToken('plain', node.name)] }, meta(node))),\n        ObjectTypeDefinition: (node) => (Object.assign({ tokenizedText: [\n                buildToken('keyword', 'type'),\n                buildToken('whitespace', ' '),\n                buildToken('class-name', node.name),\n            ] }, meta(node))),\n        InputObjectTypeDefinition: (node) => (Object.assign({ tokenizedText: [\n                buildToken('keyword', 'input'),\n                buildToken('whitespace', ' '),\n                buildToken('class-name', node.name),\n            ] }, meta(node))),\n        FragmentSpread: (node) => (Object.assign({ tokenizedText: [\n                buildToken('plain', '...'),\n                buildToken('class-name', node.name),\n            ] }, meta(node))),\n        InputValueDefinition: (node) => {\n            return Object.assign({ tokenizedText: [buildToken('plain', node.name)] }, meta(node));\n        },\n        FieldDefinition: (node) => {\n            return Object.assign({ tokenizedText: [buildToken('plain', node.name)] }, meta(node));\n        },\n        InlineFragment: (node) => node.selectionSet,\n    };\n}\nfunction buildToken(kind, value) {\n    return { kind, value };\n}\nfunction concatMap(arr, fn) {\n    const res = [];\n    for (let i = 0; i < arr.length; i++) {\n        const x = fn(arr[i], i);\n        if (Array.isArray(x)) {\n            res.push(...x);\n        }\n        else {\n            res.push(x);\n        }\n    }\n    return res;\n}\n//# sourceMappingURL=getOutline.js.map","import { GraphQLNonNull, GraphQLList, } from 'graphql';\nimport { getTokenAtPosition, getTypeInfo } from './getAutocompleteSuggestions';\nexport function getHoverInformation(schema, queryText, cursor, contextToken, config) {\n    const token = contextToken || getTokenAtPosition(queryText, cursor);\n    if (!schema || !token || !token.state) {\n        return '';\n    }\n    const state = token.state;\n    const kind = state.kind;\n    const step = state.step;\n    const typeInfo = getTypeInfo(schema, token.state);\n    const options = Object.assign(Object.assign({}, config), { schema });\n    if ((kind === 'Field' && step === 0 && typeInfo.fieldDef) ||\n        (kind === 'AliasedField' && step === 2 && typeInfo.fieldDef)) {\n        const into = [];\n        renderMdCodeStart(into, options);\n        renderField(into, typeInfo, options);\n        renderMdCodeEnd(into, options);\n        renderDescription(into, options, typeInfo.fieldDef);\n        return into.join('').trim();\n    }\n    else if (kind === 'Directive' && step === 1 && typeInfo.directiveDef) {\n        const into = [];\n        renderMdCodeStart(into, options);\n        renderDirective(into, typeInfo, options);\n        renderMdCodeEnd(into, options);\n        renderDescription(into, options, typeInfo.directiveDef);\n        return into.join('').trim();\n    }\n    else if (kind === 'Argument' && step === 0 && typeInfo.argDef) {\n        const into = [];\n        renderMdCodeStart(into, options);\n        renderArg(into, typeInfo, options);\n        renderMdCodeEnd(into, options);\n        renderDescription(into, options, typeInfo.argDef);\n        return into.join('').trim();\n    }\n    else if (kind === 'EnumValue' &&\n        typeInfo.enumValue &&\n        'description' in typeInfo.enumValue) {\n        const into = [];\n        renderMdCodeStart(into, options);\n        renderEnumValue(into, typeInfo, options);\n        renderMdCodeEnd(into, options);\n        renderDescription(into, options, typeInfo.enumValue);\n        return into.join('').trim();\n    }\n    else if (kind === 'NamedType' &&\n        typeInfo.type &&\n        'description' in typeInfo.type) {\n        const into = [];\n        renderMdCodeStart(into, options);\n        renderType(into, typeInfo, options, typeInfo.type);\n        renderMdCodeEnd(into, options);\n        renderDescription(into, options, typeInfo.type);\n        return into.join('').trim();\n    }\n    return '';\n}\nfunction renderMdCodeStart(into, options) {\n    if (options.useMarkdown) {\n        text(into, '```graphql\\n');\n    }\n}\nfunction renderMdCodeEnd(into, options) {\n    if (options.useMarkdown) {\n        text(into, '\\n```');\n    }\n}\nfunction renderField(into, typeInfo, options) {\n    renderQualifiedField(into, typeInfo, options);\n    renderTypeAnnotation(into, typeInfo, options, typeInfo.type);\n}\nfunction renderQualifiedField(into, typeInfo, options) {\n    if (!typeInfo.fieldDef) {\n        return;\n    }\n    const fieldName = typeInfo.fieldDef.name;\n    if (fieldName.slice(0, 2) !== '__') {\n        renderType(into, typeInfo, options, typeInfo.parentType);\n        text(into, '.');\n    }\n    text(into, fieldName);\n}\nfunction renderDirective(into, typeInfo, _options) {\n    if (!typeInfo.directiveDef) {\n        return;\n    }\n    const name = '@' + typeInfo.directiveDef.name;\n    text(into, name);\n}\nfunction renderArg(into, typeInfo, options) {\n    if (typeInfo.directiveDef) {\n        renderDirective(into, typeInfo, options);\n    }\n    else if (typeInfo.fieldDef) {\n        renderQualifiedField(into, typeInfo, options);\n    }\n    if (!typeInfo.argDef) {\n        return;\n    }\n    const name = typeInfo.argDef.name;\n    text(into, '(');\n    text(into, name);\n    renderTypeAnnotation(into, typeInfo, options, typeInfo.inputType);\n    text(into, ')');\n}\nfunction renderTypeAnnotation(into, typeInfo, options, t) {\n    text(into, ': ');\n    renderType(into, typeInfo, options, t);\n}\nfunction renderEnumValue(into, typeInfo, options) {\n    if (!typeInfo.enumValue) {\n        return;\n    }\n    const name = typeInfo.enumValue.name;\n    renderType(into, typeInfo, options, typeInfo.inputType);\n    text(into, '.');\n    text(into, name);\n}\nfunction renderType(into, typeInfo, options, t) {\n    if (!t) {\n        return;\n    }\n    if (t instanceof GraphQLNonNull) {\n        renderType(into, typeInfo, options, t.ofType);\n        text(into, '!');\n    }\n    else if (t instanceof GraphQLList) {\n        text(into, '[');\n        renderType(into, typeInfo, options, t.ofType);\n        text(into, ']');\n    }\n    else {\n        text(into, t.name);\n    }\n}\nfunction renderDescription(into, options, def) {\n    if (!def) {\n        return;\n    }\n    const description = typeof def.description === 'string' ? def.description : null;\n    if (description) {\n        text(into, '\\n\\n');\n        text(into, description);\n    }\n    renderDeprecation(into, options, def);\n}\nfunction renderDeprecation(into, _options, def) {\n    if (!def) {\n        return;\n    }\n    const reason = def.deprecationReason ? def.deprecationReason : null;\n    if (!reason) {\n        return;\n    }\n    text(into, '\\n\\n');\n    text(into, 'Deprecated: ');\n    text(into, reason);\n}\nfunction text(into, content) {\n    into.push(content);\n}\n//# sourceMappingURL=getHoverInformation.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nimport { SymbolKind, } from 'vscode-languageserver-types';\nimport { Kind, parse, print } from 'graphql';\nimport { getAutocompleteSuggestions } from './getAutocompleteSuggestions';\nimport { getHoverInformation } from './getHoverInformation';\nimport { validateQuery, getRange, DIAGNOSTIC_SEVERITY } from './getDiagnostics';\nimport { getDefinitionQueryResultForFragmentSpread, getDefinitionQueryResultForDefinitionNode, getDefinitionQueryResultForNamedType, } from './getDefinition';\nimport { getOutline } from './getOutline';\nimport { getASTNodeAtPosition } from 'graphql-language-service-utils';\nconst { FRAGMENT_DEFINITION, OBJECT_TYPE_DEFINITION, INTERFACE_TYPE_DEFINITION, ENUM_TYPE_DEFINITION, UNION_TYPE_DEFINITION, SCALAR_TYPE_DEFINITION, INPUT_OBJECT_TYPE_DEFINITION, SCALAR_TYPE_EXTENSION, OBJECT_TYPE_EXTENSION, INTERFACE_TYPE_EXTENSION, UNION_TYPE_EXTENSION, ENUM_TYPE_EXTENSION, INPUT_OBJECT_TYPE_EXTENSION, DIRECTIVE_DEFINITION, FRAGMENT_SPREAD, OPERATION_DEFINITION, NAMED_TYPE, } = Kind;\nconst KIND_TO_SYMBOL_KIND = {\n    [Kind.FIELD]: SymbolKind.Field,\n    [Kind.OPERATION_DEFINITION]: SymbolKind.Class,\n    [Kind.FRAGMENT_DEFINITION]: SymbolKind.Class,\n    [Kind.FRAGMENT_SPREAD]: SymbolKind.Struct,\n    [Kind.OBJECT_TYPE_DEFINITION]: SymbolKind.Class,\n    [Kind.ENUM_TYPE_DEFINITION]: SymbolKind.Enum,\n    [Kind.ENUM_VALUE_DEFINITION]: SymbolKind.EnumMember,\n    [Kind.INPUT_OBJECT_TYPE_DEFINITION]: SymbolKind.Class,\n    [Kind.INPUT_VALUE_DEFINITION]: SymbolKind.Field,\n    [Kind.FIELD_DEFINITION]: SymbolKind.Field,\n    [Kind.INTERFACE_TYPE_DEFINITION]: SymbolKind.Interface,\n    [Kind.DOCUMENT]: SymbolKind.File,\n    FieldWithArguments: SymbolKind.Method,\n};\nfunction getKind(tree) {\n    if (tree.kind === 'FieldDefinition' &&\n        tree.children &&\n        tree.children.length > 0) {\n        return KIND_TO_SYMBOL_KIND.FieldWithArguments;\n    }\n    return KIND_TO_SYMBOL_KIND[tree.kind];\n}\nexport class GraphQLLanguageService {\n    constructor(cache) {\n        this._graphQLCache = cache;\n        this._graphQLConfig = cache.getGraphQLConfig();\n    }\n    getConfigForURI(uri) {\n        const config = this._graphQLCache.getProjectForFile(uri);\n        if (config) {\n            return config;\n        }\n        throw Error(`No config found for uri: ${uri}`);\n    }\n    getDiagnostics(query, uri, isRelayCompatMode) {\n        return __awaiter(this, void 0, void 0, function* () {\n            let queryHasExtensions = false;\n            const projectConfig = this.getConfigForURI(uri);\n            if (!projectConfig) {\n                return [];\n            }\n            const { schema: schemaPath, name: projectName, extensions } = projectConfig;\n            try {\n                const queryAST = parse(query);\n                if (!schemaPath || uri !== schemaPath) {\n                    queryHasExtensions = queryAST.definitions.some(definition => {\n                        switch (definition.kind) {\n                            case OBJECT_TYPE_DEFINITION:\n                            case INTERFACE_TYPE_DEFINITION:\n                            case ENUM_TYPE_DEFINITION:\n                            case UNION_TYPE_DEFINITION:\n                            case SCALAR_TYPE_DEFINITION:\n                            case INPUT_OBJECT_TYPE_DEFINITION:\n                            case SCALAR_TYPE_EXTENSION:\n                            case OBJECT_TYPE_EXTENSION:\n                            case INTERFACE_TYPE_EXTENSION:\n                            case UNION_TYPE_EXTENSION:\n                            case ENUM_TYPE_EXTENSION:\n                            case INPUT_OBJECT_TYPE_EXTENSION:\n                            case DIRECTIVE_DEFINITION:\n                                return true;\n                        }\n                        return false;\n                    });\n                }\n            }\n            catch (error) {\n                const range = getRange(error.locations[0], query);\n                return [\n                    {\n                        severity: DIAGNOSTIC_SEVERITY.Error,\n                        message: error.message,\n                        source: 'GraphQL: Syntax',\n                        range,\n                    },\n                ];\n            }\n            let source = query;\n            const fragmentDefinitions = yield this._graphQLCache.getFragmentDefinitions(projectConfig);\n            const fragmentDependencies = yield this._graphQLCache.getFragmentDependencies(query, fragmentDefinitions);\n            const dependenciesSource = fragmentDependencies.reduce((prev, cur) => `${prev} ${print(cur.definition)}`, '');\n            source = `${source} ${dependenciesSource}`;\n            let validationAst = null;\n            try {\n                validationAst = parse(source);\n            }\n            catch (error) {\n                return [];\n            }\n            let customRules = null;\n            if ((extensions === null || extensions === void 0 ? void 0 : extensions.customValidationRules) &&\n                typeof extensions.customValidationRules === 'function') {\n                customRules = extensions.customValidationRules(this._graphQLConfig);\n            }\n            const schema = yield this._graphQLCache.getSchema(projectName, queryHasExtensions);\n            if (!schema) {\n                return [];\n            }\n            return validateQuery(validationAst, schema, customRules, isRelayCompatMode);\n        });\n    }\n    getAutocompleteSuggestions(query, position, filePath) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const projectConfig = this.getConfigForURI(filePath);\n            const schema = yield this._graphQLCache.getSchema(projectConfig.name);\n            const fragmentDefinitions = yield this._graphQLCache.getFragmentDefinitions(projectConfig);\n            const fragmentInfo = Array.from(fragmentDefinitions).map(([, info]) => info.definition);\n            if (schema) {\n                return getAutocompleteSuggestions(schema, query, position, undefined, fragmentInfo);\n            }\n            return [];\n        });\n    }\n    getHoverInformation(query, position, filePath, options) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const projectConfig = this.getConfigForURI(filePath);\n            const schema = yield this._graphQLCache.getSchema(projectConfig.name);\n            if (schema) {\n                return getHoverInformation(schema, query, position, undefined, options);\n            }\n            return '';\n        });\n    }\n    getDefinition(query, position, filePath) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const projectConfig = this.getConfigForURI(filePath);\n            let ast;\n            try {\n                ast = parse(query);\n            }\n            catch (error) {\n                return null;\n            }\n            const node = getASTNodeAtPosition(query, ast, position);\n            if (node) {\n                switch (node.kind) {\n                    case FRAGMENT_SPREAD:\n                        return this._getDefinitionForFragmentSpread(query, ast, node, filePath, projectConfig);\n                    case FRAGMENT_DEFINITION:\n                    case OPERATION_DEFINITION:\n                        return getDefinitionQueryResultForDefinitionNode(filePath, query, node);\n                    case NAMED_TYPE:\n                        return this._getDefinitionForNamedType(query, ast, node, filePath, projectConfig);\n                }\n            }\n            return null;\n        });\n    }\n    getDocumentSymbols(document, filePath) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const outline = yield this.getOutline(document);\n            if (!outline) {\n                return [];\n            }\n            const output = [];\n            const input = outline.outlineTrees.map((tree) => [null, tree]);\n            while (input.length > 0) {\n                const res = input.pop();\n                if (!res) {\n                    return [];\n                }\n                const [parent, tree] = res;\n                if (!tree) {\n                    return [];\n                }\n                output.push({\n                    name: tree.representativeName,\n                    kind: getKind(tree),\n                    location: {\n                        uri: filePath,\n                        range: {\n                            start: tree.startPosition,\n                            end: tree.endPosition,\n                        },\n                    },\n                    containerName: parent ? parent.representativeName : undefined,\n                });\n                input.push(...tree.children.map(child => [tree, child]));\n            }\n            return output;\n        });\n    }\n    _getDefinitionForNamedType(query, ast, node, filePath, projectConfig) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const objectTypeDefinitions = yield this._graphQLCache.getObjectTypeDefinitions(projectConfig);\n            const dependencies = yield this._graphQLCache.getObjectTypeDependenciesForAST(ast, objectTypeDefinitions);\n            const localObjectTypeDefinitions = ast.definitions.filter(definition => definition.kind === OBJECT_TYPE_DEFINITION ||\n                definition.kind === INPUT_OBJECT_TYPE_DEFINITION ||\n                definition.kind === ENUM_TYPE_DEFINITION ||\n                definition.kind === SCALAR_TYPE_DEFINITION ||\n                definition.kind === INTERFACE_TYPE_DEFINITION);\n            const typeCastedDefs = localObjectTypeDefinitions;\n            const localOperationDefinationInfos = typeCastedDefs.map((definition) => ({\n                filePath,\n                content: query,\n                definition,\n            }));\n            const result = yield getDefinitionQueryResultForNamedType(query, node, dependencies.concat(localOperationDefinationInfos));\n            return result;\n        });\n    }\n    _getDefinitionForFragmentSpread(query, ast, node, filePath, projectConfig) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const fragmentDefinitions = yield this._graphQLCache.getFragmentDefinitions(projectConfig);\n            const dependencies = yield this._graphQLCache.getFragmentDependenciesForAST(ast, fragmentDefinitions);\n            const localFragDefinitions = ast.definitions.filter(definition => definition.kind === FRAGMENT_DEFINITION);\n            const typeCastedDefs = localFragDefinitions;\n            const localFragInfos = typeCastedDefs.map((definition) => ({\n                filePath,\n                content: query,\n                definition,\n            }));\n            const result = yield getDefinitionQueryResultForFragmentSpread(query, node, dependencies.concat(localFragInfos));\n            return result;\n        });\n    }\n    getOutline(documentText) {\n        return __awaiter(this, void 0, void 0, function* () {\n            return getOutline(documentText);\n        });\n    }\n}\n//# sourceMappingURL=GraphQLLanguageService.js.map","export * from './autocompleteUtils';\nexport * from './getAutocompleteSuggestions';\nexport * from './getDefinition';\nexport * from './getDiagnostics';\nexport { getOutline } from './getOutline';\nexport { getHoverInformation } from './getHoverInformation';\nexport * from './GraphQLLanguageService';\n//# sourceMappingURL=index.js.map"],"names":[],"sourceRoot":""}