UNPKG

@0no-co/graphqlsp

Version:

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

2,083 lines (1,892 loc) 75.9 kB
var e = require("./chunks/api-chunk.js"); var t = require("node:fs/promises"); var n = require("path"); var r = require("@gql.tada/internal"); var i = 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 r = e + ".tmp"; await t.writeFile(r, n); try { await t.rename(r, e); } catch (e) { await t.unlink(r); throw e; } finally { await (async e => { try { var n = new Date; await t.utimes(e, n, n); } catch (e) {} })(e); } } }; async function saveTadaIntrospection(e, i, a, o) { var s = r.minifyIntrospection(e); var u = r.outputIntrospectionFile(s, { fileType: i, shouldPreprocess: !a }); var c = i; if (await statFile(c, e => e.isDirectory())) { c = n.join(c, "introspection.d.ts"); } else if (!await statFile(c, e => !!e)) { await t.mkdir(n.dirname(c), { recursive: !0 }); if (await statFile(c, e => e.isDirectory())) { c = n.join(c, "introspection.d.ts"); } } try { await swapWrite(c, u); o(`Introspection saved to path @ ${c}`); } 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 === i.SchemaMetaFieldDef.name && e.getQueryType() === t) { return i.SchemaMetaFieldDef; } if (n === i.TypeMetaFieldDef.name && e.getQueryType() === t) { return i.TypeMetaFieldDef; } if (n === i.TypeNameMetaFieldDef.name && i.isCompositeType(t)) { return i.TypeNameMetaFieldDef; } if ("getFields" in t) { return t.getFields()[n]; } return null; } function forEachState(e, t) { var n = []; var r = e; while (null == r ? void 0 : r.kind) { n.push(r); r = r.prevState; } for (var i = n.length - 1; i >= 0; i--) { t(n[i]); } } function objectValues(e) { var t = Object.keys(e); var n = t.length; var r = new Array(n); for (var i = 0; i < n; ++i) { r[i] = e[t[i]]; } return r; } 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 r; var i = []; var a = e.length; var o = t.length; for (n = 0; n <= a; n++) { i[n] = [ n ]; } for (r = 1; r <= o; r++) { i[0][r] = r; } for (n = 1; n <= a; n++) { for (r = 1; r <= o; r++) { var s = e[n - 1] === t[r - 1] ? 0 : 1; i[n][r] = Math.min(i[n - 1][r] + 1, i[n][r - 1] + 1, i[n - 1][r - 1] + s); if (n > 1 && r > 1 && e[n - 1] === t[r - 2] && e[n - 2] === t[r - 1]) { i[n][r] = Math.min(i[n][r], i[n - 2][r - 2] + s); } } } return i[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 u; !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; }; }(u || (u = {})); var c; !function(e) { e.create = function create(e, t) { if (e === Number.MAX_VALUE) { e = u.MAX_VALUE; } if (t === Number.MAX_VALUE) { t = u.MAX_VALUE; } return { line: e, character: t }; }; e.is = function is(e) { var t = e; return ke.objectLiteral(t) && ke.uinteger(t.line) && ke.uinteger(t.character); }; }(c || (c = {})); var l; !function(e) { e.create = function create(e, t, n, r) { if (ke.uinteger(e) && ke.uinteger(t) && ke.uinteger(n) && ke.uinteger(r)) { return { start: c.create(e, t), end: c.create(n, r) }; } else if (c.is(e) && c.is(t)) { return { start: e, end: t }; } else { throw new Error(`Range#create called with invalid arguments[${e}, ${t}, ${n}, ${r}]`); } }; e.is = function is(e) { var t = e; return ke.objectLiteral(t) && c.is(t.start) && c.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 ke.objectLiteral(t) && l.is(t.range) && (ke.string(t.uri) || ke.undefined(t.uri)); }; }(d || (d = {})); var f; !function(e) { e.create = function create(e, t, n, r) { return { targetUri: e, targetRange: t, targetSelectionRange: n, originSelectionRange: r }; }; e.is = function is(e) { var t = e; return ke.objectLiteral(t) && l.is(t.targetRange) && ke.string(t.targetUri) && l.is(t.targetSelectionRange) && (l.is(t.originSelectionRange) || ke.undefined(t.originSelectionRange)); }; }(f || (f = {})); var v; !function(e) { e.create = function create(e, t, n, r) { return { red: e, green: t, blue: n, alpha: r }; }; e.is = function is(e) { var t = e; return ke.objectLiteral(t) && ke.numberRange(t.red, 0, 1) && ke.numberRange(t.green, 0, 1) && ke.numberRange(t.blue, 0, 1) && ke.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 ke.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 ke.objectLiteral(t) && ke.string(t.label) && (ke.undefined(t.textEdit) || N.is(t)) && (ke.undefined(t.additionalTextEdits) || ke.typedArray(t.additionalTextEdits, N.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, r, i, a) { var o = { startLine: e, endLine: t }; if (ke.defined(n)) { o.startCharacter = n; } if (ke.defined(r)) { o.endCharacter = r; } if (ke.defined(i)) { o.kind = i; } if (ke.defined(a)) { o.collapsedText = a; } return o; }; e.is = function is(e) { var t = e; return ke.objectLiteral(t) && ke.uinteger(t.startLine) && ke.uinteger(t.startLine) && (ke.undefined(t.startCharacter) || ke.uinteger(t.startCharacter)) && (ke.undefined(t.endCharacter) || ke.uinteger(t.endCharacter)) && (ke.undefined(t.kind) || ke.string(t.kind)); }; }(E || (E = {})); var T; !function(e) { e.create = function create(e, t) { return { location: e, message: t }; }; e.is = function is(e) { var t = e; return ke.defined(t) && d.is(t.location) && ke.string(t.message); }; }(T || (T = {})); var y; !function(e) { e.Error = 1; e.Warning = 2; e.Information = 3; e.Hint = 4; }(y || (y = {})); var I; !function(e) { e.Unnecessary = 1; e.Deprecated = 2; }(I || (I = {})); var h; !function(e) { e.is = function is(e) { var t = e; return ke.objectLiteral(t) && ke.string(t.href); }; }(h || (h = {})); var S; !function(e) { e.create = function create(e, t, n, r, i, a) { var o = { range: e, message: t }; if (ke.defined(n)) { o.severity = n; } if (ke.defined(r)) { o.code = r; } if (ke.defined(i)) { o.source = i; } if (ke.defined(a)) { o.relatedInformation = a; } return o; }; e.is = function is(e) { var t; var n = e; return ke.defined(n) && l.is(n.range) && ke.string(n.message) && (ke.number(n.severity) || ke.undefined(n.severity)) && (ke.integer(n.code) || ke.string(n.code) || ke.undefined(n.code)) && (ke.undefined(n.codeDescription) || ke.string(null === (t = n.codeDescription) || void 0 === t ? void 0 : t.href)) && (ke.string(n.source) || ke.undefined(n.source)) && (ke.undefined(n.relatedInformation) || ke.typedArray(n.relatedInformation, T.is)); }; }(S || (S = {})); var b; !function(e) { e.create = function create(e, t, ...n) { var r = { title: e, command: t }; if (ke.defined(n) && n.length > 0) { r.arguments = n; } return r; }; e.is = function is(e) { var t = e; return ke.defined(t) && ke.string(t.title) && ke.string(t.command); }; }(b || (b = {})); var N; !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 ke.objectLiteral(t) && ke.string(t.newText) && l.is(t.range); }; }(N || (N = {})); var D; !function(e) { e.create = function create(e, t, n) { var r = { label: e }; if (void 0 !== t) { r.needsConfirmation = t; } if (void 0 !== n) { r.description = n; } return r; }; e.is = function is(e) { var t = e; return ke.objectLiteral(t) && ke.string(t.label) && (ke.boolean(t.needsConfirmation) || void 0 === t.needsConfirmation) && (ke.string(t.description) || void 0 === t.description); }; }(D || (D = {})); var L; !function(e) { e.is = function is(e) { return ke.string(e); }; }(L || (L = {})); 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 N.is(t) && (D.is(t.annotationId) || L.is(t.annotationId)); }; }(A || (A = {})); var F; !function(e) { e.create = function create(e, t) { return { textDocument: e, edits: t }; }; e.is = function is(e) { var t = e; return ke.defined(t) && x.is(t.textDocument) && Array.isArray(t.edits); }; }(F || (F = {})); var _; !function(e) { e.create = function create(e, t, n) { var r = { kind: "create", uri: e }; if (void 0 !== t && (void 0 !== t.overwrite || void 0 !== t.ignoreIfExists)) { r.options = t; } if (void 0 !== n) { r.annotationId = n; } return r; }; e.is = function is(e) { var t = e; return t && "create" === t.kind && ke.string(t.uri) && (void 0 === t.options || (void 0 === t.options.overwrite || ke.boolean(t.options.overwrite)) && (void 0 === t.options.ignoreIfExists || ke.boolean(t.options.ignoreIfExists))) && (void 0 === t.annotationId || L.is(t.annotationId)); }; }(_ || (_ = {})); var k; !function(e) { e.create = function create(e, t, n, r) { var i = { kind: "rename", oldUri: e, newUri: t }; if (void 0 !== n && (void 0 !== n.overwrite || void 0 !== n.ignoreIfExists)) { i.options = n; } if (void 0 !== r) { i.annotationId = r; } return i; }; e.is = function is(e) { var t = e; return t && "rename" === t.kind && ke.string(t.oldUri) && ke.string(t.newUri) && (void 0 === t.options || (void 0 === t.options.overwrite || ke.boolean(t.options.overwrite)) && (void 0 === t.options.ignoreIfExists || ke.boolean(t.options.ignoreIfExists))) && (void 0 === t.annotationId || L.is(t.annotationId)); }; }(k || (k = {})); var C; !function(e) { e.create = function create(e, t, n) { var r = { kind: "delete", uri: e }; if (void 0 !== t && (void 0 !== t.recursive || void 0 !== t.ignoreIfNotExists)) { r.options = t; } if (void 0 !== n) { r.annotationId = n; } return r; }; e.is = function is(e) { var t = e; return t && "delete" === t.kind && ke.string(t.uri) && (void 0 === t.options || (void 0 === t.options.recursive || ke.boolean(t.options.recursive)) && (void 0 === t.options.ignoreIfNotExists || ke.boolean(t.options.ignoreIfNotExists))) && (void 0 === t.annotationId || L.is(t.annotationId)); }; }(C || (C = {})); 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(e => { if (ke.string(e.kind)) { return _.is(e) || k.is(e) || C.is(e); } else { return F.is(e); } })); }; }(O || (O = {})); var M; !function(e) { e.create = function create(e) { return { uri: e }; }; e.is = function is(e) { var t = e; return ke.defined(t) && ke.string(t.uri); }; }(M || (M = {})); var P; !function(e) { e.create = function create(e, t) { return { uri: e, version: t }; }; e.is = function is(e) { var t = e; return ke.defined(t) && ke.string(t.uri) && ke.integer(t.version); }; }(P || (P = {})); var x; !function(e) { e.create = function create(e, t) { return { uri: e, version: t }; }; e.is = function is(e) { var t = e; return ke.defined(t) && ke.string(t.uri) && (null === t.version || ke.integer(t.version)); }; }(x || (x = {})); var R; !function(e) { e.create = function create(e, t, n, r) { return { uri: e, languageId: t, version: n, text: r }; }; e.is = function is(e) { var t = e; return ke.defined(t) && ke.string(t.uri) && ke.string(t.languageId) && ke.integer(t.version) && ke.string(t.text); }; }(R || (R = {})); 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 w; !function(e) { e.is = function is(e) { var t = e; return ke.objectLiteral(e) && U.is(t.kind) && ke.string(t.value); }; }(w || (w = {})); var j; !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; }(j || (j = {})); var V; !function(e) { e.PlainText = 1; e.Snippet = 2; }(V || (V = {})); var G; !function(e) { e.Deprecated = 1; }(G || (G = {})); var Y; !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 && ke.string(t.newText) && l.is(t.insert) && l.is(t.replace); }; }(Y || (Y = {})); var $; !function(e) { e.asIs = 1; e.adjustIndentation = 2; }($ || ($ = {})); var Q; !function(e) { e.is = function is(e) { var t = e; return t && (ke.string(t.detail) || void 0 === t.detail) && (ke.string(t.description) || void 0 === t.description); }; }(Q || (Q = {})); var B; !function(e) { e.create = function create(e) { return { label: e }; }; }(B || (B = {})); var K; !function(e) { e.create = function create(e, t) { return { items: e ? e : [], isIncomplete: !!t }; }; }(K || (K = {})); var X; !function(e) { e.fromPlainText = function fromPlainText(e) { return e.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&"); }; e.is = function is(e) { var t = e; return ke.string(t) || ke.objectLiteral(t) && ke.string(t.language) && ke.string(t.value); }; }(X || (X = {})); var J; !function(e) { e.is = function is(e) { var t = e; return !!t && ke.objectLiteral(t) && (w.is(t.contents) || X.is(t.contents) || ke.typedArray(t.contents, X.is)) && (void 0 === e.range || l.is(e.range)); }; }(J || (J = {})); var q; !function(e) { e.create = function create(e, t) { return t ? { label: e, documentation: t } : { label: e }; }; }(q || (q = {})); var z; !function(e) { e.create = function create(e, t, ...n) { var r = { label: e }; if (ke.defined(t)) { r.documentation = t; } if (ke.defined(n)) { r.parameters = n; } else { r.parameters = []; } return r; }; }(z || (z = {})); var H; !function(e) { e.Text = 1; e.Read = 2; e.Write = 3; }(H || (H = {})); var W; !function(e) { e.create = function create(e, t) { var n = { range: e }; if (ke.number(t)) { n.kind = t; } return n; }; }(W || (W = {})); var Z; !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; }(Z || (Z = {})); var ee; !function(e) { e.Deprecated = 1; }(ee || (ee = {})); var te; !function(e) { e.create = function create(e, t, n, r, i) { var a = { name: e, kind: t, location: { uri: r, range: n } }; if (i) { a.containerName = i; } return a; }; }(te || (te = {})); var ne; !function(e) { e.create = function create(e, t, n, r) { return void 0 !== r ? { name: e, kind: t, location: { uri: n, range: r } } : { name: e, kind: t, location: { uri: n } }; }; }(ne || (ne = {})); var re; !function(e) { e.create = function create(e, t, n, r, i, a) { var o = { name: e, detail: t, kind: n, range: r, selectionRange: i }; if (void 0 !== a) { o.children = a; } return o; }; e.is = function is(e) { var t = e; return t && ke.string(t.name) && ke.number(t.kind) && l.is(t.range) && l.is(t.selectionRange) && (void 0 === t.detail || ke.string(t.detail)) && (void 0 === t.deprecated || ke.boolean(t.deprecated)) && (void 0 === t.children || Array.isArray(t.children)) && (void 0 === t.tags || Array.isArray(t.tags)); }; }(re || (re = {})); var ie; !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"; }(ie || (ie = {})); var ae; !function(e) { e.Invoked = 1; e.Automatic = 2; }(ae || (ae = {})); var oe; !function(e) { e.create = function create(e, t, n) { var r = { diagnostics: e }; if (null != t) { r.only = t; } if (null != n) { r.triggerKind = n; } return r; }; e.is = function is(e) { var t = e; return ke.defined(t) && ke.typedArray(t.diagnostics, S.is) && (void 0 === t.only || ke.typedArray(t.only, ke.string)) && (void 0 === t.triggerKind || t.triggerKind === ae.Invoked || t.triggerKind === ae.Automatic); }; }(oe || (oe = {})); var se; !function(e) { e.create = function create(e, t, n) { var r = { title: e }; var i = !0; if ("string" == typeof t) { i = !1; r.kind = t; } else if (b.is(t)) { r.command = t; } else { r.edit = t; } if (i && void 0 !== n) { r.kind = n; } return r; }; e.is = function is(e) { var t = e; return t && ke.string(t.title) && (void 0 === t.diagnostics || ke.typedArray(t.diagnostics, S.is)) && (void 0 === t.kind || ke.string(t.kind)) && (void 0 !== t.edit || void 0 !== t.command) && (void 0 === t.command || b.is(t.command)) && (void 0 === t.isPreferred || ke.boolean(t.isPreferred)) && (void 0 === t.edit || O.is(t.edit)); }; }(se || (se = {})); var ue; !function(e) { e.create = function create(e, t) { var n = { range: e }; if (ke.defined(t)) { n.data = t; } return n; }; e.is = function is(e) { var t = e; return ke.defined(t) && l.is(t.range) && (ke.undefined(t.command) || b.is(t.command)); }; }(ue || (ue = {})); var ce; !function(e) { e.create = function create(e, t) { return { tabSize: e, insertSpaces: t }; }; e.is = function is(e) { var t = e; return ke.defined(t) && ke.uinteger(t.tabSize) && ke.boolean(t.insertSpaces); }; }(ce || (ce = {})); var le; !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 ke.defined(t) && l.is(t.range) && (ke.undefined(t.target) || ke.string(t.target)); }; }(le || (le = {})); var de; !function(e) { e.create = function create(e, t) { return { range: e, parent: t }; }; e.is = function is(t) { var n = t; return ke.objectLiteral(n) && l.is(n.range) && (void 0 === n.parent || e.is(n.parent)); }; }(de || (de = {})); var fe; !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"; }(fe || (fe = {})); var ve; !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"; }(ve || (ve = {})); var pe; !function(e) { e.is = function is(e) { var t = e; return ke.objectLiteral(t) && (void 0 === t.resultId || "string" == typeof t.resultId) && Array.isArray(t.data) && (0 === t.data.length || "number" == typeof t.data[0]); }; }(pe || (pe = {})); var ge; !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) && ke.string(t.text); }; }(ge || (ge = {})); var me; !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) && ke.boolean(t.caseSensitiveLookup) && (ke.string(t.variableName) || void 0 === t.variableName); }; }(me || (me = {})); var Ee; !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) && (ke.string(t.expression) || void 0 === t.expression); }; }(Ee || (Ee = {})); var Te; !function(e) { e.create = function create(e, t) { return { frameId: e, stoppedLocation: t }; }; e.is = function is(e) { return ke.defined(e) && l.is(e.stoppedLocation); }; }(Te || (Te = {})); var ye; !function(e) { e.Type = 1; e.Parameter = 2; e.is = function is(e) { return 1 === e || 2 === e; }; }(ye || (ye = {})); var Ie; !function(e) { e.create = function create(e) { return { value: e }; }; e.is = function is(e) { var t = e; return ke.objectLiteral(t) && (void 0 === t.tooltip || ke.string(t.tooltip) || w.is(t.tooltip)) && (void 0 === t.location || d.is(t.location)) && (void 0 === t.command || b.is(t.command)); }; }(Ie || (Ie = {})); var he; !function(e) { e.create = function create(e, t, n) { var r = { position: e, label: t }; if (void 0 !== n) { r.kind = n; } return r; }; e.is = function is(e) { var t = e; return ke.objectLiteral(t) && c.is(t.position) && (ke.string(t.label) || ke.typedArray(t.label, Ie.is)) && (void 0 === t.kind || ye.is(t.kind)) && void 0 === t.textEdits || ke.typedArray(t.textEdits, N.is) && (void 0 === t.tooltip || ke.string(t.tooltip) || w.is(t.tooltip)) && (void 0 === t.paddingLeft || ke.boolean(t.paddingLeft)) && (void 0 === t.paddingRight || ke.boolean(t.paddingRight)); }; }(he || (he = {})); var Se; !function(e) { e.createSnippet = function createSnippet(e) { return { kind: "snippet", value: e }; }; }(Se || (Se = {})); var be; !function(e) { e.create = function create(e, t, n, r) { return { insertText: e, filterText: t, range: n, command: r }; }; }(be || (be = {})); var Ne; !function(e) { e.create = function create(e) { return { items: e }; }; }(Ne || (Ne = {})); var De; !function(e) { e.Invoked = 0; e.Automatic = 1; }(De || (De = {})); var Le; !function(e) { e.create = function create(e, t) { return { range: e, text: t }; }; }(Le || (Le = {})); var Ae; !function(e) { e.create = function create(e, t) { return { triggerKind: e, selectedCompletionInfo: t }; }; }(Ae || (Ae = {})); var Fe; !function(e) { e.is = function is(e) { var t = e; return ke.objectLiteral(t) && o.is(t.uri) && ke.string(t.name); }; }(Fe || (Fe = {})); var _e; !function(e) { e.create = function create(e, t, n, r) { return new FullTextDocument(e, t, n, r); }; e.is = function is(e) { var t = e; return ke.defined(t) && ke.string(t.uri) && (ke.undefined(t.languageId) || ke.string(t.languageId)) && ke.uinteger(t.lineCount) && ke.func(t.getText) && ke.func(t.positionAt) && ke.func(t.offsetAt) ? !0 : !1; }; e.applyEdits = function applyEdits(e, t) { var n = e.getText(); var r = mergeSort(t, (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 i = n.length; for (var a = r.length - 1; a >= 0; a--) { var o = r[a]; var s = e.offsetAt(o.range.start); var u = e.offsetAt(o.range.end); if (u <= i) { n = n.substring(0, s) + o.newText + n.substring(u, n.length); } else { throw new Error("Overlapping edit"); } i = s; } return n; }; function mergeSort(e, t) { if (e.length <= 1) { return e; } var n = e.length / 2 | 0; var r = e.slice(0, n); var i = e.slice(n); mergeSort(r, t); mergeSort(i, t); var a = 0; var o = 0; var s = 0; while (a < r.length && o < i.length) { if (t(r[a], i[o]) <= 0) { e[s++] = r[a++]; } else { e[s++] = i[o++]; } } while (a < r.length) { e[s++] = r[a++]; } while (o < i.length) { e[s++] = i[o++]; } return e; } }(_e || (_e = {})); class FullTextDocument { constructor(e, t, n, r) { this._uri = e; this._languageId = t; this._version = n; this._content = r; this._lineOffsets = void 0; } get uri() { return this._uri; } get languageId() { return this._languageId; } get version() { return this._version; } getText(e) { if (e) { var t = this.offsetAt(e.start); var n = this.offsetAt(e.end); return this._content.substring(t, n); } return this._content; } update(e, t) { this._content = e.text; this._version = t; this._lineOffsets = void 0; } getLineOffsets() { if (void 0 === this._lineOffsets) { var e = []; var t = this._content; var n = !0; for (var r = 0; r < t.length; r++) { if (n) { e.push(r); n = !1; } var i = t.charAt(r); n = "\r" === i || "\n" === i; if ("\r" === i && r + 1 < t.length && "\n" === t.charAt(r + 1)) { r++; } } if (n && t.length > 0) { e.push(t.length); } this._lineOffsets = e; } return this._lineOffsets; } positionAt(e) { e = Math.max(Math.min(e, this._content.length), 0); var t = this.getLineOffsets(); var n = 0, r = t.length; if (0 === r) { return c.create(0, e); } while (n < r) { var i = Math.floor((n + r) / 2); if (t[i] > e) { r = i; } else { n = i + 1; } } var a = n - 1; return c.create(a, e - t[a]); } offsetAt(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); } get lineCount() { return this.getLineOffsets().length; } } var ke; !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, r) { return "[object Number]" === t.call(e) && n <= e && e <= r; }; 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); }; }(ke || (ke = {})); var Ce; !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; }(Ce || (Ce = {})); var Oe = Object.assign(Object.assign({}, i.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 Me = { command: "editor.action.triggerSuggest", title: "Suggestions" }; var Pe = [ i.Kind.SCHEMA_DEFINITION, i.Kind.OPERATION_TYPE_DEFINITION, i.Kind.SCALAR_TYPE_DEFINITION, i.Kind.OBJECT_TYPE_DEFINITION, i.Kind.INTERFACE_TYPE_DEFINITION, i.Kind.UNION_TYPE_DEFINITION, i.Kind.ENUM_TYPE_DEFINITION, i.Kind.INPUT_OBJECT_TYPE_DEFINITION, i.Kind.DIRECTIVE_DEFINITION, i.Kind.SCHEMA_EXTENSION, i.Kind.SCALAR_TYPE_EXTENSION, i.Kind.OBJECT_TYPE_EXTENSION, i.Kind.INTERFACE_TYPE_EXTENSION, i.Kind.UNION_TYPE_EXTENSION, i.Kind.ENUM_TYPE_EXTENSION, i.Kind.INPUT_OBJECT_TYPE_EXTENSION ]; function getAutocompleteSuggestions(e, t, n, r, a, o) { var s; var u = Object.assign(Object.assign({}, o), { schema: e }); var c = r || getTokenAtPosition(t, n, 1); var l = "Invalid" === c.state.kind ? c.state.prevState : c.state; var d = (null == o ? void 0 : o.mode) || function getDocumentMode(e, t) { if (null == t ? void 0 : t.endsWith(".graphqls")) { return Re.TYPE_SYSTEM; } return (e => { var t = !1; if (e) { try { i.visit(i.parse(e), { enter(e) { if ("Document" === e.kind) { return; } if (Pe.includes(e.kind)) { t = !0; return i.BREAK; } return !1; } }); } catch (e) { return t; } } return t; })(e) ? Re.TYPE_SYSTEM : Re.EXECUTABLE; }(t, null == o ? void 0 : o.uri); if (!l) { return []; } var {kind: f, step: v, prevState: p} = l; var g = getTypeInfo(e, c.state); if (f === Oe.DOCUMENT) { if (d === Re.TYPE_SYSTEM) { return function getSuggestionsForTypeSystemDefinitions(e) { return hintList$1(e, [ { label: "extend", kind: Ce.Function }, { label: "type", kind: Ce.Function }, { label: "interface", kind: Ce.Function }, { label: "union", kind: Ce.Function }, { label: "input", kind: Ce.Function }, { label: "scalar", kind: Ce.Function }, { label: "schema", kind: Ce.Function } ]); }(c); } return function getSuggestionsForExecutableDefinitions(e) { return hintList$1(e, [ { label: "query", kind: Ce.Function }, { label: "mutation", kind: Ce.Function }, { label: "subscription", kind: Ce.Function }, { label: "fragment", kind: Ce.Function }, { label: "{", kind: Ce.Constructor } ]); }(c); } if (f === Oe.EXTEND_DEF) { return function getSuggestionsForExtensionDefinitions(e) { return hintList$1(e, [ { label: "type", kind: Ce.Function }, { label: "interface", kind: Ce.Function }, { label: "union", kind: Ce.Function }, { label: "input", kind: Ce.Function }, { label: "scalar", kind: Ce.Function }, { label: "schema", kind: Ce.Function } ]); }(c); } if ((null === (s = null == p ? void 0 : p.prevState) || void 0 === s ? void 0 : s.kind) === Oe.EXTENSION_DEFINITION && l.name) { return hintList$1(c, []); } if ((null == p ? void 0 : p.kind) === i.Kind.SCALAR_TYPE_EXTENSION) { return hintList$1(c, Object.values(e.getTypeMap()).filter(i.isScalarType).map(e => ({ label: e.name, kind: Ce.Function }))); } if ((null == p ? void 0 : p.kind) === i.Kind.OBJECT_TYPE_EXTENSION) { return hintList$1(c, Object.values(e.getTypeMap()).filter(e => i.isObjectType(e) && !e.name.startsWith("__")).map(e => ({ label: e.name, kind: Ce.Function }))); } if ((null == p ? void 0 : p.kind) === i.Kind.INTERFACE_TYPE_EXTENSION) { return hintList$1(c, Object.values(e.getTypeMap()).filter(i.isInterfaceType).map(e => ({ label: e.name, kind: Ce.Function }))); } if ((null == p ? void 0 : p.kind) === i.Kind.UNION_TYPE_EXTENSION) { return hintList$1(c, Object.values(e.getTypeMap()).filter(i.isUnionType).map(e => ({ label: e.name, kind: Ce.Function }))); } if ((null == p ? void 0 : p.kind) === i.Kind.ENUM_TYPE_EXTENSION) { return hintList$1(c, Object.values(e.getTypeMap()).filter(e => i.isEnumType(e) && !e.name.startsWith("__")).map(e => ({ label: e.name, kind: Ce.Function }))); } if ((null == p ? void 0 : p.kind) === i.Kind.INPUT_OBJECT_TYPE_EXTENSION) { return hintList$1(c, Object.values(e.getTypeMap()).filter(i.isInputObjectType).map(e => ({ label: e.name, kind: Ce.Function }))); } if (f === Oe.IMPLEMENTS || f === Oe.NAMED_TYPE && (null == p ? void 0 : p.kind) === Oe.IMPLEMENTS) { return function getSuggestionsForImplements(e, t, n, r, a) { if (t.needsSeparator) { return []; } var o = n.getTypeMap(); var s = objectValues(o).filter(i.isInterfaceType); var u = s.map(({name: e}) => e); var c = new Set; runOnlineParser$1(r, (e, t) => { var r, o, s, l, d; if (t.name) { if (t.kind === Oe.INTERFACE_DEF && !u.includes(t.name)) { c.add(t.name); } if (t.kind === Oe.NAMED_TYPE && (null === (r = t.prevState) || void 0 === r ? void 0 : r.kind) === Oe.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 i.GraphQLInterfaceType(Object.assign(Object.assign({}, v), { interfaces: [ ...v.interfaces, f || new i.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 i.GraphQLObjectType(Object.assign(Object.assign({}, g), { interfaces: [ ...g.interfaces, p || new i.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([ ...c ].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: Ce.Interface, type: e }; if (null == e ? void 0 : e.description) { t.documentation = e.description; } return t; })); }(c, l, e, t, g); } if (f === Oe.SELECTION_SET || f === Oe.FIELD || f === Oe.ALIASED_FIELD) { return function getSuggestionsForFieldNames(e, t, n) { var r; if (t.parentType) { var {parentType: a} = t; var o = []; if ("getFields" in a) { o = objectValues(a.getFields()); } if (i.isCompositeType(a)) { o.push(i.TypeNameMetaFieldDef); } if (a === (null === (r = null == n ? void 0 : n.schema) || void 0 === r ? void 0 : r.getQueryType())) { o.push(i.SchemaMetaFieldDef, i.TypeMetaFieldDef); } return hintList$1(e, o.map((e, t) => { var r; var i = { sortText: String(t) + e.name, label: e.name, detail: String(e.type), documentation: null !== (r = e.description) && void 0 !== r ? r : void 0, deprecated: Boolean(e.deprecationReason), isDeprecated: Boolean(e.deprecationReason), deprecationReason: e.deprecationReason, kind: Ce.Field, type: e.type }; if (null == n ? void 0 : n.fillLeafsOnComplete) { var a = getInsertText(e); if (a) { i.insertText = e.name + a; i.insertTextFormat = V.Snippet; i.command = Me; } } return i; })); } return []; }(c, g, u); } if (f === Oe.ARGUMENTS || f === Oe.ARGUMENT && 0 === v) { var {argDefs: m} = g; if (m) { return hintList$1(c, m.map(e => { var t; return { label: e.name, insertText: e.name + ": ", command: Me, detail: String(e.type), documentation: null !== (t = e.description) && void 0 !== t ? t : void 0, kind: Ce.Variable, type: e.type }; })); } } if ((f === Oe.OBJECT_VALUE || f === Oe.OBJECT_FIELD && 0 === v) && g.objectFieldDefs) { var E = objectValues(g.objectFieldDefs); var T = f === Oe.OBJECT_VALUE ? Ce.Value : Ce.Field; return hintList$1(c, E.map(e => { var t; return { label: e.name, detail: String(e.type), documentation: null !== (t = e.description) && void 0 !== t ? t : void 0, kind: T, type: e.type }; })); } if (f === Oe.ENUM_VALUE || f === Oe.LIST_VALUE && 1 === v || f === Oe.OBJECT_FIELD && 2 === v || f === Oe.ARGUMENT && 2 === v) { return function getSuggestionsForInputValues(e, t, n, r) { var a = i.getNamedType(t.inputType); var o = getVariableCompletions(n, r, e).filter(e => e.detail === a.name); if (a instanceof i.GraphQLEnumType) { return hintList$1(e, a.getValues().map(e => { var t; return { label: e.name, detail: String(a), documentation: null !== (t = e.description) && void 0 !== t ? t : void 0, deprecated: Boolean(e.deprecationReason), isDeprecated: Boolean(e.deprecationReason), deprecationReason: e.deprecationReason, kind: Ce.EnumMember, type: a }; }).concat(o)); } if (a === i.GraphQLBoolean) { return hintList$1(e, o.concat([ { label: "true", detail: String(i.GraphQLBoolean), documentation: "Not false.", kind: Ce.Variable, type: i.GraphQLBoolean }, { label: "false", detail: String(i.GraphQLBoolean), documentation: "Not true.", kind: Ce.Variable, type: i.GraphQLBoolean } ])); } return o; }(c, g, t, e); } if (f === Oe.VARIABLE && 1 === v) { var y = i.getNamedType(g.inputType); return hintList$1(c, getVariableCompletions(t, e, c).filter(e => e.detail === (null == y ? void 0 : y.name))); } if (f === Oe.TYPE_CONDITION && 1 === v || f === Oe.NAMED_TYPE && null != p && p.kind === Oe.TYPE_CONDITION) { return function getSuggestionsForFragmentTypeConditions(e, t, n, r) { var a; if (t.parentType) { if (i.isAbstractType(t.parentType)) { var o = i.assertAbstractType(t.parentType); var s = n.getPossibleTypes(o); var u = Object.create(null); for (var c of s) { for (var l of c.getInterfaces()) { u[l.name] = l; } } a = s.concat(objectValues(u)); } else { a = [ t.parentType ]; } } else { a = objectValues(n.getTypeMap()).filter(e => i.isCompositeType(e) && !e.name.startsWith("__")); } return hintList$1(e, a.map(e => { var t = i.getNamedType(e); return { label: String(e), documentation: (null == t ? void 0 : t.description) || "", kind: Ce.Field }; })); }(c, g, e); } if (f === Oe.FRAGMENT_SPREAD && 1 === v) { return function getSuggestionsForFragmentSpread$1(e, t, n, r, a) { if (!r) { return []; } var o = n.getTypeMap(); var s = getDefinitionState(e.state); var u = function getFragmentDefinitions(e) { var t = []; runOnlineParser$1(e, (e, n) => { if (n.kind === Oe.FRAGMENT_DEFINITION && n.name && n.type) { t.push({ kind: Oe.FRAGMENT_DEFINITION, name: { kind: i.Kind.NAME, value: n.name }, selectionSet: { kind: Oe.SELECTION_SET, selections: [] }, typeCondition: { kind: Oe.NAMED_TYPE, name: { kind: i.Kind.NAME, value: n.type } } }); } }); return t; }(r); if (a && a.length > 0) { u.push(...a); } var c = u.filter(e => o[e.typeCondition.name.value] && !(s && s.kind === Oe.FRAGMENT_DEFINITION && s.name === e.name.value) && i.isCompositeType(t.parentType) && i.isCompositeType(o[e.typeCondition.name.value]) && i.doTypesOverlap(n, t.parentType, o[e.typeCondition.name.value])); return hintList$1(e, c.map(e => ({ label: e.name.value, detail: String(o[e.typeCondition.name.value]), documentation: `fragment ${e.name.value} on ${e.typeCondition.name.value}`, kind: Ce.Field, type: o[e.typeCondition.name.value] }))); }(c, g, e, t, Array.isArray(a) ? a : (e => { var t = []; if (e) { try { i.visit(i.parse(e), { FragmentDefinition(e) { t.push(e); } }); } catch (e) { return []; } } return t; })(a)); } var I = unwrapType(l); if (d === Re.TYPE_SYSTEM && !I.needsAdvance && f === Oe.NAMED_TYPE || f === Oe.LIST_TYPE) { if (I.kind === Oe.FIELD_DEF) { return hintList$1(c, Object.values(e.getTypeMap()).filter(e => i.isOutputType(e) && !e.name.startsWith("__")).map(e => ({ label: e.name, kind: Ce.Function }))); } if (I.kind === Oe.INPUT_VALUE_DEF) { return hintList$1(c, Object.values(e.getTypeMap()).filter(e => i.isInputType(e) && !e.name.startsWith("__")).map(e => ({ label: e.name, kind: Ce.Function }))); } } if (f === Oe.VARIABLE_DEFINITION && 2 === v || f === Oe.LIST_TYPE && 1 === v || f === Oe.NAMED_TYPE && p && (p.kind === Oe.VARIABLE_DEFINITION || p.kind === Oe.LIST_TYPE || p.kind === Oe.NON_NULL_TYPE)) { return function getSuggestionsForVariableDefinition(e, t, n) { var r = t.getTypeMap(); var a = objectValues(r).filter(i.isInputType); return hintList$1(e, a.map(e => ({ label: e.name, documentation: e.description, kind: Ce.Variable }))); }(c, e); } if (f === Oe.DIRECTIVE) { return function getSuggestionsForDirective(e, t, n, r) { var a; if (null === (a = t.prevState) || void 0 === a ? void 0 : a.kind) { var o = n.getDirectives().filter(e => function canUseDirective(e, t) { if (!(null == e ? void 0 : e.kind)) { return !1; } var {kind: n, prevState: r} = e; var {locations: a} = t; switch (n) { case Oe.QUERY: return a.includes(i.DirectiveLocation.QUERY); case Oe.MUTATION: return a.includes(i.DirectiveLocation.MUTATION); case Oe.SUBSCRIPTION: return a.includes(i.DirectiveLocation.SUBSCRIPTION); case Oe.FIELD: case Oe.ALIASED_FIELD: return a.includes(i.DirectiveLocation.FIELD); case Oe.FRAGMENT_DEFINITION: return a.includes(i.DirectiveLocation.FRAGMENT_DEFINITION); case Oe.FRAGMENT_SPREAD: return a.includes(i.DirectiveLocation.FRAGMENT_SPREAD); case Oe.INLINE_FRAGMENT: return a.includes(i.DirectiveLocation.INLINE_FRAGMENT); case Oe.SCHEMA_DEF: return a.includes(i.DirectiveLocation.SCHEMA); case Oe.SCALAR_DEF: return a.includes(i.DirectiveLocation.SCALAR); case Oe.OBJECT_TYPE_DEF: return a.includes(i.DirectiveLocation.OBJECT);