{"version":3,"file":"vendor.graphql-language-service-interface.354e02c39fe4ef0b.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":""}