UNPKG

@0no-co/graphqlsp

Version:

TypeScript LSP plugin that finds GraphQL documents in your code and provides hints and auto-generates types.

2,112 lines (1,937 loc) 83.6 kB
var e = require("./chunks/api-chunk.js"); var t = require("node:fs/promises"); var n = require("path"); var i = require("@gql.tada/internal"); var r = require("graphql"); var statFile = (e, n) => t.stat(e).then(n).catch((() => !1)); var swapWrite = async (e, n) => { if (!await statFile(e, (e => e.isFile()))) { await t.writeFile(e, n); } else { var i = e + ".tmp"; await t.writeFile(i, n); try { await t.rename(i, e); } catch (e) { await t.unlink(i); throw e; } finally { await (async e => { try { var n = new Date; await t.utimes(e, n, n); } catch (e) {} })(e); } } }; async function saveTadaIntrospection(e, r, a, o) { var s = i.minifyIntrospection(e); var c = i.outputIntrospectionFile(s, { fileType: r, shouldPreprocess: !a }); var u = r; if (await statFile(u, (e => e.isDirectory()))) { u = n.join(u, "introspection.d.ts"); } else if (!await statFile(u, (e => !!e))) { await t.mkdir(n.dirname(u), { recursive: !0 }); if (await statFile(u, (e => e.isDirectory()))) { u = n.join(u, "introspection.d.ts"); } } try { await swapWrite(u, c); o(`Introspection saved to path @ ${u}`); } catch (e) { o(`Failed to write introspection @ ${e}`); } } function getDefinitionState(e) { var t; forEachState(e, (e => { switch (e.kind) { case "Query": case "ShortQuery": case "Mutation": case "Subscription": case "FragmentDefinition": t = e; } })); return t; } function getFieldDef(e, t, n) { if (n === r.SchemaMetaFieldDef.name && e.getQueryType() === t) { return r.SchemaMetaFieldDef; } if (n === r.TypeMetaFieldDef.name && e.getQueryType() === t) { return r.TypeMetaFieldDef; } if (n === r.TypeNameMetaFieldDef.name && r.isCompositeType(t)) { return r.TypeNameMetaFieldDef; } if ("getFields" in t) { return t.getFields()[n]; } return null; } function forEachState(e, t) { var n = []; var i = e; while (null == i ? void 0 : i.kind) { n.push(i); i = i.prevState; } for (var r = n.length - 1; r >= 0; r--) { t(n[r]); } } function objectValues(e) { var t = Object.keys(e); var n = t.length; var i = new Array(n); for (var r = 0; r < n; ++r) { i[r] = e[t[r]]; } return i; } function hintList$1(e, t) { return function filterAndSortList$1(e, t) { if (!t) { return filterNonEmpty$1(e, (e => !e.isDeprecated)); } var n = e.map((e => ({ proximity: getProximity$1(normalizeText$1(e.label), t), entry: e }))); return filterNonEmpty$1(filterNonEmpty$1(n, (e => e.proximity <= 2)), (e => !e.entry.isDeprecated)).sort(((e, t) => (e.entry.isDeprecated ? 1 : 0) - (t.entry.isDeprecated ? 1 : 0) || e.proximity - t.proximity || e.entry.label.length - t.entry.label.length)).map((e => e.entry)); }(t, normalizeText$1(e.string)); } function filterNonEmpty$1(e, t) { var n = e.filter(t); return 0 === n.length ? e : n; } function normalizeText$1(e) { return e.toLowerCase().replaceAll(/\W/g, ""); } function getProximity$1(e, t) { var n = function lexicalDistance$1(e, t) { var n; var i; var r = []; var a = e.length; var o = t.length; for (n = 0; n <= a; n++) { r[n] = [ n ]; } for (i = 1; i <= o; i++) { r[0][i] = i; } for (n = 1; n <= a; n++) { for (i = 1; i <= o; i++) { var s = e[n - 1] === t[i - 1] ? 0 : 1; r[n][i] = Math.min(r[n - 1][i] + 1, r[n][i - 1] + 1, r[n - 1][i - 1] + s); if (n > 1 && i > 1 && e[n - 1] === t[i - 2] && e[n - 2] === t[i - 1]) { r[n][i] = Math.min(r[n][i], r[n - 2][i - 2] + s); } } } return r[a][o]; }(t, e); if (e.length > t.length) { n -= e.length - t.length - 1; n += 0 === e.indexOf(t) ? 0 : .5; } return n; } var a; !function(e) { e.is = function is(e) { return "string" == typeof e; }; }(a || (a = {})); var o; !function(e) { e.is = function is(e) { return "string" == typeof e; }; }(o || (o = {})); var s; !function(e) { e.MIN_VALUE = -2147483648; e.MAX_VALUE = 2147483647; e.is = function is(t) { return "number" == typeof t && e.MIN_VALUE <= t && t <= e.MAX_VALUE; }; }(s || (s = {})); var c; !function(e) { e.MIN_VALUE = 0; e.MAX_VALUE = 2147483647; e.is = function is(t) { return "number" == typeof t && e.MIN_VALUE <= t && t <= e.MAX_VALUE; }; }(c || (c = {})); var u; !function(e) { e.create = function create(e, t) { if (e === Number.MAX_VALUE) { e = c.MAX_VALUE; } if (t === Number.MAX_VALUE) { t = c.MAX_VALUE; } return { line: e, character: t }; }; e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && Ae.uinteger(t.line) && Ae.uinteger(t.character); }; }(u || (u = {})); var l; !function(e) { e.create = function create(e, t, n, i) { if (Ae.uinteger(e) && Ae.uinteger(t) && Ae.uinteger(n) && Ae.uinteger(i)) { return { start: u.create(e, t), end: u.create(n, i) }; } else if (u.is(e) && u.is(t)) { return { start: e, end: t }; } else { throw new Error("Range#create called with invalid arguments[".concat(e, ", ").concat(t, ", ").concat(n, ", ").concat(i, "]")); } }; e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && u.is(t.start) && u.is(t.end); }; }(l || (l = {})); var d; !function(e) { e.create = function create(e, t) { return { uri: e, range: t }; }; e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && l.is(t.range) && (Ae.string(t.uri) || Ae.undefined(t.uri)); }; }(d || (d = {})); var f; !function(e) { e.create = function create(e, t, n, i) { return { targetUri: e, targetRange: t, targetSelectionRange: n, originSelectionRange: i }; }; e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && l.is(t.targetRange) && Ae.string(t.targetUri) && l.is(t.targetSelectionRange) && (l.is(t.originSelectionRange) || Ae.undefined(t.originSelectionRange)); }; }(f || (f = {})); var v; !function(e) { e.create = function create(e, t, n, i) { return { red: e, green: t, blue: n, alpha: i }; }; e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && Ae.numberRange(t.red, 0, 1) && Ae.numberRange(t.green, 0, 1) && Ae.numberRange(t.blue, 0, 1) && Ae.numberRange(t.alpha, 0, 1); }; }(v || (v = {})); var p; !function(e) { e.create = function create(e, t) { return { range: e, color: t }; }; e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && l.is(t.range) && v.is(t.color); }; }(p || (p = {})); var g; !function(e) { e.create = function create(e, t, n) { return { label: e, textEdit: t, additionalTextEdits: n }; }; e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && Ae.string(t.label) && (Ae.undefined(t.textEdit) || D.is(t)) && (Ae.undefined(t.additionalTextEdits) || Ae.typedArray(t.additionalTextEdits, D.is)); }; }(g || (g = {})); var m; !function(e) { e.Comment = "comment"; e.Imports = "imports"; e.Region = "region"; }(m || (m = {})); var E; !function(e) { e.create = function create(e, t, n, i, r, a) { var o = { startLine: e, endLine: t }; if (Ae.defined(n)) { o.startCharacter = n; } if (Ae.defined(i)) { o.endCharacter = i; } if (Ae.defined(r)) { o.kind = r; } if (Ae.defined(a)) { o.collapsedText = a; } return o; }; e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && Ae.uinteger(t.startLine) && Ae.uinteger(t.startLine) && (Ae.undefined(t.startCharacter) || Ae.uinteger(t.startCharacter)) && (Ae.undefined(t.endCharacter) || Ae.uinteger(t.endCharacter)) && (Ae.undefined(t.kind) || Ae.string(t.kind)); }; }(E || (E = {})); var h; !function(e) { e.create = function create(e, t) { return { location: e, message: t }; }; e.is = function is(e) { var t = e; return Ae.defined(t) && d.is(t.location) && Ae.string(t.message); }; }(h || (h = {})); var T; !function(e) { e.Error = 1; e.Warning = 2; e.Information = 3; e.Hint = 4; }(T || (T = {})); var y; !function(e) { e.Unnecessary = 1; e.Deprecated = 2; }(y || (y = {})); var I; !function(e) { e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && Ae.string(t.href); }; }(I || (I = {})); var b; !function(e) { e.create = function create(e, t, n, i, r, a) { var o = { range: e, message: t }; if (Ae.defined(n)) { o.severity = n; } if (Ae.defined(i)) { o.code = i; } if (Ae.defined(r)) { o.source = r; } if (Ae.defined(a)) { o.relatedInformation = a; } return o; }; e.is = function is(e) { var t; var n = e; return Ae.defined(n) && l.is(n.range) && Ae.string(n.message) && (Ae.number(n.severity) || Ae.undefined(n.severity)) && (Ae.integer(n.code) || Ae.string(n.code) || Ae.undefined(n.code)) && (Ae.undefined(n.codeDescription) || Ae.string(null === (t = n.codeDescription) || void 0 === t ? void 0 : t.href)) && (Ae.string(n.source) || Ae.undefined(n.source)) && (Ae.undefined(n.relatedInformation) || Ae.typedArray(n.relatedInformation, h.is)); }; }(b || (b = {})); var S; !function(e) { e.create = function create(e, t) { var n = []; for (var i = 2; i < arguments.length; i++) { n[i - 2] = arguments[i]; } var r = { title: e, command: t }; if (Ae.defined(n) && n.length > 0) { r.arguments = n; } return r; }; e.is = function is(e) { var t = e; return Ae.defined(t) && Ae.string(t.title) && Ae.string(t.command); }; }(S || (S = {})); var D; !function(e) { e.replace = function replace(e, t) { return { range: e, newText: t }; }; e.insert = function insert(e, t) { return { range: { start: e, end: e }, newText: t }; }; e.del = function del(e) { return { range: e, newText: "" }; }; e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && Ae.string(t.newText) && l.is(t.range); }; }(D || (D = {})); var N; !function(e) { e.create = function create(e, t, n) { var i = { label: e }; if (void 0 !== t) { i.needsConfirmation = t; } if (void 0 !== n) { i.description = n; } return i; }; e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && Ae.string(t.label) && (Ae.boolean(t.needsConfirmation) || void 0 === t.needsConfirmation) && (Ae.string(t.description) || void 0 === t.description); }; }(N || (N = {})); var _; !function(e) { e.is = function is(e) { return Ae.string(e); }; }(_ || (_ = {})); var A; !function(e) { e.replace = function replace(e, t, n) { return { range: e, newText: t, annotationId: n }; }; e.insert = function insert(e, t, n) { return { range: { start: e, end: e }, newText: t, annotationId: n }; }; e.del = function del(e, t) { return { range: e, newText: "", annotationId: t }; }; e.is = function is(e) { var t = e; return D.is(t) && (N.is(t.annotationId) || _.is(t.annotationId)); }; }(A || (A = {})); var k; !function(e) { e.create = function create(e, t) { return { textDocument: e, edits: t }; }; e.is = function is(e) { var t = e; return Ae.defined(t) && R.is(t.textDocument) && Array.isArray(t.edits); }; }(k || (k = {})); var L; !function(e) { e.create = function create(e, t, n) { var i = { kind: "create", uri: e }; if (void 0 !== t && (void 0 !== t.overwrite || void 0 !== t.ignoreIfExists)) { i.options = t; } if (void 0 !== n) { i.annotationId = n; } return i; }; e.is = function is(e) { var t = e; return t && "create" === t.kind && Ae.string(t.uri) && (void 0 === t.options || (void 0 === t.options.overwrite || Ae.boolean(t.options.overwrite)) && (void 0 === t.options.ignoreIfExists || Ae.boolean(t.options.ignoreIfExists))) && (void 0 === t.annotationId || _.is(t.annotationId)); }; }(L || (L = {})); var C; !function(e) { e.create = function create(e, t, n, i) { var r = { kind: "rename", oldUri: e, newUri: t }; if (void 0 !== n && (void 0 !== n.overwrite || void 0 !== n.ignoreIfExists)) { r.options = n; } if (void 0 !== i) { r.annotationId = i; } return r; }; e.is = function is(e) { var t = e; return t && "rename" === t.kind && Ae.string(t.oldUri) && Ae.string(t.newUri) && (void 0 === t.options || (void 0 === t.options.overwrite || Ae.boolean(t.options.overwrite)) && (void 0 === t.options.ignoreIfExists || Ae.boolean(t.options.ignoreIfExists))) && (void 0 === t.annotationId || _.is(t.annotationId)); }; }(C || (C = {})); var F; !function(e) { e.create = function create(e, t, n) { var i = { kind: "delete", uri: e }; if (void 0 !== t && (void 0 !== t.recursive || void 0 !== t.ignoreIfNotExists)) { i.options = t; } if (void 0 !== n) { i.annotationId = n; } return i; }; e.is = function is(e) { var t = e; return t && "delete" === t.kind && Ae.string(t.uri) && (void 0 === t.options || (void 0 === t.options.recursive || Ae.boolean(t.options.recursive)) && (void 0 === t.options.ignoreIfNotExists || Ae.boolean(t.options.ignoreIfNotExists))) && (void 0 === t.annotationId || _.is(t.annotationId)); }; }(F || (F = {})); var O; !function(e) { e.is = function is(e) { return e && (void 0 !== e.changes || void 0 !== e.documentChanges) && (void 0 === e.documentChanges || e.documentChanges.every((function(e) { if (Ae.string(e.kind)) { return L.is(e) || C.is(e) || F.is(e); } else { return k.is(e); } }))); }; }(O || (O = {})); var x = function() { function TextEditChangeImpl(e, t) { this.edits = e; this.changeAnnotations = t; } TextEditChangeImpl.prototype.insert = function(e, t, n) { var i; var r; if (void 0 === n) { i = D.insert(e, t); } else if (_.is(n)) { r = n; i = A.insert(e, t, n); } else { this.assertChangeAnnotations(this.changeAnnotations); r = this.changeAnnotations.manage(n); i = A.insert(e, t, r); } this.edits.push(i); if (void 0 !== r) { return r; } }; TextEditChangeImpl.prototype.replace = function(e, t, n) { var i; var r; if (void 0 === n) { i = D.replace(e, t); } else if (_.is(n)) { r = n; i = A.replace(e, t, n); } else { this.assertChangeAnnotations(this.changeAnnotations); r = this.changeAnnotations.manage(n); i = A.replace(e, t, r); } this.edits.push(i); if (void 0 !== r) { return r; } }; TextEditChangeImpl.prototype.delete = function(e, t) { var n; var i; if (void 0 === t) { n = D.del(e); } else if (_.is(t)) { i = t; n = A.del(e, t); } else { this.assertChangeAnnotations(this.changeAnnotations); i = this.changeAnnotations.manage(t); n = A.del(e, i); } this.edits.push(n); if (void 0 !== i) { return i; } }; TextEditChangeImpl.prototype.add = function(e) { this.edits.push(e); }; TextEditChangeImpl.prototype.all = function() { return this.edits; }; TextEditChangeImpl.prototype.clear = function() { this.edits.splice(0, this.edits.length); }; TextEditChangeImpl.prototype.assertChangeAnnotations = function(e) { if (void 0 === e) { throw new Error("Text edit change is not configured to manage change annotations."); } }; return TextEditChangeImpl; }(); var M = function() { function ChangeAnnotations(e) { this._annotations = void 0 === e ? Object.create(null) : e; this._counter = 0; this._size = 0; } ChangeAnnotations.prototype.all = function() { return this._annotations; }; Object.defineProperty(ChangeAnnotations.prototype, "size", { get: function() { return this._size; }, enumerable: !1, configurable: !0 }); ChangeAnnotations.prototype.manage = function(e, t) { var n; if (_.is(e)) { n = e; } else { n = this.nextId(); t = e; } if (void 0 !== this._annotations[n]) { throw new Error("Id ".concat(n, " is already in use.")); } if (void 0 === t) { throw new Error("No annotation provided for id ".concat(n)); } this._annotations[n] = t; this._size++; return n; }; ChangeAnnotations.prototype.nextId = function() { this._counter++; return this._counter.toString(); }; return ChangeAnnotations; }(); !function() { function WorkspaceChange(e) { var t = this; this._textEditChanges = Object.create(null); if (void 0 !== e) { this._workspaceEdit = e; if (e.documentChanges) { this._changeAnnotations = new M(e.changeAnnotations); e.changeAnnotations = this._changeAnnotations.all(); e.documentChanges.forEach((function(e) { if (k.is(e)) { var n = new x(e.edits, t._changeAnnotations); t._textEditChanges[e.textDocument.uri] = n; } })); } else if (e.changes) { Object.keys(e.changes).forEach((function(n) { var i = new x(e.changes[n]); t._textEditChanges[n] = i; })); } } else { this._workspaceEdit = {}; } } Object.defineProperty(WorkspaceChange.prototype, "edit", { get: function() { this.initDocumentChanges(); if (void 0 !== this._changeAnnotations) { if (0 === this._changeAnnotations.size) { this._workspaceEdit.changeAnnotations = void 0; } else { this._workspaceEdit.changeAnnotations = this._changeAnnotations.all(); } } return this._workspaceEdit; }, enumerable: !1, configurable: !0 }); WorkspaceChange.prototype.getTextEditChange = function(e) { if (R.is(e)) { this.initDocumentChanges(); if (void 0 === this._workspaceEdit.documentChanges) { throw new Error("Workspace edit is not configured for document changes."); } var t = { uri: e.uri, version: e.version }; if (!(n = this._textEditChanges[t.uri])) { this._workspaceEdit.documentChanges.push({ textDocument: t, edits: i = [] }); n = new x(i, this._changeAnnotations); this._textEditChanges[t.uri] = n; } return n; } else { this.initChanges(); if (void 0 === this._workspaceEdit.changes) { throw new Error("Workspace edit is not configured for normal text edit changes."); } var n; if (!(n = this._textEditChanges[e])) { var i; this._workspaceEdit.changes[e] = i = []; n = new x(i); this._textEditChanges[e] = n; } return n; } }; WorkspaceChange.prototype.initDocumentChanges = function() { if (void 0 === this._workspaceEdit.documentChanges && void 0 === this._workspaceEdit.changes) { this._changeAnnotations = new M; this._workspaceEdit.documentChanges = []; this._workspaceEdit.changeAnnotations = this._changeAnnotations.all(); } }; WorkspaceChange.prototype.initChanges = function() { if (void 0 === this._workspaceEdit.documentChanges && void 0 === this._workspaceEdit.changes) { this._workspaceEdit.changes = Object.create(null); } }; WorkspaceChange.prototype.createFile = function(e, t, n) { this.initDocumentChanges(); if (void 0 === this._workspaceEdit.documentChanges) { throw new Error("Workspace edit is not configured for document changes."); } var i; if (N.is(t) || _.is(t)) { i = t; } else { n = t; } var r; var a; if (void 0 === i) { r = L.create(e, n); } else { a = _.is(i) ? i : this._changeAnnotations.manage(i); r = L.create(e, n, a); } this._workspaceEdit.documentChanges.push(r); if (void 0 !== a) { return a; } }; WorkspaceChange.prototype.renameFile = function(e, t, n, i) { this.initDocumentChanges(); if (void 0 === this._workspaceEdit.documentChanges) { throw new Error("Workspace edit is not configured for document changes."); } var r; if (N.is(n) || _.is(n)) { r = n; } else { i = n; } var a; var o; if (void 0 === r) { a = C.create(e, t, i); } else { o = _.is(r) ? r : this._changeAnnotations.manage(r); a = C.create(e, t, i, o); } this._workspaceEdit.documentChanges.push(a); if (void 0 !== o) { return o; } }; WorkspaceChange.prototype.deleteFile = function(e, t, n) { this.initDocumentChanges(); if (void 0 === this._workspaceEdit.documentChanges) { throw new Error("Workspace edit is not configured for document changes."); } var i; if (N.is(t) || _.is(t)) { i = t; } else { n = t; } var r; var a; if (void 0 === i) { r = F.create(e, n); } else { a = _.is(i) ? i : this._changeAnnotations.manage(i); r = F.create(e, n, a); } this._workspaceEdit.documentChanges.push(r); if (void 0 !== a) { return a; } }; }(); var P; !function(e) { e.create = function create(e) { return { uri: e }; }; e.is = function is(e) { var t = e; return Ae.defined(t) && Ae.string(t.uri); }; }(P || (P = {})); var w; !function(e) { e.create = function create(e, t) { return { uri: e, version: t }; }; e.is = function is(e) { var t = e; return Ae.defined(t) && Ae.string(t.uri) && Ae.integer(t.version); }; }(w || (w = {})); var R; !function(e) { e.create = function create(e, t) { return { uri: e, version: t }; }; e.is = function is(e) { var t = e; return Ae.defined(t) && Ae.string(t.uri) && (null === t.version || Ae.integer(t.version)); }; }(R || (R = {})); var j; !function(e) { e.create = function create(e, t, n, i) { return { uri: e, languageId: t, version: n, text: i }; }; e.is = function is(e) { var t = e; return Ae.defined(t) && Ae.string(t.uri) && Ae.string(t.languageId) && Ae.integer(t.version) && Ae.string(t.text); }; }(j || (j = {})); var U; !function(e) { e.PlainText = "plaintext"; e.Markdown = "markdown"; e.is = function is(t) { return t === e.PlainText || t === e.Markdown; }; }(U || (U = {})); var V; !function(e) { e.is = function is(e) { var t = e; return Ae.objectLiteral(e) && U.is(t.kind) && Ae.string(t.value); }; }(V || (V = {})); var G; !function(e) { e.Text = 1; e.Method = 2; e.Function = 3; e.Constructor = 4; e.Field = 5; e.Variable = 6; e.Class = 7; e.Interface = 8; e.Module = 9; e.Property = 10; e.Unit = 11; e.Value = 12; e.Enum = 13; e.Keyword = 14; e.Snippet = 15; e.Color = 16; e.File = 17; e.Reference = 18; e.Folder = 19; e.EnumMember = 20; e.Constant = 21; e.Struct = 22; e.Event = 23; e.Operator = 24; e.TypeParameter = 25; }(G || (G = {})); var Y; !function(e) { e.PlainText = 1; e.Snippet = 2; }(Y || (Y = {})); var $; !function(e) { e.Deprecated = 1; }($ || ($ = {})); var Q; !function(e) { e.create = function create(e, t, n) { return { newText: e, insert: t, replace: n }; }; e.is = function is(e) { var t = e; return t && Ae.string(t.newText) && l.is(t.insert) && l.is(t.replace); }; }(Q || (Q = {})); var B; !function(e) { e.asIs = 1; e.adjustIndentation = 2; }(B || (B = {})); var K; !function(e) { e.is = function is(e) { var t = e; return t && (Ae.string(t.detail) || void 0 === t.detail) && (Ae.string(t.description) || void 0 === t.description); }; }(K || (K = {})); var X; !function(e) { e.create = function create(e) { return { label: e }; }; }(X || (X = {})); var W; !function(e) { e.create = function create(e, t) { return { items: e ? e : [], isIncomplete: !!t }; }; }(W || (W = {})); var J; !function(e) { e.fromPlainText = function fromPlainText(e) { return e.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&"); }; e.is = function is(e) { var t = e; return Ae.string(t) || Ae.objectLiteral(t) && Ae.string(t.language) && Ae.string(t.value); }; }(J || (J = {})); var z; !function(e) { e.is = function is(e) { var t = e; return !!t && Ae.objectLiteral(t) && (V.is(t.contents) || J.is(t.contents) || Ae.typedArray(t.contents, J.is)) && (void 0 === e.range || l.is(e.range)); }; }(z || (z = {})); var q; !function(e) { e.create = function create(e, t) { return t ? { label: e, documentation: t } : { label: e }; }; }(q || (q = {})); var H; !function(e) { e.create = function create(e, t) { var n = []; for (var i = 2; i < arguments.length; i++) { n[i - 2] = arguments[i]; } var r = { label: e }; if (Ae.defined(t)) { r.documentation = t; } if (Ae.defined(n)) { r.parameters = n; } else { r.parameters = []; } return r; }; }(H || (H = {})); var Z; !function(e) { e.Text = 1; e.Read = 2; e.Write = 3; }(Z || (Z = {})); var ee; !function(e) { e.create = function create(e, t) { var n = { range: e }; if (Ae.number(t)) { n.kind = t; } return n; }; }(ee || (ee = {})); var te; !function(e) { e.File = 1; e.Module = 2; e.Namespace = 3; e.Package = 4; e.Class = 5; e.Method = 6; e.Property = 7; e.Field = 8; e.Constructor = 9; e.Enum = 10; e.Interface = 11; e.Function = 12; e.Variable = 13; e.Constant = 14; e.String = 15; e.Number = 16; e.Boolean = 17; e.Array = 18; e.Object = 19; e.Key = 20; e.Null = 21; e.EnumMember = 22; e.Struct = 23; e.Event = 24; e.Operator = 25; e.TypeParameter = 26; }(te || (te = {})); var ne; !function(e) { e.Deprecated = 1; }(ne || (ne = {})); var ie; !function(e) { e.create = function create(e, t, n, i, r) { var a = { name: e, kind: t, location: { uri: i, range: n } }; if (r) { a.containerName = r; } return a; }; }(ie || (ie = {})); var re; !function(e) { e.create = function create(e, t, n, i) { return void 0 !== i ? { name: e, kind: t, location: { uri: n, range: i } } : { name: e, kind: t, location: { uri: n } }; }; }(re || (re = {})); var ae; !function(e) { e.create = function create(e, t, n, i, r, a) { var o = { name: e, detail: t, kind: n, range: i, selectionRange: r }; if (void 0 !== a) { o.children = a; } return o; }; e.is = function is(e) { var t = e; return t && Ae.string(t.name) && Ae.number(t.kind) && l.is(t.range) && l.is(t.selectionRange) && (void 0 === t.detail || Ae.string(t.detail)) && (void 0 === t.deprecated || Ae.boolean(t.deprecated)) && (void 0 === t.children || Array.isArray(t.children)) && (void 0 === t.tags || Array.isArray(t.tags)); }; }(ae || (ae = {})); var oe; !function(e) { e.Empty = ""; e.QuickFix = "quickfix"; e.Refactor = "refactor"; e.RefactorExtract = "refactor.extract"; e.RefactorInline = "refactor.inline"; e.RefactorRewrite = "refactor.rewrite"; e.Source = "source"; e.SourceOrganizeImports = "source.organizeImports"; e.SourceFixAll = "source.fixAll"; }(oe || (oe = {})); var se; !function(e) { e.Invoked = 1; e.Automatic = 2; }(se || (se = {})); var ce; !function(e) { e.create = function create(e, t, n) { var i = { diagnostics: e }; if (null != t) { i.only = t; } if (null != n) { i.triggerKind = n; } return i; }; e.is = function is(e) { var t = e; return Ae.defined(t) && Ae.typedArray(t.diagnostics, b.is) && (void 0 === t.only || Ae.typedArray(t.only, Ae.string)) && (void 0 === t.triggerKind || t.triggerKind === se.Invoked || t.triggerKind === se.Automatic); }; }(ce || (ce = {})); var ue; !function(e) { e.create = function create(e, t, n) { var i = { title: e }; var r = !0; if ("string" == typeof t) { r = !1; i.kind = t; } else if (S.is(t)) { i.command = t; } else { i.edit = t; } if (r && void 0 !== n) { i.kind = n; } return i; }; e.is = function is(e) { var t = e; return t && Ae.string(t.title) && (void 0 === t.diagnostics || Ae.typedArray(t.diagnostics, b.is)) && (void 0 === t.kind || Ae.string(t.kind)) && (void 0 !== t.edit || void 0 !== t.command) && (void 0 === t.command || S.is(t.command)) && (void 0 === t.isPreferred || Ae.boolean(t.isPreferred)) && (void 0 === t.edit || O.is(t.edit)); }; }(ue || (ue = {})); var le; !function(e) { e.create = function create(e, t) { var n = { range: e }; if (Ae.defined(t)) { n.data = t; } return n; }; e.is = function is(e) { var t = e; return Ae.defined(t) && l.is(t.range) && (Ae.undefined(t.command) || S.is(t.command)); }; }(le || (le = {})); var de; !function(e) { e.create = function create(e, t) { return { tabSize: e, insertSpaces: t }; }; e.is = function is(e) { var t = e; return Ae.defined(t) && Ae.uinteger(t.tabSize) && Ae.boolean(t.insertSpaces); }; }(de || (de = {})); var fe; !function(e) { e.create = function create(e, t, n) { return { range: e, target: t, data: n }; }; e.is = function is(e) { var t = e; return Ae.defined(t) && l.is(t.range) && (Ae.undefined(t.target) || Ae.string(t.target)); }; }(fe || (fe = {})); var ve; !function(e) { e.create = function create(e, t) { return { range: e, parent: t }; }; e.is = function is(t) { var n = t; return Ae.objectLiteral(n) && l.is(n.range) && (void 0 === n.parent || e.is(n.parent)); }; }(ve || (ve = {})); var pe; !function(e) { e.namespace = "namespace"; e.type = "type"; e.class = "class"; e.enum = "enum"; e.interface = "interface"; e.struct = "struct"; e.typeParameter = "typeParameter"; e.parameter = "parameter"; e.variable = "variable"; e.property = "property"; e.enumMember = "enumMember"; e.event = "event"; e.function = "function"; e.method = "method"; e.macro = "macro"; e.keyword = "keyword"; e.modifier = "modifier"; e.comment = "comment"; e.string = "string"; e.number = "number"; e.regexp = "regexp"; e.operator = "operator"; e.decorator = "decorator"; }(pe || (pe = {})); var ge; !function(e) { e.declaration = "declaration"; e.definition = "definition"; e.readonly = "readonly"; e.static = "static"; e.deprecated = "deprecated"; e.abstract = "abstract"; e.async = "async"; e.modification = "modification"; e.documentation = "documentation"; e.defaultLibrary = "defaultLibrary"; }(ge || (ge = {})); var me; !function(e) { e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && (void 0 === t.resultId || "string" == typeof t.resultId) && Array.isArray(t.data) && (0 === t.data.length || "number" == typeof t.data[0]); }; }(me || (me = {})); var Ee; !function(e) { e.create = function create(e, t) { return { range: e, text: t }; }; e.is = function is(e) { var t = e; return null != t && l.is(t.range) && Ae.string(t.text); }; }(Ee || (Ee = {})); var he; !function(e) { e.create = function create(e, t, n) { return { range: e, variableName: t, caseSensitiveLookup: n }; }; e.is = function is(e) { var t = e; return null != t && l.is(t.range) && Ae.boolean(t.caseSensitiveLookup) && (Ae.string(t.variableName) || void 0 === t.variableName); }; }(he || (he = {})); var Te; !function(e) { e.create = function create(e, t) { return { range: e, expression: t }; }; e.is = function is(e) { var t = e; return null != t && l.is(t.range) && (Ae.string(t.expression) || void 0 === t.expression); }; }(Te || (Te = {})); var ye; !function(e) { e.create = function create(e, t) { return { frameId: e, stoppedLocation: t }; }; e.is = function is(e) { return Ae.defined(e) && l.is(e.stoppedLocation); }; }(ye || (ye = {})); var Ie; !function(e) { e.Type = 1; e.Parameter = 2; e.is = function is(e) { return 1 === e || 2 === e; }; }(Ie || (Ie = {})); var be; !function(e) { e.create = function create(e) { return { value: e }; }; e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && (void 0 === t.tooltip || Ae.string(t.tooltip) || V.is(t.tooltip)) && (void 0 === t.location || d.is(t.location)) && (void 0 === t.command || S.is(t.command)); }; }(be || (be = {})); var Se; !function(e) { e.create = function create(e, t, n) { var i = { position: e, label: t }; if (void 0 !== n) { i.kind = n; } return i; }; e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && u.is(t.position) && (Ae.string(t.label) || Ae.typedArray(t.label, be.is)) && (void 0 === t.kind || Ie.is(t.kind)) && void 0 === t.textEdits || Ae.typedArray(t.textEdits, D.is) && (void 0 === t.tooltip || Ae.string(t.tooltip) || V.is(t.tooltip)) && (void 0 === t.paddingLeft || Ae.boolean(t.paddingLeft)) && (void 0 === t.paddingRight || Ae.boolean(t.paddingRight)); }; }(Se || (Se = {})); var De; !function(e) { e.is = function is(e) { var t = e; return Ae.objectLiteral(t) && o.is(t.uri) && Ae.string(t.name); }; }(De || (De = {})); var Ne; !function(e) { e.create = function create(e, t, n, i) { return new _e(e, t, n, i); }; e.is = function is(e) { var t = e; return Ae.defined(t) && Ae.string(t.uri) && (Ae.undefined(t.languageId) || Ae.string(t.languageId)) && Ae.uinteger(t.lineCount) && Ae.func(t.getText) && Ae.func(t.positionAt) && Ae.func(t.offsetAt) ? !0 : !1; }; e.applyEdits = function applyEdits(e, t) { var n = e.getText(); var i = mergeSort(t, (function(e, t) { var n = e.range.start.line - t.range.start.line; if (0 === n) { return e.range.start.character - t.range.start.character; } return n; })); var r = n.length; for (var a = i.length - 1; a >= 0; a--) { var o = i[a]; var s = e.offsetAt(o.range.start); var c = e.offsetAt(o.range.end); if (c <= r) { n = n.substring(0, s) + o.newText + n.substring(c, n.length); } else { throw new Error("Overlapping edit"); } r = s; } return n; }; function mergeSort(e, t) { if (e.length <= 1) { return e; } var n = e.length / 2 | 0; var i = e.slice(0, n); var r = e.slice(n); mergeSort(i, t); mergeSort(r, t); var a = 0; var o = 0; var s = 0; while (a < i.length && o < r.length) { if (t(i[a], r[o]) <= 0) { e[s++] = i[a++]; } else { e[s++] = r[o++]; } } while (a < i.length) { e[s++] = i[a++]; } while (o < r.length) { e[s++] = r[o++]; } return e; } }(Ne || (Ne = {})); var _e = function() { function FullTextDocument(e, t, n, i) { this._uri = e; this._languageId = t; this._version = n; this._content = i; this._lineOffsets = void 0; } Object.defineProperty(FullTextDocument.prototype, "uri", { get: function() { return this._uri; }, enumerable: !1, configurable: !0 }); Object.defineProperty(FullTextDocument.prototype, "languageId", { get: function() { return this._languageId; }, enumerable: !1, configurable: !0 }); Object.defineProperty(FullTextDocument.prototype, "version", { get: function() { return this._version; }, enumerable: !1, configurable: !0 }); FullTextDocument.prototype.getText = function(e) { if (e) { var t = this.offsetAt(e.start); var n = this.offsetAt(e.end); return this._content.substring(t, n); } return this._content; }; FullTextDocument.prototype.update = function(e, t) { this._content = e.text; this._version = t; this._lineOffsets = void 0; }; FullTextDocument.prototype.getLineOffsets = function() { if (void 0 === this._lineOffsets) { var e = []; var t = this._content; var n = !0; for (var i = 0; i < t.length; i++) { if (n) { e.push(i); n = !1; } var r = t.charAt(i); n = "\r" === r || "\n" === r; if ("\r" === r && i + 1 < t.length && "\n" === t.charAt(i + 1)) { i++; } } if (n && t.length > 0) { e.push(t.length); } this._lineOffsets = e; } return this._lineOffsets; }; FullTextDocument.prototype.positionAt = function(e) { e = Math.max(Math.min(e, this._content.length), 0); var t = this.getLineOffsets(); var n = 0, i = t.length; if (0 === i) { return u.create(0, e); } while (n < i) { var r = Math.floor((n + i) / 2); if (t[r] > e) { i = r; } else { n = r + 1; } } var a = n - 1; return u.create(a, e - t[a]); }; FullTextDocument.prototype.offsetAt = function(e) { var t = this.getLineOffsets(); if (e.line >= t.length) { return this._content.length; } else if (e.line < 0) { return 0; } var n = t[e.line]; return Math.max(Math.min(n + e.character, e.line + 1 < t.length ? t[e.line + 1] : this._content.length), n); }; Object.defineProperty(FullTextDocument.prototype, "lineCount", { get: function() { return this.getLineOffsets().length; }, enumerable: !1, configurable: !0 }); return FullTextDocument; }(); var Ae; !function(e) { var t = Object.prototype.toString; e.defined = function defined(e) { return void 0 !== e; }; e.undefined = function undefined$1(e) { return void 0 === e; }; e.boolean = function boolean(e) { return !0 === e || !1 === e; }; e.string = function string(e) { return "[object String]" === t.call(e); }; e.number = function number(e) { return "[object Number]" === t.call(e); }; e.numberRange = function numberRange(e, n, i) { return "[object Number]" === t.call(e) && n <= e && e <= i; }; e.integer = function integer(e) { return "[object Number]" === t.call(e) && -2147483648 <= e && e <= 2147483647; }; e.uinteger = function uinteger(e) { return "[object Number]" === t.call(e) && 0 <= e && e <= 2147483647; }; e.func = function func(e) { return "[object Function]" === t.call(e); }; e.objectLiteral = function objectLiteral(e) { return null !== e && "object" == typeof e; }; e.typedArray = function typedArray(e, t) { return Array.isArray(e) && e.every(t); }; }(Ae || (Ae = {})); var ke; !function(e) { e.Text = 1; e.Method = 2; e.Function = 3; e.Constructor = 4; e.Field = 5; e.Variable = 6; e.Class = 7; e.Interface = 8; e.Module = 9; e.Property = 10; e.Unit = 11; e.Value = 12; e.Enum = 13; e.Keyword = 14; e.Snippet = 15; e.Color = 16; e.File = 17; e.Reference = 18; e.Folder = 19; e.EnumMember = 20; e.Constant = 21; e.Struct = 22; e.Event = 23; e.Operator = 24; e.TypeParameter = 25; }(ke || (ke = {})); var Le = Object.assign(Object.assign({}, r.Kind), { ALIASED_FIELD: "AliasedField", ARGUMENTS: "Arguments", SHORT_QUERY: "ShortQuery", QUERY: "Query", MUTATION: "Mutation", SUBSCRIPTION: "Subscription", TYPE_CONDITION: "TypeCondition", INVALID: "Invalid", COMMENT: "Comment", SCHEMA_DEF: "SchemaDef", SCALAR_DEF: "ScalarDef", OBJECT_TYPE_DEF: "ObjectTypeDef", OBJECT_VALUE: "ObjectValue", LIST_VALUE: "ListValue", INTERFACE_DEF: "InterfaceDef", UNION_DEF: "UnionDef", ENUM_DEF: "EnumDef", ENUM_VALUE: "EnumValue", FIELD_DEF: "FieldDef", INPUT_DEF: "InputDef", INPUT_VALUE_DEF: "InputValueDef", ARGUMENTS_DEF: "ArgumentsDef", EXTEND_DEF: "ExtendDef", EXTENSION_DEFINITION: "ExtensionDefinition", DIRECTIVE_DEF: "DirectiveDef", IMPLEMENTS: "Implements", VARIABLE_DEFINITIONS: "VariableDefinitions", TYPE: "Type" }); var Ce = { command: "editor.action.triggerSuggest", title: "Suggestions" }; var collectFragmentDefs = e => { var t = []; if (e) { try { r.visit(r.parse(e), { FragmentDefinition(e) { t.push(e); } }); } catch (e) { return []; } } return t; }; var Fe = [ r.Kind.SCHEMA_DEFINITION, r.Kind.OPERATION_TYPE_DEFINITION, r.Kind.SCALAR_TYPE_DEFINITION, r.Kind.OBJECT_TYPE_DEFINITION, r.Kind.INTERFACE_TYPE_DEFINITION, r.Kind.UNION_TYPE_DEFINITION, r.Kind.ENUM_TYPE_DEFINITION, r.Kind.INPUT_OBJECT_TYPE_DEFINITION, r.Kind.DIRECTIVE_DEFINITION, r.Kind.SCHEMA_EXTENSION, r.Kind.SCALAR_TYPE_EXTENSION, r.Kind.OBJECT_TYPE_EXTENSION, r.Kind.INTERFACE_TYPE_EXTENSION, r.Kind.UNION_TYPE_EXTENSION, r.Kind.ENUM_TYPE_EXTENSION, r.Kind.INPUT_OBJECT_TYPE_EXTENSION ]; var hasTypeSystemDefinitions = e => { var t = !1; if (e) { try { r.visit(r.parse(e), { enter(e) { if ("Document" === e.kind) { return; } if (Fe.includes(e.kind)) { t = !0; return r.BREAK; } return !1; } }); } catch (e) { return t; } } return t; }; function getAutocompleteSuggestions(e, t, n, i, a, o) { var s; var c = Object.assign(Object.assign({}, o), { schema: e }); var u = i || getTokenAtPosition(t, n, 1); var l = "Invalid" === u.state.kind ? u.state.prevState : u.state; var d = (null == o ? void 0 : o.mode) || function getDocumentMode(e, t) { if (null == t ? void 0 : t.endsWith(".graphqls")) { return xe.TYPE_SYSTEM; } return hasTypeSystemDefinitions(e) ? xe.TYPE_SYSTEM : xe.EXECUTABLE; }(t, null == o ? void 0 : o.uri); if (!l) { return []; } var {kind: f, step: v, prevState: p} = l; var g = getTypeInfo(e, u.state); if (f === Le.DOCUMENT) { if (d === xe.TYPE_SYSTEM) { return function getSuggestionsForTypeSystemDefinitions(e) { return hintList$1(e, [ { label: "extend", kind: ke.Function }, { label: "type", kind: ke.Function }, { label: "interface", kind: ke.Function }, { label: "union", kind: ke.Function }, { label: "input", kind: ke.Function }, { label: "scalar", kind: ke.Function }, { label: "schema", kind: ke.Function } ]); }(u); } return function getSuggestionsForExecutableDefinitions(e) { return hintList$1(e, [ { label: "query", kind: ke.Function }, { label: "mutation", kind: ke.Function }, { label: "subscription", kind: ke.Function }, { label: "fragment", kind: ke.Function }, { label: "{", kind: ke.Constructor } ]); }(u); } if (f === Le.EXTEND_DEF) { return function getSuggestionsForExtensionDefinitions(e) { return hintList$1(e, [ { label: "type", kind: ke.Function }, { label: "interface", kind: ke.Function }, { label: "union", kind: ke.Function }, { label: "input", kind: ke.Function }, { label: "scalar", kind: ke.Function }, { label: "schema", kind: ke.Function } ]); }(u); } if ((null === (s = null == p ? void 0 : p.prevState) || void 0 === s ? void 0 : s.kind) === Le.EXTENSION_DEFINITION && l.name) { return hintList$1(u, []); } if ((null == p ? void 0 : p.kind) === r.Kind.SCALAR_TYPE_EXTENSION) { return hintList$1(u, Object.values(e.getTypeMap()).filter(r.isScalarType).map((e => ({ label: e.name, kind: ke.Function })))); } if ((null == p ? void 0 : p.kind) === r.Kind.OBJECT_TYPE_EXTENSION) { return hintList$1(u, Object.values(e.getTypeMap()).filter((e => r.isObjectType(e) && !e.name.startsWith("__"))).map((e => ({ label: e.name, kind: ke.Function })))); } if ((null == p ? void 0 : p.kind) === r.Kind.INTERFACE_TYPE_EXTENSION) { return hintList$1(u, Object.values(e.getTypeMap()).filter(r.isInterfaceType).map((e => ({ label: e.name, kind: ke.Function })))); } if ((null == p ? void 0 : p.kind) === r.Kind.UNION_TYPE_EXTENSION) { return hintList$1(u, Object.values(e.getTypeMap()).filter(r.isUnionType).map((e => ({ label: e.name, kind: ke.Function })))); } if ((null == p ? void 0 : p.kind) === r.Kind.ENUM_TYPE_EXTENSION) { return hintList$1(u, Object.values(e.getTypeMap()).filter((e => r.isEnumType(e) && !e.name.startsWith("__"))).map((e => ({ label: e.name, kind: ke.Function })))); } if ((null == p ? void 0 : p.kind) === r.Kind.INPUT_OBJECT_TYPE_EXTENSION) { return hintList$1(u, Object.values(e.getTypeMap()).filter(r.isInputObjectType).map((e => ({ label: e.name, kind: ke.Function })))); } if (f === Le.IMPLEMENTS || f === Le.NAMED_TYPE && (null == p ? void 0 : p.kind) === Le.IMPLEMENTS) { return function getSuggestionsForImplements(e, t, n, i, a) { if (t.needsSeparator) { return []; } var o = n.getTypeMap(); var s = objectValues(o).filter(r.isInterfaceType); var c = s.map((({name: e}) => e)); var u = new Set; runOnlineParser$1(i, ((e, t) => { var i, o, s, l, d; if (t.name) { if (t.kind === Le.INTERFACE_DEF && !c.includes(t.name)) { u.add(t.name); } if (t.kind === Le.NAMED_TYPE && (null === (i = t.prevState) || void 0 === i ? void 0 : i.kind) === Le.IMPLEMENTS) { if (a.interfaceDef) { if (null === (o = a.interfaceDef) || void 0 === o ? void 0 : o.getInterfaces().find((({name: e}) => e === t.name))) { return; } var f = n.getType(t.name); var v = null === (s = a.interfaceDef) || void 0 === s ? void 0 : s.toConfig(); a.interfaceDef = new r.GraphQLInterfaceType(Object.assign(Object.assign({}, v), { interfaces: [ ...v.interfaces, f || new r.GraphQLInterfaceType({ name: t.name, fields: {} }) ] })); } else if (a.objectTypeDef) { if (null === (l = a.objectTypeDef) || void 0 === l ? void 0 : l.getInterfaces().find((({name: e}) => e === t.name))) { return; } var p = n.getType(t.name); var g = null === (d = a.objectTypeDef) || void 0 === d ? void 0 : d.toConfig(); a.objectTypeDef = new r.GraphQLObjectType(Object.assign(Object.assign({}, g), { interfaces: [ ...g.interfaces, p || new r.GraphQLInterfaceType({ name: t.name, fields: {} }) ] })); } } } })); var l = a.interfaceDef || a.objectTypeDef; var d = ((null == l ? void 0 : l.getInterfaces()) || []).map((({name: e}) => e)); var f = s.concat([ ...u ].map((e => ({ name: e })))).filter((({name: e}) => e !== (null == l ? void 0 : l.name) && !d.includes(e))); return hintList$1(e, f.map((e => { var t = { label: e.name, kind: ke.Interface, type: e }; if (null == e ? void 0 : e.description) { t.documentation = e.description; } return t; }))); }(u, l, e, t, g); } if (f === Le.SELECTION_SET || f === Le.FIELD || f === Le.ALIASED_FIELD) { return function getSuggestionsForFieldNames(e, t, n) { var i; if (t.parentType) { var {parentType: a} = t; var o = []; if ("getFields" in a) { o = objectValues(a.getFields()); } if (r.isCompositeType(a)) { o.push(r.TypeNameMetaFieldDef); } if (a === (null === (i = null == n ? void 0 : n.schema) || void 0 === i ? void 0 : i.getQueryType())) { o.push(r.SchemaMetaFieldDef, r.TypeMetaFieldDef); } return hintList$1(e, o.map(((e, t) => { var i; var r = { sortText: String(t) + e.name, label: e.name, detail: String(e.type), documentation: null !== (i = e.description) && void 0 !== i ? i : void 0, deprecated: Boolean(e.deprecationReason), isDeprecated: Boolean(e.deprecationReason), deprecationReason: e.deprecationReason, kind: ke.Field, type: e.type }; if (null == n ? void 0 : n.fillLeafsOnComplete) { var a = getInsertText(e); if (a) { r.insertText = e.name + a; r.insertTextFormat = Y.Snippet; r.command = Ce; } } return r; }))); } return []; }(u, g, c); } if (f === Le.ARGUMENTS |