import { Ku as __commonJSMin, Yu as __toESM, f as Uri, h as languages, p as editor } from "./editor.api-DPgI1LYm.js";
import { At as isPrintableAsBlockString, D as astFromValue, E as isIntrospectionType, Et as inspect, It as invariant, Mt as Kind, P as isSpecifiedDirective, V as isSpecifiedScalarType, _t as isUnionType, at as isEnumType, ct as isInterfaceType, gt as isScalarType, k as DEFAULT_DEPRECATION_REASON, mt as isObjectType, n as buildASTSchema, ot as isInputObjectType, yt as print } from "./monaco-editor-CXHJEBOf.js";
import "./monaco.contribution-BUcZa-0g.js";
function printSchema(p) {
	return printFilteredSchema(p, (p) => !isSpecifiedDirective(p), isDefinedType);
}
function isDefinedType(p) {
	return !isSpecifiedScalarType(p) && !isIntrospectionType(p);
}
function printFilteredSchema(p, H, U) {
	let W = p.getDirectives().filter(H), G = Object.values(p.getTypeMap()).filter(U);
	return [
		printSchemaDefinition(p),
		...W.map((p) => printDirective(p)),
		...G.map((p) => printType(p))
	].filter(Boolean).join("\n\n");
}
function printSchemaDefinition(p) {
	if (p.description == null && isSchemaOfCommonNames(p)) return;
	let H = [], U = p.getQueryType();
	U && H.push(`  query: ${U.name}`);
	let W = p.getMutationType();
	W && H.push(`  mutation: ${W.name}`);
	let G = p.getSubscriptionType();
	return G && H.push(`  subscription: ${G.name}`), printDescription(p) + `schema {\n${H.join("\n")}\n}`;
}
function isSchemaOfCommonNames(p) {
	let H = p.getQueryType();
	if (H && H.name !== "Query") return !1;
	let U = p.getMutationType();
	if (U && U.name !== "Mutation") return !1;
	let W = p.getSubscriptionType();
	return !(W && W.name !== "Subscription");
}
function printType(p) {
	if (isScalarType(p)) return printScalar(p);
	if (isObjectType(p)) return printObject(p);
	if (isInterfaceType(p)) return printInterface(p);
	if (isUnionType(p)) return printUnion(p);
	if (isEnumType(p)) return printEnum(p);
	if (isInputObjectType(p)) return printInputObject(p);
	/* c8 ignore next 3 */
	invariant(!1, "Unexpected type: " + inspect(p));
}
function printScalar(p) {
	return printDescription(p) + `scalar ${p.name}` + printSpecifiedByURL(p);
}
function printImplementedInterfaces(p) {
	let H = p.getInterfaces();
	return H.length ? " implements " + H.map((p) => p.name).join(" & ") : "";
}
function printObject(p) {
	return printDescription(p) + `type ${p.name}` + printImplementedInterfaces(p) + printFields(p);
}
function printInterface(p) {
	return printDescription(p) + `interface ${p.name}` + printImplementedInterfaces(p) + printFields(p);
}
function printUnion(p) {
	let H = p.getTypes(), U = H.length ? " = " + H.join(" | ") : "";
	return printDescription(p) + "union " + p.name + U;
}
function printEnum(p) {
	let H = p.getValues().map((p, H) => printDescription(p, "  ", !H) + "  " + p.name + printDeprecated(p.deprecationReason));
	return printDescription(p) + `enum ${p.name}` + printBlock(H);
}
function printInputObject(p) {
	let H = Object.values(p.getFields()).map((p, H) => printDescription(p, "  ", !H) + "  " + printInputValue(p));
	return printDescription(p) + `input ${p.name}` + (p.isOneOf ? " @oneOf" : "") + printBlock(H);
}
function printFields(p) {
	let H = Object.values(p.getFields()).map((p, H) => printDescription(p, "  ", !H) + "  " + p.name + printArgs(p.args, "  ") + ": " + String(p.type) + printDeprecated(p.deprecationReason));
	return printBlock(H);
}
function printBlock(p) {
	return p.length === 0 ? "" : " {\n" + p.join("\n") + "\n}";
}
function printArgs(p, H = "") {
	return p.length === 0 ? "" : p.every((p) => !p.description) ? "(" + p.map(printInputValue).join(", ") + ")" : "(\n" + p.map((p, U) => printDescription(p, "  " + H, !U) + "  " + H + printInputValue(p)).join("\n") + "\n" + H + ")";
}
function printInputValue(p) {
	let H = astFromValue(p.defaultValue, p.type), U = p.name + ": " + String(p.type);
	return H && (U += ` = ${print(H)}`), U + printDeprecated(p.deprecationReason);
}
function printDirective(p) {
	return printDescription(p) + "directive @" + p.name + printArgs(p.args) + (p.isRepeatable ? " repeatable" : "") + " on " + p.locations.join(" | ");
}
function printDeprecated(p) {
	return p == null ? "" : p === "No longer supported" ? " @deprecated" : ` @deprecated(reason: ${print({
		kind: Kind.STRING,
		value: p
	})})`;
}
function printSpecifiedByURL(p) {
	return p.specifiedByURL == null ? "" : ` @specifiedBy(url: ${print({
		kind: Kind.STRING,
		value: p.specifiedByURL
	})})`;
}
function printDescription(p, H = "", U = !0) {
	let { description: W } = p;
	if (W == null) return "";
	let G = print({
		kind: Kind.STRING,
		value: W,
		block: isPrintableAsBlockString(W)
	});
	return (H && !U ? "\n" + H : H) + G.replace(/\n/g, "\n" + H) + "\n";
}
var DocumentUri;
(function(p) {
	function H(p) {
		return typeof p == "string";
	}
	p.is = H;
})(DocumentUri ||= {});
var URI;
(function(p) {
	function H(p) {
		return typeof p == "string";
	}
	p.is = H;
})(URI ||= {});
var integer;
(function(p) {
	p.MIN_VALUE = -2147483648, p.MAX_VALUE = 2147483647;
	function H(H) {
		return typeof H == "number" && p.MIN_VALUE <= H && H <= p.MAX_VALUE;
	}
	p.is = H;
})(integer ||= {});
var uinteger;
(function(p) {
	p.MIN_VALUE = 0, p.MAX_VALUE = 2147483647;
	function H(H) {
		return typeof H == "number" && p.MIN_VALUE <= H && H <= p.MAX_VALUE;
	}
	p.is = H;
})(uinteger ||= {});
var Position;
(function(p) {
	function H(p, H) {
		return p === Number.MAX_VALUE && (p = uinteger.MAX_VALUE), H === Number.MAX_VALUE && (H = uinteger.MAX_VALUE), {
			line: p,
			character: H
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.objectLiteral(H) && Is.uinteger(H.line) && Is.uinteger(H.character);
	}
	p.is = U;
})(Position ||= {});
var Range;
(function(p) {
	function H(p, H, U, W) {
		if (Is.uinteger(p) && Is.uinteger(H) && Is.uinteger(U) && Is.uinteger(W)) return {
			start: Position.create(p, H),
			end: Position.create(U, W)
		};
		if (Position.is(p) && Position.is(H)) return {
			start: p,
			end: H
		};
		throw Error(`Range#create called with invalid arguments[${p}, ${H}, ${U}, ${W}]`);
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.objectLiteral(H) && Position.is(H.start) && Position.is(H.end);
	}
	p.is = U;
})(Range ||= {});
var Location;
(function(p) {
	function H(p, H) {
		return {
			uri: p,
			range: H
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.objectLiteral(H) && Range.is(H.range) && (Is.string(H.uri) || Is.undefined(H.uri));
	}
	p.is = U;
})(Location ||= {});
var LocationLink;
(function(p) {
	function H(p, H, U, W) {
		return {
			targetUri: p,
			targetRange: H,
			targetSelectionRange: U,
			originSelectionRange: W
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.objectLiteral(H) && Range.is(H.targetRange) && Is.string(H.targetUri) && Range.is(H.targetSelectionRange) && (Range.is(H.originSelectionRange) || Is.undefined(H.originSelectionRange));
	}
	p.is = U;
})(LocationLink ||= {});
var Color;
(function(p) {
	function H(p, H, U, W) {
		return {
			red: p,
			green: H,
			blue: U,
			alpha: W
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.objectLiteral(H) && Is.numberRange(H.red, 0, 1) && Is.numberRange(H.green, 0, 1) && Is.numberRange(H.blue, 0, 1) && Is.numberRange(H.alpha, 0, 1);
	}
	p.is = U;
})(Color ||= {});
var ColorInformation;
(function(p) {
	function H(p, H) {
		return {
			range: p,
			color: H
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.objectLiteral(H) && Range.is(H.range) && Color.is(H.color);
	}
	p.is = U;
})(ColorInformation ||= {});
var ColorPresentation;
(function(p) {
	function H(p, H, U) {
		return {
			label: p,
			textEdit: H,
			additionalTextEdits: U
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.objectLiteral(H) && Is.string(H.label) && (Is.undefined(H.textEdit) || TextEdit.is(H)) && (Is.undefined(H.additionalTextEdits) || Is.typedArray(H.additionalTextEdits, TextEdit.is));
	}
	p.is = U;
})(ColorPresentation ||= {});
var FoldingRangeKind;
(function(p) {
	p.Comment = "comment", p.Imports = "imports", p.Region = "region";
})(FoldingRangeKind ||= {});
var FoldingRange;
(function(p) {
	function H(p, H, U, W, G, K) {
		let q = {
			startLine: p,
			endLine: H
		};
		return Is.defined(U) && (q.startCharacter = U), Is.defined(W) && (q.endCharacter = W), Is.defined(G) && (q.kind = G), Is.defined(K) && (q.collapsedText = K), q;
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.objectLiteral(H) && Is.uinteger(H.startLine) && Is.uinteger(H.startLine) && (Is.undefined(H.startCharacter) || Is.uinteger(H.startCharacter)) && (Is.undefined(H.endCharacter) || Is.uinteger(H.endCharacter)) && (Is.undefined(H.kind) || Is.string(H.kind));
	}
	p.is = U;
})(FoldingRange ||= {});
var DiagnosticRelatedInformation;
(function(p) {
	function H(p, H) {
		return {
			location: p,
			message: H
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && Location.is(H.location) && Is.string(H.message);
	}
	p.is = U;
})(DiagnosticRelatedInformation ||= {});
var DiagnosticSeverity;
(function(p) {
	p.Error = 1, p.Warning = 2, p.Information = 3, p.Hint = 4;
})(DiagnosticSeverity ||= {});
var DiagnosticTag;
(function(p) {
	p.Unnecessary = 1, p.Deprecated = 2;
})(DiagnosticTag ||= {});
var CodeDescription;
(function(p) {
	function H(p) {
		let H = p;
		return Is.objectLiteral(H) && Is.string(H.href);
	}
	p.is = H;
})(CodeDescription ||= {});
var Diagnostic;
(function(p) {
	function H(p, H, U, W, G, K) {
		let q = {
			range: p,
			message: H
		};
		return Is.defined(U) && (q.severity = U), Is.defined(W) && (q.code = W), Is.defined(G) && (q.source = G), Is.defined(K) && (q.relatedInformation = K), q;
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && Range.is(H.range) && Is.string(H.message) && (Is.number(H.severity) || Is.undefined(H.severity)) && (Is.integer(H.code) || Is.string(H.code) || Is.undefined(H.code)) && (Is.undefined(H.codeDescription) || Is.string(H.codeDescription?.href)) && (Is.string(H.source) || Is.undefined(H.source)) && (Is.undefined(H.relatedInformation) || Is.typedArray(H.relatedInformation, DiagnosticRelatedInformation.is));
	}
	p.is = U;
})(Diagnostic ||= {});
var Command;
(function(p) {
	function H(p, H, ...U) {
		let W = {
			title: p,
			command: H
		};
		return Is.defined(U) && U.length > 0 && (W.arguments = U), W;
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && Is.string(H.title) && Is.string(H.command);
	}
	p.is = U;
})(Command ||= {});
var TextEdit;
(function(p) {
	function H(p, H) {
		return {
			range: p,
			newText: H
		};
	}
	p.replace = H;
	function U(p, H) {
		return {
			range: {
				start: p,
				end: p
			},
			newText: H
		};
	}
	p.insert = U;
	function W(p) {
		return {
			range: p,
			newText: ""
		};
	}
	p.del = W;
	function G(p) {
		let H = p;
		return Is.objectLiteral(H) && Is.string(H.newText) && Range.is(H.range);
	}
	p.is = G;
})(TextEdit ||= {});
var ChangeAnnotation;
(function(p) {
	function H(p, H, U) {
		let W = { label: p };
		return H !== void 0 && (W.needsConfirmation = H), U !== void 0 && (W.description = U), W;
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.objectLiteral(H) && Is.string(H.label) && (Is.boolean(H.needsConfirmation) || H.needsConfirmation === void 0) && (Is.string(H.description) || H.description === void 0);
	}
	p.is = U;
})(ChangeAnnotation ||= {});
var ChangeAnnotationIdentifier;
(function(p) {
	function H(p) {
		let H = p;
		return Is.string(H);
	}
	p.is = H;
})(ChangeAnnotationIdentifier ||= {});
var AnnotatedTextEdit;
(function(p) {
	function H(p, H, U) {
		return {
			range: p,
			newText: H,
			annotationId: U
		};
	}
	p.replace = H;
	function U(p, H, U) {
		return {
			range: {
				start: p,
				end: p
			},
			newText: H,
			annotationId: U
		};
	}
	p.insert = U;
	function W(p, H) {
		return {
			range: p,
			newText: "",
			annotationId: H
		};
	}
	p.del = W;
	function G(p) {
		let H = p;
		return TextEdit.is(H) && (ChangeAnnotation.is(H.annotationId) || ChangeAnnotationIdentifier.is(H.annotationId));
	}
	p.is = G;
})(AnnotatedTextEdit ||= {});
var TextDocumentEdit;
(function(p) {
	function H(p, H) {
		return {
			textDocument: p,
			edits: H
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && OptionalVersionedTextDocumentIdentifier.is(H.textDocument) && Array.isArray(H.edits);
	}
	p.is = U;
})(TextDocumentEdit ||= {});
var CreateFile;
(function(p) {
	function H(p, H, U) {
		let W = {
			kind: "create",
			uri: p
		};
		return H !== void 0 && (H.overwrite !== void 0 || H.ignoreIfExists !== void 0) && (W.options = H), U !== void 0 && (W.annotationId = U), W;
	}
	p.create = H;
	function U(p) {
		let H = p;
		return H && H.kind === "create" && Is.string(H.uri) && (H.options === void 0 || (H.options.overwrite === void 0 || Is.boolean(H.options.overwrite)) && (H.options.ignoreIfExists === void 0 || Is.boolean(H.options.ignoreIfExists))) && (H.annotationId === void 0 || ChangeAnnotationIdentifier.is(H.annotationId));
	}
	p.is = U;
})(CreateFile ||= {});
var RenameFile;
(function(p) {
	function H(p, H, U, W) {
		let G = {
			kind: "rename",
			oldUri: p,
			newUri: H
		};
		return U !== void 0 && (U.overwrite !== void 0 || U.ignoreIfExists !== void 0) && (G.options = U), W !== void 0 && (G.annotationId = W), G;
	}
	p.create = H;
	function U(p) {
		let H = p;
		return H && H.kind === "rename" && Is.string(H.oldUri) && Is.string(H.newUri) && (H.options === void 0 || (H.options.overwrite === void 0 || Is.boolean(H.options.overwrite)) && (H.options.ignoreIfExists === void 0 || Is.boolean(H.options.ignoreIfExists))) && (H.annotationId === void 0 || ChangeAnnotationIdentifier.is(H.annotationId));
	}
	p.is = U;
})(RenameFile ||= {});
var DeleteFile;
(function(p) {
	function H(p, H, U) {
		let W = {
			kind: "delete",
			uri: p
		};
		return H !== void 0 && (H.recursive !== void 0 || H.ignoreIfNotExists !== void 0) && (W.options = H), U !== void 0 && (W.annotationId = U), W;
	}
	p.create = H;
	function U(p) {
		let H = p;
		return H && H.kind === "delete" && Is.string(H.uri) && (H.options === void 0 || (H.options.recursive === void 0 || Is.boolean(H.options.recursive)) && (H.options.ignoreIfNotExists === void 0 || Is.boolean(H.options.ignoreIfNotExists))) && (H.annotationId === void 0 || ChangeAnnotationIdentifier.is(H.annotationId));
	}
	p.is = U;
})(DeleteFile ||= {});
var WorkspaceEdit;
(function(p) {
	function H(p) {
		let H = p;
		return H && (H.changes !== void 0 || H.documentChanges !== void 0) && (H.documentChanges === void 0 || H.documentChanges.every((p) => Is.string(p.kind) ? CreateFile.is(p) || RenameFile.is(p) || DeleteFile.is(p) : TextDocumentEdit.is(p)));
	}
	p.is = H;
})(WorkspaceEdit ||= {});
var TextDocumentIdentifier;
(function(p) {
	function H(p) {
		return { uri: p };
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && Is.string(H.uri);
	}
	p.is = U;
})(TextDocumentIdentifier ||= {});
var VersionedTextDocumentIdentifier;
(function(p) {
	function H(p, H) {
		return {
			uri: p,
			version: H
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && Is.string(H.uri) && Is.integer(H.version);
	}
	p.is = U;
})(VersionedTextDocumentIdentifier ||= {});
var OptionalVersionedTextDocumentIdentifier;
(function(p) {
	function H(p, H) {
		return {
			uri: p,
			version: H
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && Is.string(H.uri) && (H.version === null || Is.integer(H.version));
	}
	p.is = U;
})(OptionalVersionedTextDocumentIdentifier ||= {});
var TextDocumentItem;
(function(p) {
	function H(p, H, U, W) {
		return {
			uri: p,
			languageId: H,
			version: U,
			text: W
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && Is.string(H.uri) && Is.string(H.languageId) && Is.integer(H.version) && Is.string(H.text);
	}
	p.is = U;
})(TextDocumentItem ||= {});
var MarkupKind;
(function(p) {
	p.PlainText = "plaintext", p.Markdown = "markdown";
	function H(H) {
		let U = H;
		return U === p.PlainText || U === p.Markdown;
	}
	p.is = H;
})(MarkupKind ||= {});
var MarkupContent;
(function(p) {
	function H(p) {
		let H = p;
		return Is.objectLiteral(p) && MarkupKind.is(H.kind) && Is.string(H.value);
	}
	p.is = H;
})(MarkupContent ||= {});
var CompletionItemKind$1;
(function(p) {
	p.Text = 1, p.Method = 2, p.Function = 3, p.Constructor = 4, p.Field = 5, p.Variable = 6, p.Class = 7, p.Interface = 8, p.Module = 9, p.Property = 10, p.Unit = 11, p.Value = 12, p.Enum = 13, p.Keyword = 14, p.Snippet = 15, p.Color = 16, p.File = 17, p.Reference = 18, p.Folder = 19, p.EnumMember = 20, p.Constant = 21, p.Struct = 22, p.Event = 23, p.Operator = 24, p.TypeParameter = 25;
})(CompletionItemKind$1 ||= {});
var InsertTextFormat;
(function(p) {
	p.PlainText = 1, p.Snippet = 2;
})(InsertTextFormat ||= {});
var CompletionItemTag;
(function(p) {
	p.Deprecated = 1;
})(CompletionItemTag ||= {});
var InsertReplaceEdit;
(function(p) {
	function H(p, H, U) {
		return {
			newText: p,
			insert: H,
			replace: U
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return H && Is.string(H.newText) && Range.is(H.insert) && Range.is(H.replace);
	}
	p.is = U;
})(InsertReplaceEdit ||= {});
var InsertTextMode;
(function(p) {
	p.asIs = 1, p.adjustIndentation = 2;
})(InsertTextMode ||= {});
var CompletionItemLabelDetails;
(function(p) {
	function H(p) {
		let H = p;
		return H && (Is.string(H.detail) || H.detail === void 0) && (Is.string(H.description) || H.description === void 0);
	}
	p.is = H;
})(CompletionItemLabelDetails ||= {});
var CompletionItem;
(function(p) {
	function H(p) {
		return { label: p };
	}
	p.create = H;
})(CompletionItem ||= {});
var CompletionList;
(function(p) {
	function H(p, H) {
		return {
			items: p || [],
			isIncomplete: !!H
		};
	}
	p.create = H;
})(CompletionList ||= {});
var MarkedString;
(function(p) {
	function H(p) {
		return p.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&");
	}
	p.fromPlainText = H;
	function U(p) {
		let H = p;
		return Is.string(H) || Is.objectLiteral(H) && Is.string(H.language) && Is.string(H.value);
	}
	p.is = U;
})(MarkedString ||= {});
var Hover;
(function(p) {
	function H(p) {
		let H = p;
		return !!H && Is.objectLiteral(H) && (MarkupContent.is(H.contents) || MarkedString.is(H.contents) || Is.typedArray(H.contents, MarkedString.is)) && (p.range === void 0 || Range.is(p.range));
	}
	p.is = H;
})(Hover ||= {});
var ParameterInformation;
(function(p) {
	function H(p, H) {
		return H ? {
			label: p,
			documentation: H
		} : { label: p };
	}
	p.create = H;
})(ParameterInformation ||= {});
var SignatureInformation;
(function(p) {
	function H(p, H, ...U) {
		let W = { label: p };
		return Is.defined(H) && (W.documentation = H), Is.defined(U) ? W.parameters = U : W.parameters = [], W;
	}
	p.create = H;
})(SignatureInformation ||= {});
var DocumentHighlightKind;
(function(p) {
	p.Text = 1, p.Read = 2, p.Write = 3;
})(DocumentHighlightKind ||= {});
var DocumentHighlight;
(function(p) {
	function H(p, H) {
		let U = { range: p };
		return Is.number(H) && (U.kind = H), U;
	}
	p.create = H;
})(DocumentHighlight ||= {});
var SymbolKind;
(function(p) {
	p.File = 1, p.Module = 2, p.Namespace = 3, p.Package = 4, p.Class = 5, p.Method = 6, p.Property = 7, p.Field = 8, p.Constructor = 9, p.Enum = 10, p.Interface = 11, p.Function = 12, p.Variable = 13, p.Constant = 14, p.String = 15, p.Number = 16, p.Boolean = 17, p.Array = 18, p.Object = 19, p.Key = 20, p.Null = 21, p.EnumMember = 22, p.Struct = 23, p.Event = 24, p.Operator = 25, p.TypeParameter = 26;
})(SymbolKind ||= {});
var SymbolTag;
(function(p) {
	p.Deprecated = 1;
})(SymbolTag ||= {});
var SymbolInformation;
(function(p) {
	function H(p, H, U, W, G) {
		let K = {
			name: p,
			kind: H,
			location: {
				uri: W,
				range: U
			}
		};
		return G && (K.containerName = G), K;
	}
	p.create = H;
})(SymbolInformation ||= {});
var WorkspaceSymbol;
(function(p) {
	function H(p, H, U, W) {
		return W === void 0 ? {
			name: p,
			kind: H,
			location: { uri: U }
		} : {
			name: p,
			kind: H,
			location: {
				uri: U,
				range: W
			}
		};
	}
	p.create = H;
})(WorkspaceSymbol ||= {});
var DocumentSymbol;
(function(p) {
	function H(p, H, U, W, G, K) {
		let q = {
			name: p,
			detail: H,
			kind: U,
			range: W,
			selectionRange: G
		};
		return K !== void 0 && (q.children = K), q;
	}
	p.create = H;
	function U(p) {
		let H = p;
		return H && Is.string(H.name) && Is.number(H.kind) && Range.is(H.range) && Range.is(H.selectionRange) && (H.detail === void 0 || Is.string(H.detail)) && (H.deprecated === void 0 || Is.boolean(H.deprecated)) && (H.children === void 0 || Array.isArray(H.children)) && (H.tags === void 0 || Array.isArray(H.tags));
	}
	p.is = U;
})(DocumentSymbol ||= {});
var CodeActionKind;
(function(p) {
	p.Empty = "", p.QuickFix = "quickfix", p.Refactor = "refactor", p.RefactorExtract = "refactor.extract", p.RefactorInline = "refactor.inline", p.RefactorRewrite = "refactor.rewrite", p.Source = "source", p.SourceOrganizeImports = "source.organizeImports", p.SourceFixAll = "source.fixAll";
})(CodeActionKind ||= {});
var CodeActionTriggerKind;
(function(p) {
	p.Invoked = 1, p.Automatic = 2;
})(CodeActionTriggerKind ||= {});
var CodeActionContext;
(function(p) {
	function H(p, H, U) {
		let W = { diagnostics: p };
		return H != null && (W.only = H), U != null && (W.triggerKind = U), W;
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && Is.typedArray(H.diagnostics, Diagnostic.is) && (H.only === void 0 || Is.typedArray(H.only, Is.string)) && (H.triggerKind === void 0 || H.triggerKind === CodeActionTriggerKind.Invoked || H.triggerKind === CodeActionTriggerKind.Automatic);
	}
	p.is = U;
})(CodeActionContext ||= {});
var CodeAction;
(function(p) {
	function H(p, H, U) {
		let W = { title: p }, G = !0;
		return typeof H == "string" ? (G = !1, W.kind = H) : Command.is(H) ? W.command = H : W.edit = H, G && U !== void 0 && (W.kind = U), W;
	}
	p.create = H;
	function U(p) {
		let H = p;
		return H && Is.string(H.title) && (H.diagnostics === void 0 || Is.typedArray(H.diagnostics, Diagnostic.is)) && (H.kind === void 0 || Is.string(H.kind)) && (H.edit !== void 0 || H.command !== void 0) && (H.command === void 0 || Command.is(H.command)) && (H.isPreferred === void 0 || Is.boolean(H.isPreferred)) && (H.edit === void 0 || WorkspaceEdit.is(H.edit));
	}
	p.is = U;
})(CodeAction ||= {});
var CodeLens;
(function(p) {
	function H(p, H) {
		let U = { range: p };
		return Is.defined(H) && (U.data = H), U;
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && Range.is(H.range) && (Is.undefined(H.command) || Command.is(H.command));
	}
	p.is = U;
})(CodeLens ||= {});
var FormattingOptions;
(function(p) {
	function H(p, H) {
		return {
			tabSize: p,
			insertSpaces: H
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && Is.uinteger(H.tabSize) && Is.boolean(H.insertSpaces);
	}
	p.is = U;
})(FormattingOptions ||= {});
var DocumentLink;
(function(p) {
	function H(p, H, U) {
		return {
			range: p,
			target: H,
			data: U
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && Range.is(H.range) && (Is.undefined(H.target) || Is.string(H.target));
	}
	p.is = U;
})(DocumentLink ||= {});
var SelectionRange;
(function(p) {
	function H(p, H) {
		return {
			range: p,
			parent: H
		};
	}
	p.create = H;
	function U(H) {
		let U = H;
		return Is.objectLiteral(U) && Range.is(U.range) && (U.parent === void 0 || p.is(U.parent));
	}
	p.is = U;
})(SelectionRange ||= {});
var SemanticTokenTypes;
(function(p) {
	p.namespace = "namespace", p.type = "type", p.class = "class", p.enum = "enum", p.interface = "interface", p.struct = "struct", p.typeParameter = "typeParameter", p.parameter = "parameter", p.variable = "variable", p.property = "property", p.enumMember = "enumMember", p.event = "event", p.function = "function", p.method = "method", p.macro = "macro", p.keyword = "keyword", p.modifier = "modifier", p.comment = "comment", p.string = "string", p.number = "number", p.regexp = "regexp", p.operator = "operator", p.decorator = "decorator";
})(SemanticTokenTypes ||= {});
var SemanticTokenModifiers;
(function(p) {
	p.declaration = "declaration", p.definition = "definition", p.readonly = "readonly", p.static = "static", p.deprecated = "deprecated", p.abstract = "abstract", p.async = "async", p.modification = "modification", p.documentation = "documentation", p.defaultLibrary = "defaultLibrary";
})(SemanticTokenModifiers ||= {});
var SemanticTokens;
(function(p) {
	function H(p) {
		let H = p;
		return Is.objectLiteral(H) && (H.resultId === void 0 || typeof H.resultId == "string") && Array.isArray(H.data) && (H.data.length === 0 || typeof H.data[0] == "number");
	}
	p.is = H;
})(SemanticTokens ||= {});
var InlineValueText;
(function(p) {
	function H(p, H) {
		return {
			range: p,
			text: H
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return H != null && Range.is(H.range) && Is.string(H.text);
	}
	p.is = U;
})(InlineValueText ||= {});
var InlineValueVariableLookup;
(function(p) {
	function H(p, H, U) {
		return {
			range: p,
			variableName: H,
			caseSensitiveLookup: U
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return H != null && Range.is(H.range) && Is.boolean(H.caseSensitiveLookup) && (Is.string(H.variableName) || H.variableName === void 0);
	}
	p.is = U;
})(InlineValueVariableLookup ||= {});
var InlineValueEvaluatableExpression;
(function(p) {
	function H(p, H) {
		return {
			range: p,
			expression: H
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return H != null && Range.is(H.range) && (Is.string(H.expression) || H.expression === void 0);
	}
	p.is = U;
})(InlineValueEvaluatableExpression ||= {});
var InlineValueContext;
(function(p) {
	function H(p, H) {
		return {
			frameId: p,
			stoppedLocation: H
		};
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.defined(H) && Range.is(p.stoppedLocation);
	}
	p.is = U;
})(InlineValueContext ||= {});
var InlayHintKind;
(function(p) {
	p.Type = 1, p.Parameter = 2;
	function H(p) {
		return p === 1 || p === 2;
	}
	p.is = H;
})(InlayHintKind ||= {});
var InlayHintLabelPart;
(function(p) {
	function H(p) {
		return { value: p };
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.objectLiteral(H) && (H.tooltip === void 0 || Is.string(H.tooltip) || MarkupContent.is(H.tooltip)) && (H.location === void 0 || Location.is(H.location)) && (H.command === void 0 || Command.is(H.command));
	}
	p.is = U;
})(InlayHintLabelPart ||= {});
var InlayHint;
(function(p) {
	function H(p, H, U) {
		let W = {
			position: p,
			label: H
		};
		return U !== void 0 && (W.kind = U), W;
	}
	p.create = H;
	function U(p) {
		let H = p;
		return Is.objectLiteral(H) && Position.is(H.position) && (Is.string(H.label) || Is.typedArray(H.label, InlayHintLabelPart.is)) && (H.kind === void 0 || InlayHintKind.is(H.kind)) && H.textEdits === void 0 || Is.typedArray(H.textEdits, TextEdit.is) && (H.tooltip === void 0 || Is.string(H.tooltip) || MarkupContent.is(H.tooltip)) && (H.paddingLeft === void 0 || Is.boolean(H.paddingLeft)) && (H.paddingRight === void 0 || Is.boolean(H.paddingRight));
	}
	p.is = U;
})(InlayHint ||= {});
var StringValue;
(function(p) {
	function H(p) {
		return {
			kind: "snippet",
			value: p
		};
	}
	p.createSnippet = H;
})(StringValue ||= {});
var InlineCompletionItem;
(function(p) {
	function H(p, H, U, W) {
		return {
			insertText: p,
			filterText: H,
			range: U,
			command: W
		};
	}
	p.create = H;
})(InlineCompletionItem ||= {});
var InlineCompletionList;
(function(p) {
	function H(p) {
		return { items: p };
	}
	p.create = H;
})(InlineCompletionList ||= {});
var InlineCompletionTriggerKind;
(function(p) {
	p.Invoked = 0, p.Automatic = 1;
})(InlineCompletionTriggerKind ||= {});
var SelectedCompletionInfo;
(function(p) {
	function H(p, H) {
		return {
			range: p,
			text: H
		};
	}
	p.create = H;
})(SelectedCompletionInfo ||= {});
var InlineCompletionContext;
(function(p) {
	function H(p, H) {
		return {
			triggerKind: p,
			selectedCompletionInfo: H
		};
	}
	p.create = H;
})(InlineCompletionContext ||= {});
var WorkspaceFolder;
(function(p) {
	function H(p) {
		let H = p;
		return Is.objectLiteral(H) && URI.is(H.uri) && Is.string(H.name);
	}
	p.is = H;
})(WorkspaceFolder ||= {});
var TextDocument;
(function(p) {
	function H(p, H, U, W) {
		return new FullTextDocument(p, H, U, W);
	}
	p.create = H;
	function U(p) {
		let H = p;
		return !!(Is.defined(H) && Is.string(H.uri) && (Is.undefined(H.languageId) || Is.string(H.languageId)) && Is.uinteger(H.lineCount) && Is.func(H.getText) && Is.func(H.positionAt) && Is.func(H.offsetAt));
	}
	p.is = U;
	function W(p, H) {
		let U = p.getText(), W = G(H, (p, H) => {
			let U = p.range.start.line - H.range.start.line;
			return U === 0 ? p.range.start.character - H.range.start.character : U;
		}), K = U.length;
		for (let H = W.length - 1; H >= 0; H--) {
			let G = W[H], q = p.offsetAt(G.range.start), J = p.offsetAt(G.range.end);
			if (J <= K) U = U.substring(0, q) + G.newText + U.substring(J, U.length);
			else throw Error("Overlapping edit");
			K = q;
		}
		return U;
	}
	p.applyEdits = W;
	function G(p, H) {
		if (p.length <= 1) return p;
		let U = p.length / 2 | 0, W = p.slice(0, U), K = p.slice(U);
		G(W, H), G(K, H);
		let q = 0, J = 0, Y = 0;
		for (; q < W.length && J < K.length;) H(W[q], K[J]) <= 0 ? p[Y++] = W[q++] : p[Y++] = K[J++];
		for (; q < W.length;) p[Y++] = W[q++];
		for (; J < K.length;) p[Y++] = K[J++];
		return p;
	}
})(TextDocument ||= {});
var FullTextDocument = class {
	constructor(p, H, U, W) {
		this._uri = p, this._languageId = H, this._version = U, this._content = W, this._lineOffsets = void 0;
	}
	get uri() {
		return this._uri;
	}
	get languageId() {
		return this._languageId;
	}
	get version() {
		return this._version;
	}
	getText(p) {
		if (p) {
			let H = this.offsetAt(p.start), U = this.offsetAt(p.end);
			return this._content.substring(H, U);
		}
		return this._content;
	}
	update(p, H) {
		this._content = p.text, this._version = H, this._lineOffsets = void 0;
	}
	getLineOffsets() {
		if (this._lineOffsets === void 0) {
			let p = [], H = this._content, U = !0;
			for (let W = 0; W < H.length; W++) {
				U &&= (p.push(W), !1);
				let G = H.charAt(W);
				U = G === "\r" || G === "\n", G === "\r" && W + 1 < H.length && H.charAt(W + 1) === "\n" && W++;
			}
			U && H.length > 0 && p.push(H.length), this._lineOffsets = p;
		}
		return this._lineOffsets;
	}
	positionAt(p) {
		p = Math.max(Math.min(p, this._content.length), 0);
		let H = this.getLineOffsets(), U = 0, W = H.length;
		if (W === 0) return Position.create(0, p);
		for (; U < W;) {
			let G = Math.floor((U + W) / 2);
			H[G] > p ? W = G : U = G + 1;
		}
		let G = U - 1;
		return Position.create(G, p - H[G]);
	}
	offsetAt(p) {
		let H = this.getLineOffsets();
		if (p.line >= H.length) return this._content.length;
		if (p.line < 0) return 0;
		let U = H[p.line], W = p.line + 1 < H.length ? H[p.line + 1] : this._content.length;
		return Math.max(Math.min(U + p.character, W), U);
	}
	get lineCount() {
		return this.getLineOffsets().length;
	}
}, Is;
(function(p) {
	let H = Object.prototype.toString;
	function U(p) {
		return p !== void 0;
	}
	p.defined = U;
	function W(p) {
		return p === void 0;
	}
	p.undefined = W;
	function G(p) {
		return p === !0 || p === !1;
	}
	p.boolean = G;
	function K(p) {
		return H.call(p) === "[object String]";
	}
	p.string = K;
	function q(p) {
		return H.call(p) === "[object Number]";
	}
	p.number = q;
	function J(p, U, W) {
		return H.call(p) === "[object Number]" && U <= p && p <= W;
	}
	p.numberRange = J;
	function Y(p) {
		return H.call(p) === "[object Number]" && -2147483648 <= p && p <= 2147483647;
	}
	p.integer = Y;
	function X(p) {
		return H.call(p) === "[object Number]" && 0 <= p && p <= 2147483647;
	}
	p.uinteger = X;
	function Z(p) {
		return H.call(p) === "[object Function]";
	}
	p.func = Z;
	function Q(p) {
		return typeof p == "object" && !!p;
	}
	p.objectLiteral = Q;
	function $(p, H) {
		return Array.isArray(p) && p.every(H);
	}
	p.typedArray = $;
})(Is ||= {});
function butNot(p, H) {
	let U = p.match;
	return p.match = (p) => {
		let W = !1;
		return U && (W = U(p)), W && H.every((H) => H.match && !H.match(p));
	}, p;
}
butNot(name("def"), [word("on")]), Kind.SCHEMA_EXTENSION, Kind.SCALAR_TYPE_EXTENSION, Kind.OBJECT_TYPE_EXTENSION, Kind.INTERFACE_TYPE_EXTENSION, Kind.UNION_TYPE_EXTENSION, Kind.ENUM_TYPE_EXTENSION, Kind.INPUT_OBJECT_TYPE_EXTENSION;
function word(p) {
	return {
		style: "keyword",
		match: (H) => H.kind === "Name" && H.value === p
	};
}
function name(p) {
	return {
		style: p,
		match: (p) => p.kind === "Name",
		update(p, H) {
			p.name = H.value;
		}
	};
}
var GraphQLDocumentMode;
(function(p) {
	p.TYPE_SYSTEM = "TYPE_SYSTEM", p.EXECUTABLE = "EXECUTABLE", p.UNKNOWN = "UNKNOWN";
})(GraphQLDocumentMode ||= {}), Kind.SCHEMA_DEFINITION, Kind.OPERATION_TYPE_DEFINITION, Kind.SCALAR_TYPE_DEFINITION, Kind.OBJECT_TYPE_DEFINITION, Kind.INTERFACE_TYPE_DEFINITION, Kind.UNION_TYPE_DEFINITION, Kind.ENUM_TYPE_DEFINITION, Kind.INPUT_OBJECT_TYPE_DEFINITION, Kind.DIRECTIVE_DEFINITION, Kind.SCHEMA_EXTENSION, Kind.SCALAR_TYPE_EXTENSION, Kind.OBJECT_TYPE_EXTENSION, Kind.INTERFACE_TYPE_EXTENSION, Kind.UNION_TYPE_EXTENSION, Kind.ENUM_TYPE_EXTENSION, Kind.INPUT_OBJECT_TYPE_EXTENSION, Object.assign(Object.assign({}, 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",
	VARIABLE: "Variable"
});
var CompletionItemKind;
(function(p) {
	p.Text = 1, p.Method = 2, p.Function = 3, p.Constructor = 4, p.Field = 5, p.Variable = 6, p.Class = 7, p.Interface = 8, p.Module = 9, p.Property = 10, p.Unit = 11, p.Value = 12, p.Enum = 13, p.Keyword = 14, p.Snippet = 15, p.Color = 16, p.File = 17, p.Reference = 18, p.Folder = 19, p.EnumMember = 20, p.Constant = 21, p.Struct = 22, p.Event = 23, p.Operator = 24, p.TypeParameter = 25;
})(CompletionItemKind ||= {}), CompletionItemKind.Function, CompletionItemKind.Function, CompletionItemKind.Function, CompletionItemKind.Function, CompletionItemKind.Function, CompletionItemKind.Function, CompletionItemKind.Function, CompletionItemKind.Function, CompletionItemKind.Function, CompletionItemKind.Function, CompletionItemKind.Constructor, (/* @__PURE__ */ __commonJSMin(((p, H) => {
	function U(p, H) {
		if (p != null) return p;
		var U = Error(H === void 0 ? "Got unexpected " + p : H);
		throw U.framesToPop = 1, U;
	}
	H.exports = U, H.exports.default = U, Object.defineProperty(H.exports, "__esModule", { value: !0 });
})))();
const SEVERITY = {
	Error: "Error",
	Warning: "Warning",
	Information: "Information",
	Hint: "Hint"
};
SEVERITY.Error, SEVERITY.Warning, SEVERITY.Information, SEVERITY.Hint;
const getModelLanguageId = (p) => "getModeId" in p ? p.getModeId() : p.getLanguageId(), getStringSchema = (p) => {
	let { schema: H, documentAST: U, introspectionJSON: W, introspectionJSONString: G, documentString: K,...q } = p;
	if (H) return {
		...q,
		documentString: printSchema(H)
	};
	if (G) return {
		...q,
		introspectionJSONString: G
	};
	if (K) return {
		...q,
		documentString: K
	};
	if (W) return {
		...q,
		introspectionJSONString: JSON.stringify(W)
	};
	if (U) {
		let p = buildASTSchema(U, q.buildSchemaOptions);
		return {
			...q,
			documentString: printSchema(p)
		};
	}
	throw Error("No schema supplied");
};
var STOP_WHEN_IDLE_FOR = 120 * 1e3, WorkerManager = class {
	_defaults;
	_idleCheckInterval;
	_lastUsedTime = 0;
	_configChangeListener;
	_worker = null;
	_client = null;
	constructor(p) {
		this._defaults = p, this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3), this._configChangeListener = this._defaults.onDidChange(() => {
			this._stopWorker();
		});
	}
	_stopWorker() {
		this._worker &&= (this._worker.dispose(), null), this._client = null;
	}
	dispose() {
		clearInterval(this._idleCheckInterval), this._configChangeListener.dispose(), this._stopWorker();
	}
	_checkIfIdle() {
		this._worker && Date.now() - this._lastUsedTime > STOP_WHEN_IDLE_FOR && this._stopWorker();
	}
	async _getClient() {
		if (this._lastUsedTime = Date.now(), !this._client && !this._worker) try {
			let { languageId: p, formattingOptions: H, schemas: U, externalFragmentDefinitions: W, completionSettings: K } = this._defaults;
			this._worker = editor.createWebWorker({
				moduleId: "monaco-graphql/esm/GraphQLWorker.js",
				label: p,
				createData: {
					languageId: p,
					formattingOptions: H,
					languageConfig: {
						schemas: U?.map(getStringSchema),
						externalFragmentDefinitions: W,
						fillLeafsOnComplete: K.__experimental__fillLeafsOnComplete
					}
				}
			}), this._client = this._worker.getProxy();
		} catch (p) {
			console.error("error loading worker", p);
		}
		return this._client;
	}
	async getLanguageServiceWorker(...p) {
		let H = await this._getClient();
		return await this._worker.withSyncedResources(p), H;
	}
}, DiagnosticsAdapter = class {
	defaults;
	_worker;
	_disposables = [];
	_listener = Object.create(null);
	constructor(p, H) {
		this.defaults = p, this._worker = H, this._worker = H;
		let U, W = (H) => {
			let W = getModelLanguageId(H);
			if (W !== this.defaults.languageId) return;
			let G = H.uri.toString(), K = p.diagnosticSettings.validateVariablesJSON?.[G];
			U = setTimeout(() => {
				this._doValidate(H.uri, W, K);
			}, 400), this._listener[G] = H.onDidChangeContent(() => {
				clearTimeout(U), U = setTimeout(() => {
					this._doValidate(H.uri, W, K);
				}, 400);
			});
		}, K = (p) => {
			editor.setModelMarkers(p, this.defaults.languageId, []);
			let H = p.uri.toString(), U = this._listener[H];
			U && (U.dispose(), delete this._listener[H]);
		};
		this._disposables.push(editor.onDidCreateModel(W), { dispose() {
			clearTimeout(U);
		} }, editor.onWillDisposeModel((p) => {
			K(p);
		}), editor.onDidChangeModelLanguage((p) => {
			K(p.model), W(p.model);
		}), { dispose: () => {
			for (let p of Object.values(this._listener)) p.dispose();
		} }, p.onDidChange(() => {
			for (let p of editor.getModels()) getModelLanguageId(p) === this.defaults.languageId && (K(p), W(p));
		}));
		for (let p of editor.getModels()) getModelLanguageId(p) === this.defaults.languageId && W(p);
	}
	dispose() {
		for (let p of this._disposables) p.dispose();
		this._disposables = [];
	}
	async _doValidate(p, H, K) {
		let q = await this._worker(p);
		if (!q) return;
		let J = await q.doValidation(p.toString());
		if (editor.setModelMarkers(editor.getModel(p), H, J), K) {
			if (await import("./monaco.contribution-pnEHc2s_.js"), !K.length) throw Error("No variables URI strings provided to validate");
			let H = await q.doGetVariablesJSONSchema(p.toString());
			if (!H) return;
			let G = Uri.file(K[0].replace(".json", "-schema.json")).toString(), J = {
				uri: G,
				schema: H,
				fileMatch: K
			}, Y = languages.json.jsonDefaults.diagnosticsOptions.schemas?.filter((p) => p.uri !== G) || [];
			languages.json.jsonDefaults.setDiagnosticsOptions({
				schemaValidation: "error",
				validate: !0,
				...this.defaults.diagnosticSettings.jsonDiagnosticSettings,
				schemas: [...Y, J],
				enableSchemaRequest: !1
			});
		}
	}
}, mKind = languages.CompletionItemKind, kindMap = {
	[CompletionItemKind.Text]: mKind.Text,
	[CompletionItemKind.Method]: mKind.Method,
	[CompletionItemKind.Function]: mKind.Function,
	[CompletionItemKind.Constructor]: mKind.Constructor,
	[CompletionItemKind.Field]: mKind.Field,
	[CompletionItemKind.Variable]: mKind.Variable,
	[CompletionItemKind.Class]: mKind.Class,
	[CompletionItemKind.Interface]: mKind.Interface,
	[CompletionItemKind.Module]: mKind.Module,
	[CompletionItemKind.Property]: mKind.Property,
	[CompletionItemKind.Unit]: mKind.Unit,
	[CompletionItemKind.Value]: mKind.Value,
	[CompletionItemKind.Enum]: mKind.Enum,
	[CompletionItemKind.Keyword]: mKind.Keyword,
	[CompletionItemKind.Snippet]: mKind.Snippet,
	[CompletionItemKind.Color]: mKind.Color,
	[CompletionItemKind.File]: mKind.File,
	[CompletionItemKind.Reference]: mKind.Reference,
	[CompletionItemKind.Folder]: mKind.Folder,
	[CompletionItemKind.EnumMember]: mKind.EnumMember,
	[CompletionItemKind.Constant]: mKind.Constant,
	[CompletionItemKind.Struct]: mKind.Struct,
	[CompletionItemKind.Event]: mKind.Event,
	[CompletionItemKind.Operator]: mKind.Operator,
	[CompletionItemKind.TypeParameter]: mKind.TypeParameter
};
function toCompletionItemKind(p) {
	return p in kindMap ? kindMap[p] : mKind.Text;
}
function toCompletion(p) {
	return {
		range: p.range,
		kind: toCompletionItemKind(p.kind),
		label: p.label,
		insertText: p.insertText ?? p.label,
		insertTextRules: p.insertText ? languages.CompletionItemInsertTextRule.InsertAsSnippet : void 0,
		sortText: p.sortText,
		filterText: p.filterText,
		documentation: p.documentation,
		detail: p.detail,
		command: p.command
	};
}
var CompletionAdapter = class {
	_worker;
	constructor(p) {
		this._worker = p, this._worker = p;
	}
	get triggerCharacters() {
		return [
			":",
			"$",
			" ",
			"(",
			"@"
		];
	}
	async provideCompletionItems(p, H, U, W) {
		try {
			return {
				incomplete: !0,
				suggestions: (await (await this._worker(p.uri)).doComplete(p.uri.toString(), H)).map(toCompletion)
			};
		} catch (p) {
			return console.error("Error fetching completion items", p), { suggestions: [] };
		}
	}
}, DocumentFormattingAdapter = class {
	_worker;
	constructor(p) {
		this._worker = p, this._worker = p;
	}
	async provideDocumentFormattingEdits(p, H, U) {
		let W = await (await this._worker(p.uri)).doFormat(p.uri.toString());
		return W ? [{
			range: p.getFullModelRange(),
			text: W
		}] : [];
	}
}, HoverAdapter = class {
	_worker;
	constructor(p) {
		this._worker = p;
	}
	async provideHover(p, H, U) {
		let W = p.uri, G = await (await this._worker(p.uri)).doHover(W.toString(), H);
		return G ? {
			range: G.range,
			contents: [{ value: G.content }]
		} : { contents: [] };
	}
	dispose() {}
};
function setupMode(p) {
	let H = [], U = [], G = new WorkerManager(p);
	H.push(G);
	let K = (...p) => {
		try {
			return G.getLanguageServiceWorker(...p);
		} catch {
			throw Error("Error fetching graphql language service worker");
		}
	};
	function q() {
		let { modeConfiguration: H, languageId: G } = p;
		H.documentFormattingEdits && U.push(languages.registerDocumentFormattingEditProvider(G, new DocumentFormattingAdapter(K)));
	}
	function J(H) {
		let { modeConfiguration: G, languageId: J } = p;
		disposeAll(U), G.completionItems && U.push(languages.registerCompletionItemProvider(J, new CompletionAdapter(K))), G.diagnostics && U.push(new DiagnosticsAdapter(H, K)), G.hovers && U.push(languages.registerHoverProvider(J, new HoverAdapter(K))), q();
	}
	let { modeConfiguration: Y, formattingOptions: X, diagnosticSettings: Z, externalFragmentDefinitions: Q, schemas: $ } = p;
	return J(p), p.onDidChange((p) => {
		p.modeConfiguration !== Y && (Y = p.modeConfiguration, J(p)), p.formattingOptions !== X && (X = p.formattingOptions, q()), p.externalFragmentDefinitions !== Q && (Q = p.externalFragmentDefinitions, J(p)), p.diagnosticSettings !== Z && (Z = p.diagnosticSettings, J(p)), p.schemas !== $ && ($ = p.schemas, J(p));
	}), H.push(asDisposable(U)), asDisposable(H);
}
function asDisposable(p) {
	return { dispose: () => disposeAll(p) };
}
function disposeAll(p) {
	for (; p.length;) p.pop().dispose();
}
export { setupMode };
