@eclipse-docks/extension-monaco-editor 0.8.10 → 0.8.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/{cssMode-C0DY-xOF.js → cssMode-WhyC7WN7.js} +2 -2
  2. package/dist/cssMode-WhyC7WN7.js.map +1 -0
  3. package/dist/{htmlMode-C96hxfYb.js → htmlMode-jz8KjPWy.js} +2 -2
  4. package/dist/htmlMode-jz8KjPWy.js.map +1 -0
  5. package/dist/index.js +1 -1
  6. package/dist/{jsonMode-D1ocs_c3.js → jsonMode-COhY_wSh.js} +2 -2
  7. package/dist/jsonMode-COhY_wSh.js.map +1 -0
  8. package/dist/{monaco-editor-BplIrm9e.js → monaco-editor-Dq4CT90-.js} +2 -2
  9. package/dist/{monaco-editor-BplIrm9e.js.map → monaco-editor-Dq4CT90-.js.map} +1 -1
  10. package/dist/{monaco-editor-extension-CgqbkH2f.js → monaco-editor-extension-D3ofvJeE.js} +2 -2
  11. package/dist/{monaco-editor-extension-CgqbkH2f.js.map → monaco-editor-extension-D3ofvJeE.js.map} +1 -1
  12. package/dist/{monaco-widget-CPYnLHgO.js → monaco-widget-vQSNeFxK.js} +5 -45
  13. package/dist/{monaco-widget-CPYnLHgO.js.map → monaco-widget-vQSNeFxK.js.map} +1 -1
  14. package/dist/monaco-widget.d.ts.map +1 -1
  15. package/dist/{register-BJVDE20s.js → register-DIVg7sKY.js} +2 -2
  16. package/dist/{register-BJVDE20s.js.map → register-DIVg7sKY.js.map} +1 -1
  17. package/dist/{tsMode-DeJ-HdLq.js → tsMode-DgFHl-em.js} +3 -3
  18. package/dist/tsMode-DgFHl-em.js.map +1 -0
  19. package/dist/widget.js +1 -1
  20. package/package.json +1 -1
  21. package/dist/assets/editor.worker-bQAJ25qk.js +0 -15909
  22. package/dist/assets/editor.worker-bQAJ25qk.js.map +0 -1
  23. package/dist/cssMode-C0DY-xOF.js.map +0 -1
  24. package/dist/htmlMode-C96hxfYb.js.map +0 -1
  25. package/dist/jsonMode-D1ocs_c3.js.map +0 -1
  26. package/dist/tsMode-DeJ-HdLq.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"monaco-widget-CPYnLHgO.js","names":["LanguageServiceDefaultsImpl","optionsDefault","getMode","LanguageServiceDefaultsImpl","getMode","WorkerWrapper","WorkerWrapper","WorkerWrapper","WorkerWrapper","JsonWorker","CssWorker","HtmlWorker","TsWorker","EditorWorker","styles"],"sources":["../../../node_modules/monaco-editor/esm/external/monaco-lsp-client/out/index.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/_.contribution.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/abap/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/apex/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/azcli/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/bat/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/bicep/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/cameligo/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/clojure/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/coffee/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/cpp/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/csharp/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/csp/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/css/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/cypher/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/dart/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/dockerfile/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/ecl/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/elixir/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/flow9/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/fsharp/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/freemarker2/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/go/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/graphql/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/handlebars/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/hcl/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/html/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/ini/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/java/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/javascript/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/julia/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/kotlin/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/less/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/lexon/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/lua/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/liquid/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/m3/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/markdown/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/mdx/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/mips/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/msdax/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/mysql/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/objective-c/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/pascal/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/pascaligo/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/perl/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/pgsql/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/php/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/pla/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/postiats/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/powerquery/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/powershell/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/protobuf/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/pug/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/python/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/qsharp/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/r/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/razor/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/redis/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/redshift/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/restructuredtext/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/ruby/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/rust/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/sb/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/scala/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/scheme/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/scss/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/shell/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/solidity/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/sophia/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/sparql/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/sql/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/st/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/swift/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/systemverilog/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/tcl/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/twig/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/typescript/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/typespec/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/vb/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/wgsl/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/xml/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/yaml/register.js","../../../node_modules/monaco-editor/esm/vs/languages/features/css/register.js","../../../node_modules/monaco-editor/esm/vs/languages/features/html/register.js","../../../node_modules/monaco-editor/esm/vs/languages/features/json/register.js","../../../node_modules/monaco-editor/esm/vs/features/find/register.js","../src/monaco-grammars.ts","../src/monaco-widget.ts"],"sourcesContent":["import '../../../vs/editor/browser/coreCommands.js';\nimport '../../../vs/editor/browser/widget/codeEditor/codeEditorWidget.js';\nimport '../../../vs/editor/browser/widget/diffEditor/diffEditor.contribution.js';\nimport '../../../vs/editor/contrib/anchorSelect/browser/anchorSelect.js';\nimport '../../../vs/editor/contrib/bracketMatching/browser/bracketMatching.js';\nimport '../../../vs/editor/contrib/caretOperations/browser/caretOperations.js';\nimport '../../../vs/editor/contrib/caretOperations/browser/transpose.js';\nimport '../../../vs/editor/contrib/clipboard/browser/clipboard.js';\nimport '../../../vs/editor/contrib/codeAction/browser/codeActionContributions.js';\nimport '../../../vs/editor/contrib/codelens/browser/codelensController.js';\nimport '../../../vs/editor/contrib/colorPicker/browser/colorPickerContribution.js';\nimport '../../../vs/editor/contrib/comment/browser/comment.js';\nimport '../../../vs/editor/contrib/contextmenu/browser/contextmenu.js';\nimport '../../../vs/editor/contrib/cursorUndo/browser/cursorUndo.js';\nimport '../../../vs/editor/contrib/dnd/browser/dnd.js';\nimport '../../../vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js';\nimport '../../../vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';\nimport '../../../vs/editor/contrib/find/browser/findController.js';\nimport '../../../vs/editor/contrib/folding/browser/folding.js';\nimport '../../../vs/editor/contrib/fontZoom/browser/fontZoom.js';\nimport '../../../vs/editor/contrib/format/browser/formatActions.js';\nimport '../../../vs/editor/contrib/documentSymbols/browser/documentSymbols.js';\nimport '../../../vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js';\nimport '../../../vs/editor/contrib/inlineProgress/browser/inlineProgress.js';\nimport '../../../vs/editor/contrib/gotoSymbol/browser/goToCommands.js';\nimport '../../../vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport '../../../vs/editor/contrib/gotoError/browser/gotoError.js';\nimport '../../../vs/editor/contrib/gotoError/browser/markerSelectionStatus.js';\nimport '../../../vs/editor/contrib/gpu/browser/gpuActions.js';\nimport '../../../vs/editor/contrib/hover/browser/hoverContribution.js';\nimport '../../../vs/editor/contrib/indentation/browser/indentation.js';\nimport '../../../vs/editor/contrib/inlayHints/browser/inlayHintsContribution.js';\nimport '../../../vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js';\nimport '../../../vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js';\nimport '../../../vs/editor/contrib/lineSelection/browser/lineSelection.js';\nimport '../../../vs/editor/contrib/linesOperations/browser/linesOperations.js';\nimport '../../../vs/editor/contrib/linkedEditing/browser/linkedEditing.js';\nimport '../../../vs/editor/contrib/links/browser/links.js';\nimport '../../../vs/editor/contrib/longLinesHelper/browser/longLinesHelper.js';\nimport '../../../vs/editor/contrib/middleScroll/browser/middleScroll.contribution.js';\nimport '../../../vs/editor/contrib/multicursor/browser/multicursor.js';\nimport '../../../vs/editor/contrib/parameterHints/browser/parameterHints.js';\nimport '../../../vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js';\nimport '../../../vs/editor/contrib/rename/browser/rename.js';\nimport '../../../vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js';\nimport '../../../vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js';\nimport '../../../vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.js';\nimport '../../../vs/editor/contrib/smartSelect/browser/smartSelect.js';\nimport '../../../vs/editor/contrib/snippet/browser/snippetController2.js';\nimport '../../../vs/editor/contrib/stickyScroll/browser/stickyScrollContribution.js';\nimport '../../../vs/editor/contrib/suggest/browser/suggestController.js';\nimport '../../../vs/editor/contrib/suggest/browser/suggestInlineCompletions.js';\nimport '../../../vs/editor/contrib/tokenization/browser/tokenization.js';\nimport '../../../vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';\nimport '../../../vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js';\nimport '../../../vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js';\nimport '../../../vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js';\nimport '../../../vs/editor/contrib/wordOperations/browser/wordOperations.js';\nimport '../../../vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js';\nimport '../../../vs/editor/contrib/readOnlyMessage/browser/contribution.js';\nimport '../../../vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js';\nimport '../../../vs/editor/contrib/floatingMenu/browser/floatingMenu.contribution.js';\nimport '../../../vs/editor/common/standaloneStrings.js';\nimport '../../../vs/base/browser/ui/codicons/codicon/codicon.css';\nimport '../../../vs/base/browser/ui/codicons/codicon/codicon-modifiers.css';\nimport '../../../vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js';\nimport '../../../vs/editor/standalone/browser/inspectTokens/inspectTokens.js';\nimport '../../../vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js';\nimport '../../../vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js';\nimport '../../../vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js';\nimport '../../../vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js';\nimport '../../../vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js';\nimport '../../../vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.js';\nimport { languages, MarkerSeverity, MarkerTag, editor, Position, Range, Emitter, Uri } from '../../../vs/editor/editor.api.js';\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar _a, _b, _c, _d, _e;\nfunction isRequestOrNotification(msg) {\n return msg.method !== void 0;\n}\nvar ErrorObject;\n(function(ErrorObject$1) {\n function create(obj) {\n return obj;\n }\n ErrorObject$1.create = create;\n})(ErrorObject || (ErrorObject = {}));\nvar ErrorCode;\n(function(ErrorCode$1) {\n ErrorCode$1.parseError = -32700;\n ErrorCode$1.invalidRequest = -32600;\n ErrorCode$1.methodNotFound = -32601;\n ErrorCode$1.invalidParams = -32602;\n ErrorCode$1.internalError = -32603;\n function isServerError(code) {\n return -32099 <= code && code <= -32e3;\n }\n ErrorCode$1.isServerError = isServerError;\n function serverError(code) {\n if (!isServerError(code)) throw new Error(\"Invalid range for a server error.\");\n return code;\n }\n ErrorCode$1.serverError = serverError;\n ErrorCode$1.unexpectedServerError = -32e3;\n function isApplicationError(code) {\n return true;\n }\n ErrorCode$1.isApplicationError = isApplicationError;\n function applicationError(code) {\n return code;\n }\n ErrorCode$1.applicationError = applicationError;\n ErrorCode$1.genericApplicationError = -320100;\n})(ErrorCode || (ErrorCode = {}));\nvar EventEmitter = class {\n constructor() {\n __publicField(this, \"listeners\", /* @__PURE__ */ new Set());\n __publicField(this, \"event\", (listener) => {\n this.listeners.add(listener);\n return { dispose: () => {\n this.listeners.delete(listener);\n } };\n });\n }\n fire(args) {\n this.listeners.forEach((listener) => listener(args));\n }\n};\nvar ValueWithChangeEvent = class {\n constructor(initialValue) {\n __publicField(this, \"_value\");\n __publicField(this, \"eventEmitter\");\n this._value = initialValue;\n this.eventEmitter = new EventEmitter();\n }\n get value() {\n return this._value;\n }\n set value(newValue) {\n if (this._value !== newValue) {\n this._value = newValue;\n this.eventEmitter.fire(newValue);\n }\n }\n get onChange() {\n return this.eventEmitter.event;\n }\n};\nfunction createTimeout(delay, callback) {\n const handle = setTimeout(callback, delay);\n return { dispose: () => clearTimeout(handle) };\n}\nfunction setAndDeleteOnDispose(set, keyOrItem, item) {\n if (set instanceof Set) {\n set.add(keyOrItem);\n return { dispose: () => set.delete(keyOrItem) };\n } else {\n set.set(keyOrItem, item);\n return { dispose: () => set.delete(keyOrItem) };\n }\n}\nvar Deferred = class {\n constructor() {\n __publicField(this, \"_state\", \"none\");\n __publicField(this, \"promise\");\n __publicField(this, \"resolve\", () => {\n });\n __publicField(this, \"reject\", () => {\n });\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n get state() {\n return this._state;\n }\n};\nvar BaseMessageTransport = (_a = class {\n constructor() {\n __publicField(this, \"_unprocessedMessages\", []);\n __publicField(this, \"_messageListener\");\n __publicField(this, \"id\", _a.id++);\n __publicField(this, \"_state\", new ValueWithChangeEvent({ state: \"open\" }));\n __publicField(this, \"state\", this._state);\n }\n /**\n * Sets a callback for incoming messages.\n */\n setListener(listener) {\n this._messageListener = listener;\n if (!listener) return;\n while (this._unprocessedMessages.length > 0 && this._messageListener !== void 0) {\n const msg = this._unprocessedMessages.shift();\n this._messageListener(msg);\n }\n }\n /**\n * Writes a message to the stream.\n */\n send(message) {\n return this._sendImpl(message);\n }\n /**\n * Call this in derived classes to signal a new message.\n */\n _dispatchReceivedMessage(message) {\n if (this._unprocessedMessages.length === 0 && this._messageListener) this._messageListener(message);\n else this._unprocessedMessages.push(message);\n }\n /**\n * Call this in derived classes to signal that the connection closed.\n */\n _onConnectionClosed() {\n this._state.value = {\n state: \"closed\",\n error: void 0\n };\n }\n log(logger) {\n return new StreamLogger(this, logger ?? new ConsoleMessageLogger());\n }\n}, __publicField(_a, \"id\", 0), _a);\nvar StreamLogger = class {\n constructor(baseStream, logger) {\n __publicField(this, \"baseStream\");\n __publicField(this, \"logger\");\n this.baseStream = baseStream;\n this.logger = logger;\n }\n get state() {\n return this.baseStream.state;\n }\n setListener(listener) {\n if (listener === void 0) {\n this.baseStream.setListener(void 0);\n return;\n }\n this.baseStream.setListener((readMessage) => {\n this.logger.log(this.baseStream, \"incoming\", readMessage);\n listener(readMessage);\n });\n }\n send(message) {\n this.logger.log(this.baseStream, \"outgoing\", message);\n return this.baseStream.send(message);\n }\n toString() {\n return `StreamLogger/${this.baseStream.toString()}`;\n }\n};\nvar ConsoleMessageLogger = class {\n log(stream, type, message) {\n const char = type === \"incoming\" ? \"<-\" : \"->\";\n console.log(`${char} [${stream.toString()}] ${JSON.stringify(message)}`);\n }\n};\nvar Channel = class Channel2 {\n constructor(connect) {\n __publicField(this, \"connect\");\n this.connect = connect;\n }\n mapContext(map) {\n return new Channel2((listener) => this.connect(listener ? mapRequestHandlerContext(listener, map) : void 0));\n }\n};\nfunction mapRequestHandlerContext(messageHandler, map) {\n return {\n handleNotification: (request, context) => messageHandler.handleNotification(request, map(context)),\n handleRequest: (request, requestId, context) => messageHandler.handleRequest(request, requestId, map(context))\n };\n}\nvar StreamBasedChannel = class StreamBasedChannel2 {\n constructor(_stream, _listener, _logger) {\n __publicField(this, \"_stream\");\n __publicField(this, \"_listener\");\n __publicField(this, \"_logger\");\n __publicField(this, \"_unprocessedResponses\", /* @__PURE__ */ new Map());\n __publicField(this, \"_lastUsedRequestId\", 0);\n this._stream = _stream;\n this._listener = _listener;\n this._logger = _logger;\n this._stream.setListener((message) => {\n if (isRequestOrNotification(message)) if (message.id === void 0) this._processNotification(message);\n else this._processRequest(message);\n else this._processResponse(message);\n });\n }\n /**\n * Creates a channel factory from a given stream and logger.\n * This allows to delay specifying a `RequestHandler`.\n * Once the channel is created, it processes incoming messages.\n */\n static createChannel(stream, logger) {\n let constructed = false;\n return new Channel((listener) => {\n if (constructed) throw new Error(`A channel to the stream ${stream} was already constructed!`);\n else constructed = true;\n return new StreamBasedChannel2(stream, listener, logger);\n });\n }\n get state() {\n return this._stream.state;\n }\n async _processNotification(message) {\n if (message.id !== void 0) throw new Error();\n if (!this._listener) {\n if (this._logger) this._logger.debug({\n text: \"Notification ignored\",\n message\n });\n return;\n }\n try {\n await this._listener.handleNotification({\n method: message.method,\n params: message.params || null\n });\n } catch (exception) {\n if (this._logger) this._logger.warn({\n text: `Exception was thrown while handling notification: ${exception}`,\n exception,\n message\n });\n }\n }\n async _processRequest(message) {\n if (message.id === void 0) throw new Error();\n let result;\n if (this._listener) try {\n result = await this._listener.handleRequest({\n method: message.method,\n params: message.params || null\n }, message.id);\n } catch (exception) {\n if (this._logger) this._logger.warn({\n text: `Exception was thrown while handling request: ${exception}`,\n message,\n exception\n });\n result = { error: {\n code: ErrorCode.internalError,\n message: \"An unexpected exception was thrown.\",\n data: void 0\n } };\n }\n else {\n if (this._logger) this._logger.debug({\n text: \"Received request even though not listening for requests\",\n message\n });\n result = { error: {\n code: ErrorCode.methodNotFound,\n message: \"This endpoint does not listen for requests or notifications.\",\n data: void 0\n } };\n }\n let responseMsg;\n if (\"result\" in result) responseMsg = {\n jsonrpc: \"2.0\",\n id: message.id,\n result: result.result\n };\n else responseMsg = {\n jsonrpc: \"2.0\",\n id: message.id,\n error: result.error\n };\n await this._stream.send(responseMsg);\n }\n _processResponse(message) {\n const strId = \"\" + message.id;\n const callback = this._unprocessedResponses.get(strId);\n if (!callback) {\n if (this._logger) this._logger.debug({\n text: \"Got an unexpected response message\",\n message\n });\n return;\n }\n this._unprocessedResponses.delete(strId);\n callback(message);\n }\n _newRequestId() {\n return this._lastUsedRequestId++;\n }\n sendRequest(request, _context, messageIdCallback) {\n const message = {\n jsonrpc: \"2.0\",\n id: this._newRequestId(),\n method: request.method,\n params: request.params || void 0\n };\n if (messageIdCallback) messageIdCallback(message.id);\n return new Promise((resolve, reject) => {\n const strId = \"\" + message.id;\n this._unprocessedResponses.set(strId, (response) => {\n if (\"result\" in response) resolve({ result: response.result });\n else {\n if (!response.error) reject(/* @__PURE__ */ new Error(\"Response had neither 'result' nor 'error' field set.\"));\n resolve({ error: response.error });\n }\n });\n this._stream.send(message).then(void 0, (reason) => {\n this._unprocessedResponses.delete(strId);\n reject(reason);\n });\n });\n }\n sendNotification(notification, context) {\n const msg = {\n jsonrpc: \"2.0\",\n id: void 0,\n method: notification.method,\n params: notification.params || void 0\n };\n return this._stream.send(msg);\n }\n toString() {\n return \"StreamChannel/\" + this._stream.toString();\n }\n};\nvar Serializers;\n(function(Serializers$1) {\n function sAny() {\n return {\n deserializeFromJson: (input) => ({\n hasErrors: false,\n value: input\n }),\n serializeToJson: (input) => input\n };\n }\n Serializers$1.sAny = sAny;\n function sEmptyObject() {\n return {\n deserializeFromJson: (input) => ({\n hasErrors: false,\n value: {}\n }),\n serializeToJson: (input) => ({})\n };\n }\n Serializers$1.sEmptyObject = sEmptyObject;\n function sVoidFromNull() {\n return {\n deserializeFromJson: (input) => ({\n hasErrors: false,\n value: void 0\n }),\n serializeToJson: (input) => null\n };\n }\n Serializers$1.sVoidFromNull = sVoidFromNull;\n})(Serializers || (Serializers = {}));\nconst OptionalMethodNotFound = Symbol(\"OptionalMethodNotFound\");\nvar TypedChannelBase = class {\n contextualize(args) {\n return new ContextualizedTypedChannel(this, args);\n }\n};\nvar ContextualizedTypedChannel = class extends TypedChannelBase {\n constructor(underylingTypedChannel, converters) {\n super();\n __publicField(this, \"underylingTypedChannel\");\n __publicField(this, \"converters\");\n this.underylingTypedChannel = underylingTypedChannel;\n this.converters = converters;\n }\n async request(requestType, args, newContext) {\n const context = await this.converters.getSendContext(newContext);\n return this.underylingTypedChannel.request(requestType, args, context);\n }\n async notify(notificationType, params, newContext) {\n const context = await this.converters.getSendContext(newContext);\n return this.underylingTypedChannel.notify(notificationType, params, context);\n }\n registerNotificationHandler(type, handler) {\n return this.underylingTypedChannel.registerNotificationHandler(type, async (arg, context) => {\n return await handler(arg, await this.converters.getNewContext(context));\n });\n }\n registerRequestHandler(requestType, handler) {\n return this.underylingTypedChannel.registerRequestHandler(requestType, async (arg, requestId, context) => {\n return await handler(arg, requestId, await this.converters.getNewContext(context));\n });\n }\n};\nvar TypedChannel = class TypedChannel2 extends TypedChannelBase {\n constructor(channelCtor, options = {}) {\n super();\n __publicField(this, \"channelCtor\");\n __publicField(this, \"_requestSender\");\n __publicField(this, \"_handler\", /* @__PURE__ */ new Map());\n __publicField(this, \"_unknownNotificationHandler\", /* @__PURE__ */ new Set());\n __publicField(this, \"_timeout\");\n __publicField(this, \"sendExceptionDetails\", false);\n __publicField(this, \"_logger\");\n __publicField(this, \"listeningDeferred\", new Deferred());\n __publicField(this, \"onListening\", this.listeningDeferred.promise);\n __publicField(this, \"_requestDidErrorEventEmitter\", new EventEmitter());\n __publicField(this, \"onRequestDidError\", this._requestDidErrorEventEmitter.event);\n this.channelCtor = channelCtor;\n this._logger = options.logger;\n this.sendExceptionDetails = !!options.sendExceptionDetails;\n this._timeout = createTimeout(1e3, () => {\n if (!this._requestSender) console.warn(`\"${this.startListen.name}\" has not been called within 1 second after construction of this channel. Did you forget to call it?`, this);\n });\n }\n static fromTransport(stream, options = {}) {\n return new TypedChannel2(StreamBasedChannel.createChannel(stream, options.logger), options);\n }\n /**\n * This method must be called to forward messages from the stream to this channel.\n * This is not done automatically on construction so that this instance\n * can be setup properly before handling messages.\n */\n startListen() {\n if (this._requestSender) throw new Error(`\"${this.startListen.name}\" can be called only once, but it already has been called.`);\n if (this._timeout) {\n this._timeout.dispose();\n this._timeout = void 0;\n }\n this._requestSender = this.channelCtor.connect({\n handleRequest: (req, id, context) => this.handleRequest(req, id, context),\n handleNotification: (req, context) => this.handleNotification(req, context)\n });\n this.listeningDeferred.resolve();\n }\n checkChannel(channel) {\n if (!channel) throw new Error(`\"${this.startListen.name}\" must be called before any messages can be sent or received.`);\n return true;\n }\n async handleRequest(request, requestId, context) {\n const handler = this._handler.get(request.method);\n if (!handler) {\n if (this._logger) this._logger.debug({\n text: `No request handler for \"${request.method}\".`,\n data: { requestObject: request }\n });\n return { error: {\n code: ErrorCode.methodNotFound,\n message: `No request handler for \"${request.method}\".`,\n data: { method: request.method }\n } };\n }\n if (handler.kind != \"request\") {\n const message = `\"${request.method}\" is registered as notification, but was sent as request.`;\n if (this._logger) this._logger.debug({\n text: message,\n data: { requestObject: request }\n });\n return { error: {\n code: ErrorCode.invalidRequest,\n message,\n data: { method: request.method }\n } };\n }\n const decodeResult = handler.requestType.paramsSerializer.deserializeFromJson(request.params);\n if (decodeResult.hasErrors) {\n const message = `Got invalid params: ${decodeResult.errorMessage}`;\n if (this._logger) this._logger.debug({\n text: message,\n data: {\n requestObject: request,\n errorMessage: decodeResult.errorMessage\n }\n });\n return { error: {\n code: ErrorCode.invalidParams,\n message,\n data: { errors: decodeResult.errorMessage }\n } };\n } else {\n const args = decodeResult.value;\n let response;\n try {\n const result = await handler.handler(args, requestId, context);\n if (\"error\" in result || \"errorMessage\" in result) {\n const errorData = result.error ? handler.requestType.errorSerializer.serializeToJson(result.error) : void 0;\n response = { error: {\n code: result.errorCode || ErrorCode.genericApplicationError,\n message: result.errorMessage || \"An error was returned\",\n data: errorData\n } };\n } else response = { result: handler.requestType.resultSerializer.serializeToJson(result.ok) };\n } catch (exception) {\n if (exception instanceof RequestHandlingError) response = { error: {\n code: exception.code,\n message: exception.message\n } };\n else {\n if (this._logger) this._logger.warn({\n text: `An exception was thrown while handling a request: ${exception}.`,\n exception,\n data: { requestObject: request }\n });\n response = { error: {\n code: ErrorCode.unexpectedServerError,\n message: this.sendExceptionDetails ? `An exception was thrown while handling a request: ${exception}.` : \"Server has thrown an unexpected exception\"\n } };\n }\n }\n return response;\n }\n }\n async handleNotification(request, context) {\n const handler = this._handler.get(request.method);\n if (!handler) {\n for (const h of this._unknownNotificationHandler) h(request);\n if (this._unknownNotificationHandler.size === 0) {\n if (this._logger) this._logger.debug({\n text: `Unhandled notification \"${request.method}\"`,\n data: { requestObject: request }\n });\n }\n return;\n }\n if (handler.kind != \"notification\") {\n if (this._logger) this._logger.debug({\n text: `\"${request.method}\" is registered as request, but was sent as notification.`,\n data: { requestObject: request }\n });\n return;\n }\n const decodeResult = handler.notificationType.paramsSerializer.deserializeFromJson(request.params);\n if (decodeResult.hasErrors) {\n if (this._logger) this._logger.debug({\n text: `Got invalid params: ${decodeResult}`,\n data: {\n requestObject: request,\n errorMessage: decodeResult.errorMessage\n }\n });\n return;\n }\n const val = decodeResult.value;\n for (const handlerFunc of handler.handlers) try {\n handlerFunc(val, context);\n } catch (exception) {\n if (this._logger) this._logger.warn({\n text: `An exception was thrown while handling a notification: ${exception}.`,\n exception,\n data: { requestObject: request }\n });\n }\n }\n registerUnknownNotificationHandler(handler) {\n return setAndDeleteOnDispose(this._unknownNotificationHandler, handler);\n }\n registerRequestHandler(requestType, handler) {\n if (this._handler.get(requestType.method)) throw new Error(`Handler with method \"${requestType.method}\" already registered.`);\n return setAndDeleteOnDispose(this._handler, requestType.method, {\n kind: \"request\",\n requestType,\n handler\n });\n }\n registerNotificationHandler(type, handler) {\n let registeredHandler = this._handler.get(type.method);\n if (!registeredHandler) {\n registeredHandler = {\n kind: \"notification\",\n notificationType: type,\n handlers: /* @__PURE__ */ new Set()\n };\n this._handler.set(type.method, registeredHandler);\n } else {\n if (registeredHandler.kind !== \"notification\") throw new Error(`Method \"${type.method}\" was already registered as request handler.`);\n if (registeredHandler.notificationType !== type) throw new Error(`Method \"${type.method}\" was registered for a different type.`);\n }\n return setAndDeleteOnDispose(registeredHandler.handlers, handler);\n }\n getRegisteredTypes() {\n const result = [];\n for (const h of this._handler.values()) if (h.kind === \"notification\") result.push(h.notificationType);\n else if (h.kind === \"request\") result.push(h.requestType);\n return result;\n }\n async request(requestType, args, context) {\n if (!this.checkChannel(this._requestSender)) throw new Error(\"Impossible\");\n const params = requestType.paramsSerializer.serializeToJson(args);\n assertObjectArrayOrNull(params);\n const response = await this._requestSender.sendRequest({\n method: requestType.method,\n params\n }, context);\n if (\"error\" in response) {\n if (requestType.isOptional && response.error.code === ErrorCode.methodNotFound) return OptionalMethodNotFound;\n let errorData;\n if (response.error.data !== void 0) {\n const deserializationResult = requestType.errorSerializer.deserializeFromJson(response.error.data);\n if (deserializationResult.hasErrors) throw new Error(deserializationResult.errorMessage);\n errorData = deserializationResult.value;\n } else errorData = void 0;\n const error = new RequestHandlingError(response.error.message, errorData, response.error.code);\n this._requestDidErrorEventEmitter.fire({ error });\n throw error;\n } else {\n const result = requestType.resultSerializer.deserializeFromJson(response.result);\n if (result.hasErrors) throw new Error(\"Could not deserialize response: \" + result.errorMessage + `\n\n${JSON.stringify(response, null, 2)}`);\n else return result.value;\n }\n }\n async notify(notificationType, params, context) {\n if (!this.checkChannel(this._requestSender)) throw new Error();\n const encodedParams = notificationType.paramsSerializer.serializeToJson(params);\n assertObjectArrayOrNull(encodedParams);\n this._requestSender.sendNotification({\n method: notificationType.method,\n params: encodedParams\n }, context);\n }\n};\nfunction assertObjectArrayOrNull(val) {\n if (val !== null && Array.isArray(val) && typeof val !== \"object\") throw new Error(\"Invalid value! Only null, array and object is allowed.\");\n}\nvar RequestHandlingError = class RequestHandlingError2 extends Error {\n constructor(message, data, code = ErrorCode.genericApplicationError) {\n super(message);\n __publicField(this, \"data\");\n __publicField(this, \"code\");\n this.data = data;\n this.code = code;\n Object.setPrototypeOf(this, RequestHandlingError2.prototype);\n }\n};\nvar RequestType = class RequestType2 {\n constructor(method, paramsSerializer, resultSerializer, errorSerializer, isOptional = false) {\n __publicField(this, \"method\");\n __publicField(this, \"paramsSerializer\");\n __publicField(this, \"resultSerializer\");\n __publicField(this, \"errorSerializer\");\n __publicField(this, \"isOptional\");\n __publicField(this, \"kind\", \"request\");\n this.method = method;\n this.paramsSerializer = paramsSerializer;\n this.resultSerializer = resultSerializer;\n this.errorSerializer = errorSerializer;\n this.isOptional = isOptional;\n }\n withMethod(method) {\n return new RequestType2(method, this.paramsSerializer, this.resultSerializer, this.errorSerializer);\n }\n optional() {\n return new RequestType2(this.method, this.paramsSerializer, this.resultSerializer, this.errorSerializer, true);\n }\n};\nvar NotificationType = class NotificationType2 {\n constructor(method, paramsSerializer) {\n __publicField(this, \"method\");\n __publicField(this, \"paramsSerializer\");\n __publicField(this, \"kind\", \"notification\");\n this.method = method;\n this.paramsSerializer = paramsSerializer;\n }\n withMethod(method) {\n return new NotificationType2(method, this.paramsSerializer);\n }\n};\nfunction unverifiedRequest(request) {\n return new RequestType((request || {}).method, Serializers.sAny(), Serializers.sAny(), Serializers.sAny());\n}\nfunction unverifiedNotification(request) {\n return new NotificationType((request || {}).method, Serializers.sAny());\n}\nconst IsErrorWrapper = Symbol();\nvar ErrorWrapper = (_b = IsErrorWrapper, _c = class {\n constructor(error) {\n __publicField(this, \"error\");\n __publicField(this, _b);\n this.error = error;\n }\n}, __publicField(_c, \"factory\", (error) => {\n return new _c(error);\n}), _c);\nfunction contract(contractObj) {\n const server = transform(contractObj[\"server\"]);\n const client = transform(contractObj[\"client\"]);\n return new Contract(contractObj.tags || [], server, client);\n}\nfunction transform(requestMap) {\n const result = {};\n for (const [key, req] of Object.entries(requestMap)) {\n const method = req.method ? req.method : key;\n result[key] = req.withMethod(method);\n }\n return result;\n}\nvar Contract = class Contract2 {\n constructor(tags = [], server, client) {\n __publicField(this, \"tags\");\n __publicField(this, \"server\");\n __publicField(this, \"client\");\n this.tags = tags;\n this.server = server;\n this.client = client;\n }\n _onlyDesignTime() {\n return /* @__PURE__ */ new Error(\"This property is not meant to be accessed at runtime\");\n }\n get TContractObject() {\n throw this._onlyDesignTime();\n }\n get TClientInterface() {\n throw this._onlyDesignTime();\n }\n get TServerInterface() {\n throw this._onlyDesignTime();\n }\n get TClientHandler() {\n throw this._onlyDesignTime();\n }\n get TServerHandler() {\n throw this._onlyDesignTime();\n }\n get TTags() {\n throw this._onlyDesignTime();\n }\n getInterface(typedChannel, myContract, otherContract, myInterface) {\n const counterpart = this.buildCounterpart(typedChannel, otherContract);\n const disposable = this.registerHandlers(typedChannel, myContract, myInterface, counterpart);\n return {\n counterpart,\n dispose: () => disposable.dispose()\n };\n }\n buildCounterpart(typedChannel, otherContract) {\n const counterpart = {};\n for (const [key, req] of Object.entries(otherContract)) {\n let method;\n if (req.kind === \"request\") if (req.isOptional) method = async (args, context) => {\n if (args === void 0) args = {};\n try {\n return await typedChannel.request(req, args, context);\n } catch (error) {\n if (error && error.code === ErrorCode.methodNotFound) return OptionalMethodNotFound;\n throw error;\n }\n };\n else method = (args, context) => {\n if (args === void 0) args = {};\n return typedChannel.request(req, args, context);\n };\n else method = (args, context) => {\n if (args === void 0) args = {};\n return typedChannel.notify(req, args, context);\n };\n counterpart[key] = method;\n }\n return counterpart;\n }\n registerHandlers(typedChannel, myContract, myInterface, counterpart) {\n const disposables = [];\n for (const [key, req] of Object.entries(myContract)) if (req.kind === \"request\") {\n let method = myInterface[key];\n if (!method) continue;\n const handler = this.createRequestHandler(counterpart, method);\n disposables.push(typedChannel.registerRequestHandler(req, handler));\n } else {\n const method = myInterface[key];\n if (method) disposables.push(typedChannel.registerNotificationHandler(req, (args, context) => {\n method(args, {\n context,\n counterpart\n });\n }));\n }\n return { dispose: () => disposables.forEach((d) => d.dispose()) };\n }\n createRequestHandler(counterpart, method) {\n return async (args, requestId, listenerContext) => {\n const result = await method(args, {\n context: listenerContext,\n counterpart,\n newErr: ErrorWrapper.factory,\n requestId\n });\n if (result instanceof ErrorWrapper) return result.error;\n return { ok: result };\n };\n }\n /**\n * Gets a server object directly from a stream by constructing a new `TypedChannel`.\n * It also registers the client implementation to the stream.\n * The channel starts listening immediately.\n */\n static getServerFromStream(contract$1, stream, options, clientImplementation) {\n const channel = TypedChannel.fromTransport(stream, options);\n const { server } = contract$1.getServer(channel, clientImplementation);\n channel.startListen();\n return {\n channel,\n server\n };\n }\n /**\n * Gets a client object directly from a stream by constructing a new `TypedChannel`.\n * It also registers the server implementation to the stream.\n * The channel starts listening immediately.\n */\n static registerServerToStream(contract$1, stream, options, serverImplementation) {\n const channel = TypedChannel.fromTransport(stream, options);\n const { client } = contract$1.registerServer(channel, serverImplementation);\n channel.startListen();\n return {\n channel,\n client\n };\n }\n getServer(typedChannel, clientImplementation) {\n const { counterpart, dispose } = this.getInterface(typedChannel, this.client, this.server, clientImplementation);\n return {\n server: counterpart,\n dispose\n };\n }\n registerServer(typedChannel, serverImplementation) {\n const { counterpart, dispose } = this.getInterface(typedChannel, this.server, this.client, serverImplementation);\n return {\n client: counterpart,\n dispose\n };\n }\n withContext() {\n return new Contract2(this.tags, this.server, this.client);\n }\n};\nlet FoldingRangeKind = /* @__PURE__ */ (function(FoldingRangeKind$1) {\n FoldingRangeKind$1[\"Comment\"] = \"comment\";\n FoldingRangeKind$1[\"Imports\"] = \"imports\";\n FoldingRangeKind$1[\"Region\"] = \"region\";\n return FoldingRangeKind$1;\n})({});\nlet SymbolKind = /* @__PURE__ */ (function(SymbolKind$1) {\n SymbolKind$1[SymbolKind$1[\"File\"] = 1] = \"File\";\n SymbolKind$1[SymbolKind$1[\"Module\"] = 2] = \"Module\";\n SymbolKind$1[SymbolKind$1[\"Namespace\"] = 3] = \"Namespace\";\n SymbolKind$1[SymbolKind$1[\"Package\"] = 4] = \"Package\";\n SymbolKind$1[SymbolKind$1[\"Class\"] = 5] = \"Class\";\n SymbolKind$1[SymbolKind$1[\"Method\"] = 6] = \"Method\";\n SymbolKind$1[SymbolKind$1[\"Property\"] = 7] = \"Property\";\n SymbolKind$1[SymbolKind$1[\"Field\"] = 8] = \"Field\";\n SymbolKind$1[SymbolKind$1[\"Constructor\"] = 9] = \"Constructor\";\n SymbolKind$1[SymbolKind$1[\"Enum\"] = 10] = \"Enum\";\n SymbolKind$1[SymbolKind$1[\"Interface\"] = 11] = \"Interface\";\n SymbolKind$1[SymbolKind$1[\"Function\"] = 12] = \"Function\";\n SymbolKind$1[SymbolKind$1[\"Variable\"] = 13] = \"Variable\";\n SymbolKind$1[SymbolKind$1[\"Constant\"] = 14] = \"Constant\";\n SymbolKind$1[SymbolKind$1[\"String\"] = 15] = \"String\";\n SymbolKind$1[SymbolKind$1[\"Number\"] = 16] = \"Number\";\n SymbolKind$1[SymbolKind$1[\"Boolean\"] = 17] = \"Boolean\";\n SymbolKind$1[SymbolKind$1[\"Array\"] = 18] = \"Array\";\n SymbolKind$1[SymbolKind$1[\"Object\"] = 19] = \"Object\";\n SymbolKind$1[SymbolKind$1[\"Key\"] = 20] = \"Key\";\n SymbolKind$1[SymbolKind$1[\"Null\"] = 21] = \"Null\";\n SymbolKind$1[SymbolKind$1[\"EnumMember\"] = 22] = \"EnumMember\";\n SymbolKind$1[SymbolKind$1[\"Struct\"] = 23] = \"Struct\";\n SymbolKind$1[SymbolKind$1[\"Event\"] = 24] = \"Event\";\n SymbolKind$1[SymbolKind$1[\"Operator\"] = 25] = \"Operator\";\n SymbolKind$1[SymbolKind$1[\"TypeParameter\"] = 26] = \"TypeParameter\";\n return SymbolKind$1;\n})({});\nlet SymbolTag = /* @__PURE__ */ (function(SymbolTag$1) {\n SymbolTag$1[SymbolTag$1[\"Deprecated\"] = 1] = \"Deprecated\";\n return SymbolTag$1;\n})({});\nlet InlayHintKind = /* @__PURE__ */ (function(InlayHintKind$1) {\n InlayHintKind$1[InlayHintKind$1[\"Type\"] = 1] = \"Type\";\n InlayHintKind$1[InlayHintKind$1[\"Parameter\"] = 2] = \"Parameter\";\n return InlayHintKind$1;\n})({});\nlet TextDocumentSyncKind = /* @__PURE__ */ (function(TextDocumentSyncKind$1) {\n TextDocumentSyncKind$1[TextDocumentSyncKind$1[\"None\"] = 0] = \"None\";\n TextDocumentSyncKind$1[TextDocumentSyncKind$1[\"Full\"] = 1] = \"Full\";\n TextDocumentSyncKind$1[TextDocumentSyncKind$1[\"Incremental\"] = 2] = \"Incremental\";\n return TextDocumentSyncKind$1;\n})({});\nlet CompletionItemKind = /* @__PURE__ */ (function(CompletionItemKind$1) {\n CompletionItemKind$1[CompletionItemKind$1[\"Text\"] = 1] = \"Text\";\n CompletionItemKind$1[CompletionItemKind$1[\"Method\"] = 2] = \"Method\";\n CompletionItemKind$1[CompletionItemKind$1[\"Function\"] = 3] = \"Function\";\n CompletionItemKind$1[CompletionItemKind$1[\"Constructor\"] = 4] = \"Constructor\";\n CompletionItemKind$1[CompletionItemKind$1[\"Field\"] = 5] = \"Field\";\n CompletionItemKind$1[CompletionItemKind$1[\"Variable\"] = 6] = \"Variable\";\n CompletionItemKind$1[CompletionItemKind$1[\"Class\"] = 7] = \"Class\";\n CompletionItemKind$1[CompletionItemKind$1[\"Interface\"] = 8] = \"Interface\";\n CompletionItemKind$1[CompletionItemKind$1[\"Module\"] = 9] = \"Module\";\n CompletionItemKind$1[CompletionItemKind$1[\"Property\"] = 10] = \"Property\";\n CompletionItemKind$1[CompletionItemKind$1[\"Unit\"] = 11] = \"Unit\";\n CompletionItemKind$1[CompletionItemKind$1[\"Value\"] = 12] = \"Value\";\n CompletionItemKind$1[CompletionItemKind$1[\"Enum\"] = 13] = \"Enum\";\n CompletionItemKind$1[CompletionItemKind$1[\"Keyword\"] = 14] = \"Keyword\";\n CompletionItemKind$1[CompletionItemKind$1[\"Snippet\"] = 15] = \"Snippet\";\n CompletionItemKind$1[CompletionItemKind$1[\"Color\"] = 16] = \"Color\";\n CompletionItemKind$1[CompletionItemKind$1[\"File\"] = 17] = \"File\";\n CompletionItemKind$1[CompletionItemKind$1[\"Reference\"] = 18] = \"Reference\";\n CompletionItemKind$1[CompletionItemKind$1[\"Folder\"] = 19] = \"Folder\";\n CompletionItemKind$1[CompletionItemKind$1[\"EnumMember\"] = 20] = \"EnumMember\";\n CompletionItemKind$1[CompletionItemKind$1[\"Constant\"] = 21] = \"Constant\";\n CompletionItemKind$1[CompletionItemKind$1[\"Struct\"] = 22] = \"Struct\";\n CompletionItemKind$1[CompletionItemKind$1[\"Event\"] = 23] = \"Event\";\n CompletionItemKind$1[CompletionItemKind$1[\"Operator\"] = 24] = \"Operator\";\n CompletionItemKind$1[CompletionItemKind$1[\"TypeParameter\"] = 25] = \"TypeParameter\";\n return CompletionItemKind$1;\n})({});\nlet CompletionItemTag = /* @__PURE__ */ (function(CompletionItemTag$1) {\n CompletionItemTag$1[CompletionItemTag$1[\"Deprecated\"] = 1] = \"Deprecated\";\n return CompletionItemTag$1;\n})({});\nlet InsertTextFormat = /* @__PURE__ */ (function(InsertTextFormat$1) {\n InsertTextFormat$1[InsertTextFormat$1[\"PlainText\"] = 1] = \"PlainText\";\n InsertTextFormat$1[InsertTextFormat$1[\"Snippet\"] = 2] = \"Snippet\";\n return InsertTextFormat$1;\n})({});\nlet DocumentHighlightKind = /* @__PURE__ */ (function(DocumentHighlightKind$1) {\n DocumentHighlightKind$1[DocumentHighlightKind$1[\"Text\"] = 1] = \"Text\";\n DocumentHighlightKind$1[DocumentHighlightKind$1[\"Read\"] = 2] = \"Read\";\n DocumentHighlightKind$1[DocumentHighlightKind$1[\"Write\"] = 3] = \"Write\";\n return DocumentHighlightKind$1;\n})({});\nlet CodeActionKind = /* @__PURE__ */ (function(CodeActionKind$1) {\n CodeActionKind$1[\"Empty\"] = \"\";\n CodeActionKind$1[\"QuickFix\"] = \"quickfix\";\n CodeActionKind$1[\"Refactor\"] = \"refactor\";\n CodeActionKind$1[\"RefactorExtract\"] = \"refactor.extract\";\n CodeActionKind$1[\"RefactorInline\"] = \"refactor.inline\";\n CodeActionKind$1[\"RefactorRewrite\"] = \"refactor.rewrite\";\n CodeActionKind$1[\"Source\"] = \"source\";\n CodeActionKind$1[\"SourceOrganizeImports\"] = \"source.organizeImports\";\n CodeActionKind$1[\"SourceFixAll\"] = \"source.fixAll\";\n return CodeActionKind$1;\n})({});\nlet MarkupKind = /* @__PURE__ */ (function(MarkupKind$1) {\n MarkupKind$1[\"PlainText\"] = \"plaintext\";\n MarkupKind$1[\"Markdown\"] = \"markdown\";\n return MarkupKind$1;\n})({});\nlet DiagnosticSeverity = /* @__PURE__ */ (function(DiagnosticSeverity$1) {\n DiagnosticSeverity$1[DiagnosticSeverity$1[\"Error\"] = 1] = \"Error\";\n DiagnosticSeverity$1[DiagnosticSeverity$1[\"Warning\"] = 2] = \"Warning\";\n DiagnosticSeverity$1[DiagnosticSeverity$1[\"Information\"] = 3] = \"Information\";\n DiagnosticSeverity$1[DiagnosticSeverity$1[\"Hint\"] = 4] = \"Hint\";\n return DiagnosticSeverity$1;\n})({});\nlet DiagnosticTag = /* @__PURE__ */ (function(DiagnosticTag$1) {\n DiagnosticTag$1[DiagnosticTag$1[\"Unnecessary\"] = 1] = \"Unnecessary\";\n DiagnosticTag$1[DiagnosticTag$1[\"Deprecated\"] = 2] = \"Deprecated\";\n return DiagnosticTag$1;\n})({});\nlet CompletionTriggerKind = /* @__PURE__ */ (function(CompletionTriggerKind$1) {\n CompletionTriggerKind$1[CompletionTriggerKind$1[\"Invoked\"] = 1] = \"Invoked\";\n CompletionTriggerKind$1[CompletionTriggerKind$1[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n CompletionTriggerKind$1[CompletionTriggerKind$1[\"TriggerForIncompleteCompletions\"] = 3] = \"TriggerForIncompleteCompletions\";\n return CompletionTriggerKind$1;\n})({});\nlet SignatureHelpTriggerKind = /* @__PURE__ */ (function(SignatureHelpTriggerKind$1) {\n SignatureHelpTriggerKind$1[SignatureHelpTriggerKind$1[\"Invoked\"] = 1] = \"Invoked\";\n SignatureHelpTriggerKind$1[SignatureHelpTriggerKind$1[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n SignatureHelpTriggerKind$1[SignatureHelpTriggerKind$1[\"ContentChange\"] = 3] = \"ContentChange\";\n return SignatureHelpTriggerKind$1;\n})({});\nlet CodeActionTriggerKind = /* @__PURE__ */ (function(CodeActionTriggerKind$1) {\n CodeActionTriggerKind$1[CodeActionTriggerKind$1[\"Invoked\"] = 1] = \"Invoked\";\n CodeActionTriggerKind$1[CodeActionTriggerKind$1[\"Automatic\"] = 2] = \"Automatic\";\n return CodeActionTriggerKind$1;\n})({});\nlet TokenFormat = /* @__PURE__ */ (function(TokenFormat$1) {\n TokenFormat$1[\"Relative\"] = \"relative\";\n return TokenFormat$1;\n})({});\nvar Capability = class {\n constructor(method) {\n this.method = method;\n }\n};\nconst capabilities = {\n textDocumentImplementation: new Capability(\"textDocument/implementation\"),\n textDocumentTypeDefinition: new Capability(\"textDocument/typeDefinition\"),\n textDocumentDocumentColor: new Capability(\"textDocument/documentColor\"),\n textDocumentColorPresentation: new Capability(\"textDocument/colorPresentation\"),\n textDocumentFoldingRange: new Capability(\"textDocument/foldingRange\"),\n textDocumentDeclaration: new Capability(\"textDocument/declaration\"),\n textDocumentSelectionRange: new Capability(\"textDocument/selectionRange\"),\n textDocumentPrepareCallHierarchy: new Capability(\"textDocument/prepareCallHierarchy\"),\n textDocumentSemanticTokensFull: new Capability(\"textDocument/semanticTokens/full\"),\n textDocumentSemanticTokensFullDelta: new Capability(\"textDocument/semanticTokens/full/delta\"),\n textDocumentLinkedEditingRange: new Capability(\"textDocument/linkedEditingRange\"),\n workspaceWillCreateFiles: new Capability(\"workspace/willCreateFiles\"),\n workspaceWillRenameFiles: new Capability(\"workspace/willRenameFiles\"),\n workspaceWillDeleteFiles: new Capability(\"workspace/willDeleteFiles\"),\n textDocumentMoniker: new Capability(\"textDocument/moniker\"),\n textDocumentPrepareTypeHierarchy: new Capability(\"textDocument/prepareTypeHierarchy\"),\n textDocumentInlineValue: new Capability(\"textDocument/inlineValue\"),\n textDocumentInlayHint: new Capability(\"textDocument/inlayHint\"),\n textDocumentDiagnostic: new Capability(\"textDocument/diagnostic\"),\n textDocumentInlineCompletion: new Capability(\"textDocument/inlineCompletion\"),\n textDocumentWillSaveWaitUntil: new Capability(\"textDocument/willSaveWaitUntil\"),\n textDocumentCompletion: new Capability(\"textDocument/completion\"),\n textDocumentHover: new Capability(\"textDocument/hover\"),\n textDocumentSignatureHelp: new Capability(\"textDocument/signatureHelp\"),\n textDocumentDefinition: new Capability(\"textDocument/definition\"),\n textDocumentReferences: new Capability(\"textDocument/references\"),\n textDocumentDocumentHighlight: new Capability(\"textDocument/documentHighlight\"),\n textDocumentDocumentSymbol: new Capability(\"textDocument/documentSymbol\"),\n textDocumentCodeAction: new Capability(\"textDocument/codeAction\"),\n workspaceSymbol: new Capability(\"workspace/symbol\"),\n textDocumentCodeLens: new Capability(\"textDocument/codeLens\"),\n textDocumentDocumentLink: new Capability(\"textDocument/documentLink\"),\n textDocumentFormatting: new Capability(\"textDocument/formatting\"),\n textDocumentRangeFormatting: new Capability(\"textDocument/rangeFormatting\"),\n textDocumentRangesFormatting: new Capability(\"textDocument/rangesFormatting\"),\n textDocumentOnTypeFormatting: new Capability(\"textDocument/onTypeFormatting\"),\n textDocumentRename: new Capability(\"textDocument/rename\"),\n workspaceExecuteCommand: new Capability(\"workspace/executeCommand\"),\n workspaceDidCreateFiles: new Capability(\"workspace/didCreateFiles\"),\n workspaceDidRenameFiles: new Capability(\"workspace/didRenameFiles\"),\n workspaceDidDeleteFiles: new Capability(\"workspace/didDeleteFiles\"),\n workspaceDidChangeConfiguration: new Capability(\"workspace/didChangeConfiguration\"),\n textDocumentDidOpen: new Capability(\"textDocument/didOpen\"),\n textDocumentDidChange: new Capability(\"textDocument/didChange\"),\n textDocumentDidClose: new Capability(\"textDocument/didClose\"),\n textDocumentDidSave: new Capability(\"textDocument/didSave\"),\n textDocumentWillSave: new Capability(\"textDocument/willSave\"),\n workspaceDidChangeWatchedFiles: new Capability(\"workspace/didChangeWatchedFiles\")\n};\nconst api = contract({\n server: {\n textDocumentImplementation: unverifiedRequest({ method: \"textDocument/implementation\" }),\n textDocumentTypeDefinition: unverifiedRequest({ method: \"textDocument/typeDefinition\" }),\n textDocumentDocumentColor: unverifiedRequest({ method: \"textDocument/documentColor\" }),\n textDocumentColorPresentation: unverifiedRequest({ method: \"textDocument/colorPresentation\" }),\n textDocumentFoldingRange: unverifiedRequest({ method: \"textDocument/foldingRange\" }),\n textDocumentDeclaration: unverifiedRequest({ method: \"textDocument/declaration\" }),\n textDocumentSelectionRange: unverifiedRequest({ method: \"textDocument/selectionRange\" }),\n textDocumentPrepareCallHierarchy: unverifiedRequest({ method: \"textDocument/prepareCallHierarchy\" }),\n callHierarchyIncomingCalls: unverifiedRequest({ method: \"callHierarchy/incomingCalls\" }),\n callHierarchyOutgoingCalls: unverifiedRequest({ method: \"callHierarchy/outgoingCalls\" }),\n textDocumentSemanticTokensFull: unverifiedRequest({ method: \"textDocument/semanticTokens/full\" }),\n textDocumentSemanticTokensFullDelta: unverifiedRequest({ method: \"textDocument/semanticTokens/full/delta\" }),\n textDocumentSemanticTokensRange: unverifiedRequest({ method: \"textDocument/semanticTokens/range\" }),\n textDocumentLinkedEditingRange: unverifiedRequest({ method: \"textDocument/linkedEditingRange\" }),\n workspaceWillCreateFiles: unverifiedRequest({ method: \"workspace/willCreateFiles\" }),\n workspaceWillRenameFiles: unverifiedRequest({ method: \"workspace/willRenameFiles\" }),\n workspaceWillDeleteFiles: unverifiedRequest({ method: \"workspace/willDeleteFiles\" }),\n textDocumentMoniker: unverifiedRequest({ method: \"textDocument/moniker\" }),\n textDocumentPrepareTypeHierarchy: unverifiedRequest({ method: \"textDocument/prepareTypeHierarchy\" }),\n typeHierarchySupertypes: unverifiedRequest({ method: \"typeHierarchy/supertypes\" }),\n typeHierarchySubtypes: unverifiedRequest({ method: \"typeHierarchy/subtypes\" }),\n textDocumentInlineValue: unverifiedRequest({ method: \"textDocument/inlineValue\" }),\n textDocumentInlayHint: unverifiedRequest({ method: \"textDocument/inlayHint\" }),\n inlayHintResolve: unverifiedRequest({ method: \"inlayHint/resolve\" }),\n textDocumentDiagnostic: unverifiedRequest({ method: \"textDocument/diagnostic\" }),\n workspaceDiagnostic: unverifiedRequest({ method: \"workspace/diagnostic\" }),\n textDocumentInlineCompletion: unverifiedRequest({ method: \"textDocument/inlineCompletion\" }),\n initialize: unverifiedRequest({ method: \"initialize\" }),\n shutdown: unverifiedRequest({ method: \"shutdown\" }),\n textDocumentWillSaveWaitUntil: unverifiedRequest({ method: \"textDocument/willSaveWaitUntil\" }),\n textDocumentCompletion: unverifiedRequest({ method: \"textDocument/completion\" }),\n completionItemResolve: unverifiedRequest({ method: \"completionItem/resolve\" }),\n textDocumentHover: unverifiedRequest({ method: \"textDocument/hover\" }),\n textDocumentSignatureHelp: unverifiedRequest({ method: \"textDocument/signatureHelp\" }),\n textDocumentDefinition: unverifiedRequest({ method: \"textDocument/definition\" }),\n textDocumentReferences: unverifiedRequest({ method: \"textDocument/references\" }),\n textDocumentDocumentHighlight: unverifiedRequest({ method: \"textDocument/documentHighlight\" }),\n textDocumentDocumentSymbol: unverifiedRequest({ method: \"textDocument/documentSymbol\" }),\n textDocumentCodeAction: unverifiedRequest({ method: \"textDocument/codeAction\" }),\n codeActionResolve: unverifiedRequest({ method: \"codeAction/resolve\" }),\n workspaceSymbol: unverifiedRequest({ method: \"workspace/symbol\" }),\n workspaceSymbolResolve: unverifiedRequest({ method: \"workspaceSymbol/resolve\" }),\n textDocumentCodeLens: unverifiedRequest({ method: \"textDocument/codeLens\" }),\n codeLensResolve: unverifiedRequest({ method: \"codeLens/resolve\" }),\n textDocumentDocumentLink: unverifiedRequest({ method: \"textDocument/documentLink\" }),\n documentLinkResolve: unverifiedRequest({ method: \"documentLink/resolve\" }),\n textDocumentFormatting: unverifiedRequest({ method: \"textDocument/formatting\" }),\n textDocumentRangeFormatting: unverifiedRequest({ method: \"textDocument/rangeFormatting\" }),\n textDocumentRangesFormatting: unverifiedRequest({ method: \"textDocument/rangesFormatting\" }),\n textDocumentOnTypeFormatting: unverifiedRequest({ method: \"textDocument/onTypeFormatting\" }),\n textDocumentRename: unverifiedRequest({ method: \"textDocument/rename\" }),\n textDocumentPrepareRename: unverifiedRequest({ method: \"textDocument/prepareRename\" }),\n workspaceExecuteCommand: unverifiedRequest({ method: \"workspace/executeCommand\" }),\n workspaceDidChangeWorkspaceFolders: unverifiedNotification({ method: \"workspace/didChangeWorkspaceFolders\" }),\n windowWorkDoneProgressCancel: unverifiedNotification({ method: \"window/workDoneProgress/cancel\" }),\n workspaceDidCreateFiles: unverifiedNotification({ method: \"workspace/didCreateFiles\" }),\n workspaceDidRenameFiles: unverifiedNotification({ method: \"workspace/didRenameFiles\" }),\n workspaceDidDeleteFiles: unverifiedNotification({ method: \"workspace/didDeleteFiles\" }),\n notebookDocumentDidOpen: unverifiedNotification({ method: \"notebookDocument/didOpen\" }),\n notebookDocumentDidChange: unverifiedNotification({ method: \"notebookDocument/didChange\" }),\n notebookDocumentDidSave: unverifiedNotification({ method: \"notebookDocument/didSave\" }),\n notebookDocumentDidClose: unverifiedNotification({ method: \"notebookDocument/didClose\" }),\n initialized: unverifiedNotification({ method: \"initialized\" }),\n exit: unverifiedNotification({ method: \"exit\" }),\n workspaceDidChangeConfiguration: unverifiedNotification({ method: \"workspace/didChangeConfiguration\" }),\n textDocumentDidOpen: unverifiedNotification({ method: \"textDocument/didOpen\" }),\n textDocumentDidChange: unverifiedNotification({ method: \"textDocument/didChange\" }),\n textDocumentDidClose: unverifiedNotification({ method: \"textDocument/didClose\" }),\n textDocumentDidSave: unverifiedNotification({ method: \"textDocument/didSave\" }),\n textDocumentWillSave: unverifiedNotification({ method: \"textDocument/willSave\" }),\n workspaceDidChangeWatchedFiles: unverifiedNotification({ method: \"workspace/didChangeWatchedFiles\" }),\n setTrace: unverifiedNotification({ method: \"$/setTrace\" }),\n cancelRequest: unverifiedNotification({ method: \"$/cancelRequest\" }),\n progress: unverifiedNotification({ method: \"$/progress\" })\n },\n client: {\n workspaceWorkspaceFolders: unverifiedRequest({ method: \"workspace/workspaceFolders\" }).optional(),\n workspaceConfiguration: unverifiedRequest({ method: \"workspace/configuration\" }).optional(),\n workspaceFoldingRangeRefresh: unverifiedRequest({ method: \"workspace/foldingRange/refresh\" }).optional(),\n windowWorkDoneProgressCreate: unverifiedRequest({ method: \"window/workDoneProgress/create\" }).optional(),\n workspaceSemanticTokensRefresh: unverifiedRequest({ method: \"workspace/semanticTokens/refresh\" }).optional(),\n windowShowDocument: unverifiedRequest({ method: \"window/showDocument\" }).optional(),\n workspaceInlineValueRefresh: unverifiedRequest({ method: \"workspace/inlineValue/refresh\" }).optional(),\n workspaceInlayHintRefresh: unverifiedRequest({ method: \"workspace/inlayHint/refresh\" }).optional(),\n workspaceDiagnosticRefresh: unverifiedRequest({ method: \"workspace/diagnostic/refresh\" }).optional(),\n clientRegisterCapability: unverifiedRequest({ method: \"client/registerCapability\" }).optional(),\n clientUnregisterCapability: unverifiedRequest({ method: \"client/unregisterCapability\" }).optional(),\n windowShowMessageRequest: unverifiedRequest({ method: \"window/showMessageRequest\" }).optional(),\n workspaceCodeLensRefresh: unverifiedRequest({ method: \"workspace/codeLens/refresh\" }).optional(),\n workspaceApplyEdit: unverifiedRequest({ method: \"workspace/applyEdit\" }).optional(),\n windowShowMessage: unverifiedNotification({ method: \"window/showMessage\" }),\n windowLogMessage: unverifiedNotification({ method: \"window/logMessage\" }),\n telemetryEvent: unverifiedNotification({ method: \"telemetry/event\" }),\n textDocumentPublishDiagnostics: unverifiedNotification({ method: \"textDocument/publishDiagnostics\" }),\n logTrace: unverifiedNotification({ method: \"$/logTrace\" }),\n cancelRequest: unverifiedNotification({ method: \"$/cancelRequest\" }),\n progress: unverifiedNotification({ method: \"$/progress\" })\n }\n});\nfunction assertTargetTextModel(input, expectedTextModel) {\n if (input.textModel !== expectedTextModel) throw new Error(`Expected text model to be ${expectedTextModel}, but got ${input.textModel}`);\n return input;\n}\nvar Disposable = (_d = class {\n constructor() {\n __publicField(this, \"_store\", new DisposableStore());\n }\n dispose() {\n this._store.dispose();\n }\n _register(t) {\n if (t === this) throw new Error(\"Cannot register a disposable on itself!\");\n return this._store.add(t);\n }\n}, __publicField(_d, \"None\", Object.freeze({ dispose() {\n} })), _d);\nvar DisposableStore = (_e = class {\n constructor() {\n __publicField(this, \"_toDispose\", /* @__PURE__ */ new Set());\n __publicField(this, \"_isDisposed\", false);\n }\n dispose() {\n if (this._isDisposed) return;\n this._isDisposed = true;\n this.clear();\n }\n clear() {\n if (this._toDispose.size === 0) return;\n try {\n for (const item of this._toDispose) item.dispose();\n } finally {\n this._toDispose.clear();\n }\n }\n add(t) {\n if (!t) return t;\n if (t === this) throw new Error(\"Cannot register a disposable on itself!\");\n if (this._isDisposed) {\n if (!_e.DISABLE_DISPOSED_WARNING) console.warn((/* @__PURE__ */ new Error(\"Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!\")).stack);\n } else this._toDispose.add(t);\n return t;\n }\n}, __publicField(_e, \"DISABLE_DISPOSED_WARNING\", false), _e);\nconst lspCodeActionKindToMonacoCodeActionKind = /* @__PURE__ */ new Map([\n [CodeActionKind.Empty, \"\"],\n [CodeActionKind.QuickFix, \"quickfix\"],\n [CodeActionKind.Refactor, \"refactor\"],\n [CodeActionKind.RefactorExtract, \"refactor.extract\"],\n [CodeActionKind.RefactorInline, \"refactor.inline\"],\n [CodeActionKind.RefactorRewrite, \"refactor.rewrite\"],\n [CodeActionKind.Source, \"source\"],\n [CodeActionKind.SourceOrganizeImports, \"source.organizeImports\"],\n [CodeActionKind.SourceFixAll, \"source.fixAll\"]\n]);\nfunction toMonacoCodeActionKind(kind) {\n if (!kind) return;\n return lspCodeActionKindToMonacoCodeActionKind.get(kind) ?? kind;\n}\nconst monacoCodeActionTriggerTypeToLspCodeActionTriggerKind = /* @__PURE__ */ new Map([[languages.CodeActionTriggerType.Invoke, CodeActionTriggerKind.Invoked], [languages.CodeActionTriggerType.Auto, CodeActionTriggerKind.Automatic]]);\nfunction toLspCodeActionTriggerKind(monacoTrigger) {\n return monacoCodeActionTriggerTypeToLspCodeActionTriggerKind.get(monacoTrigger) ?? CodeActionTriggerKind.Invoked;\n}\nconst lspCompletionItemKindToMonacoCompletionItemKind = /* @__PURE__ */ new Map([\n [CompletionItemKind.Text, languages.CompletionItemKind.Text],\n [CompletionItemKind.Method, languages.CompletionItemKind.Method],\n [CompletionItemKind.Function, languages.CompletionItemKind.Function],\n [CompletionItemKind.Constructor, languages.CompletionItemKind.Constructor],\n [CompletionItemKind.Field, languages.CompletionItemKind.Field],\n [CompletionItemKind.Variable, languages.CompletionItemKind.Variable],\n [CompletionItemKind.Class, languages.CompletionItemKind.Class],\n [CompletionItemKind.Interface, languages.CompletionItemKind.Interface],\n [CompletionItemKind.Module, languages.CompletionItemKind.Module],\n [CompletionItemKind.Property, languages.CompletionItemKind.Property],\n [CompletionItemKind.Unit, languages.CompletionItemKind.Unit],\n [CompletionItemKind.Value, languages.CompletionItemKind.Value],\n [CompletionItemKind.Enum, languages.CompletionItemKind.Enum],\n [CompletionItemKind.Keyword, languages.CompletionItemKind.Keyword],\n [CompletionItemKind.Snippet, languages.CompletionItemKind.Snippet],\n [CompletionItemKind.Color, languages.CompletionItemKind.Color],\n [CompletionItemKind.File, languages.CompletionItemKind.File],\n [CompletionItemKind.Reference, languages.CompletionItemKind.Reference],\n [CompletionItemKind.Folder, languages.CompletionItemKind.Folder],\n [CompletionItemKind.EnumMember, languages.CompletionItemKind.EnumMember],\n [CompletionItemKind.Constant, languages.CompletionItemKind.Constant],\n [CompletionItemKind.Struct, languages.CompletionItemKind.Struct],\n [CompletionItemKind.Event, languages.CompletionItemKind.Event],\n [CompletionItemKind.Operator, languages.CompletionItemKind.Operator],\n [CompletionItemKind.TypeParameter, languages.CompletionItemKind.TypeParameter]\n]);\nfunction toMonacoCompletionItemKind(kind) {\n if (!kind) return languages.CompletionItemKind.Text;\n return lspCompletionItemKindToMonacoCompletionItemKind.get(kind) ?? languages.CompletionItemKind.Text;\n}\nconst lspCompletionItemTagToMonacoCompletionItemTag = /* @__PURE__ */ new Map([[CompletionItemTag.Deprecated, languages.CompletionItemTag.Deprecated]]);\nfunction toMonacoCompletionItemTag(tag) {\n return lspCompletionItemTagToMonacoCompletionItemTag.get(tag);\n}\nconst monacoCompletionTriggerKindToLspCompletionTriggerKind = /* @__PURE__ */ new Map([\n [languages.CompletionTriggerKind.Invoke, CompletionTriggerKind.Invoked],\n [languages.CompletionTriggerKind.TriggerCharacter, CompletionTriggerKind.TriggerCharacter],\n [languages.CompletionTriggerKind.TriggerForIncompleteCompletions, CompletionTriggerKind.TriggerForIncompleteCompletions]\n]);\nfunction toLspCompletionTriggerKind(monacoKind) {\n return monacoCompletionTriggerKindToLspCompletionTriggerKind.get(monacoKind) ?? CompletionTriggerKind.Invoked;\n}\nconst lspInsertTextFormatToMonacoInsertTextRules = /* @__PURE__ */ new Map([[InsertTextFormat.Snippet, languages.CompletionItemInsertTextRule.InsertAsSnippet]]);\nfunction toMonacoInsertTextRules(format) {\n if (!format) return;\n return lspInsertTextFormatToMonacoInsertTextRules.get(format);\n}\nconst lspSymbolKindToMonacoSymbolKind = /* @__PURE__ */ new Map([\n [SymbolKind.File, languages.SymbolKind.File],\n [SymbolKind.Module, languages.SymbolKind.Module],\n [SymbolKind.Namespace, languages.SymbolKind.Namespace],\n [SymbolKind.Package, languages.SymbolKind.Package],\n [SymbolKind.Class, languages.SymbolKind.Class],\n [SymbolKind.Method, languages.SymbolKind.Method],\n [SymbolKind.Property, languages.SymbolKind.Property],\n [SymbolKind.Field, languages.SymbolKind.Field],\n [SymbolKind.Constructor, languages.SymbolKind.Constructor],\n [SymbolKind.Enum, languages.SymbolKind.Enum],\n [SymbolKind.Interface, languages.SymbolKind.Interface],\n [SymbolKind.Function, languages.SymbolKind.Function],\n [SymbolKind.Variable, languages.SymbolKind.Variable],\n [SymbolKind.Constant, languages.SymbolKind.Constant],\n [SymbolKind.String, languages.SymbolKind.String],\n [SymbolKind.Number, languages.SymbolKind.Number],\n [SymbolKind.Boolean, languages.SymbolKind.Boolean],\n [SymbolKind.Array, languages.SymbolKind.Array],\n [SymbolKind.Object, languages.SymbolKind.Object],\n [SymbolKind.Key, languages.SymbolKind.Key],\n [SymbolKind.Null, languages.SymbolKind.Null],\n [SymbolKind.EnumMember, languages.SymbolKind.EnumMember],\n [SymbolKind.Struct, languages.SymbolKind.Struct],\n [SymbolKind.Event, languages.SymbolKind.Event],\n [SymbolKind.Operator, languages.SymbolKind.Operator],\n [SymbolKind.TypeParameter, languages.SymbolKind.TypeParameter]\n]);\nfunction toMonacoSymbolKind(kind) {\n return lspSymbolKindToMonacoSymbolKind.get(kind) ?? languages.SymbolKind.File;\n}\nconst lspSymbolTagToMonacoSymbolTag = /* @__PURE__ */ new Map([[SymbolTag.Deprecated, languages.SymbolTag.Deprecated]]);\nfunction toMonacoSymbolTag(tag) {\n return lspSymbolTagToMonacoSymbolTag.get(tag);\n}\nconst lspDocumentHighlightKindToMonacoDocumentHighlightKind = /* @__PURE__ */ new Map([\n [DocumentHighlightKind.Text, languages.DocumentHighlightKind.Text],\n [DocumentHighlightKind.Read, languages.DocumentHighlightKind.Read],\n [DocumentHighlightKind.Write, languages.DocumentHighlightKind.Write]\n]);\nfunction toMonacoDocumentHighlightKind(kind) {\n if (!kind) return languages.DocumentHighlightKind.Text;\n return lspDocumentHighlightKindToMonacoDocumentHighlightKind.get(kind) ?? languages.DocumentHighlightKind.Text;\n}\nconst lspFoldingRangeKindToMonacoFoldingRangeKind = /* @__PURE__ */ new Map([\n [FoldingRangeKind.Comment, languages.FoldingRangeKind.Comment],\n [FoldingRangeKind.Imports, languages.FoldingRangeKind.Imports],\n [FoldingRangeKind.Region, languages.FoldingRangeKind.Region]\n]);\nfunction toMonacoFoldingRangeKind(kind) {\n if (!kind) return;\n return lspFoldingRangeKindToMonacoFoldingRangeKind.get(kind);\n}\nconst monacoMarkerSeverityToLspDiagnosticSeverity = /* @__PURE__ */ new Map([\n [MarkerSeverity.Error, DiagnosticSeverity.Error],\n [MarkerSeverity.Warning, DiagnosticSeverity.Warning],\n [MarkerSeverity.Info, DiagnosticSeverity.Information],\n [MarkerSeverity.Hint, DiagnosticSeverity.Hint]\n]);\nfunction toLspDiagnosticSeverity(severity) {\n return monacoMarkerSeverityToLspDiagnosticSeverity.get(severity) ?? DiagnosticSeverity.Error;\n}\nconst lspDiagnosticSeverityToMonacoMarkerSeverity = /* @__PURE__ */ new Map([\n [DiagnosticSeverity.Error, MarkerSeverity.Error],\n [DiagnosticSeverity.Warning, MarkerSeverity.Warning],\n [DiagnosticSeverity.Information, MarkerSeverity.Info],\n [DiagnosticSeverity.Hint, MarkerSeverity.Hint]\n]);\nfunction toMonacoDiagnosticSeverity(severity) {\n if (!severity) return MarkerSeverity.Error;\n return lspDiagnosticSeverityToMonacoMarkerSeverity.get(severity) ?? MarkerSeverity.Error;\n}\nconst lspDiagnosticTagToMonacoMarkerTag = /* @__PURE__ */ new Map([[DiagnosticTag.Unnecessary, MarkerTag.Unnecessary], [DiagnosticTag.Deprecated, MarkerTag.Deprecated]]);\nfunction toMonacoDiagnosticTag(tag) {\n return lspDiagnosticTagToMonacoMarkerTag.get(tag);\n}\nconst monacoSignatureHelpTriggerKindToLspSignatureHelpTriggerKind = /* @__PURE__ */ new Map([\n [languages.SignatureHelpTriggerKind.Invoke, SignatureHelpTriggerKind.Invoked],\n [languages.SignatureHelpTriggerKind.TriggerCharacter, SignatureHelpTriggerKind.TriggerCharacter],\n [languages.SignatureHelpTriggerKind.ContentChange, SignatureHelpTriggerKind.ContentChange]\n]);\nfunction toLspSignatureHelpTriggerKind(monacoKind) {\n return monacoSignatureHelpTriggerKindToLspSignatureHelpTriggerKind.get(monacoKind) ?? SignatureHelpTriggerKind.Invoked;\n}\nfunction toMonacoCommand(command) {\n if (!command) return;\n return {\n id: command.command,\n title: command.title,\n arguments: command.arguments\n };\n}\nconst lspInlayHintKindToMonacoInlayHintKind = /* @__PURE__ */ new Map([[InlayHintKind.Type, languages.InlayHintKind.Type], [InlayHintKind.Parameter, languages.InlayHintKind.Parameter]]);\nfunction toMonacoInlayHintKind(kind) {\n if (!kind) return languages.InlayHintKind.Type;\n return lspInlayHintKindToMonacoInlayHintKind.get(kind) ?? languages.InlayHintKind.Type;\n}\nfunction toMonacoLocation(location, client) {\n if (\"targetUri\" in location) {\n const translatedRange = client.bridge.translateBackRange({ uri: location.targetUri }, location.targetRange);\n return {\n uri: translatedRange.textModel.uri,\n range: translatedRange.range,\n originSelectionRange: location.originSelectionRange ? client.bridge.translateBackRange({ uri: location.targetUri }, location.originSelectionRange).range : void 0,\n targetSelectionRange: location.targetSelectionRange ? client.bridge.translateBackRange({ uri: location.targetUri }, location.targetSelectionRange).range : void 0\n };\n } else {\n const translatedRange = client.bridge.translateBackRange({ uri: location.uri }, location.range);\n return {\n uri: translatedRange.textModel.uri,\n range: translatedRange.range\n };\n }\n}\nfunction toMonacoLanguageSelector(s) {\n if (!s || s.length === 0) return { language: \"*\" };\n return s.map((s$1) => {\n if (\"notebook\" in s$1) if (typeof s$1.notebook === \"string\") return {\n notebookType: s$1.notebook,\n language: s$1.language\n };\n else return {\n notebookType: s$1.notebook.notebookType,\n language: s$1.language,\n pattern: s$1.notebook.pattern,\n scheme: s$1.notebook.scheme\n };\n else return {\n language: s$1.language,\n pattern: s$1.pattern,\n scheme: s$1.scheme\n };\n });\n}\nfunction matchesDocumentSelector(model, selector) {\n if (!selector) return true;\n const languageId = model.getLanguageId();\n model.uri.toString(true);\n if (!selector || selector.length === 0) return true;\n for (const filter of selector) {\n if (filter.language && filter.language !== \"*\" && filter.language !== languageId) continue;\n return true;\n }\n return false;\n}\nfunction toDiagnosticMarker(diagnostic) {\n const marker = {\n severity: toMonacoDiagnosticSeverity(diagnostic.severity),\n startLineNumber: diagnostic.range.start.line + 1,\n startColumn: diagnostic.range.start.character + 1,\n endLineNumber: diagnostic.range.end.line + 1,\n endColumn: diagnostic.range.end.character + 1,\n message: diagnostic.message,\n source: diagnostic.source,\n code: typeof diagnostic.code === \"string\" ? diagnostic.code : diagnostic.code?.toString()\n };\n if (diagnostic.tags) marker.tags = diagnostic.tags.map((tag) => toMonacoDiagnosticTag(tag)).filter((tag) => tag !== void 0);\n if (diagnostic.relatedInformation) marker.relatedInformation = diagnostic.relatedInformation.map((info) => ({\n resource: Uri.parse(info.location.uri),\n startLineNumber: info.location.range.start.line + 1,\n startColumn: info.location.range.start.character + 1,\n endLineNumber: info.location.range.end.line + 1,\n endColumn: info.location.range.end.character + 1,\n message: info.message\n }));\n return marker;\n}\nvar LspCompletionFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { completion: {\n dynamicRegistration: true,\n contextSupport: true,\n completionItemKind: { valueSet: Array.from(lspCompletionItemKindToMonacoCompletionItemKind.keys()) },\n completionItem: {\n tagSupport: { valueSet: Array.from(lspCompletionItemTagToMonacoCompletionItemTag.keys()) },\n commitCharactersSupport: true,\n deprecatedSupport: true,\n preselectSupport: true\n }\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentCompletion, true, (capability) => {\n return languages.registerCompletionItemProvider(toMonacoLanguageSelector(capability.documentSelector), new LspCompletionProvider(this._connection, capability));\n }));\n }\n};\nvar LspCompletionProvider = class {\n constructor(_client, _capabilities) {\n __publicField(this, \"resolveCompletionItem\");\n this._client = _client;\n this._capabilities = _capabilities;\n if (_capabilities.resolveProvider) this.resolveCompletionItem = async (item, token) => {\n applyLspCompletionItemProperties(item, await this._client.server.completionItemResolve(item._lspItem), this._client.bridge, item._translated, item._model);\n return item;\n };\n }\n get triggerCharacters() {\n return this._capabilities.triggerCharacters;\n }\n async provideCompletionItems(model, position, context, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentCompletion({\n textDocument: translated.textDocument,\n position: translated.position,\n context: context.triggerCharacter ? {\n triggerKind: toLspCompletionTriggerKind(context.triggerKind),\n triggerCharacter: context.triggerCharacter\n } : void 0\n });\n if (!result) return { suggestions: [] };\n return { suggestions: (Array.isArray(result) ? result : result.items).map((i) => {\n return {\n ...convertLspToMonacoCompletionItem(i, this._client.bridge, translated, model, position),\n _lspItem: i,\n _translated: translated,\n _model: model\n };\n }) };\n }\n};\nfunction convertLspToMonacoCompletionItem(lspItem, bridge, translated, model, position) {\n let insertText = lspItem.insertText || lspItem.label;\n let range = void 0;\n if (lspItem.textEdit) if (\"range\" in lspItem.textEdit) {\n insertText = lspItem.textEdit.newText;\n range = assertTargetTextModel(bridge.translateBackRange(translated.textDocument, lspItem.textEdit.range), model).range;\n } else {\n insertText = lspItem.textEdit.newText;\n range = {\n insert: assertTargetTextModel(bridge.translateBackRange(translated.textDocument, lspItem.textEdit.insert), model).range,\n replace: assertTargetTextModel(bridge.translateBackRange(translated.textDocument, lspItem.textEdit.replace), model).range\n };\n }\n if (!range) range = Range.fromPositions(position, position);\n const item = {\n label: lspItem.label,\n kind: toMonacoCompletionItemKind(lspItem.kind),\n insertText,\n sortText: lspItem.sortText,\n filterText: lspItem.filterText,\n preselect: lspItem.preselect,\n commitCharacters: lspItem.commitCharacters,\n range\n };\n applyLspCompletionItemProperties(item, lspItem, bridge, translated, model);\n return item;\n}\nfunction applyLspCompletionItemProperties(monacoItem, lspItem, bridge, translated, targetModel) {\n if (lspItem.detail !== void 0) monacoItem.detail = lspItem.detail;\n if (lspItem.documentation !== void 0) monacoItem.documentation = toMonacoDocumentation$1(lspItem.documentation);\n if (lspItem.insertTextFormat !== void 0) monacoItem.insertTextRules = toMonacoInsertTextRules(lspItem.insertTextFormat);\n if (lspItem.tags && lspItem.tags.length > 0) monacoItem.tags = lspItem.tags.map(toMonacoCompletionItemTag).filter((tag) => tag !== void 0);\n if (lspItem.additionalTextEdits && lspItem.additionalTextEdits.length > 0) monacoItem.additionalTextEdits = lspItem.additionalTextEdits.map((edit) => ({\n range: assertTargetTextModel(bridge.translateBackRange(translated.textDocument, edit.range), targetModel).range,\n text: edit.newText\n }));\n if (lspItem.command) monacoItem.command = toMonacoCommand(lspItem.command);\n}\nfunction toMonacoDocumentation$1(doc) {\n if (!doc) return void 0;\n if (typeof doc === \"string\") return doc;\n return { value: doc.value };\n}\nvar LspHoverFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { hover: {\n dynamicRegistration: true,\n contentFormat: [MarkupKind.Markdown, MarkupKind.PlainText]\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentHover, true, (capability) => {\n return languages.registerHoverProvider(toMonacoLanguageSelector(capability.documentSelector), new LspHoverProvider(this._connection, capability));\n }));\n }\n};\nvar LspHoverProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideHover(model, position, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentHover({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result || !result.contents) return null;\n return {\n contents: toMonacoMarkdownString(result.contents),\n range: result.range ? this._client.bridge.translateBackRange(translated.textDocument, result.range).range : void 0\n };\n }\n};\nfunction toMonacoMarkdownString(contents) {\n if (Array.isArray(contents)) return contents.map((c) => toSingleMarkdownString(c));\n return [toSingleMarkdownString(contents)];\n}\nfunction toSingleMarkdownString(content) {\n if (typeof content === \"string\") return { value: content };\n if (\"kind\" in content) return { value: content.value };\n return { value: `\\`\\`\\`${content.language}\n${content.value}\n\\`\\`\\`` };\n}\nvar LspSignatureHelpFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { signatureHelp: {\n dynamicRegistration: true,\n contextSupport: true,\n signatureInformation: {\n documentationFormat: [MarkupKind.Markdown, MarkupKind.PlainText],\n parameterInformation: { labelOffsetSupport: true },\n activeParameterSupport: true\n }\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentSignatureHelp, true, (capability) => {\n return languages.registerSignatureHelpProvider(toMonacoLanguageSelector(capability.documentSelector), new LspSignatureHelpProvider(this._connection, capability));\n }));\n }\n};\nvar LspSignatureHelpProvider = class {\n constructor(_client, _capabilities) {\n __publicField(this, \"signatureHelpTriggerCharacters\");\n __publicField(this, \"signatureHelpRetriggerCharacters\");\n this._client = _client;\n this._capabilities = _capabilities;\n this.signatureHelpTriggerCharacters = _capabilities.triggerCharacters;\n this.signatureHelpRetriggerCharacters = _capabilities.retriggerCharacters;\n }\n async provideSignatureHelp(model, position, token, context) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentSignatureHelp({\n textDocument: translated.textDocument,\n position: translated.position,\n context: {\n triggerKind: toLspSignatureHelpTriggerKind(context.triggerKind),\n triggerCharacter: context.triggerCharacter,\n isRetrigger: context.isRetrigger\n }\n });\n if (!result) return null;\n return {\n value: {\n signatures: result.signatures.map((sig) => ({\n label: sig.label,\n documentation: toMonacoDocumentation(sig.documentation),\n parameters: sig.parameters?.map((param) => ({\n label: param.label,\n documentation: toMonacoDocumentation(param.documentation)\n })) || [],\n activeParameter: sig.activeParameter\n })),\n activeSignature: result.activeSignature || 0,\n activeParameter: result.activeParameter || 0\n },\n dispose: () => {\n }\n };\n }\n};\nfunction toMonacoDocumentation(doc) {\n if (!doc) return void 0;\n if (typeof doc === \"string\") return doc;\n return { value: doc.value };\n}\nvar LspDefinitionFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { definition: {\n dynamicRegistration: true,\n linkSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDefinition, true, (capability) => {\n return languages.registerDefinitionProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDefinitionProvider(this._connection, capability));\n }));\n }\n};\nvar LspDefinitionProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideDefinition(model, position, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentDefinition({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result) return null;\n if (Array.isArray(result)) return result.map((loc) => toMonacoLocation(loc, this._client));\n return toMonacoLocation(result, this._client);\n }\n};\nvar LspDeclarationFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { declaration: {\n dynamicRegistration: true,\n linkSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDeclaration, true, (capability) => {\n return languages.registerDeclarationProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDeclarationProvider(this._connection, capability));\n }));\n }\n};\nvar LspDeclarationProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideDeclaration(model, position, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentDeclaration({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result) return null;\n if (Array.isArray(result)) return result.map((loc) => toMonacoLocation(loc, this._client));\n return toMonacoLocation(result, this._client);\n }\n};\nvar LspTypeDefinitionFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { typeDefinition: {\n dynamicRegistration: true,\n linkSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentTypeDefinition, true, (capability) => {\n return languages.registerTypeDefinitionProvider(toMonacoLanguageSelector(capability.documentSelector), new LspTypeDefinitionProvider(this._connection, capability));\n }));\n }\n};\nvar LspTypeDefinitionProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideTypeDefinition(model, position, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentTypeDefinition({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result) return null;\n if (Array.isArray(result)) return result.map((loc) => toMonacoLocation(loc, this._client));\n return toMonacoLocation(result, this._client);\n }\n};\nvar LspImplementationFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { implementation: {\n dynamicRegistration: true,\n linkSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentImplementation, true, (capability) => {\n return languages.registerImplementationProvider(toMonacoLanguageSelector(capability.documentSelector), new LspImplementationProvider(this._connection, capability));\n }));\n }\n};\nvar LspImplementationProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideImplementation(model, position, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentImplementation({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result) return null;\n if (Array.isArray(result)) return result.map((loc) => toMonacoLocation(loc, this._client));\n return toMonacoLocation(result, this._client);\n }\n};\nvar LspReferencesFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { references: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentReferences, true, (capability) => {\n return languages.registerReferenceProvider(toMonacoLanguageSelector(capability.documentSelector), new LspReferenceProvider(this._connection, capability));\n }));\n }\n};\nvar LspReferenceProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideReferences(model, position, context, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentReferences({\n textDocument: translated.textDocument,\n position: translated.position,\n context: { includeDeclaration: context.includeDeclaration }\n });\n if (!result) return null;\n return result.map((loc) => {\n const translated$1 = this._client.bridge.translateBackRange({ uri: loc.uri }, loc.range);\n return {\n uri: translated$1.textModel.uri,\n range: translated$1.range\n };\n });\n }\n};\nvar LspDocumentHighlightFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { documentHighlight: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDocumentHighlight, true, (capability) => {\n return languages.registerDocumentHighlightProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDocumentHighlightProvider(this._connection, capability));\n }));\n }\n};\nvar LspDocumentHighlightProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideDocumentHighlights(model, position, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentDocumentHighlight({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result) return null;\n return result.map((highlight) => ({\n range: this._client.bridge.translateBackRange(translated.textDocument, highlight.range).range,\n kind: toMonacoDocumentHighlightKind(highlight.kind)\n }));\n }\n};\nvar LspDocumentSymbolFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { documentSymbol: {\n dynamicRegistration: true,\n hierarchicalDocumentSymbolSupport: true,\n symbolKind: { valueSet: Array.from(lspSymbolKindToMonacoSymbolKind.keys()) },\n tagSupport: { valueSet: [SymbolTag.Deprecated] }\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDocumentSymbol, true, (capability) => {\n return languages.registerDocumentSymbolProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDocumentSymbolProvider(this._connection, capability));\n }));\n }\n};\nvar LspDocumentSymbolProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideDocumentSymbols(model, token) {\n const translated = this._client.bridge.translate(model, new Position(1, 1));\n const result = await this._client.server.textDocumentDocumentSymbol({ textDocument: translated.textDocument });\n if (!result) return null;\n if (Array.isArray(result) && result.length > 0) if (\"location\" in result[0]) return result.map((symbol) => toMonacoSymbolInformation(symbol, this._client));\n else return result.map((symbol) => toMonacoDocumentSymbol(symbol, this._client, translated.textDocument));\n return [];\n }\n};\nfunction toMonacoDocumentSymbol(symbol, client, textDocument) {\n return {\n name: symbol.name,\n detail: symbol.detail || \"\",\n kind: toMonacoSymbolKind(symbol.kind),\n tags: symbol.tags?.map((tag) => toMonacoSymbolTag(tag)).filter((t) => t !== void 0) || [],\n range: client.bridge.translateBackRange(textDocument, symbol.range).range,\n selectionRange: client.bridge.translateBackRange(textDocument, symbol.selectionRange).range,\n children: symbol.children?.map((child) => toMonacoDocumentSymbol(child, client, textDocument)) || []\n };\n}\nfunction toMonacoSymbolInformation(symbol, client) {\n return {\n name: symbol.name,\n detail: \"\",\n kind: toMonacoSymbolKind(symbol.kind),\n tags: symbol.tags?.map((tag) => toMonacoSymbolTag(tag)).filter((t) => t !== void 0) || [],\n range: client.bridge.translateBackRange({ uri: symbol.location.uri }, symbol.location.range).range,\n selectionRange: client.bridge.translateBackRange({ uri: symbol.location.uri }, symbol.location.range).range,\n children: []\n };\n}\nvar LspRenameFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { rename: {\n dynamicRegistration: true,\n prepareSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentRename, true, (capability) => {\n return languages.registerRenameProvider(toMonacoLanguageSelector(capability.documentSelector), new LspRenameProvider(this._connection, capability));\n }));\n }\n};\nvar LspRenameProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideRenameEdits(model, position, newName, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentRename({\n textDocument: translated.textDocument,\n position: translated.position,\n newName\n });\n if (!result) return null;\n return toMonacoWorkspaceEdit$1(result, this._client);\n }\n async resolveRenameLocation(model, position, token) {\n if (!this._capabilities.prepareProvider) return null;\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentPrepareRename({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result) return null;\n if (\"range\" in result && \"placeholder\" in result) return {\n range: this._client.bridge.translateBackRange(translated.textDocument, result.range).range,\n text: result.placeholder\n };\n else if (\"defaultBehavior\" in result) return null;\n else if (\"start\" in result && \"end\" in result) {\n const range = this._client.bridge.translateBackRange(translated.textDocument, result).range;\n return {\n range,\n text: model.getValueInRange(range)\n };\n }\n return null;\n }\n};\nfunction toMonacoWorkspaceEdit$1(edit, client) {\n const edits = [];\n if (edit.changes) for (const uri in edit.changes) {\n const textEdits = edit.changes[uri];\n for (const textEdit of textEdits) {\n const translated = client.bridge.translateBackRange({ uri }, textEdit.range);\n edits.push({\n resource: translated.textModel.uri,\n versionId: void 0,\n textEdit: {\n range: translated.range,\n text: textEdit.newText\n }\n });\n }\n }\n if (edit.documentChanges) {\n for (const change of edit.documentChanges) if (\"textDocument\" in change) {\n const uri = change.textDocument.uri;\n for (const textEdit of change.edits) {\n const translated = client.bridge.translateBackRange({ uri }, textEdit.range);\n edits.push({\n resource: translated.textModel.uri,\n versionId: change.textDocument.version,\n textEdit: {\n range: translated.range,\n text: textEdit.newText\n }\n });\n }\n }\n }\n return { edits };\n}\nvar LspCodeActionFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { codeAction: {\n dynamicRegistration: true,\n codeActionLiteralSupport: { codeActionKind: { valueSet: Array.from(lspCodeActionKindToMonacoCodeActionKind.keys()) } },\n isPreferredSupport: true,\n disabledSupport: true,\n dataSupport: true,\n resolveSupport: { properties: [\"edit\"] }\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentCodeAction, true, (capability) => {\n return languages.registerCodeActionProvider(toMonacoLanguageSelector(capability.documentSelector), new LspCodeActionProvider(this._connection, capability));\n }));\n }\n};\nvar LspCodeActionProvider = class {\n constructor(_client, _capabilities) {\n __publicField(this, \"resolveCodeAction\");\n this._client = _client;\n this._capabilities = _capabilities;\n if (_capabilities.resolveProvider) this.resolveCodeAction = async (codeAction, token) => {\n if (codeAction._lspAction) {\n const resolved = await this._client.server.codeActionResolve(codeAction._lspAction);\n if (resolved.edit) codeAction.edit = toMonacoWorkspaceEdit(resolved.edit, this._client);\n if (resolved.command) codeAction.command = toMonacoCommand(resolved.command);\n }\n return codeAction;\n };\n }\n async provideCodeActions(model, range, context, token) {\n const translated = this._client.bridge.translate(model, range.getStartPosition());\n const result = await this._client.server.textDocumentCodeAction({\n textDocument: translated.textDocument,\n range: this._client.bridge.translateRange(model, range),\n context: {\n diagnostics: context.markers.map((marker) => ({\n range: this._client.bridge.translateRange(model, Range.lift(marker)),\n message: marker.message,\n severity: toLspDiagnosticSeverity(marker.severity)\n })),\n triggerKind: toLspCodeActionTriggerKind(context.trigger)\n }\n });\n if (!result) return null;\n return {\n actions: (Array.isArray(result) ? result : [result]).map((action) => {\n if (\"title\" in action && !(\"kind\" in action)) {\n const cmd = action;\n return {\n title: cmd.title,\n command: toMonacoCommand(cmd)\n };\n } else {\n const codeAction = action;\n return {\n title: codeAction.title,\n kind: toMonacoCodeActionKind(codeAction.kind),\n isPreferred: codeAction.isPreferred,\n disabled: codeAction.disabled?.reason,\n edit: codeAction.edit ? toMonacoWorkspaceEdit(codeAction.edit, this._client) : void 0,\n command: toMonacoCommand(codeAction.command),\n _lspAction: codeAction\n };\n }\n }),\n dispose: () => {\n }\n };\n }\n};\nfunction toMonacoWorkspaceEdit(edit, client) {\n const edits = [];\n if (edit.changes) for (const uri in edit.changes) {\n const textEdits = edit.changes[uri];\n for (const textEdit of textEdits) {\n const translated = client.bridge.translateBackRange({ uri }, textEdit.range);\n edits.push({\n resource: translated.textModel.uri,\n versionId: void 0,\n textEdit: {\n range: translated.range,\n text: textEdit.newText\n }\n });\n }\n }\n if (edit.documentChanges) {\n for (const change of edit.documentChanges) if (\"textDocument\" in change) {\n const uri = change.textDocument.uri;\n for (const textEdit of change.edits) {\n const translated = client.bridge.translateBackRange({ uri }, textEdit.range);\n edits.push({\n resource: translated.textModel.uri,\n versionId: change.textDocument.version ?? void 0,\n textEdit: {\n range: translated.range,\n text: textEdit.newText\n }\n });\n }\n }\n }\n return { edits };\n}\nvar LspCodeLensFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { codeLens: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentCodeLens, true, (capability) => {\n return languages.registerCodeLensProvider(toMonacoLanguageSelector(capability.documentSelector), new LspCodeLensProvider(this._connection, capability));\n }));\n }\n};\nvar LspCodeLensProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideCodeLenses(model, token) {\n const translated = this._client.bridge.translate(model, new Position(1, 1));\n const result = await this._client.server.textDocumentCodeLens({ textDocument: translated.textDocument });\n if (!result) return null;\n return {\n lenses: result.map((lens) => {\n return {\n range: assertTargetTextModel(this._client.bridge.translateBackRange(translated.textDocument, lens.range), model).range,\n command: toMonacoCommand(lens.command),\n _lspCodeLens: lens\n };\n }),\n dispose: () => {\n }\n };\n }\n async resolveCodeLens(model, codeLens, token) {\n if (!this._capabilities.resolveProvider || !codeLens._lspCodeLens) return codeLens;\n const resolved = await this._client.server.codeLensResolve(codeLens._lspCodeLens);\n if (resolved.command) codeLens.command = {\n id: resolved.command.command,\n title: resolved.command.title,\n arguments: resolved.command.arguments\n };\n return codeLens;\n }\n};\nvar LspDocumentLinkFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { documentLink: {\n dynamicRegistration: true,\n tooltipSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDocumentLink, true, (capability) => {\n return languages.registerLinkProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDocumentLinkProvider(this._connection, capability));\n }));\n }\n};\nvar LspDocumentLinkProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideLinks(model, token) {\n const translated = this._client.bridge.translate(model, new Position(1, 1));\n const result = await this._client.server.textDocumentDocumentLink({ textDocument: translated.textDocument });\n if (!result) return null;\n return { links: result.map((link) => ({\n range: this._client.bridge.translateBackRange(translated.textDocument, link.range).range,\n url: link.target,\n tooltip: link.tooltip\n })) };\n }\n async resolveLink(link, token) {\n if (!this._capabilities.resolveProvider) return link;\n return link;\n }\n};\nvar LspFormattingFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { formatting: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentFormatting, true, (capability) => {\n return languages.registerDocumentFormattingEditProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDocumentFormattingProvider(this._connection, capability));\n }));\n }\n};\nvar LspDocumentFormattingProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideDocumentFormattingEdits(model, options, token) {\n const translated = this._client.bridge.translate(model, new Position(1, 1));\n const result = await this._client.server.textDocumentFormatting({\n textDocument: translated.textDocument,\n options: {\n tabSize: options.tabSize,\n insertSpaces: options.insertSpaces\n }\n });\n if (!result) return null;\n return result.map((edit) => ({\n range: this._client.bridge.translateBackRange(translated.textDocument, edit.range).range,\n text: edit.newText\n }));\n }\n};\nvar LspRangeFormattingFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { rangeFormatting: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentRangeFormatting, true, (capability) => {\n return languages.registerDocumentRangeFormattingEditProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDocumentRangeFormattingProvider(this._connection, capability));\n }));\n }\n};\nvar LspDocumentRangeFormattingProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideDocumentRangeFormattingEdits(model, range, options, token) {\n const translated = this._client.bridge.translate(model, range.getStartPosition());\n const result = await this._client.server.textDocumentRangeFormatting({\n textDocument: translated.textDocument,\n range: this._client.bridge.translateRange(model, range),\n options: {\n tabSize: options.tabSize,\n insertSpaces: options.insertSpaces\n }\n });\n if (!result) return null;\n return result.map((edit) => ({\n range: this._client.bridge.translateBackRange(translated.textDocument, edit.range).range,\n text: edit.newText\n }));\n }\n};\nvar LspOnTypeFormattingFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { onTypeFormatting: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentOnTypeFormatting, true, (capability) => {\n return languages.registerOnTypeFormattingEditProvider(toMonacoLanguageSelector(capability.documentSelector), new LspOnTypeFormattingProvider(this._connection, capability));\n }));\n }\n};\nvar LspOnTypeFormattingProvider = class {\n constructor(_client, _capabilities) {\n __publicField(this, \"autoFormatTriggerCharacters\");\n this._client = _client;\n this._capabilities = _capabilities;\n this.autoFormatTriggerCharacters = [_capabilities.firstTriggerCharacter, ..._capabilities.moreTriggerCharacter || []];\n }\n async provideOnTypeFormattingEdits(model, position, ch, options, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentOnTypeFormatting({\n textDocument: translated.textDocument,\n position: translated.position,\n ch,\n options: {\n tabSize: options.tabSize,\n insertSpaces: options.insertSpaces\n }\n });\n if (!result) return null;\n return result.map((edit) => ({\n range: this._client.bridge.translateBackRange(translated.textDocument, edit.range).range,\n text: edit.newText\n }));\n }\n};\nvar LspFoldingRangeFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { foldingRange: {\n dynamicRegistration: true,\n rangeLimit: 5e3,\n lineFoldingOnly: false,\n foldingRangeKind: { valueSet: [\n FoldingRangeKind.Comment,\n FoldingRangeKind.Imports,\n FoldingRangeKind.Region\n ] }\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentFoldingRange, true, (capability) => {\n return languages.registerFoldingRangeProvider(toMonacoLanguageSelector(capability.documentSelector), new LspFoldingRangeProvider(this._connection, capability));\n }));\n }\n};\nvar LspFoldingRangeProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideFoldingRanges(model, context, token) {\n const translated = this._client.bridge.translate(model, new Position(1, 1));\n const result = await this._client.server.textDocumentFoldingRange({ textDocument: translated.textDocument });\n if (!result) return null;\n return result.map((range) => ({\n start: range.startLine + 1,\n end: range.endLine + 1,\n kind: toMonacoFoldingRangeKind(range.kind)\n }));\n }\n};\nvar LspSelectionRangeFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { selectionRange: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentSelectionRange, true, (capability) => {\n return languages.registerSelectionRangeProvider(toMonacoLanguageSelector(capability.documentSelector), new LspSelectionRangeProvider(this._connection, capability));\n }));\n }\n};\nvar LspSelectionRangeProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideSelectionRanges(model, positions, token) {\n const translated = this._client.bridge.translate(model, positions[0]);\n const result = await this._client.server.textDocumentSelectionRange({\n textDocument: translated.textDocument,\n positions: positions.map((pos) => this._client.bridge.translate(model, pos).position)\n });\n if (!result) return null;\n return result.map((selRange) => this.convertSelectionRange(selRange, translated.textDocument));\n }\n convertSelectionRange(range, textDocument) {\n const result = [];\n let current = range;\n while (current) {\n result.push({ range: this._client.bridge.translateBackRange(textDocument, current.range).range });\n current = current.parent;\n }\n return result;\n }\n};\nvar LspInlayHintsFeature = class extends Disposable {\n constructor(_connection) {\n super();\n __publicField(this, \"_providers\", /* @__PURE__ */ new Set());\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({\n textDocument: { inlayHint: {\n dynamicRegistration: true,\n resolveSupport: { properties: [\n \"tooltip\",\n \"textEdits\",\n \"label.tooltip\",\n \"label.location\",\n \"label.command\"\n ] }\n } },\n workspace: { inlayHint: { refreshSupport: true } }\n }));\n this._register(this._connection.connection.registerRequestHandler(api.client.workspaceInlayHintRefresh, async () => {\n for (const provider of this._providers) provider.refresh();\n return { ok: null };\n }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentInlayHint, true, (capability) => {\n const provider = new LspInlayHintsProvider(this._connection, capability);\n this._providers.add(provider);\n const disposable = languages.registerInlayHintsProvider(toMonacoLanguageSelector(capability.documentSelector), provider);\n return { dispose: () => {\n this._providers.delete(provider);\n disposable.dispose();\n } };\n }));\n }\n};\nvar LspInlayHintsProvider = class {\n constructor(_client, _capabilities) {\n __publicField(this, \"_onDidChangeInlayHints\", new Emitter());\n __publicField(this, \"onDidChangeInlayHints\", this._onDidChangeInlayHints.event);\n __publicField(this, \"resolveInlayHint\");\n this._client = _client;\n this._capabilities = _capabilities;\n if (_capabilities.resolveProvider) this.resolveInlayHint = async (hint, token) => {\n const resolved = await this._client.server.inlayHintResolve(hint._lspInlayHint);\n if (resolved.tooltip) hint.tooltip = toMonacoTooltip(resolved.tooltip);\n if (resolved.label !== hint._lspInlayHint.label) hint.label = toLspInlayHintLabel(resolved.label);\n if (resolved.textEdits) hint.textEdits = resolved.textEdits.map((edit) => {\n return {\n range: this._client.bridge.translateBackRange({ uri: hint._targetUri }, edit.range).range,\n text: edit.newText\n };\n });\n return hint;\n };\n }\n refresh() {\n this._onDidChangeInlayHints.fire();\n }\n async provideInlayHints(model, range, token) {\n const translated = this._client.bridge.translate(model, range.getStartPosition());\n const result = await retryOnContentModified(async () => await this._client.server.textDocumentInlayHint({\n textDocument: translated.textDocument,\n range: this._client.bridge.translateRange(model, range)\n }));\n if (!result) return null;\n return {\n hints: result.map((hint) => {\n return {\n label: toLspInlayHintLabel(hint.label),\n position: assertTargetTextModel(this._client.bridge.translateBack(translated.textDocument, hint.position), model).position,\n kind: toMonacoInlayHintKind(hint.kind),\n tooltip: toMonacoTooltip(hint.tooltip),\n paddingLeft: hint.paddingLeft,\n paddingRight: hint.paddingRight,\n textEdits: hint.textEdits?.map((edit) => ({\n range: assertTargetTextModel(this._client.bridge.translateBackRange(translated.textDocument, edit.range), model).range,\n text: edit.newText\n })),\n _lspInlayHint: hint,\n _targetUri: translated.textDocument.uri\n };\n }),\n dispose: () => {\n }\n };\n }\n};\nasync function retryOnContentModified(cb) {\n for (let triesLeft = 3; ; triesLeft--) try {\n return await cb();\n } catch (e) {\n if (e.message === \"content modified\" && triesLeft > 0) continue;\n throw e;\n }\n}\nfunction toLspInlayHintLabel(label) {\n if (typeof label === \"string\") return label;\n return label.map((part) => {\n const monacoLabelPart = {\n label: part.value,\n tooltip: toMonacoTooltip(part.tooltip),\n command: toMonacoCommand(part.command)\n };\n if (part.location) monacoLabelPart.location = {\n uri: Uri.parse(part.location.uri),\n range: new Range(part.location.range.start.line + 1, part.location.range.start.character + 1, part.location.range.end.line + 1, part.location.range.end.character + 1)\n };\n return monacoLabelPart;\n });\n}\nfunction toMonacoTooltip(tooltip) {\n if (!tooltip) return;\n if (typeof tooltip === \"string\") return tooltip;\n return { value: tooltip.value };\n}\nvar LspSemanticTokensFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { semanticTokens: {\n dynamicRegistration: true,\n requests: {\n range: true,\n full: { delta: true }\n },\n tokenTypes: [\n \"namespace\",\n \"type\",\n \"class\",\n \"enum\",\n \"interface\",\n \"struct\",\n \"typeParameter\",\n \"parameter\",\n \"variable\",\n \"property\",\n \"enumMember\",\n \"event\",\n \"function\",\n \"method\",\n \"macro\",\n \"keyword\",\n \"modifier\",\n \"comment\",\n \"string\",\n \"number\",\n \"regexp\",\n \"operator\",\n \"decorator\"\n ],\n tokenModifiers: [\n \"declaration\",\n \"definition\",\n \"readonly\",\n \"static\",\n \"deprecated\",\n \"abstract\",\n \"async\",\n \"modification\",\n \"documentation\",\n \"defaultLibrary\"\n ],\n formats: [TokenFormat.Relative],\n overlappingTokenSupport: false,\n multilineTokenSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentSemanticTokensFull, true, (capability) => {\n return languages.registerDocumentSemanticTokensProvider(toMonacoLanguageSelector(capability.documentSelector), new LspSemanticTokensProvider(this._connection, capability));\n }));\n }\n};\nvar LspSemanticTokensProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n getLegend() {\n return {\n tokenTypes: this._capabilities.legend.tokenTypes,\n tokenModifiers: this._capabilities.legend.tokenModifiers\n };\n }\n releaseDocumentSemanticTokens(resultId) {\n }\n async provideDocumentSemanticTokens(model, lastResultId, token) {\n const translated = this._client.bridge.translate(model, model.getPositionAt(0));\n const full = this._capabilities.full;\n if (lastResultId && full && typeof full === \"object\" && full.delta) {\n const deltaResult = await this._client.server.textDocumentSemanticTokensFullDelta({\n textDocument: translated.textDocument,\n previousResultId: lastResultId\n });\n if (!deltaResult) return null;\n if (\"edits\" in deltaResult) return {\n resultId: deltaResult.resultId,\n edits: deltaResult.edits.map((edit) => ({\n start: edit.start,\n deleteCount: edit.deleteCount,\n data: edit.data ? new Uint32Array(edit.data) : void 0\n }))\n };\n else return {\n resultId: deltaResult.resultId,\n data: new Uint32Array(deltaResult.data)\n };\n }\n const result = await this._client.server.textDocumentSemanticTokensFull({ textDocument: translated.textDocument });\n if (!result) return null;\n return {\n resultId: result.resultId,\n data: new Uint32Array(result.data)\n };\n }\n async provideDocumentSemanticTokensEdits(model, previousResultId, token) {\n return this.provideDocumentSemanticTokens(model, previousResultId, token);\n }\n};\nvar LspDiagnosticsFeature = class extends Disposable {\n constructor(_connection) {\n super();\n __publicField(this, \"_diagnosticsMarkerOwner\", \"lsp\");\n __publicField(this, \"_pullDiagnosticProviders\", /* @__PURE__ */ new Map());\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: {\n publishDiagnostics: {\n relatedInformation: true,\n tagSupport: { valueSet: [...lspDiagnosticTagToMonacoMarkerTag.keys()] },\n versionSupport: true,\n codeDescriptionSupport: true,\n dataSupport: true\n },\n diagnostic: {\n dynamicRegistration: true,\n relatedDocumentSupport: true\n }\n } }));\n this._register(this._connection.connection.registerNotificationHandler(api.client.textDocumentPublishDiagnostics, (params) => this._handlePublishDiagnostics(params)));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDiagnostic, true, (capability) => {\n const disposables = new DisposableStore();\n for (const model of editor.getModels()) this._addPullDiagnosticProvider(model, capability, disposables);\n disposables.add(editor.onDidCreateModel((model) => {\n this._addPullDiagnosticProvider(model, capability, disposables);\n }));\n return disposables;\n }));\n }\n _addPullDiagnosticProvider(model, capability, disposables) {\n model.getLanguageId();\n if (!matchesDocumentSelector(model, capability.documentSelector)) return;\n const provider = new ModelDiagnosticProvider(model, this._connection, this._diagnosticsMarkerOwner, capability);\n this._pullDiagnosticProviders.set(model, provider);\n disposables.add(provider);\n disposables.add(model.onWillDispose(() => {\n this._pullDiagnosticProviders.delete(model);\n }));\n }\n _handlePublishDiagnostics(params) {\n const uri = params.uri;\n try {\n const model = this._connection.bridge.translateBack({ uri }, {\n line: 0,\n character: 0\n }).textModel;\n if (!model || model.isDisposed()) return;\n const markers = params.diagnostics.map((diagnostic) => toDiagnosticMarker(diagnostic));\n editor.setModelMarkers(model, this._diagnosticsMarkerOwner, markers);\n } catch (error) {\n console.debug(`Could not set diagnostics for ${uri}:`, error);\n }\n }\n};\nvar ModelDiagnosticProvider = class extends Disposable {\n constructor(_model, _connection, _markerOwner, _capability) {\n super();\n __publicField(this, \"_updateHandle\");\n __publicField(this, \"_previousResultId\");\n this._model = _model;\n this._connection = _connection;\n this._markerOwner = _markerOwner;\n this._capability = _capability;\n this._register(this._model.onDidChangeContent(() => {\n this._scheduleDiagnosticUpdate();\n }));\n this._scheduleDiagnosticUpdate();\n }\n _scheduleDiagnosticUpdate() {\n if (this._updateHandle !== void 0) clearTimeout(this._updateHandle);\n this._updateHandle = window.setTimeout(() => {\n this._updateHandle = void 0;\n this._requestDiagnostics();\n }, 500);\n }\n async _requestDiagnostics() {\n if (this._model.isDisposed()) return;\n try {\n const translated = this._connection.bridge.translate(this._model, new Position(1, 1));\n const result = await this._connection.server.textDocumentDiagnostic({\n textDocument: translated.textDocument,\n identifier: this._capability.identifier,\n previousResultId: this._previousResultId\n });\n if (this._model.isDisposed()) return;\n this._handleDiagnosticReport(result);\n } catch (error) {\n console.error(\"Error requesting diagnostics:\", error);\n }\n }\n _handleDiagnosticReport(report) {\n if (report.kind === \"full\") {\n this._previousResultId = report.resultId;\n const markers = report.items.map((diagnostic) => toDiagnosticMarker(diagnostic));\n editor.setModelMarkers(this._model, this._markerOwner, markers);\n if (\"relatedDocuments\" in report && report.relatedDocuments) this._handleRelatedDocuments(report.relatedDocuments);\n } else if (report.kind === \"unchanged\") this._previousResultId = report.resultId;\n }\n _handleRelatedDocuments(relatedDocuments) {\n for (const [uri, report] of Object.entries(relatedDocuments)) try {\n const model = this._connection.bridge.translateBack({ uri }, {\n line: 0,\n character: 0\n }).textModel;\n if (!model || model.isDisposed()) continue;\n if (report.kind === \"full\") {\n const markers = report.items.map((diagnostic) => toDiagnosticMarker(diagnostic));\n editor.setModelMarkers(model, this._markerOwner, markers);\n }\n } catch (error) {\n console.debug(`Could not set related diagnostics for ${uri}:`, error);\n }\n }\n dispose() {\n if (this._updateHandle !== void 0) {\n clearTimeout(this._updateHandle);\n this._updateHandle = void 0;\n }\n super.dispose();\n }\n};\nvar LspConnection = class {\n constructor(server, bridge, capabilities$1, connection) {\n this.server = server;\n this.bridge = bridge;\n this.capabilities = capabilities$1;\n this.connection = connection;\n }\n};\nvar LspCapabilitiesRegistry = class extends Disposable {\n constructor(_connection) {\n super();\n __publicField(this, \"_staticCapabilities\", /* @__PURE__ */ new Set());\n __publicField(this, \"_dynamicFromStatic\", DynamicFromStaticOptions.create());\n __publicField(this, \"_registrations\", /* @__PURE__ */ new Map());\n __publicField(this, \"_serverCapabilities\");\n this._connection = _connection;\n this._register(this._connection.registerRequestHandler(api.client.clientRegisterCapability, async (params) => {\n for (const registration of params.registrations) {\n const capability = getCapabilityByMethod(registration.method);\n const r = new CapabilityRegistration(registration.id, capability, registration.registerOptions, false);\n this._registerCapabilityOptions(r);\n }\n return { ok: null };\n }));\n this._register(this._connection.registerRequestHandler(api.client.clientUnregisterCapability, async (params) => {\n for (const unregistration of params.unregisterations) {\n const capability = getCapabilityByMethod(unregistration.method);\n const info = this._registrations.get(capability);\n const handlerInfo = info?.registrations.get(unregistration.id);\n if (!handlerInfo) throw new Error(`No registration for method ${unregistration.method} with id ${unregistration.id}`);\n handlerInfo?.handlerDisposables.forEach((d) => d.dispose());\n info?.registrations.delete(unregistration.id);\n }\n return { ok: null };\n }));\n }\n _registerCapabilityOptions(registration) {\n let registrationForMethod = this._registrations.get(registration.capability);\n if (!registrationForMethod) {\n registrationForMethod = new CapabilityInfo();\n this._registrations.set(registration.capability, registrationForMethod);\n }\n if (registrationForMethod.registrations.has(registration.id)) throw new Error(`Handler for method ${registration.capability.method} with id ${registration.id} already registered`);\n registrationForMethod.registrations.set(registration.id, registration);\n for (const h of registrationForMethod.handlers) {\n if (!h.handleStaticCapability && registration.isFromStatic) continue;\n registration.handlerDisposables.set(h, h.handler(registration.options));\n }\n }\n setServerCapabilities(serverCapabilities) {\n if (this._serverCapabilities) throw new Error(\"Server capabilities already set\");\n this._serverCapabilities = serverCapabilities;\n for (const cap of Object.values(capabilities)) {\n const options = this._dynamicFromStatic.getOptions(cap, serverCapabilities);\n if (options) this._registerCapabilityOptions(new CapabilityRegistration(cap.method, cap, options, true));\n }\n }\n getClientCapabilities() {\n const result = {};\n for (const c of this._staticCapabilities) deepAssign(result, c.cap);\n return result;\n }\n addStaticClientCapabilities(capability) {\n const obj = { cap: capability };\n this._staticCapabilities.add(obj);\n return { dispose: () => {\n this._staticCapabilities.delete(obj);\n } };\n }\n registerCapabilityHandler(capability, handleStaticCapability, handler) {\n let info = this._registrations.get(capability);\n if (!info) {\n info = new CapabilityInfo();\n this._registrations.set(capability, info);\n }\n const handlerInfo = new CapabilityHandler(capability, handleStaticCapability, handler);\n info.handlers.add(handlerInfo);\n for (const registration of info.registrations.values()) {\n if (!handlerInfo.handleStaticCapability && registration.isFromStatic) continue;\n registration.handlerDisposables.set(handlerInfo, handler(registration.options));\n }\n return { dispose: () => {\n info.handlers.delete(handlerInfo);\n for (const registration of info.registrations.values()) {\n const disposable = registration.handlerDisposables.get(handlerInfo);\n if (disposable) {\n disposable.dispose();\n registration.handlerDisposables.delete(handlerInfo);\n }\n }\n } };\n }\n};\nvar CapabilityHandler = class {\n constructor(capability, handleStaticCapability, handler) {\n this.capability = capability;\n this.handleStaticCapability = handleStaticCapability;\n this.handler = handler;\n }\n};\nvar CapabilityRegistration = class {\n constructor(id, capability, options, isFromStatic) {\n __publicField(this, \"handlerDisposables\", /* @__PURE__ */ new Map());\n this.id = id;\n this.capability = capability;\n this.options = options;\n this.isFromStatic = isFromStatic;\n }\n};\nconst capabilitiesByMethod = new Map([...Object.values(capabilities)].map((c) => [c.method, c]));\nfunction getCapabilityByMethod(method) {\n const c = capabilitiesByMethod.get(method);\n if (!c) throw new Error(`No capability found for method ${method}`);\n return c;\n}\nvar CapabilityInfo = class {\n constructor() {\n __publicField(this, \"handlers\", /* @__PURE__ */ new Set());\n __publicField(this, \"registrations\", /* @__PURE__ */ new Map());\n }\n};\nvar DynamicFromStaticOptions = class DynamicFromStaticOptions2 {\n constructor() {\n __publicField(this, \"_mappings\", /* @__PURE__ */ new Map());\n }\n static create() {\n const o = new DynamicFromStaticOptions2();\n o.set(capabilities.textDocumentDidChange, (s) => {\n if (s.textDocumentSync === void 0) return;\n if (typeof s.textDocumentSync === \"object\") return {\n syncKind: s.textDocumentSync.change ?? TextDocumentSyncKind.None,\n documentSelector: null\n };\n else return {\n syncKind: s.textDocumentSync,\n documentSelector: null\n };\n });\n o.set(capabilities.textDocumentCompletion, (s) => s.completionProvider);\n o.set(capabilities.textDocumentHover, (s) => s.hoverProvider);\n o.set(capabilities.textDocumentSignatureHelp, (s) => s.signatureHelpProvider);\n o.set(capabilities.textDocumentDefinition, (s) => s.definitionProvider);\n o.set(capabilities.textDocumentReferences, (s) => s.referencesProvider);\n o.set(capabilities.textDocumentDocumentHighlight, (s) => s.documentHighlightProvider);\n o.set(capabilities.textDocumentDocumentSymbol, (s) => s.documentSymbolProvider);\n o.set(capabilities.textDocumentCodeAction, (s) => s.codeActionProvider);\n o.set(capabilities.textDocumentCodeLens, (s) => s.codeLensProvider);\n o.set(capabilities.textDocumentDocumentLink, (s) => s.documentLinkProvider);\n o.set(capabilities.textDocumentFormatting, (s) => s.documentFormattingProvider);\n o.set(capabilities.textDocumentRangeFormatting, (s) => s.documentRangeFormattingProvider);\n o.set(capabilities.textDocumentOnTypeFormatting, (s) => s.documentOnTypeFormattingProvider);\n o.set(capabilities.textDocumentRename, (s) => s.renameProvider);\n o.set(capabilities.textDocumentFoldingRange, (s) => s.foldingRangeProvider);\n o.set(capabilities.textDocumentDeclaration, (s) => s.declarationProvider);\n o.set(capabilities.textDocumentTypeDefinition, (s) => s.typeDefinitionProvider);\n o.set(capabilities.textDocumentImplementation, (s) => s.implementationProvider);\n o.set(capabilities.textDocumentDocumentColor, (s) => s.colorProvider);\n o.set(capabilities.textDocumentSelectionRange, (s) => s.selectionRangeProvider);\n o.set(capabilities.textDocumentLinkedEditingRange, (s) => s.linkedEditingRangeProvider);\n o.set(capabilities.textDocumentPrepareCallHierarchy, (s) => s.callHierarchyProvider);\n o.set(capabilities.textDocumentSemanticTokensFull, (s) => s.semanticTokensProvider);\n o.set(capabilities.textDocumentInlayHint, (s) => s.inlayHintProvider);\n o.set(capabilities.textDocumentInlineValue, (s) => s.inlineValueProvider);\n o.set(capabilities.textDocumentDiagnostic, (s) => s.diagnosticProvider);\n o.set(capabilities.textDocumentMoniker, (s) => s.monikerProvider);\n o.set(capabilities.textDocumentPrepareTypeHierarchy, (s) => s.typeHierarchyProvider);\n o.set(capabilities.workspaceSymbol, (s) => s.workspaceSymbolProvider);\n o.set(capabilities.workspaceExecuteCommand, (s) => s.executeCommandProvider);\n return o;\n }\n set(capability, getOptionsFromStatic) {\n if (this._mappings.has(capability.method)) throw new Error(`Capability for method ${capability.method} already registered`);\n this._mappings.set(capability.method, getOptionsFromStatic);\n }\n getOptions(capability, serverCapabilities) {\n const getter = this._mappings.get(capability.method);\n if (!getter) return;\n return getter(serverCapabilities);\n }\n};\nfunction deepAssign(target, source) {\n for (const key of Object.keys(source)) {\n const srcValue = source[key];\n if (srcValue === void 0) continue;\n const tgtValue = target[key];\n if (tgtValue === void 0) {\n target[key] = srcValue;\n continue;\n }\n if (typeof srcValue !== \"object\" || srcValue === null) {\n target[key] = srcValue;\n continue;\n }\n if (typeof tgtValue !== \"object\" || tgtValue === null) {\n target[key] = srcValue;\n continue;\n }\n deepAssign(tgtValue, srcValue);\n }\n}\nvar TextDocumentSynchronizer = class extends Disposable {\n constructor(_server, _capabilities) {\n super();\n __publicField(this, \"_managedModels\", /* @__PURE__ */ new Map());\n __publicField(this, \"_managedModelsReverse\", /* @__PURE__ */ new Map());\n __publicField(this, \"_started\", false);\n this._server = _server;\n this._capabilities = _capabilities;\n this._register(this._capabilities.addStaticClientCapabilities({ textDocument: { synchronization: {\n dynamicRegistration: true,\n willSave: false,\n willSaveWaitUntil: false,\n didSave: false\n } } }));\n this._register(_capabilities.registerCapabilityHandler(capabilities.textDocumentDidChange, true, (e) => {\n if (this._started) return { dispose: () => {\n } };\n this._started = true;\n this._register(editor.onDidCreateModel((m) => {\n this._getOrCreateManagedModel(m);\n }));\n for (const m of editor.getModels()) this._getOrCreateManagedModel(m);\n return { dispose: () => {\n } };\n }));\n }\n _getOrCreateManagedModel(m) {\n if (!this._started) throw new Error(\"Not started\");\n const uriStr = m.uri.toString(true).toLowerCase();\n let mm = this._managedModels.get(m);\n if (!mm) {\n mm = new ManagedModel(m, this._server);\n this._managedModels.set(m, mm);\n this._managedModelsReverse.set(uriStr, m);\n }\n m.onWillDispose(() => {\n mm.dispose();\n this._managedModels.delete(m);\n this._managedModelsReverse.delete(uriStr);\n });\n return mm;\n }\n translateBack(textDocument, position) {\n const uri = textDocument.uri.toLowerCase();\n const textModel = this._managedModelsReverse.get(uri);\n if (!textModel) throw new Error(`No text model for uri ${uri}`);\n return {\n textModel,\n position: new Position(position.line + 1, position.character + 1)\n };\n }\n translateBackRange(textDocument, range) {\n const uri = textDocument.uri.toLowerCase();\n const textModel = this._managedModelsReverse.get(uri);\n if (!textModel) throw new Error(`No text model for uri ${uri}`);\n return {\n textModel,\n range: new Range(range.start.line + 1, range.start.character + 1, range.end.line + 1, range.end.character + 1)\n };\n }\n translate(textModel, monacoPos) {\n return {\n textDocument: { uri: textModel.uri.toString(true) },\n position: {\n line: monacoPos.lineNumber - 1,\n character: monacoPos.column - 1\n }\n };\n }\n translateRange(textModel, monacoRange) {\n return {\n start: {\n line: monacoRange.startLineNumber - 1,\n character: monacoRange.startColumn - 1\n },\n end: {\n line: monacoRange.endLineNumber - 1,\n character: monacoRange.endColumn - 1\n }\n };\n }\n};\nvar ManagedModel = class extends Disposable {\n constructor(_textModel, _api) {\n super();\n this._textModel = _textModel;\n this._api = _api;\n const uri = _textModel.uri.toString(true).toLowerCase();\n this._api.textDocumentDidOpen({ textDocument: {\n languageId: _textModel.getLanguageId(),\n uri,\n version: _textModel.getVersionId(),\n text: _textModel.getValue()\n } });\n this._register(_textModel.onDidChangeContent((e) => {\n const contentChanges = e.changes.map((c) => toLspTextDocumentContentChangeEvent(c));\n this._api.textDocumentDidChange({\n textDocument: {\n uri,\n version: _textModel.getVersionId()\n },\n contentChanges\n });\n }));\n this._register({ dispose: () => {\n this._api.textDocumentDidClose({ textDocument: { uri } });\n } });\n }\n};\nfunction toLspTextDocumentContentChangeEvent(change) {\n return {\n range: toLspRange(change.range),\n rangeLength: change.rangeLength,\n text: change.text\n };\n}\nfunction toLspRange(range) {\n return {\n start: {\n line: range.startLineNumber - 1,\n character: range.startColumn - 1\n },\n end: {\n line: range.endLineNumber - 1,\n character: range.endColumn - 1\n }\n };\n}\nvar MonacoLspClient = class {\n constructor(transport) {\n __publicField(this, \"_connection\");\n __publicField(this, \"_capabilitiesRegistry\");\n __publicField(this, \"_bridge\");\n __publicField(this, \"_initPromise\");\n const c = TypedChannel.fromTransport(transport);\n const s = api.getServer(c, {});\n c.startListen();\n this._capabilitiesRegistry = new LspCapabilitiesRegistry(c);\n this._bridge = new TextDocumentSynchronizer(s.server, this._capabilitiesRegistry);\n this._connection = new LspConnection(s.server, this._bridge, this._capabilitiesRegistry, c);\n this.createFeatures();\n this._initPromise = this._init();\n }\n async _init() {\n const result = await this._connection.server.initialize({\n processId: null,\n capabilities: this._capabilitiesRegistry.getClientCapabilities(),\n rootUri: null\n });\n this._connection.server.initialized({});\n this._capabilitiesRegistry.setServerCapabilities(result.capabilities);\n }\n createFeatures() {\n const store = new DisposableStore();\n store.add(new LspCompletionFeature(this._connection));\n store.add(new LspHoverFeature(this._connection));\n store.add(new LspSignatureHelpFeature(this._connection));\n store.add(new LspDefinitionFeature(this._connection));\n store.add(new LspDeclarationFeature(this._connection));\n store.add(new LspTypeDefinitionFeature(this._connection));\n store.add(new LspImplementationFeature(this._connection));\n store.add(new LspReferencesFeature(this._connection));\n store.add(new LspDocumentHighlightFeature(this._connection));\n store.add(new LspDocumentSymbolFeature(this._connection));\n store.add(new LspRenameFeature(this._connection));\n store.add(new LspCodeActionFeature(this._connection));\n store.add(new LspCodeLensFeature(this._connection));\n store.add(new LspDocumentLinkFeature(this._connection));\n store.add(new LspFormattingFeature(this._connection));\n store.add(new LspRangeFormattingFeature(this._connection));\n store.add(new LspOnTypeFormattingFeature(this._connection));\n store.add(new LspFoldingRangeFeature(this._connection));\n store.add(new LspSelectionRangeFeature(this._connection));\n store.add(new LspInlayHintsFeature(this._connection));\n store.add(new LspSemanticTokensFeature(this._connection));\n store.add(new LspDiagnosticsFeature(this._connection));\n return store;\n }\n};\nvar ws = null;\nif (typeof WebSocket !== \"undefined\") ws = WebSocket;\nelse if (typeof MozWebSocket !== \"undefined\") ws = MozWebSocket;\nelse if (typeof global !== \"undefined\") ws = global.WebSocket || global.MozWebSocket;\nelse if (typeof window !== \"undefined\") ws = window.WebSocket || window.MozWebSocket;\nelse if (typeof self !== \"undefined\") ws = self.WebSocket || self.MozWebSocket;\nvar browser_default = ws;\nfunction normalizeWebSocketOptions(options) {\n if (\"host\" in options) return { address: `${options.forceTls ? \"wss\" : \"ws\"}://${options.host}:${options.port}` };\n else return options;\n}\nvar WebSocketTransport = class WebSocketTransport2 extends BaseMessageTransport {\n constructor(socket) {\n super();\n __publicField(this, \"socket\");\n __publicField(this, \"errorEmitter\", new EventEmitter());\n __publicField(this, \"onError\", this.errorEmitter);\n this.socket = socket;\n socket.onmessage = (msg) => {\n try {\n const data = msg.data;\n if (typeof data === \"string\") {\n const json = JSON.parse(data);\n this._dispatchReceivedMessage(json);\n } else throw new Error(\"Not supported\");\n } catch (error) {\n this.errorEmitter.fire({ error });\n }\n };\n socket.onclose = (_event) => {\n this._onConnectionClosed();\n };\n }\n static connectTo(options) {\n const ws$1 = new browser_default(normalizeWebSocketOptions(options).address);\n return new Promise((res, rej) => {\n ws$1.onerror = (err) => {\n rej(err);\n };\n ws$1.onopen = () => {\n res(new WebSocketTransport2(ws$1));\n };\n });\n }\n static fromWebSocket(socket) {\n return new WebSocketTransport2(socket);\n }\n /**\n * Closes the underlying socket.\n */\n close() {\n this.socket.close();\n }\n /**\n * Same as `close`.\n */\n dispose() {\n this.close();\n }\n _sendImpl(message) {\n const str = JSON.stringify(message);\n return new Promise((res, rej) => {\n this.socket.send(str, (err) => {\n if (err) rej(err);\n else res();\n });\n });\n }\n toString() {\n return `${this.id}@${this.socket.url}`;\n }\n};\nvar WindowLikeTransport = class extends BaseMessageTransport {\n constructor(_windowLike, _source = void 0, _loadingState = void 0) {\n super();\n __publicField(this, \"_windowLike\");\n __publicField(this, \"_source\");\n __publicField(this, \"_loadingState\");\n __publicField(this, \"_disposed\", false);\n __publicField(this, \"_messageHandler\", ({ data, source }) => {\n if (this._source && source !== this._source) return;\n if (typeof data === \"object\" && data) this._dispatchReceivedMessage(data);\n });\n this._windowLike = _windowLike;\n this._source = _source;\n this._loadingState = _loadingState;\n this._windowLike.addEventListener(\"message\", this._messageHandler);\n }\n async _sendImpl(message) {\n if (this._disposed) throw new Error(\"Transport is disposed\");\n if (this._loadingState && !this._loadingState.loaded) await this._loadingState.onLoaded;\n this._windowLike.postMessage(message);\n }\n toString() {\n return `${this.id}@${this._windowLike}`;\n }\n dispose() {\n if (this._disposed) return;\n this._disposed = true;\n this._windowLike.removeEventListener(\"message\", this._messageHandler);\n }\n};\nfunction createTransportToWorker(worker) {\n if (typeof window === \"undefined\") throw new Error(`call this function from the main browser thread`);\n return new WindowLikeTransport(worker);\n}\nfunction createTransportToIFrame(iframe) {\n if (typeof window === \"undefined\") throw new Error(`call this function from the main browser thread`);\n return new WindowLikeTransport(iframe.contentWindow, iframe.contentWindow, {\n loaded: window.document.readyState === \"complete\",\n onLoaded: new Promise((res) => {\n window.addEventListener(\"load\", () => res());\n })\n });\n}\n\nexport { MonacoLspClient, WebSocketTransport, createTransportToIFrame, createTransportToWorker };\n","import { languages } from '../../editor/editor.api.js';\n\nconst languageDefinitions = {};\nconst lazyLanguageLoaders = {};\nclass LazyLanguageLoader {\n static getOrCreate(languageId) {\n if (!lazyLanguageLoaders[languageId]) {\n lazyLanguageLoaders[languageId] = new LazyLanguageLoader(languageId);\n }\n return lazyLanguageLoaders[languageId];\n }\n constructor(languageId) {\n this._languageId = languageId;\n this._loadingTriggered = false;\n this._lazyLoadPromise = new Promise((resolve, reject) => {\n this._lazyLoadPromiseResolve = resolve;\n this._lazyLoadPromiseReject = reject;\n });\n }\n load() {\n if (!this._loadingTriggered) {\n this._loadingTriggered = true;\n languageDefinitions[this._languageId].loader().then(\n (mod) => this._lazyLoadPromiseResolve(mod),\n (err) => this._lazyLoadPromiseReject(err)\n );\n }\n return this._lazyLoadPromise;\n }\n}\nfunction registerLanguage(def) {\n const languageId = def.id;\n languageDefinitions[languageId] = def;\n languages.register(def);\n const lazyLanguageLoader = LazyLanguageLoader.getOrCreate(languageId);\n languages.registerTokensProviderFactory(languageId, {\n create: async () => {\n const mod = await lazyLanguageLoader.load();\n return mod.language;\n }\n });\n languages.onLanguageEncountered(languageId, async () => {\n const mod = await lazyLanguageLoader.load();\n languages.setLanguageConfiguration(languageId, mod.conf);\n });\n}\n\nexport { registerLanguage };\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"abap\",\n extensions: [\".abap\"],\n aliases: [\"abap\", \"ABAP\"],\n loader: () => import('./abap.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"apex\",\n extensions: [\".cls\"],\n aliases: [\"Apex\", \"apex\"],\n mimetypes: [\"text/x-apex-source\", \"text/x-apex\"],\n loader: () => import('./apex.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"azcli\",\n extensions: [\".azcli\"],\n aliases: [\"Azure CLI\", \"azcli\"],\n loader: () => import('./azcli.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"bat\",\n extensions: [\".bat\", \".cmd\"],\n aliases: [\"Batch\", \"bat\"],\n loader: () => import('./bat.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"bicep\",\n extensions: [\".bicep\"],\n aliases: [\"Bicep\"],\n loader: () => import('./bicep.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"cameligo\",\n extensions: [\".mligo\"],\n aliases: [\"Cameligo\"],\n loader: () => import('./cameligo.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"clojure\",\n extensions: [\".clj\", \".cljs\", \".cljc\", \".edn\"],\n aliases: [\"clojure\", \"Clojure\"],\n loader: () => import('./clojure.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"coffeescript\",\n extensions: [\".coffee\"],\n aliases: [\"CoffeeScript\", \"coffeescript\", \"coffee\"],\n mimetypes: [\"text/x-coffeescript\", \"text/coffeescript\"],\n loader: () => import('./coffee.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"c\",\n extensions: [\".c\", \".h\"],\n aliases: [\"C\", \"c\"],\n loader: () => import('./cpp.js')\n});\nregisterLanguage({\n id: \"cpp\",\n extensions: [\".cpp\", \".cc\", \".cxx\", \".hpp\", \".hh\", \".hxx\"],\n aliases: [\"C++\", \"Cpp\", \"cpp\"],\n loader: () => import('./cpp.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"csharp\",\n extensions: [\".cs\", \".csx\", \".cake\"],\n aliases: [\"C#\", \"csharp\"],\n loader: () => import('./csharp.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"csp\",\n extensions: [\".csp\"],\n aliases: [\"CSP\", \"csp\"],\n loader: () => import('./csp.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"css\",\n extensions: [\".css\"],\n aliases: [\"CSS\", \"css\"],\n mimetypes: [\"text/css\"],\n loader: () => import('./css.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"cypher\",\n extensions: [\".cypher\", \".cyp\"],\n aliases: [\"Cypher\", \"OpenCypher\"],\n loader: () => import('./cypher.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"dart\",\n extensions: [\".dart\"],\n aliases: [\"Dart\", \"dart\"],\n mimetypes: [\"text/x-dart-source\", \"text/x-dart\"],\n loader: () => import('./dart.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"dockerfile\",\n extensions: [\".dockerfile\"],\n filenames: [\"Dockerfile\"],\n aliases: [\"Dockerfile\"],\n loader: () => import('./dockerfile.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"ecl\",\n extensions: [\".ecl\"],\n aliases: [\"ECL\", \"Ecl\", \"ecl\"],\n loader: () => import('./ecl.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"elixir\",\n extensions: [\".ex\", \".exs\"],\n aliases: [\"Elixir\", \"elixir\", \"ex\"],\n loader: () => import('./elixir.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"flow9\",\n extensions: [\".flow\"],\n aliases: [\"Flow9\", \"Flow\", \"flow9\", \"flow\"],\n loader: () => import('./flow9.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"fsharp\",\n extensions: [\".fs\", \".fsi\", \".ml\", \".mli\", \".fsx\", \".fsscript\"],\n aliases: [\"F#\", \"FSharp\", \"fsharp\"],\n loader: () => import('./fsharp.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"freemarker2\",\n extensions: [\".ftl\", \".ftlh\", \".ftlx\"],\n aliases: [\"FreeMarker2\", \"Apache FreeMarker2\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagAutoInterpolationDollar);\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-angle.interpolation-dollar\",\n aliases: [\"FreeMarker2 (Angle/Dollar)\", \"Apache FreeMarker2 (Angle/Dollar)\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagAngleInterpolationDollar);\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-bracket.interpolation-dollar\",\n aliases: [\"FreeMarker2 (Bracket/Dollar)\", \"Apache FreeMarker2 (Bracket/Dollar)\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagBracketInterpolationDollar);\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-angle.interpolation-bracket\",\n aliases: [\"FreeMarker2 (Angle/Bracket)\", \"Apache FreeMarker2 (Angle/Bracket)\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagAngleInterpolationBracket);\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-bracket.interpolation-bracket\",\n aliases: [\"FreeMarker2 (Bracket/Bracket)\", \"Apache FreeMarker2 (Bracket/Bracket)\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagBracketInterpolationBracket);\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-auto.interpolation-dollar\",\n aliases: [\"FreeMarker2 (Auto/Dollar)\", \"Apache FreeMarker2 (Auto/Dollar)\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagAutoInterpolationDollar);\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-auto.interpolation-bracket\",\n aliases: [\"FreeMarker2 (Auto/Bracket)\", \"Apache FreeMarker2 (Auto/Bracket)\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagAutoInterpolationBracket);\n }\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"go\",\n extensions: [\".go\"],\n aliases: [\"Go\"],\n loader: () => import('./go.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"graphql\",\n extensions: [\".graphql\", \".gql\"],\n aliases: [\"GraphQL\", \"graphql\", \"gql\"],\n mimetypes: [\"application/graphql\"],\n loader: () => import('./graphql.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"handlebars\",\n extensions: [\".handlebars\", \".hbs\"],\n aliases: [\"Handlebars\", \"handlebars\", \"hbs\"],\n mimetypes: [\"text/x-handlebars-template\"],\n loader: () => import('./handlebars.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"hcl\",\n extensions: [\".tf\", \".tfvars\", \".hcl\"],\n aliases: [\"Terraform\", \"tf\", \"HCL\", \"hcl\"],\n loader: () => import('./hcl.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"html\",\n extensions: [\".html\", \".htm\", \".shtml\", \".xhtml\", \".mdoc\", \".jsp\", \".asp\", \".aspx\", \".jshtm\"],\n aliases: [\"HTML\", \"htm\", \"html\", \"xhtml\"],\n mimetypes: [\"text/html\", \"text/x-jshtm\", \"text/template\", \"text/ng-template\"],\n loader: () => import('./html.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"ini\",\n extensions: [\".ini\", \".properties\", \".gitconfig\"],\n filenames: [\"config\", \".gitattributes\", \".gitconfig\", \".editorconfig\"],\n aliases: [\"Ini\", \"ini\"],\n loader: () => import('./ini.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"java\",\n extensions: [\".java\", \".jav\"],\n aliases: [\"Java\", \"java\"],\n mimetypes: [\"text/x-java-source\", \"text/x-java\"],\n loader: () => import('./java.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"javascript\",\n extensions: [\".js\", \".es6\", \".jsx\", \".mjs\", \".cjs\"],\n firstLine: \"^#!.*\\\\bnode\",\n filenames: [\"jakefile\"],\n aliases: [\"JavaScript\", \"javascript\", \"js\"],\n mimetypes: [\"text/javascript\"],\n loader: () => import('./javascript.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"julia\",\n extensions: [\".jl\"],\n aliases: [\"julia\", \"Julia\"],\n loader: () => import('./julia.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"kotlin\",\n extensions: [\".kt\", \".kts\"],\n aliases: [\"Kotlin\", \"kotlin\"],\n mimetypes: [\"text/x-kotlin-source\", \"text/x-kotlin\"],\n loader: () => import('./kotlin.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"less\",\n extensions: [\".less\"],\n aliases: [\"Less\", \"less\"],\n mimetypes: [\"text/x-less\", \"text/less\"],\n loader: () => import('./less.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"lexon\",\n extensions: [\".lex\"],\n aliases: [\"Lexon\"],\n loader: () => import('./lexon.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"lua\",\n extensions: [\".lua\"],\n aliases: [\"Lua\", \"lua\"],\n loader: () => import('./lua.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"liquid\",\n extensions: [\".liquid\", \".html.liquid\"],\n aliases: [\"Liquid\", \"liquid\"],\n mimetypes: [\"application/liquid\"],\n loader: () => import('./liquid.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"m3\",\n extensions: [\".m3\", \".i3\", \".mg\", \".ig\"],\n aliases: [\"Modula-3\", \"Modula3\", \"modula3\", \"m3\"],\n loader: () => import('./m3.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"markdown\",\n extensions: [\".md\", \".markdown\", \".mdown\", \".mkdn\", \".mkd\", \".mdwn\", \".mdtxt\", \".mdtext\"],\n aliases: [\"Markdown\", \"markdown\"],\n loader: () => import('./markdown.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"mdx\",\n extensions: [\".mdx\"],\n aliases: [\"MDX\", \"mdx\"],\n loader: () => import('./mdx.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"mips\",\n extensions: [\".s\"],\n aliases: [\"MIPS\", \"MIPS-V\"],\n mimetypes: [\"text/x-mips\", \"text/mips\", \"text/plaintext\"],\n loader: () => import('./mips.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"msdax\",\n extensions: [\".dax\", \".msdax\"],\n aliases: [\"DAX\", \"MSDAX\"],\n loader: () => import('./msdax.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"mysql\",\n extensions: [],\n aliases: [\"MySQL\", \"mysql\"],\n loader: () => import('./mysql.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"objective-c\",\n extensions: [\".m\"],\n aliases: [\"Objective-C\"],\n loader: () => import('./objective-c.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"pascal\",\n extensions: [\".pas\", \".p\", \".pp\"],\n aliases: [\"Pascal\", \"pas\"],\n mimetypes: [\"text/x-pascal-source\", \"text/x-pascal\"],\n loader: () => import('./pascal.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"pascaligo\",\n extensions: [\".ligo\"],\n aliases: [\"Pascaligo\", \"ligo\"],\n loader: () => import('./pascaligo.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"perl\",\n extensions: [\".pl\", \".pm\"],\n aliases: [\"Perl\", \"pl\"],\n loader: () => import('./perl.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"pgsql\",\n extensions: [],\n aliases: [\"PostgreSQL\", \"postgres\", \"pg\", \"postgre\"],\n loader: () => import('./pgsql.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"php\",\n extensions: [\".php\", \".php4\", \".php5\", \".phtml\", \".ctp\"],\n aliases: [\"PHP\", \"php\"],\n mimetypes: [\"application/x-php\"],\n loader: () => import('./php.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"pla\",\n extensions: [\".pla\"],\n loader: () => import('./pla.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"postiats\",\n extensions: [\".dats\", \".sats\", \".hats\"],\n aliases: [\"ATS\", \"ATS/Postiats\"],\n loader: () => import('./postiats.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"powerquery\",\n extensions: [\".pq\", \".pqm\"],\n aliases: [\"PQ\", \"M\", \"Power Query\", \"Power Query M\"],\n loader: () => import('./powerquery.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"powershell\",\n extensions: [\".ps1\", \".psm1\", \".psd1\"],\n aliases: [\"PowerShell\", \"powershell\", \"ps\", \"ps1\"],\n loader: () => import('./powershell.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"proto\",\n extensions: [\".proto\"],\n aliases: [\"protobuf\", \"Protocol Buffers\"],\n loader: () => import('./protobuf.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"pug\",\n extensions: [\".jade\", \".pug\"],\n aliases: [\"Pug\", \"Jade\", \"jade\"],\n loader: () => import('./pug.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"python\",\n extensions: [\".py\", \".rpy\", \".pyw\", \".cpy\", \".gyp\", \".gypi\"],\n aliases: [\"Python\", \"py\"],\n firstLine: \"^#!/.*\\\\bpython[0-9.-]*\\\\b\",\n loader: () => import('./python.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"qsharp\",\n extensions: [\".qs\"],\n aliases: [\"Q#\", \"qsharp\"],\n loader: () => import('./qsharp.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"r\",\n extensions: [\".r\", \".rhistory\", \".rmd\", \".rprofile\", \".rt\"],\n aliases: [\"R\", \"r\"],\n loader: () => import('./r.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"razor\",\n extensions: [\".cshtml\"],\n aliases: [\"Razor\", \"razor\"],\n mimetypes: [\"text/x-cshtml\"],\n loader: () => import('./razor.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"redis\",\n extensions: [\".redis\"],\n aliases: [\"redis\"],\n loader: () => import('./redis.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"redshift\",\n extensions: [],\n aliases: [\"Redshift\", \"redshift\"],\n loader: () => import('./redshift.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"restructuredtext\",\n extensions: [\".rst\"],\n aliases: [\"reStructuredText\", \"restructuredtext\"],\n loader: () => import('./restructuredtext.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"ruby\",\n extensions: [\".rb\", \".rbx\", \".rjs\", \".gemspec\", \".pp\"],\n filenames: [\"rakefile\", \"Gemfile\"],\n aliases: [\"Ruby\", \"rb\"],\n loader: () => import('./ruby.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"rust\",\n extensions: [\".rs\", \".rlib\"],\n aliases: [\"Rust\", \"rust\"],\n loader: () => import('./rust.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"sb\",\n extensions: [\".sb\"],\n aliases: [\"Small Basic\", \"sb\"],\n loader: () => import('./sb.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"scala\",\n extensions: [\".scala\", \".sc\", \".sbt\"],\n aliases: [\"Scala\", \"scala\", \"SBT\", \"Sbt\", \"sbt\", \"Dotty\", \"dotty\"],\n mimetypes: [\"text/x-scala-source\", \"text/x-scala\", \"text/x-sbt\", \"text/x-dotty\"],\n loader: () => import('./scala.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"scheme\",\n extensions: [\".scm\", \".ss\", \".sch\", \".rkt\"],\n aliases: [\"scheme\", \"Scheme\"],\n loader: () => import('./scheme.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"scss\",\n extensions: [\".scss\"],\n aliases: [\"Sass\", \"sass\", \"scss\"],\n mimetypes: [\"text/x-scss\", \"text/scss\"],\n loader: () => import('./scss.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"shell\",\n extensions: [\".sh\", \".bash\"],\n aliases: [\"Shell\", \"sh\"],\n loader: () => import('./shell.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"sol\",\n extensions: [\".sol\"],\n aliases: [\"sol\", \"solidity\", \"Solidity\"],\n loader: () => import('./solidity.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"aes\",\n extensions: [\".aes\"],\n aliases: [\"aes\", \"sophia\", \"Sophia\"],\n loader: () => import('./sophia.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"sparql\",\n extensions: [\".rq\"],\n aliases: [\"sparql\", \"SPARQL\"],\n loader: () => import('./sparql.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"sql\",\n extensions: [\".sql\"],\n aliases: [\"SQL\"],\n loader: () => import('./sql.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"st\",\n extensions: [\".st\", \".iecst\", \".iecplc\", \".lc3lib\", \".TcPOU\", \".TcDUT\", \".TcGVL\", \".TcIO\"],\n aliases: [\"StructuredText\", \"scl\", \"stl\"],\n loader: () => import('./st.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"swift\",\n aliases: [\"Swift\", \"swift\"],\n extensions: [\".swift\"],\n mimetypes: [\"text/swift\"],\n loader: () => import('./swift.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"systemverilog\",\n extensions: [\".sv\", \".svh\"],\n aliases: [\"SV\", \"sv\", \"SystemVerilog\", \"systemverilog\"],\n loader: () => import('./systemverilog.js')\n});\nregisterLanguage({\n id: \"verilog\",\n extensions: [\".v\", \".vh\"],\n aliases: [\"V\", \"v\", \"Verilog\", \"verilog\"],\n loader: () => import('./systemverilog.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"tcl\",\n extensions: [\".tcl\"],\n aliases: [\"tcl\", \"Tcl\", \"tcltk\", \"TclTk\", \"tcl/tk\", \"Tcl/Tk\"],\n loader: () => import('./tcl.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"twig\",\n extensions: [\".twig\"],\n aliases: [\"Twig\", \"twig\"],\n mimetypes: [\"text/x-twig\"],\n loader: () => import('./twig.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"typescript\",\n extensions: [\".ts\", \".tsx\", \".cts\", \".mts\"],\n aliases: [\"TypeScript\", \"ts\", \"typescript\"],\n mimetypes: [\"text/typescript\"],\n loader: () => {\n return import('./typescript.js');\n }\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"typespec\",\n extensions: [\".tsp\"],\n aliases: [\"TypeSpec\"],\n loader: () => import('./typespec.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"vb\",\n extensions: [\".vb\"],\n aliases: [\"Visual Basic\", \"vb\"],\n loader: () => import('./vb.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"wgsl\",\n extensions: [\".wgsl\"],\n aliases: [\"WebGPU Shading Language\", \"WGSL\", \"wgsl\"],\n loader: () => import('./wgsl.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"xml\",\n extensions: [\n \".xml\",\n \".xsd\",\n \".dtd\",\n \".ascx\",\n \".csproj\",\n \".config\",\n \".props\",\n \".targets\",\n \".wxi\",\n \".wxl\",\n \".wxs\",\n \".xaml\",\n \".svg\",\n \".svgz\",\n \".opf\",\n \".xslt\",\n \".xsl\"\n ],\n firstLine: \"(\\\\<\\\\?xml.*)|(\\\\<svg)|(\\\\<\\\\!doctype\\\\s+svg)\",\n aliases: [\"XML\", \"xml\"],\n mimetypes: [\"text/xml\", \"application/xml\", \"application/xaml+xml\", \"application/xml-dtd\"],\n loader: () => import('./xml.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"yaml\",\n extensions: [\".yaml\", \".yml\"],\n aliases: [\"YAML\", \"yaml\", \"YML\", \"yml\"],\n mimetypes: [\"application/x-yaml\", \"text/x-yaml\"],\n loader: () => import('./yaml.js')\n});\n","import { languages, Emitter } from '../../../editor/editor.api.js';\n\nclass LanguageServiceDefaultsImpl {\n constructor(languageId, options, modeConfiguration) {\n this._onDidChange = new Emitter();\n this._languageId = languageId;\n this.setOptions(options);\n this.setModeConfiguration(modeConfiguration);\n }\n get onDidChange() {\n return this._onDidChange.event;\n }\n get languageId() {\n return this._languageId;\n }\n get modeConfiguration() {\n return this._modeConfiguration;\n }\n get diagnosticsOptions() {\n return this.options;\n }\n get options() {\n return this._options;\n }\n setOptions(options) {\n this._options = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n setDiagnosticsOptions(options) {\n this.setOptions(options);\n }\n setModeConfiguration(modeConfiguration) {\n this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n}\nconst optionsDefault = {\n validate: true,\n lint: {\n compatibleVendorPrefixes: \"ignore\",\n vendorPrefix: \"warning\",\n duplicateProperties: \"warning\",\n emptyRules: \"warning\",\n importStatement: \"ignore\",\n boxModel: \"ignore\",\n universalSelector: \"ignore\",\n zeroUnits: \"ignore\",\n fontFaceProperties: \"warning\",\n hexColorLength: \"error\",\n argumentsInColorFunction: \"error\",\n unknownProperties: \"warning\",\n ieHack: \"ignore\",\n unknownVendorSpecificProperties: \"ignore\",\n propertyIgnoredDueToDisplay: \"warning\",\n important: \"ignore\",\n float: \"ignore\",\n idSelector: \"ignore\"\n },\n data: { useDefaultDataProvider: true },\n format: {\n newlineBetweenSelectors: true,\n newlineBetweenRules: true,\n spaceAroundSelectorSeparator: false,\n braceStyle: \"collapse\",\n maxPreserveNewLines: void 0,\n preserveNewLines: true\n }\n};\nconst modeConfigurationDefault = {\n completionItems: true,\n hovers: true,\n documentSymbols: true,\n definitions: true,\n references: true,\n documentHighlights: true,\n rename: true,\n colors: true,\n foldingRanges: true,\n diagnostics: true,\n selectionRanges: true,\n documentFormattingEdits: true,\n documentRangeFormattingEdits: true\n};\nconst cssDefaults = new LanguageServiceDefaultsImpl(\n \"css\",\n optionsDefault,\n modeConfigurationDefault\n);\nconst scssDefaults = new LanguageServiceDefaultsImpl(\n \"scss\",\n optionsDefault,\n modeConfigurationDefault\n);\nconst lessDefaults = new LanguageServiceDefaultsImpl(\n \"less\",\n optionsDefault,\n modeConfigurationDefault\n);\nfunction getMode() {\n return import('./cssMode.js');\n}\nlanguages.onLanguage(\"less\", () => {\n getMode().then((mode2) => mode2.setupMode(lessDefaults));\n});\nlanguages.onLanguage(\"scss\", () => {\n getMode().then((mode2) => mode2.setupMode(scssDefaults));\n});\nlanguages.onLanguage(\"css\", () => {\n getMode().then((mode2) => mode2.setupMode(cssDefaults));\n});\n\nexport { cssDefaults, lessDefaults, scssDefaults };\n","import { languages, Emitter } from '../../../editor/editor.api.js';\n\nclass LanguageServiceDefaultsImpl {\n constructor(languageId, options, modeConfiguration) {\n this._onDidChange = new Emitter();\n this._languageId = languageId;\n this.setOptions(options);\n this.setModeConfiguration(modeConfiguration);\n }\n get onDidChange() {\n return this._onDidChange.event;\n }\n get languageId() {\n return this._languageId;\n }\n get options() {\n return this._options;\n }\n get modeConfiguration() {\n return this._modeConfiguration;\n }\n setOptions(options) {\n this._options = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n setModeConfiguration(modeConfiguration) {\n this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n}\nconst formatDefaults = {\n tabSize: 4,\n insertSpaces: false,\n wrapLineLength: 120,\n unformatted: 'default\": \"a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',\n contentUnformatted: \"pre\",\n indentInnerHtml: false,\n preserveNewLines: true,\n maxPreserveNewLines: void 0,\n indentHandlebars: false,\n endWithNewline: false,\n extraLiners: \"head, body, /html\",\n wrapAttributes: \"auto\"\n};\nconst optionsDefault = {\n format: formatDefaults,\n suggest: {},\n data: { useDefaultDataProvider: true }\n};\nfunction getConfigurationDefault(languageId) {\n return {\n completionItems: true,\n hovers: true,\n documentSymbols: true,\n links: true,\n documentHighlights: true,\n rename: true,\n colors: true,\n foldingRanges: true,\n selectionRanges: true,\n diagnostics: languageId === htmlLanguageId,\n // turned off for Razor and Handlebar\n documentFormattingEdits: languageId === htmlLanguageId,\n // turned off for Razor and Handlebar\n documentRangeFormattingEdits: languageId === htmlLanguageId\n // turned off for Razor and Handlebar\n };\n}\nconst htmlLanguageId = \"html\";\nconst handlebarsLanguageId = \"handlebars\";\nconst razorLanguageId = \"razor\";\nconst htmlLanguageService = registerHTMLLanguageService(\n htmlLanguageId,\n optionsDefault,\n getConfigurationDefault(htmlLanguageId)\n);\nconst htmlDefaults = htmlLanguageService.defaults;\nconst handlebarLanguageService = registerHTMLLanguageService(\n handlebarsLanguageId,\n optionsDefault,\n getConfigurationDefault(handlebarsLanguageId)\n);\nconst handlebarDefaults = handlebarLanguageService.defaults;\nconst razorLanguageService = registerHTMLLanguageService(\n razorLanguageId,\n optionsDefault,\n getConfigurationDefault(razorLanguageId)\n);\nconst razorDefaults = razorLanguageService.defaults;\nfunction getMode() {\n return import('./htmlMode.js');\n}\nfunction registerHTMLLanguageService(languageId, options = optionsDefault, modeConfiguration = getConfigurationDefault(languageId)) {\n const defaults = new LanguageServiceDefaultsImpl(languageId, options, modeConfiguration);\n let mode2;\n const onLanguageListener = languages.onLanguage(languageId, async () => {\n mode2 = (await getMode()).setupMode(defaults);\n });\n return {\n defaults,\n dispose() {\n onLanguageListener.dispose();\n mode2?.dispose();\n mode2 = void 0;\n }\n };\n}\n\nexport { handlebarDefaults, handlebarLanguageService, htmlDefaults, htmlLanguageService, razorDefaults, razorLanguageService, registerHTMLLanguageService };\n","import { languages, Emitter } from '../../../editor/editor.api.js';\n\nclass LanguageServiceDefaultsImpl {\n constructor(languageId, diagnosticsOptions, modeConfiguration) {\n this._onDidChange = new Emitter();\n this._languageId = languageId;\n this.setDiagnosticsOptions(diagnosticsOptions);\n this.setModeConfiguration(modeConfiguration);\n }\n get onDidChange() {\n return this._onDidChange.event;\n }\n get languageId() {\n return this._languageId;\n }\n get modeConfiguration() {\n return this._modeConfiguration;\n }\n get diagnosticsOptions() {\n return this._diagnosticsOptions;\n }\n setDiagnosticsOptions(options) {\n this._diagnosticsOptions = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n setModeConfiguration(modeConfiguration) {\n this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n}\nconst diagnosticDefault = {\n validate: true,\n allowComments: true,\n schemas: [],\n enableSchemaRequest: false,\n schemaRequest: \"warning\",\n schemaValidation: \"warning\",\n comments: \"error\",\n trailingCommas: \"error\"\n};\nconst modeConfigurationDefault = {\n documentFormattingEdits: true,\n documentRangeFormattingEdits: true,\n completionItems: true,\n hovers: true,\n documentSymbols: true,\n tokens: true,\n colors: true,\n foldingRanges: true,\n diagnostics: true,\n selectionRanges: true\n};\nconst jsonDefaults = new LanguageServiceDefaultsImpl(\n \"json\",\n diagnosticDefault,\n modeConfigurationDefault\n);\nconst getWorker = () => getMode().then((mode2) => mode2.getWorker());\nfunction getMode() {\n return import('./jsonMode.js');\n}\nlanguages.register({\n id: \"json\",\n extensions: [\".json\", \".bowerrc\", \".jshintrc\", \".jscsrc\", \".eslintrc\", \".babelrc\", \".har\"],\n aliases: [\"JSON\", \"json\"],\n mimetypes: [\"application/json\"]\n});\nlanguages.onLanguage(\"json\", () => {\n getMode().then((mode2) => mode2.setupMode(jsonDefaults));\n});\n\nexport { getWorker, jsonDefaults };\n","import '../../editor/contrib/find/browser/findController.js';\nimport { FindWidget } from '../../editor/contrib/find/browser/findWidget.js';\n\nconst tabIndexPatchKey = \"__monacoFindWidgetTabIndexPatchApplied\";\nconst originalTabIndexKey = \"__monacoFindWidgetOriginalTabIndex\";\nfunction setFindWidgetTabbableState(widget, visible) {\n const domNode = widget?._domNode;\n if (!domNode) {\n return;\n }\n const focusableElements = domNode.querySelectorAll('input, textarea, [tabindex], [role=\"button\"], [role=\"checkbox\"]');\n for (const element of focusableElements) {\n if (!(element instanceof HTMLElement)) {\n continue;\n }\n if (visible) {\n if (!(originalTabIndexKey in element.dataset)) {\n continue;\n }\n const originalTabIndex = element.dataset[originalTabIndexKey];\n if (originalTabIndex === \"\") {\n element.removeAttribute(\"tabindex\");\n } else {\n element.tabIndex = Number(originalTabIndex);\n }\n delete element.dataset[originalTabIndexKey];\n } else {\n if (!(originalTabIndexKey in element.dataset)) {\n element.dataset[originalTabIndexKey] = element.getAttribute(\"tabindex\") ?? \"\";\n }\n element.tabIndex = -1;\n }\n }\n}\nif (!FindWidget[tabIndexPatchKey]) {\n const originalReveal = FindWidget.prototype._reveal;\n const originalHide = FindWidget.prototype._hide;\n FindWidget.prototype._reveal = function(...args) {\n originalReveal.apply(this, args);\n setFindWidgetTabbableState(this, true);\n };\n FindWidget.prototype._hide = function(...args) {\n originalHide.apply(this, args);\n setFindWidgetTabbableState(this, false);\n };\n FindWidget[tabIndexPatchKey] = true;\n}\n","import {\n contributionRegistry,\n subscribe,\n TOPIC_CONTRIBUTEIONS_CHANGED,\n type ContributionChangeEvent,\n} from '@eclipse-docks/core';\nimport * as monaco from 'monaco-editor';\n\nimport {\n MONACO_GRAMMARS,\n type MonacoGrammarContribution,\n} from './monaco-grammar-api';\n\nconst appliedGrammarIds = new Set<string>();\n\n/**\n * Apply contributed Monarch grammars to this package's Monaco module.\n * Safe to call repeatedly; each language id is registered at most once.\n */\nexport function ensureContributedGrammars(): void {\n const contributions =\n contributionRegistry.getContributions<MonacoGrammarContribution>(MONACO_GRAMMARS);\n\n for (const contribution of contributions) {\n const id = contribution.name;\n if (!id || appliedGrammarIds.has(id)) continue;\n\n const alreadyKnown = monaco.languages.getLanguages().some((lang) => lang.id === id);\n if (!alreadyKnown) {\n monaco.languages.register({\n id,\n extensions: contribution.extensions,\n aliases: contribution.aliases,\n mimetypes: contribution.mimetypes,\n });\n }\n\n if (contribution.conf) {\n monaco.languages.setLanguageConfiguration(id, contribution.conf);\n }\n monaco.languages.setMonarchTokensProvider(id, contribution.language);\n appliedGrammarIds.add(id);\n }\n}\n\nlet listening = false;\n\nexport function watchContributedGrammars(): void {\n if (listening) return;\n listening = true;\n subscribe(TOPIC_CONTRIBUTEIONS_CHANGED, (event: ContributionChangeEvent) => {\n if (event.target !== MONACO_GRAMMARS) return;\n ensureContributedGrammars();\n });\n}\n","import * as monaco from 'monaco-editor';\n// Monaco 0.56+ rewrites package subpaths to esm/vs/*.js, so the bundled CSS is not importable by name.\nimport styles from '../../../node_modules/monaco-editor/min/vs/editor/editor.main.css?raw';\nimport { customElement, property } from \"lit/decorators.js\";\nimport { LitElement, PropertyValues } from \"lit\";\nimport { css, html } from \"lit\";\nimport { createRef, ref } from \"lit/directives/ref.js\";\n\nimport EditorWorker from 'monaco-editor/editor/editor.worker.js?worker';\nimport JsonWorker from 'monaco-editor/language/json/json.worker.js?worker';\nimport CssWorker from 'monaco-editor/language/css/css.worker.js?worker';\nimport HtmlWorker from 'monaco-editor/language/html/html.worker.js?worker';\nimport TsWorker from 'monaco-editor/language/typescript/ts.worker.js?worker';\n\nimport { ensureContributedGrammars, watchContributedGrammars } from './monaco-grammars';\n\nfunction getMonacoWorker(_: unknown, label: string): Worker {\n switch (label) {\n case 'json': return new JsonWorker();\n case 'css':\n case 'scss':\n case 'less': return new CssWorker();\n case 'html':\n case 'handlebars':\n case 'razor': return new HtmlWorker();\n case 'typescript':\n case 'javascript': return new TsWorker();\n default: return new EditorWorker();\n }\n}\n\nself.MonacoEnvironment = { getWorker: getMonacoWorker };\n\nwatchContributedGrammars();\n\n@customElement('docks-monaco-widget')\nexport class DocksMonacoWidget extends LitElement {\n @property({ attribute: false })\n value?: string;\n\n @property()\n language?: string;\n\n @property()\n uri?: string;\n\n @property({ type: Boolean })\n readOnly: boolean = false;\n\n @property()\n theme: string = 'vs-dark';\n\n @property({ type: Boolean, attribute: 'auto-layout' })\n autoLayout = false;\n\n private containerRef = createRef<HTMLElement>();\n private editor?: monaco.editor.IStandaloneCodeEditor;\n private model?: monaco.editor.ITextModel;\n private themeObserver?: MutationObserver;\n private resizeObserver?: ResizeObserver;\n\n private getMonacoTheme(): string {\n const root = document.documentElement;\n if (root.classList.contains('wa-dark')) return 'vs-dark';\n if (root.classList.contains('wa-light')) return 'vs';\n return 'vs-dark';\n }\n\n private setupThemeObserver(): void {\n const rootElement = document.documentElement;\n let currentTheme = this.getMonacoTheme();\n\n this.themeObserver = new MutationObserver(() => {\n const newTheme = this.getMonacoTheme();\n if (newTheme !== currentTheme) {\n currentTheme = newTheme;\n monaco.editor.setTheme(newTheme);\n }\n });\n\n this.themeObserver.observe(rootElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n\n private ensureEditor() {\n const container = this.containerRef.value;\n if (!container || this.editor) return;\n if (this.value === undefined) return;\n\n ensureContributedGrammars();\n\n const uri = this.uri != null ? monaco.Uri.file(this.uri) : undefined;\n this.model = monaco.editor.createModel(this.value, this.language, uri);\n this.editor = monaco.editor.create(container, {\n theme: this.getMonacoTheme(),\n automaticLayout: this.autoLayout,\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n });\n this.model.onDidChangeContent(() => {\n if (this.readOnly) return;\n this.dispatchEvent(new CustomEvent('content-change', { bubbles: true, composed: true }));\n });\n this.editor.setModel(this.model);\n this.editor.onDidFocusEditorText(() => {\n this.dispatchEvent(new CustomEvent('editor-focus', { bubbles: true, composed: true }));\n });\n this.editor.onDidBlurEditorText(() => {\n this.dispatchEvent(new CustomEvent('editor-blur', { bubbles: true, composed: true }));\n });\n this.editor.onDidContentSizeChange(() => {\n const height = this.editor?.getContentHeight() ?? 0;\n this.dispatchEvent(new CustomEvent('content-height-changed', { detail: { height }, bubbles: true, composed: true }));\n });\n this.resizeObserver = new ResizeObserver(() => this.editor?.layout());\n this.resizeObserver.observe(container);\n this.setupThemeObserver();\n }\n\n protected firstUpdated(_changedProperties: PropertyValues) {\n super.firstUpdated(_changedProperties);\n this.ensureEditor();\n }\n\n protected updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n if (changedProperties.has('value') || changedProperties.has('language') || changedProperties.has('uri')) {\n this.ensureEditor();\n }\n }\n\n disconnectedCallback() {\n this.dispose();\n super.disconnectedCallback();\n }\n\n public dispose() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n this.themeObserver?.disconnect();\n this.themeObserver = undefined;\n this.model?.dispose();\n this.editor?.dispose();\n this.model = undefined;\n this.editor = undefined;\n }\n\n public getEditor(): monaco.editor.IStandaloneCodeEditor | undefined {\n return this.editor;\n }\n\n public getContentHeight(): number {\n return this.editor?.getContentHeight() ?? 0;\n }\n\n public layout(): void {\n this.editor?.layout();\n }\n\n public getModel(): monaco.editor.ITextModel | undefined {\n return this.model;\n }\n\n public getContent(): string | null {\n return this.model?.getValue() ?? null;\n }\n\n public getLanguage(): string | null {\n return this.model?.getLanguageId()?.toLowerCase() ?? null;\n }\n\n public isLanguage(lang: string): boolean {\n return this.getLanguage() === lang.toLowerCase();\n }\n\n public getSelection(): string | null {\n if (!this.editor || !this.model) return null;\n try {\n const selection = this.editor.getSelection();\n if (!selection || selection.isEmpty()) return null;\n return this.model.getValueInRange(selection) || null;\n } catch {\n return null;\n }\n }\n\n public getSnippet(lines: number = 5): { snippet: string; cursorLine: number } | null {\n if (!this.editor || !this.model) return null;\n try {\n const position = this.editor.getPosition();\n if (!position) return null;\n const n = isNaN(lines) || lines < 0 ? 5 : lines;\n const cursorLineNumber = position.lineNumber;\n const totalLines = this.model.getLineCount();\n const startLine = Math.max(1, cursorLineNumber - n);\n const endLine = Math.min(totalLines, cursorLineNumber + n);\n const snippet = this.model.getValueInRange({\n startLineNumber: startLine,\n startColumn: 1,\n endLineNumber: endLine,\n endColumn: this.model.getLineMaxColumn(endLine),\n });\n return { snippet, cursorLine: cursorLineNumber };\n } catch {\n return null;\n }\n }\n\n render() {\n return html`\n <style>${styles}</style>\n <div class=\"monaco-editor-container\" ${ref(this.containerRef)}></div>\n `;\n }\n\n static styles = css`\n :host {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n }\n div.monaco-editor-container {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n }\n `;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'docks-monaco-widget': DocksMonacoWidget;\n }\n}\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86],"mappings":";;;;;;;;;;AA2EA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,KAAK,KAAK,UAAU,OAAO,MAAM,UAAU,KAAK,KAAK;CAAE,YAAY;CAAM,cAAc;CAAM,UAAU;CAAM;AAAM,CAAC,IAAI,IAAI,OAAO;AAC1J,IAAI,iBAAiB,KAAK,KAAK,UAAU,gBAAgB,KAAK,OAAO,QAAQ,WAAW,MAAM,KAAK,KAAK,KAAK;AAC7G,IAAI;AAAI,IAAA;AAAI,IAAA;AAAI,IAAA;AAAI,IAAA;AACpB,SAAS,wBAAwB,KAAK;CACpC,OAAO,IAAI,WAAW,KAAK;AAC7B;AACA,IAAI;CACH,SAAS,eAAe;CACvB,SAAS,OAAO,KAAK;EACnB,OAAO;CACT;CACA,cAAc,SAAS;AACzB,EAAA,CAAG,gBAAgB,cAAc,CAAC,EAAE;AACpC,IAAI;CACH,SAAS,aAAa;CACrB,YAAY,aAAa;CACzB,YAAY,iBAAiB;CAC7B,YAAY,iBAAiB;CAC7B,YAAY,gBAAgB;CAC5B,YAAY,gBAAgB;CAC5B,SAAS,cAAc,MAAM;EAC3B,OAAO,UAAU,QAAQ,QAAQ;CACnC;CACA,YAAY,gBAAgB;CAC5B,SAAS,YAAY,MAAM;EACzB,IAAI,CAAC,cAAc,IAAI,GAAG,MAAM,IAAI,MAAM,mCAAmC;EAC7E,OAAO;CACT;CACA,YAAY,cAAc;CAC1B,YAAY,wBAAwB;CACpC,SAAS,mBAAmB,MAAM;EAChC,OAAO;CACT;CACA,YAAY,qBAAqB;CACjC,SAAS,iBAAiB,MAAM;EAC9B,OAAO;CACT;CACA,YAAY,mBAAmB;CAC/B,YAAY,0BAA0B;AACxC,EAAA,CAAG,cAAc,YAAY,CAAC,EAAE;AAChC,IAAI,eAAe,MAAM;CACvB,cAAc;EACZ,cAAc,MAAM,6BAA6B,IAAI,IAAI,CAAC;EAC1D,cAAc,MAAM,UAAU,aAAa;GACzC,KAAK,UAAU,IAAI,QAAQ;GAC3B,OAAO,EAAE,eAAe;IACtB,KAAK,UAAU,OAAO,QAAQ;GAChC,EAAE;EACJ,CAAC;CACH;CACA,KAAK,MAAM;EACT,KAAK,UAAU,SAAS,aAAa,SAAS,IAAI,CAAC;CACrD;AACF;AACA,IAAI,uBAAuB,MAAM;CAC/B,YAAY,cAAc;EACxB,cAAc,MAAM,QAAQ;EAC5B,cAAc,MAAM,cAAc;EAClC,KAAK,SAAS;EACd,KAAK,eAAe,IAAI,aAAa;CACvC;CACA,IAAI,QAAQ;EACV,OAAO,KAAK;CACd;CACA,IAAI,MAAM,UAAU;EAClB,IAAI,KAAK,WAAW,UAAU;GAC5B,KAAK,SAAS;GACd,KAAK,aAAa,KAAK,QAAQ;EACjC;CACF;CACA,IAAI,WAAW;EACb,OAAO,KAAK,aAAa;CAC3B;AACF;AACA,SAAS,cAAc,OAAO,UAAU;CACtC,MAAM,SAAS,WAAW,UAAU,KAAK;CACzC,OAAO,EAAE,eAAe,aAAa,MAAM,EAAE;AAC/C;AACA,SAAS,sBAAsB,KAAK,WAAW,MAAM;CACnD,IAAI,eAAe,KAAK;EACtB,IAAI,IAAI,SAAS;EACjB,OAAO,EAAE,eAAe,IAAI,OAAO,SAAS,EAAE;CAChD,OAAO;EACL,IAAI,IAAI,WAAW,IAAI;EACvB,OAAO,EAAE,eAAe,IAAI,OAAO,SAAS,EAAE;CAChD;AACF;AACA,IAAI,WAAW,MAAM;CACnB,cAAc;EACZ,cAAc,MAAM,UAAU,MAAM;EACpC,cAAc,MAAM,SAAS;EAC7B,cAAc,MAAM,iBAAiB,CACrC,CAAC;EACD,cAAc,MAAM,gBAAgB,CACpC,CAAC;EACD,KAAK,UAAU,IAAI,SAAS,SAAS,WAAW;GAC9C,KAAK,UAAU;GACf,KAAK,SAAS;EAChB,CAAC;CACH;CACA,IAAI,QAAQ;EACV,OAAO,KAAK;CACd;AACF;AAC4B,KAAK,MAAM;CACrC,cAAc;EACZ,cAAc,MAAM,wBAAwB,CAAC,CAAC;EAC9C,cAAc,MAAM,kBAAkB;EACtC,cAAc,MAAM,MAAM,GAAG,IAAI;EACjC,cAAc,MAAM,UAAU,IAAI,qBAAqB,EAAE,OAAO,OAAO,CAAC,CAAC;EACzE,cAAc,MAAM,SAAS,KAAK,MAAM;CAC1C;;;;CAIA,YAAY,UAAU;EACpB,KAAK,mBAAmB;EACxB,IAAI,CAAC,UAAU;EACf,OAAO,KAAK,qBAAqB,SAAS,KAAK,KAAK,qBAAqB,KAAK,GAAG;GAC/E,MAAM,MAAM,KAAK,qBAAqB,MAAM;GAC5C,KAAK,iBAAiB,GAAG;EAC3B;CACF;;;;CAIA,KAAK,SAAS;EACZ,OAAO,KAAK,UAAU,OAAO;CAC/B;;;;CAIA,yBAAyB,SAAS;EAChC,IAAI,KAAK,qBAAqB,WAAW,KAAK,KAAK,kBAAkB,KAAK,iBAAiB,OAAO;OAC7F,KAAK,qBAAqB,KAAK,OAAO;CAC7C;;;;CAIA,sBAAsB;EACpB,KAAK,OAAO,QAAQ;GAClB,OAAO;GACP,OAAO,KAAK;EACd;CACF;CACA,IAAI,QAAQ;EACV,OAAO,IAAI,aAAa,MAAM,UAAU,IAAI,qBAAqB,CAAC;CACpE;AACF,GAAG,cAAc,IAAI,MAAM,CAAC;AAC5B,IAAI,eAAe,MAAM;CACvB,YAAY,YAAY,QAAQ;EAC9B,cAAc,MAAM,YAAY;EAChC,cAAc,MAAM,QAAQ;EAC5B,KAAK,aAAa;EAClB,KAAK,SAAS;CAChB;CACA,IAAI,QAAQ;EACV,OAAO,KAAK,WAAW;CACzB;CACA,YAAY,UAAU;EACpB,IAAI,aAAa,KAAK,GAAG;GACvB,KAAK,WAAW,YAAY,KAAK,CAAC;GAClC;EACF;EACA,KAAK,WAAW,aAAa,gBAAgB;GAC3C,KAAK,OAAO,IAAI,KAAK,YAAY,YAAY,WAAW;GACxD,SAAS,WAAW;EACtB,CAAC;CACH;CACA,KAAK,SAAS;EACZ,KAAK,OAAO,IAAI,KAAK,YAAY,YAAY,OAAO;EACpD,OAAO,KAAK,WAAW,KAAK,OAAO;CACrC;CACA,WAAW;EACT,OAAO,gBAAgB,KAAK,WAAW,SAAS;CAClD;AACF;AACA,IAAI,uBAAuB,MAAM;CAC/B,IAAI,QAAQ,MAAM,SAAS;EAEzB,QAAQ,IAAI,GADC,SAAS,aAAa,OAAO,KACtB,IAAI,OAAO,SAAS,EAAE,IAAI,KAAK,UAAU,OAAO,GAAG;CACzE;AACF;AACA,IAAI,UAAU,MAAM,SAAS;CAC3B,YAAY,SAAS;EACnB,cAAc,MAAM,SAAS;EAC7B,KAAK,UAAU;CACjB;CACA,WAAW,KAAK;EACd,OAAO,IAAI,UAAU,aAAa,KAAK,QAAQ,WAAW,yBAAyB,UAAU,GAAG,IAAI,KAAK,CAAC,CAAC;CAC7G;AACF;AACA,SAAS,yBAAyB,gBAAgB,KAAK;CACrD,OAAO;EACL,qBAAqB,SAAS,YAAY,eAAe,mBAAmB,SAAS,IAAI,OAAO,CAAC;EACjG,gBAAgB,SAAS,WAAW,YAAY,eAAe,cAAc,SAAS,WAAW,IAAI,OAAO,CAAC;CAC/G;AACF;AACA,IAAI,qBAAqB,MAAM,oBAAoB;CACjD,YAAY,SAAS,WAAW,SAAS;EACvC,cAAc,MAAM,SAAS;EAC7B,cAAc,MAAM,WAAW;EAC/B,cAAc,MAAM,SAAS;EAC7B,cAAc,MAAM,yCAAyC,IAAI,IAAI,CAAC;EACtE,cAAc,MAAM,sBAAsB,CAAC;EAC3C,KAAK,UAAU;EACf,KAAK,YAAY;EACjB,KAAK,UAAU;EACf,KAAK,QAAQ,aAAa,YAAY;GACpC,IAAI,wBAAwB,OAAO,GAAG,IAAI,QAAQ,OAAO,KAAK,GAAG,KAAK,qBAAqB,OAAO;QAC7F,KAAK,gBAAgB,OAAO;QAC5B,KAAK,iBAAiB,OAAO;EACpC,CAAC;CACH;;;;;;CAMA,OAAO,cAAc,QAAQ,QAAQ;EACnC,IAAI,cAAc;EAClB,OAAO,IAAI,SAAS,aAAa;GAC/B,IAAI,aAAa,MAAM,IAAI,MAAM,2BAA2B,OAAO,0BAA0B;QACxF,cAAc;GACnB,OAAO,IAAI,oBAAoB,QAAQ,UAAU,MAAM;EACzD,CAAC;CACH;CACA,IAAI,QAAQ;EACV,OAAO,KAAK,QAAQ;CACtB;CACA,MAAM,qBAAqB,SAAS;EAClC,IAAI,QAAQ,OAAO,KAAK,GAAG,MAAM,IAAI,MAAM;EAC3C,IAAI,CAAC,KAAK,WAAW;GACnB,IAAI,KAAK,SAAS,KAAK,QAAQ,MAAM;IACnC,MAAM;IACN;GACF,CAAC;GACD;EACF;EACA,IAAI;GACF,MAAM,KAAK,UAAU,mBAAmB;IACtC,QAAQ,QAAQ;IAChB,QAAQ,QAAQ,UAAU;GAC5B,CAAC;EACH,SAAS,WAAW;GAClB,IAAI,KAAK,SAAS,KAAK,QAAQ,KAAK;IAClC,MAAM,qDAAqD;IAC3D;IACA;GACF,CAAC;EACH;CACF;CACA,MAAM,gBAAgB,SAAS;EAC7B,IAAI,QAAQ,OAAO,KAAK,GAAG,MAAM,IAAI,MAAM;EAC3C,IAAI;EACJ,IAAI,KAAK,WAAW,IAAI;GACtB,SAAS,MAAM,KAAK,UAAU,cAAc;IAC1C,QAAQ,QAAQ;IAChB,QAAQ,QAAQ,UAAU;GAC5B,GAAG,QAAQ,EAAE;EACf,SAAS,WAAW;GAClB,IAAI,KAAK,SAAS,KAAK,QAAQ,KAAK;IAClC,MAAM,gDAAgD;IACtD;IACA;GACF,CAAC;GACD,SAAS,EAAE,OAAO;IAChB,MAAM,UAAU;IAChB,SAAS;IACT,MAAM,KAAK;GACb,EAAE;EACJ;OACK;GACH,IAAI,KAAK,SAAS,KAAK,QAAQ,MAAM;IACnC,MAAM;IACN;GACF,CAAC;GACD,SAAS,EAAE,OAAO;IAChB,MAAM,UAAU;IAChB,SAAS;IACT,MAAM,KAAK;GACb,EAAE;EACJ;EACA,IAAI;EACJ,IAAI,YAAY,QAAQ,cAAc;GACpC,SAAS;GACT,IAAI,QAAQ;GACZ,QAAQ,OAAO;EACjB;OACK,cAAc;GACjB,SAAS;GACT,IAAI,QAAQ;GACZ,OAAO,OAAO;EAChB;EACA,MAAM,KAAK,QAAQ,KAAK,WAAW;CACrC;CACA,iBAAiB,SAAS;EACxB,MAAM,QAAQ,KAAK,QAAQ;EAC3B,MAAM,WAAW,KAAK,sBAAsB,IAAI,KAAK;EACrD,IAAI,CAAC,UAAU;GACb,IAAI,KAAK,SAAS,KAAK,QAAQ,MAAM;IACnC,MAAM;IACN;GACF,CAAC;GACD;EACF;EACA,KAAK,sBAAsB,OAAO,KAAK;EACvC,SAAS,OAAO;CAClB;CACA,gBAAgB;EACd,OAAO,KAAK;CACd;CACA,YAAY,SAAS,UAAU,mBAAmB;EAChD,MAAM,UAAU;GACd,SAAS;GACT,IAAI,KAAK,cAAc;GACvB,QAAQ,QAAQ;GAChB,QAAQ,QAAQ,UAAU,KAAK;EACjC;EACA,IAAI,mBAAmB,kBAAkB,QAAQ,EAAE;EACnD,OAAO,IAAI,SAAS,SAAS,WAAW;GACtC,MAAM,QAAQ,KAAK,QAAQ;GAC3B,KAAK,sBAAsB,IAAI,QAAQ,aAAa;IAClD,IAAI,YAAY,UAAU,QAAQ,EAAE,QAAQ,SAAS,OAAO,CAAC;SACxD;KACH,IAAI,CAAC,SAAS,OAAO,uBAAuB,IAAI,MAAM,sDAAsD,CAAC;KAC7G,QAAQ,EAAE,OAAO,SAAS,MAAM,CAAC;IACnC;GACF,CAAC;GACD,KAAK,QAAQ,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,WAAW;IAClD,KAAK,sBAAsB,OAAO,KAAK;IACvC,OAAO,MAAM;GACf,CAAC;EACH,CAAC;CACH;CACA,iBAAiB,cAAc,SAAS;EACtC,MAAM,MAAM;GACV,SAAS;GACT,IAAI,KAAK;GACT,QAAQ,aAAa;GACrB,QAAQ,aAAa,UAAU,KAAK;EACtC;EACA,OAAO,KAAK,QAAQ,KAAK,GAAG;CAC9B;CACA,WAAW;EACT,OAAO,mBAAmB,KAAK,QAAQ,SAAS;CAClD;AACF;AACA,IAAI;CACH,SAAS,eAAe;CACvB,SAAS,OAAO;EACd,OAAO;GACL,sBAAsB,WAAW;IAC/B,WAAW;IACX,OAAO;GACT;GACA,kBAAkB,UAAU;EAC9B;CACF;CACA,cAAc,OAAO;CACrB,SAAS,eAAe;EACtB,OAAO;GACL,sBAAsB,WAAW;IAC/B,WAAW;IACX,OAAO,CAAC;GACV;GACA,kBAAkB,WAAW,CAAC;EAChC;CACF;CACA,cAAc,eAAe;CAC7B,SAAS,gBAAgB;EACvB,OAAO;GACL,sBAAsB,WAAW;IAC/B,WAAW;IACX,OAAO,KAAK;GACd;GACA,kBAAkB,UAAU;EAC9B;CACF;CACA,cAAc,gBAAgB;AAChC,EAAA,CAAG,gBAAgB,cAAc,CAAC,EAAE;AACpC,IAAM,yBAAyB,OAAO,wBAAwB;AAC9D,IAAI,mBAAmB,MAAM;CAC3B,cAAc,MAAM;EAClB,OAAO,IAAI,2BAA2B,MAAM,IAAI;CAClD;AACF;AACA,IAAI,6BAA6B,cAAc,iBAAiB;CAC9D,YAAY,wBAAwB,YAAY;EAC9C,MAAM;EACN,cAAc,MAAM,wBAAwB;EAC5C,cAAc,MAAM,YAAY;EAChC,KAAK,yBAAyB;EAC9B,KAAK,aAAa;CACpB;CACA,MAAM,QAAQ,aAAa,MAAM,YAAY;EAC3C,MAAM,UAAU,MAAM,KAAK,WAAW,eAAe,UAAU;EAC/D,OAAO,KAAK,uBAAuB,QAAQ,aAAa,MAAM,OAAO;CACvE;CACA,MAAM,OAAO,kBAAkB,QAAQ,YAAY;EACjD,MAAM,UAAU,MAAM,KAAK,WAAW,eAAe,UAAU;EAC/D,OAAO,KAAK,uBAAuB,OAAO,kBAAkB,QAAQ,OAAO;CAC7E;CACA,4BAA4B,MAAM,SAAS;EACzC,OAAO,KAAK,uBAAuB,4BAA4B,MAAM,OAAO,KAAK,YAAY;GAC3F,OAAO,MAAM,QAAQ,KAAK,MAAM,KAAK,WAAW,cAAc,OAAO,CAAC;EACxE,CAAC;CACH;CACA,uBAAuB,aAAa,SAAS;EAC3C,OAAO,KAAK,uBAAuB,uBAAuB,aAAa,OAAO,KAAK,WAAW,YAAY;GACxG,OAAO,MAAM,QAAQ,KAAK,WAAW,MAAM,KAAK,WAAW,cAAc,OAAO,CAAC;EACnF,CAAC;CACH;AACF;AACA,IAAI,eAAe,MAAM,sBAAsB,iBAAiB;CAC9D,YAAY,aAAa,UAAU,CAAC,GAAG;EACrC,MAAM;EACN,cAAc,MAAM,aAAa;EACjC,cAAc,MAAM,gBAAgB;EACpC,cAAc,MAAM,4BAA4B,IAAI,IAAI,CAAC;EACzD,cAAc,MAAM,+CAA+C,IAAI,IAAI,CAAC;EAC5E,cAAc,MAAM,UAAU;EAC9B,cAAc,MAAM,wBAAwB,KAAK;EACjD,cAAc,MAAM,SAAS;EAC7B,cAAc,MAAM,qBAAqB,IAAI,SAAS,CAAC;EACvD,cAAc,MAAM,eAAe,KAAK,kBAAkB,OAAO;EACjE,cAAc,MAAM,gCAAgC,IAAI,aAAa,CAAC;EACtE,cAAc,MAAM,qBAAqB,KAAK,6BAA6B,KAAK;EAChF,KAAK,cAAc;EACnB,KAAK,UAAU,QAAQ;EACvB,KAAK,uBAAuB,CAAC,CAAC,QAAQ;EACtC,KAAK,WAAW,cAAc,WAAW;GACvC,IAAI,CAAC,KAAK,gBAAgB,QAAQ,KAAK,IAAI,KAAK,YAAY,KAAK,uGAAuG,IAAI;EAC9K,CAAC;CACH;CACA,OAAO,cAAc,QAAQ,UAAU,CAAC,GAAG;EACzC,OAAO,IAAI,cAAc,mBAAmB,cAAc,QAAQ,QAAQ,MAAM,GAAG,OAAO;CAC5F;;;;;;CAMA,cAAc;EACZ,IAAI,KAAK,gBAAgB,MAAM,IAAI,MAAM,IAAI,KAAK,YAAY,KAAK,2DAA2D;EAC9H,IAAI,KAAK,UAAU;GACjB,KAAK,SAAS,QAAQ;GACtB,KAAK,WAAW,KAAK;EACvB;EACA,KAAK,iBAAiB,KAAK,YAAY,QAAQ;GAC7C,gBAAgB,KAAK,IAAI,YAAY,KAAK,cAAc,KAAK,IAAI,OAAO;GACxE,qBAAqB,KAAK,YAAY,KAAK,mBAAmB,KAAK,OAAO;EAC5E,CAAC;EACD,KAAK,kBAAkB,QAAQ;CACjC;CACA,aAAa,SAAS;EACpB,IAAI,CAAC,SAAS,MAAM,IAAI,MAAM,IAAI,KAAK,YAAY,KAAK,8DAA8D;EACtH,OAAO;CACT;CACA,MAAM,cAAc,SAAS,WAAW,SAAS;EAC/C,MAAM,UAAU,KAAK,SAAS,IAAI,QAAQ,MAAM;EAChD,IAAI,CAAC,SAAS;GACZ,IAAI,KAAK,SAAS,KAAK,QAAQ,MAAM;IACnC,MAAM,2BAA2B,QAAQ,OAAO;IAChD,MAAM,EAAE,eAAe,QAAQ;GACjC,CAAC;GACD,OAAO,EAAE,OAAO;IACd,MAAM,UAAU;IAChB,SAAS,2BAA2B,QAAQ,OAAO;IACnD,MAAM,EAAE,QAAQ,QAAQ,OAAO;GACjC,EAAE;EACJ;EACA,IAAI,QAAQ,QAAQ,WAAW;GAC7B,MAAM,UAAU,IAAI,QAAQ,OAAO;GACnC,IAAI,KAAK,SAAS,KAAK,QAAQ,MAAM;IACnC,MAAM;IACN,MAAM,EAAE,eAAe,QAAQ;GACjC,CAAC;GACD,OAAO,EAAE,OAAO;IACd,MAAM,UAAU;IAChB;IACA,MAAM,EAAE,QAAQ,QAAQ,OAAO;GACjC,EAAE;EACJ;EACA,MAAM,eAAe,QAAQ,YAAY,iBAAiB,oBAAoB,QAAQ,MAAM;EAC5F,IAAI,aAAa,WAAW;GAC1B,MAAM,UAAU,uBAAuB,aAAa;GACpD,IAAI,KAAK,SAAS,KAAK,QAAQ,MAAM;IACnC,MAAM;IACN,MAAM;KACJ,eAAe;KACf,cAAc,aAAa;IAC7B;GACF,CAAC;GACD,OAAO,EAAE,OAAO;IACd,MAAM,UAAU;IAChB;IACA,MAAM,EAAE,QAAQ,aAAa,aAAa;GAC5C,EAAE;EACJ,OAAO;GACL,MAAM,OAAO,aAAa;GAC1B,IAAI;GACJ,IAAI;IACF,MAAM,SAAS,MAAM,QAAQ,QAAQ,MAAM,WAAW,OAAO;IAC7D,IAAI,WAAW,UAAU,kBAAkB,QAAQ;KACjD,MAAM,YAAY,OAAO,QAAQ,QAAQ,YAAY,gBAAgB,gBAAgB,OAAO,KAAK,IAAI,KAAK;KAC1G,WAAW,EAAE,OAAO;MAClB,MAAM,OAAO,aAAa,UAAU;MACpC,SAAS,OAAO,gBAAgB;MAChC,MAAM;KACR,EAAE;IACJ,OAAO,WAAW,EAAE,QAAQ,QAAQ,YAAY,iBAAiB,gBAAgB,OAAO,EAAE,EAAE;GAC9F,SAAS,WAAW;IAClB,IAAI,qBAAqB,sBAAsB,WAAW,EAAE,OAAO;KACjE,MAAM,UAAU;KAChB,SAAS,UAAU;IACrB,EAAE;SACG;KACH,IAAI,KAAK,SAAS,KAAK,QAAQ,KAAK;MAClC,MAAM,qDAAqD,UAAU;MACrE;MACA,MAAM,EAAE,eAAe,QAAQ;KACjC,CAAC;KACD,WAAW,EAAE,OAAO;MAClB,MAAM,UAAU;MAChB,SAAS,KAAK,uBAAuB,qDAAqD,UAAU,KAAK;KAC3G,EAAE;IACJ;GACF;GACA,OAAO;EACT;CACF;CACA,MAAM,mBAAmB,SAAS,SAAS;EACzC,MAAM,UAAU,KAAK,SAAS,IAAI,QAAQ,MAAM;EAChD,IAAI,CAAC,SAAS;GACZ,KAAK,MAAM,KAAK,KAAK,6BAA6B,EAAE,OAAO;GAC3D,IAAI,KAAK,4BAA4B,SAAS,GACxC;QAAA,KAAK,SAAS,KAAK,QAAQ,MAAM;KACnC,MAAM,2BAA2B,QAAQ,OAAO;KAChD,MAAM,EAAE,eAAe,QAAQ;IACjC,CAAC;GAAA;GAEH;EACF;EACA,IAAI,QAAQ,QAAQ,gBAAgB;GAClC,IAAI,KAAK,SAAS,KAAK,QAAQ,MAAM;IACnC,MAAM,IAAI,QAAQ,OAAO;IACzB,MAAM,EAAE,eAAe,QAAQ;GACjC,CAAC;GACD;EACF;EACA,MAAM,eAAe,QAAQ,iBAAiB,iBAAiB,oBAAoB,QAAQ,MAAM;EACjG,IAAI,aAAa,WAAW;GAC1B,IAAI,KAAK,SAAS,KAAK,QAAQ,MAAM;IACnC,MAAM,uBAAuB;IAC7B,MAAM;KACJ,eAAe;KACf,cAAc,aAAa;IAC7B;GACF,CAAC;GACD;EACF;EACA,MAAM,MAAM,aAAa;EACzB,KAAK,MAAM,eAAe,QAAQ,UAAU,IAAI;GAC9C,YAAY,KAAK,OAAO;EAC1B,SAAS,WAAW;GAClB,IAAI,KAAK,SAAS,KAAK,QAAQ,KAAK;IAClC,MAAM,0DAA0D,UAAU;IAC1E;IACA,MAAM,EAAE,eAAe,QAAQ;GACjC,CAAC;EACH;CACF;CACA,mCAAmC,SAAS;EAC1C,OAAO,sBAAsB,KAAK,6BAA6B,OAAO;CACxE;CACA,uBAAuB,aAAa,SAAS;EAC3C,IAAI,KAAK,SAAS,IAAI,YAAY,MAAM,GAAG,MAAM,IAAI,MAAM,wBAAwB,YAAY,OAAO,sBAAsB;EAC5H,OAAO,sBAAsB,KAAK,UAAU,YAAY,QAAQ;GAC9D,MAAM;GACN;GACA;EACF,CAAC;CACH;CACA,4BAA4B,MAAM,SAAS;EACzC,IAAI,oBAAoB,KAAK,SAAS,IAAI,KAAK,MAAM;EACrD,IAAI,CAAC,mBAAmB;GACtB,oBAAoB;IAClB,MAAM;IACN,kBAAkB;IAClB,0BAA0B,IAAI,IAAI;GACpC;GACA,KAAK,SAAS,IAAI,KAAK,QAAQ,iBAAiB;EAClD,OAAO;GACL,IAAI,kBAAkB,SAAS,gBAAgB,MAAM,IAAI,MAAM,WAAW,KAAK,OAAO,6CAA6C;GACnI,IAAI,kBAAkB,qBAAqB,MAAM,MAAM,IAAI,MAAM,WAAW,KAAK,OAAO,uCAAuC;EACjI;EACA,OAAO,sBAAsB,kBAAkB,UAAU,OAAO;CAClE;CACA,qBAAqB;EACnB,MAAM,SAAS,CAAC;EAChB,KAAK,MAAM,KAAK,KAAK,SAAS,OAAO,GAAG,IAAI,EAAE,SAAS,gBAAgB,OAAO,KAAK,EAAE,gBAAgB;OAChG,IAAI,EAAE,SAAS,WAAW,OAAO,KAAK,EAAE,WAAW;EACxD,OAAO;CACT;CACA,MAAM,QAAQ,aAAa,MAAM,SAAS;EACxC,IAAI,CAAC,KAAK,aAAa,KAAK,cAAc,GAAG,MAAM,IAAI,MAAM,YAAY;EACzE,MAAM,SAAS,YAAY,iBAAiB,gBAAgB,IAAI;EAChE,wBAAwB,MAAM;EAC9B,MAAM,WAAW,MAAM,KAAK,eAAe,YAAY;GACrD,QAAQ,YAAY;GACpB;EACF,GAAG,OAAO;EACV,IAAI,WAAW,UAAU;GACvB,IAAI,YAAY,cAAc,SAAS,MAAM,SAAS,UAAU,gBAAgB,OAAO;GACvF,IAAI;GACJ,IAAI,SAAS,MAAM,SAAS,KAAK,GAAG;IAClC,MAAM,wBAAwB,YAAY,gBAAgB,oBAAoB,SAAS,MAAM,IAAI;IACjG,IAAI,sBAAsB,WAAW,MAAM,IAAI,MAAM,sBAAsB,YAAY;IACvF,YAAY,sBAAsB;GACpC,OAAO,YAAY,KAAK;GACxB,MAAM,QAAQ,IAAI,qBAAqB,SAAS,MAAM,SAAS,WAAW,SAAS,MAAM,IAAI;GAC7F,KAAK,6BAA6B,KAAK,EAAE,MAAM,CAAC;GAChD,MAAM;EACR,OAAO;GACL,MAAM,SAAS,YAAY,iBAAiB,oBAAoB,SAAS,MAAM;GAC/E,IAAI,OAAO,WAAW,MAAM,IAAI,MAAM,qCAAqC,OAAO,eAAe;;EAErG,KAAK,UAAU,UAAU,MAAM,CAAC,GAAG;QAC1B,OAAO,OAAO;EACrB;CACF;CACA,MAAM,OAAO,kBAAkB,QAAQ,SAAS;EAC9C,IAAI,CAAC,KAAK,aAAa,KAAK,cAAc,GAAG,MAAM,IAAI,MAAM;EAC7D,MAAM,gBAAgB,iBAAiB,iBAAiB,gBAAgB,MAAM;EAC9E,wBAAwB,aAAa;EACrC,KAAK,eAAe,iBAAiB;GACnC,QAAQ,iBAAiB;GACzB,QAAQ;EACV,GAAG,OAAO;CACZ;AACF;AACA,SAAS,wBAAwB,KAAK;CACpC,IAAI,QAAQ,QAAQ,MAAM,QAAQ,GAAG,KAAK,OAAO,QAAQ,UAAU,MAAM,IAAI,MAAM,wDAAwD;AAC7I;AACA,IAAI,uBAAuB,MAAM,8BAA8B,MAAM;CACnE,YAAY,SAAS,MAAM,OAAO,UAAU,yBAAyB;EACnE,MAAM,OAAO;EACb,cAAc,MAAM,MAAM;EAC1B,cAAc,MAAM,MAAM;EAC1B,KAAK,OAAO;EACZ,KAAK,OAAO;EACZ,OAAO,eAAe,MAAM,sBAAsB,SAAS;CAC7D;AACF;AACA,IAAI,cAAc,MAAM,aAAa;CACnC,YAAY,QAAQ,kBAAkB,kBAAkB,iBAAiB,aAAa,OAAO;EAC3F,cAAc,MAAM,QAAQ;EAC5B,cAAc,MAAM,kBAAkB;EACtC,cAAc,MAAM,kBAAkB;EACtC,cAAc,MAAM,iBAAiB;EACrC,cAAc,MAAM,YAAY;EAChC,cAAc,MAAM,QAAQ,SAAS;EACrC,KAAK,SAAS;EACd,KAAK,mBAAmB;EACxB,KAAK,mBAAmB;EACxB,KAAK,kBAAkB;EACvB,KAAK,aAAa;CACpB;CACA,WAAW,QAAQ;EACjB,OAAO,IAAI,aAAa,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,eAAe;CACpG;CACA,WAAW;EACT,OAAO,IAAI,aAAa,KAAK,QAAQ,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,iBAAiB,IAAI;CAC/G;AACF;AACA,IAAI,mBAAmB,MAAM,kBAAkB;CAC7C,YAAY,QAAQ,kBAAkB;EACpC,cAAc,MAAM,QAAQ;EAC5B,cAAc,MAAM,kBAAkB;EACtC,cAAc,MAAM,QAAQ,cAAc;EAC1C,KAAK,SAAS;EACd,KAAK,mBAAmB;CAC1B;CACA,WAAW,QAAQ;EACjB,OAAO,IAAI,kBAAkB,QAAQ,KAAK,gBAAgB;CAC5D;AACF;AACA,SAAS,kBAAkB,SAAS;CAClC,OAAO,IAAI,aAAa,WAAW,CAAC,EAAA,CAAG,QAAQ,YAAY,KAAK,GAAG,YAAY,KAAK,GAAG,YAAY,KAAK,CAAC;AAC3G;AACA,SAAS,uBAAuB,SAAS;CACvC,OAAO,IAAI,kBAAkB,WAAW,CAAC,EAAA,CAAG,QAAQ,YAAY,KAAK,CAAC;AACxE;AAEA,IAAI,gBAAgB,KADG,OACe,GAAG,KAAK,MAAM;CAClD,YAAY,OAAO;EACjB,cAAc,MAAM,OAAO;EAC3B,cAAc,MAAM,EAAE;EACtB,KAAK,QAAQ;CACf;AACF,GAAG,cAAc,IAAI,YAAY,UAAU;CACzC,OAAO,IAAI,GAAG,KAAK;AACrB,CAAC,GAAG;AACJ,SAAS,SAAS,aAAa;CAC7B,MAAM,SAAS,UAAU,YAAY,SAAS;CAC9C,MAAM,SAAS,UAAU,YAAY,SAAS;CAC9C,OAAO,IAAI,SAAS,YAAY,QAAQ,CAAC,GAAG,QAAQ,MAAM;AAC5D;AACA,SAAS,UAAU,YAAY;CAC7B,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,UAAU,GAAG;EACnD,MAAM,SAAS,IAAI,SAAS,IAAI,SAAS;EACzC,OAAO,OAAO,IAAI,WAAW,MAAM;CACrC;CACA,OAAO;AACT;AACA,IAAI,WAAW,MAAM,UAAU;CAC7B,YAAY,OAAO,CAAC,GAAG,QAAQ,QAAQ;EACrC,cAAc,MAAM,MAAM;EAC1B,cAAc,MAAM,QAAQ;EAC5B,cAAc,MAAM,QAAQ;EAC5B,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,KAAK,SAAS;CAChB;CACA,kBAAkB;EAChB,uBAAuB,IAAI,MAAM,sDAAsD;CACzF;CACA,IAAI,kBAAkB;EACpB,MAAM,KAAK,gBAAgB;CAC7B;CACA,IAAI,mBAAmB;EACrB,MAAM,KAAK,gBAAgB;CAC7B;CACA,IAAI,mBAAmB;EACrB,MAAM,KAAK,gBAAgB;CAC7B;CACA,IAAI,iBAAiB;EACnB,MAAM,KAAK,gBAAgB;CAC7B;CACA,IAAI,iBAAiB;EACnB,MAAM,KAAK,gBAAgB;CAC7B;CACA,IAAI,QAAQ;EACV,MAAM,KAAK,gBAAgB;CAC7B;CACA,aAAa,cAAc,YAAY,eAAe,aAAa;EACjE,MAAM,cAAc,KAAK,iBAAiB,cAAc,aAAa;EACrE,MAAM,aAAa,KAAK,iBAAiB,cAAc,YAAY,aAAa,WAAW;EAC3F,OAAO;GACL;GACA,eAAe,WAAW,QAAQ;EACpC;CACF;CACA,iBAAiB,cAAc,eAAe;EAC5C,MAAM,cAAc,CAAC;EACrB,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,aAAa,GAAG;GACtD,IAAI;GACJ,IAAI,IAAI,SAAS,WAAW,IAAI,IAAI,YAAY,SAAS,OAAO,MAAM,YAAY;IAChF,IAAI,SAAS,KAAK,GAAG,OAAO,CAAC;IAC7B,IAAI;KACF,OAAO,MAAM,aAAa,QAAQ,KAAK,MAAM,OAAO;IACtD,SAAS,OAAO;KACd,IAAI,SAAS,MAAM,SAAS,UAAU,gBAAgB,OAAO;KAC7D,MAAM;IACR;GACF;QACK,UAAU,MAAM,YAAY;IAC/B,IAAI,SAAS,KAAK,GAAG,OAAO,CAAC;IAC7B,OAAO,aAAa,QAAQ,KAAK,MAAM,OAAO;GAChD;QACK,UAAU,MAAM,YAAY;IAC/B,IAAI,SAAS,KAAK,GAAG,OAAO,CAAC;IAC7B,OAAO,aAAa,OAAO,KAAK,MAAM,OAAO;GAC/C;GACA,YAAY,OAAO;EACrB;EACA,OAAO;CACT;CACA,iBAAiB,cAAc,YAAY,aAAa,aAAa;EACnE,MAAM,cAAc,CAAC;EACrB,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,UAAU,GAAG,IAAI,IAAI,SAAS,WAAW;GAC/E,IAAI,SAAS,YAAY;GACzB,IAAI,CAAC,QAAQ;GACb,MAAM,UAAU,KAAK,qBAAqB,aAAa,MAAM;GAC7D,YAAY,KAAK,aAAa,uBAAuB,KAAK,OAAO,CAAC;EACpE,OAAO;GACL,MAAM,SAAS,YAAY;GAC3B,IAAI,QAAQ,YAAY,KAAK,aAAa,4BAA4B,MAAM,MAAM,YAAY;IAC5F,OAAO,MAAM;KACX;KACA;IACF,CAAC;GACH,CAAC,CAAC;EACJ;EACA,OAAO,EAAE,eAAe,YAAY,SAAS,MAAM,EAAE,QAAQ,CAAC,EAAE;CAClE;CACA,qBAAqB,aAAa,QAAQ;EACxC,OAAO,OAAO,MAAM,WAAW,oBAAoB;GACjD,MAAM,SAAS,MAAM,OAAO,MAAM;IAChC,SAAS;IACT;IACA,QAAQ,aAAa;IACrB;GACF,CAAC;GACD,IAAI,kBAAkB,cAAc,OAAO,OAAO;GAClD,OAAO,EAAE,IAAI,OAAO;EACtB;CACF;;;;;;CAMA,OAAO,oBAAoB,YAAY,QAAQ,SAAS,sBAAsB;EAC5E,MAAM,UAAU,aAAa,cAAc,QAAQ,OAAO;EAC1D,MAAM,EAAE,WAAW,WAAW,UAAU,SAAS,oBAAoB;EACrE,QAAQ,YAAY;EACpB,OAAO;GACL;GACA;EACF;CACF;;;;;;CAMA,OAAO,uBAAuB,YAAY,QAAQ,SAAS,sBAAsB;EAC/E,MAAM,UAAU,aAAa,cAAc,QAAQ,OAAO;EAC1D,MAAM,EAAE,WAAW,WAAW,eAAe,SAAS,oBAAoB;EAC1E,QAAQ,YAAY;EACpB,OAAO;GACL;GACA;EACF;CACF;CACA,UAAU,cAAc,sBAAsB;EAC5C,MAAM,EAAE,aAAa,YAAY,KAAK,aAAa,cAAc,KAAK,QAAQ,KAAK,QAAQ,oBAAoB;EAC/G,OAAO;GACL,QAAQ;GACR;EACF;CACF;CACA,eAAe,cAAc,sBAAsB;EACjD,MAAM,EAAE,aAAa,YAAY,KAAK,aAAa,cAAc,KAAK,QAAQ,KAAK,QAAQ,oBAAoB;EAC/G,OAAO;GACL,QAAQ;GACR;EACF;CACF;CACA,cAAc;EACZ,OAAO,IAAI,UAAU,KAAK,MAAM,KAAK,QAAQ,KAAK,MAAM;CAC1D;AACF;AACA,IAAI,mBAAmC,iBAAC,SAAS,oBAAoB;CACnE,mBAAmB,aAAa;CAChC,mBAAmB,aAAa;CAChC,mBAAmB,YAAY;CAC/B,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AACL,IAAI,aAA6B,iBAAC,SAAS,cAAc;CACvD,aAAa,aAAa,UAAU,KAAK;CACzC,aAAa,aAAa,YAAY,KAAK;CAC3C,aAAa,aAAa,eAAe,KAAK;CAC9C,aAAa,aAAa,aAAa,KAAK;CAC5C,aAAa,aAAa,WAAW,KAAK;CAC1C,aAAa,aAAa,YAAY,KAAK;CAC3C,aAAa,aAAa,cAAc,KAAK;CAC7C,aAAa,aAAa,WAAW,KAAK;CAC1C,aAAa,aAAa,iBAAiB,KAAK;CAChD,aAAa,aAAa,UAAU,MAAM;CAC1C,aAAa,aAAa,eAAe,MAAM;CAC/C,aAAa,aAAa,cAAc,MAAM;CAC9C,aAAa,aAAa,cAAc,MAAM;CAC9C,aAAa,aAAa,cAAc,MAAM;CAC9C,aAAa,aAAa,YAAY,MAAM;CAC5C,aAAa,aAAa,YAAY,MAAM;CAC5C,aAAa,aAAa,aAAa,MAAM;CAC7C,aAAa,aAAa,WAAW,MAAM;CAC3C,aAAa,aAAa,YAAY,MAAM;CAC5C,aAAa,aAAa,SAAS,MAAM;CACzC,aAAa,aAAa,UAAU,MAAM;CAC1C,aAAa,aAAa,gBAAgB,MAAM;CAChD,aAAa,aAAa,YAAY,MAAM;CAC5C,aAAa,aAAa,WAAW,MAAM;CAC3C,aAAa,aAAa,cAAc,MAAM;CAC9C,aAAa,aAAa,mBAAmB,MAAM;CACnD,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AACL,IAAI,YAA4B,iBAAC,SAAS,aAAa;CACrD,YAAY,YAAY,gBAAgB,KAAK;CAC7C,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AACL,IAAI,gBAAgC,iBAAC,SAAS,iBAAiB;CAC7D,gBAAgB,gBAAgB,UAAU,KAAK;CAC/C,gBAAgB,gBAAgB,eAAe,KAAK;CACpD,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AAOL,IAAI,qBAAqC,iBAAC,SAAS,sBAAsB;CACvE,qBAAqB,qBAAqB,UAAU,KAAK;CACzD,qBAAqB,qBAAqB,YAAY,KAAK;CAC3D,qBAAqB,qBAAqB,cAAc,KAAK;CAC7D,qBAAqB,qBAAqB,iBAAiB,KAAK;CAChE,qBAAqB,qBAAqB,WAAW,KAAK;CAC1D,qBAAqB,qBAAqB,cAAc,KAAK;CAC7D,qBAAqB,qBAAqB,WAAW,KAAK;CAC1D,qBAAqB,qBAAqB,eAAe,KAAK;CAC9D,qBAAqB,qBAAqB,YAAY,KAAK;CAC3D,qBAAqB,qBAAqB,cAAc,MAAM;CAC9D,qBAAqB,qBAAqB,UAAU,MAAM;CAC1D,qBAAqB,qBAAqB,WAAW,MAAM;CAC3D,qBAAqB,qBAAqB,UAAU,MAAM;CAC1D,qBAAqB,qBAAqB,aAAa,MAAM;CAC7D,qBAAqB,qBAAqB,aAAa,MAAM;CAC7D,qBAAqB,qBAAqB,WAAW,MAAM;CAC3D,qBAAqB,qBAAqB,UAAU,MAAM;CAC1D,qBAAqB,qBAAqB,eAAe,MAAM;CAC/D,qBAAqB,qBAAqB,YAAY,MAAM;CAC5D,qBAAqB,qBAAqB,gBAAgB,MAAM;CAChE,qBAAqB,qBAAqB,cAAc,MAAM;CAC9D,qBAAqB,qBAAqB,YAAY,MAAM;CAC5D,qBAAqB,qBAAqB,WAAW,MAAM;CAC3D,qBAAqB,qBAAqB,cAAc,MAAM;CAC9D,qBAAqB,qBAAqB,mBAAmB,MAAM;CACnE,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AACL,IAAI,oBAAoC,iBAAC,SAAS,qBAAqB;CACrE,oBAAoB,oBAAoB,gBAAgB,KAAK;CAC7D,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AACL,IAAI,mBAAmC,iBAAC,SAAS,oBAAoB;CACnE,mBAAmB,mBAAmB,eAAe,KAAK;CAC1D,mBAAmB,mBAAmB,aAAa,KAAK;CACxD,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AACL,IAAI,wBAAwC,iBAAC,SAAS,yBAAyB;CAC7E,wBAAwB,wBAAwB,UAAU,KAAK;CAC/D,wBAAwB,wBAAwB,UAAU,KAAK;CAC/D,wBAAwB,wBAAwB,WAAW,KAAK;CAChE,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AACL,IAAI,iBAAiC,iBAAC,SAAS,kBAAkB;CAC/D,iBAAiB,WAAW;CAC5B,iBAAiB,cAAc;CAC/B,iBAAiB,cAAc;CAC/B,iBAAiB,qBAAqB;CACtC,iBAAiB,oBAAoB;CACrC,iBAAiB,qBAAqB;CACtC,iBAAiB,YAAY;CAC7B,iBAAiB,2BAA2B;CAC5C,iBAAiB,kBAAkB;CACnC,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AAML,IAAI,qBAAqC,iBAAC,SAAS,sBAAsB;CACvE,qBAAqB,qBAAqB,WAAW,KAAK;CAC1D,qBAAqB,qBAAqB,aAAa,KAAK;CAC5D,qBAAqB,qBAAqB,iBAAiB,KAAK;CAChE,qBAAqB,qBAAqB,UAAU,KAAK;CACzD,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AACL,IAAI,gBAAgC,iBAAC,SAAS,iBAAiB;CAC7D,gBAAgB,gBAAgB,iBAAiB,KAAK;CACtD,gBAAgB,gBAAgB,gBAAgB,KAAK;CACrD,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AACL,IAAI,wBAAwC,iBAAC,SAAS,yBAAyB;CAC7E,wBAAwB,wBAAwB,aAAa,KAAK;CAClE,wBAAwB,wBAAwB,sBAAsB,KAAK;CAC3E,wBAAwB,wBAAwB,qCAAqC,KAAK;CAC1F,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AACL,IAAI,2BAA2C,iBAAC,SAAS,4BAA4B;CACnF,2BAA2B,2BAA2B,aAAa,KAAK;CACxE,2BAA2B,2BAA2B,sBAAsB,KAAK;CACjF,2BAA2B,2BAA2B,mBAAmB,KAAK;CAC9E,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AACL,IAAI,wBAAwC,iBAAC,SAAS,yBAAyB;CAC7E,wBAAwB,wBAAwB,aAAa,KAAK;CAClE,wBAAwB,wBAAwB,eAAe,KAAK;CACpE,OAAO;AACT,EAAA,CAAG,CAAC,CAAC;AAKL,IAAI,aAAa,MAAM;CACrB,YAAY,QAAQ;EAClB,KAAK,SAAS;CAChB;AACF;AACA,IAAM,eAAe;CACnB,4BAA4B,IAAI,WAAW,6BAA6B;CACxE,4BAA4B,IAAI,WAAW,6BAA6B;CACxE,2BAA2B,IAAI,WAAW,4BAA4B;CACtE,+BAA+B,IAAI,WAAW,gCAAgC;CAC9E,0BAA0B,IAAI,WAAW,2BAA2B;CACpE,yBAAyB,IAAI,WAAW,0BAA0B;CAClE,4BAA4B,IAAI,WAAW,6BAA6B;CACxE,kCAAkC,IAAI,WAAW,mCAAmC;CACpF,gCAAgC,IAAI,WAAW,kCAAkC;CACjF,qCAAqC,IAAI,WAAW,wCAAwC;CAC5F,gCAAgC,IAAI,WAAW,iCAAiC;CAChF,0BAA0B,IAAI,WAAW,2BAA2B;CACpE,0BAA0B,IAAI,WAAW,2BAA2B;CACpE,0BAA0B,IAAI,WAAW,2BAA2B;CACpE,qBAAqB,IAAI,WAAW,sBAAsB;CAC1D,kCAAkC,IAAI,WAAW,mCAAmC;CACpF,yBAAyB,IAAI,WAAW,0BAA0B;CAClE,uBAAuB,IAAI,WAAW,wBAAwB;CAC9D,wBAAwB,IAAI,WAAW,yBAAyB;CAChE,8BAA8B,IAAI,WAAW,+BAA+B;CAC5E,+BAA+B,IAAI,WAAW,gCAAgC;CAC9E,wBAAwB,IAAI,WAAW,yBAAyB;CAChE,mBAAmB,IAAI,WAAW,oBAAoB;CACtD,2BAA2B,IAAI,WAAW,4BAA4B;CACtE,wBAAwB,IAAI,WAAW,yBAAyB;CAChE,wBAAwB,IAAI,WAAW,yBAAyB;CAChE,+BAA+B,IAAI,WAAW,gCAAgC;CAC9E,4BAA4B,IAAI,WAAW,6BAA6B;CACxE,wBAAwB,IAAI,WAAW,yBAAyB;CAChE,iBAAiB,IAAI,WAAW,kBAAkB;CAClD,sBAAsB,IAAI,WAAW,uBAAuB;CAC5D,0BAA0B,IAAI,WAAW,2BAA2B;CACpE,wBAAwB,IAAI,WAAW,yBAAyB;CAChE,6BAA6B,IAAI,WAAW,8BAA8B;CAC1E,8BAA8B,IAAI,WAAW,+BAA+B;CAC5E,8BAA8B,IAAI,WAAW,+BAA+B;CAC5E,oBAAoB,IAAI,WAAW,qBAAqB;CACxD,yBAAyB,IAAI,WAAW,0BAA0B;CAClE,yBAAyB,IAAI,WAAW,0BAA0B;CAClE,yBAAyB,IAAI,WAAW,0BAA0B;CAClE,yBAAyB,IAAI,WAAW,0BAA0B;CAClE,iCAAiC,IAAI,WAAW,kCAAkC;CAClF,qBAAqB,IAAI,WAAW,sBAAsB;CAC1D,uBAAuB,IAAI,WAAW,wBAAwB;CAC9D,sBAAsB,IAAI,WAAW,uBAAuB;CAC5D,qBAAqB,IAAI,WAAW,sBAAsB;CAC1D,sBAAsB,IAAI,WAAW,uBAAuB;CAC5D,gCAAgC,IAAI,WAAW,iCAAiC;AAClF;AACY,SAAS;CACnB,QAAQ;EACN,4BAA4B,kBAAkB,EAAE,QAAQ,8BAA8B,CAAC;EACvF,4BAA4B,kBAAkB,EAAE,QAAQ,8BAA8B,CAAC;EACvF,2BAA2B,kBAAkB,EAAE,QAAQ,6BAA6B,CAAC;EACrF,+BAA+B,kBAAkB,EAAE,QAAQ,iCAAiC,CAAC;EAC7F,0BAA0B,kBAAkB,EAAE,QAAQ,4BAA4B,CAAC;EACnF,yBAAyB,kBAAkB,EAAE,QAAQ,2BAA2B,CAAC;EACjF,4BAA4B,kBAAkB,EAAE,QAAQ,8BAA8B,CAAC;EACvF,kCAAkC,kBAAkB,EAAE,QAAQ,oCAAoC,CAAC;EACnG,4BAA4B,kBAAkB,EAAE,QAAQ,8BAA8B,CAAC;EACvF,4BAA4B,kBAAkB,EAAE,QAAQ,8BAA8B,CAAC;EACvF,gCAAgC,kBAAkB,EAAE,QAAQ,mCAAmC,CAAC;EAChG,qCAAqC,kBAAkB,EAAE,QAAQ,yCAAyC,CAAC;EAC3G,iCAAiC,kBAAkB,EAAE,QAAQ,oCAAoC,CAAC;EAClG,gCAAgC,kBAAkB,EAAE,QAAQ,kCAAkC,CAAC;EAC/F,0BAA0B,kBAAkB,EAAE,QAAQ,4BAA4B,CAAC;EACnF,0BAA0B,kBAAkB,EAAE,QAAQ,4BAA4B,CAAC;EACnF,0BAA0B,kBAAkB,EAAE,QAAQ,4BAA4B,CAAC;EACnF,qBAAqB,kBAAkB,EAAE,QAAQ,uBAAuB,CAAC;EACzE,kCAAkC,kBAAkB,EAAE,QAAQ,oCAAoC,CAAC;EACnG,yBAAyB,kBAAkB,EAAE,QAAQ,2BAA2B,CAAC;EACjF,uBAAuB,kBAAkB,EAAE,QAAQ,yBAAyB,CAAC;EAC7E,yBAAyB,kBAAkB,EAAE,QAAQ,2BAA2B,CAAC;EACjF,uBAAuB,kBAAkB,EAAE,QAAQ,yBAAyB,CAAC;EAC7E,kBAAkB,kBAAkB,EAAE,QAAQ,oBAAoB,CAAC;EACnE,wBAAwB,kBAAkB,EAAE,QAAQ,0BAA0B,CAAC;EAC/E,qBAAqB,kBAAkB,EAAE,QAAQ,uBAAuB,CAAC;EACzE,8BAA8B,kBAAkB,EAAE,QAAQ,gCAAgC,CAAC;EAC3F,YAAY,kBAAkB,EAAE,QAAQ,aAAa,CAAC;EACtD,UAAU,kBAAkB,EAAE,QAAQ,WAAW,CAAC;EAClD,+BAA+B,kBAAkB,EAAE,QAAQ,iCAAiC,CAAC;EAC7F,wBAAwB,kBAAkB,EAAE,QAAQ,0BAA0B,CAAC;EAC/E,uBAAuB,kBAAkB,EAAE,QAAQ,yBAAyB,CAAC;EAC7E,mBAAmB,kBAAkB,EAAE,QAAQ,qBAAqB,CAAC;EACrE,2BAA2B,kBAAkB,EAAE,QAAQ,6BAA6B,CAAC;EACrF,wBAAwB,kBAAkB,EAAE,QAAQ,0BAA0B,CAAC;EAC/E,wBAAwB,kBAAkB,EAAE,QAAQ,0BAA0B,CAAC;EAC/E,+BAA+B,kBAAkB,EAAE,QAAQ,iCAAiC,CAAC;EAC7F,4BAA4B,kBAAkB,EAAE,QAAQ,8BAA8B,CAAC;EACvF,wBAAwB,kBAAkB,EAAE,QAAQ,0BAA0B,CAAC;EAC/E,mBAAmB,kBAAkB,EAAE,QAAQ,qBAAqB,CAAC;EACrE,iBAAiB,kBAAkB,EAAE,QAAQ,mBAAmB,CAAC;EACjE,wBAAwB,kBAAkB,EAAE,QAAQ,0BAA0B,CAAC;EAC/E,sBAAsB,kBAAkB,EAAE,QAAQ,wBAAwB,CAAC;EAC3E,iBAAiB,kBAAkB,EAAE,QAAQ,mBAAmB,CAAC;EACjE,0BAA0B,kBAAkB,EAAE,QAAQ,4BAA4B,CAAC;EACnF,qBAAqB,kBAAkB,EAAE,QAAQ,uBAAuB,CAAC;EACzE,wBAAwB,kBAAkB,EAAE,QAAQ,0BAA0B,CAAC;EAC/E,6BAA6B,kBAAkB,EAAE,QAAQ,+BAA+B,CAAC;EACzF,8BAA8B,kBAAkB,EAAE,QAAQ,gCAAgC,CAAC;EAC3F,8BAA8B,kBAAkB,EAAE,QAAQ,gCAAgC,CAAC;EAC3F,oBAAoB,kBAAkB,EAAE,QAAQ,sBAAsB,CAAC;EACvE,2BAA2B,kBAAkB,EAAE,QAAQ,6BAA6B,CAAC;EACrF,yBAAyB,kBAAkB,EAAE,QAAQ,2BAA2B,CAAC;EACjF,oCAAoC,uBAAuB,EAAE,QAAQ,sCAAsC,CAAC;EAC5G,8BAA8B,uBAAuB,EAAE,QAAQ,iCAAiC,CAAC;EACjG,yBAAyB,uBAAuB,EAAE,QAAQ,2BAA2B,CAAC;EACtF,yBAAyB,uBAAuB,EAAE,QAAQ,2BAA2B,CAAC;EACtF,yBAAyB,uBAAuB,EAAE,QAAQ,2BAA2B,CAAC;EACtF,yBAAyB,uBAAuB,EAAE,QAAQ,2BAA2B,CAAC;EACtF,2BAA2B,uBAAuB,EAAE,QAAQ,6BAA6B,CAAC;EAC1F,yBAAyB,uBAAuB,EAAE,QAAQ,2BAA2B,CAAC;EACtF,0BAA0B,uBAAuB,EAAE,QAAQ,4BAA4B,CAAC;EACxF,aAAa,uBAAuB,EAAE,QAAQ,cAAc,CAAC;EAC7D,MAAM,uBAAuB,EAAE,QAAQ,OAAO,CAAC;EAC/C,iCAAiC,uBAAuB,EAAE,QAAQ,mCAAmC,CAAC;EACtG,qBAAqB,uBAAuB,EAAE,QAAQ,uBAAuB,CAAC;EAC9E,uBAAuB,uBAAuB,EAAE,QAAQ,yBAAyB,CAAC;EAClF,sBAAsB,uBAAuB,EAAE,QAAQ,wBAAwB,CAAC;EAChF,qBAAqB,uBAAuB,EAAE,QAAQ,uBAAuB,CAAC;EAC9E,sBAAsB,uBAAuB,EAAE,QAAQ,wBAAwB,CAAC;EAChF,gCAAgC,uBAAuB,EAAE,QAAQ,kCAAkC,CAAC;EACpG,UAAU,uBAAuB,EAAE,QAAQ,aAAa,CAAC;EACzD,eAAe,uBAAuB,EAAE,QAAQ,kBAAkB,CAAC;EACnE,UAAU,uBAAuB,EAAE,QAAQ,aAAa,CAAC;CAC3D;CACA,QAAQ;EACN,2BAA2B,kBAAkB,EAAE,QAAQ,6BAA6B,CAAC,CAAC,CAAC,SAAS;EAChG,wBAAwB,kBAAkB,EAAE,QAAQ,0BAA0B,CAAC,CAAC,CAAC,SAAS;EAC1F,8BAA8B,kBAAkB,EAAE,QAAQ,iCAAiC,CAAC,CAAC,CAAC,SAAS;EACvG,8BAA8B,kBAAkB,EAAE,QAAQ,iCAAiC,CAAC,CAAC,CAAC,SAAS;EACvG,gCAAgC,kBAAkB,EAAE,QAAQ,mCAAmC,CAAC,CAAC,CAAC,SAAS;EAC3G,oBAAoB,kBAAkB,EAAE,QAAQ,sBAAsB,CAAC,CAAC,CAAC,SAAS;EAClF,6BAA6B,kBAAkB,EAAE,QAAQ,gCAAgC,CAAC,CAAC,CAAC,SAAS;EACrG,2BAA2B,kBAAkB,EAAE,QAAQ,8BAA8B,CAAC,CAAC,CAAC,SAAS;EACjG,4BAA4B,kBAAkB,EAAE,QAAQ,+BAA+B,CAAC,CAAC,CAAC,SAAS;EACnG,0BAA0B,kBAAkB,EAAE,QAAQ,4BAA4B,CAAC,CAAC,CAAC,SAAS;EAC9F,4BAA4B,kBAAkB,EAAE,QAAQ,8BAA8B,CAAC,CAAC,CAAC,SAAS;EAClG,0BAA0B,kBAAkB,EAAE,QAAQ,4BAA4B,CAAC,CAAC,CAAC,SAAS;EAC9F,0BAA0B,kBAAkB,EAAE,QAAQ,6BAA6B,CAAC,CAAC,CAAC,SAAS;EAC/F,oBAAoB,kBAAkB,EAAE,QAAQ,sBAAsB,CAAC,CAAC,CAAC,SAAS;EAClF,mBAAmB,uBAAuB,EAAE,QAAQ,qBAAqB,CAAC;EAC1E,kBAAkB,uBAAuB,EAAE,QAAQ,oBAAoB,CAAC;EACxE,gBAAgB,uBAAuB,EAAE,QAAQ,kBAAkB,CAAC;EACpE,gCAAgC,uBAAuB,EAAE,QAAQ,kCAAkC,CAAC;EACpG,UAAU,uBAAuB,EAAE,QAAQ,aAAa,CAAC;EACzD,eAAe,uBAAuB,EAAE,QAAQ,kBAAkB,CAAC;EACnE,UAAU,uBAAuB,EAAE,QAAQ,aAAa,CAAC;CAC3D;AACF,CAAC;AAKiB,KAAK,MAAM;CAC3B,cAAc;EACZ,cAAc,MAAM,UAAU,IAAI,gBAAgB,CAAC;CACrD;CACA,UAAU;EACR,KAAK,OAAO,QAAQ;CACtB;CACA,UAAU,GAAG;EACX,IAAI,MAAM,MAAM,MAAM,IAAI,MAAM,yCAAyC;EACzE,OAAO,KAAK,OAAO,IAAI,CAAC;CAC1B;AACF,GAAG,cAAc,IAAI,QAAQ,OAAO,OAAO,EAAE,UAAU,CACvD,EAAE,CAAC,CAAC;AACJ,IAAI,mBAAmB,KAAK,MAAM;CAChC,cAAc;EACZ,cAAc,MAAM,8BAA8B,IAAI,IAAI,CAAC;EAC3D,cAAc,MAAM,eAAe,KAAK;CAC1C;CACA,UAAU;EACR,IAAI,KAAK,aAAa;EACtB,KAAK,cAAc;EACnB,KAAK,MAAM;CACb;CACA,QAAQ;EACN,IAAI,KAAK,WAAW,SAAS,GAAG;EAChC,IAAI;GACF,KAAK,MAAM,QAAQ,KAAK,YAAY,KAAK,QAAQ;EACnD,UAAU;GACR,KAAK,WAAW,MAAM;EACxB;CACF;CACA,IAAI,GAAG;EACL,IAAI,CAAC,GAAG,OAAO;EACf,IAAI,MAAM,MAAM,MAAM,IAAI,MAAM,yCAAyC;EACzE,IAAI,KAAK,aACH;OAAA,CAAC,GAAG,0BAA0B,QAAQ,sBAAsB,IAAI,MAAM,qHAAqH,EAAA,CAAG,KAAK;EAAA,OAClM,KAAK,WAAW,IAAI,CAAC;EAC5B,OAAO;CACT;AACF,GAAG,cAAc,IAAI,4BAA4B,KAAK,GAAG;AAEtD,eAAe,OACf,eAAe,UACf,eAAe,UACf,eAAe,iBACf,eAAe,gBACf,eAAe,iBACf,eAAe,QACf,eAAe,uBACf,eAAe;AAMsE,UAAU,sBAAsB,QAAQ,sBAAsB,SAAW,UAAU,sBAAsB,MAAM,sBAAsB;AAK1N,mBAAmB,MAAM,UAAU,mBAAmB,MACtD,mBAAmB,QAAQ,UAAU,mBAAmB,QACxD,mBAAmB,UAAU,UAAU,mBAAmB,UAC1D,mBAAmB,aAAa,UAAU,mBAAmB,aAC7D,mBAAmB,OAAO,UAAU,mBAAmB,OACvD,mBAAmB,UAAU,UAAU,mBAAmB,UAC1D,mBAAmB,OAAO,UAAU,mBAAmB,OACvD,mBAAmB,WAAW,UAAU,mBAAmB,WAC3D,mBAAmB,QAAQ,UAAU,mBAAmB,QACxD,mBAAmB,UAAU,UAAU,mBAAmB,UAC1D,mBAAmB,MAAM,UAAU,mBAAmB,MACtD,mBAAmB,OAAO,UAAU,mBAAmB,OACvD,mBAAmB,MAAM,UAAU,mBAAmB,MACtD,mBAAmB,SAAS,UAAU,mBAAmB,SACzD,mBAAmB,SAAS,UAAU,mBAAmB,SACzD,mBAAmB,OAAO,UAAU,mBAAmB,OACvD,mBAAmB,MAAM,UAAU,mBAAmB,MACtD,mBAAmB,WAAW,UAAU,mBAAmB,WAC3D,mBAAmB,QAAQ,UAAU,mBAAmB,QACxD,mBAAmB,YAAY,UAAU,mBAAmB,YAC5D,mBAAmB,UAAU,UAAU,mBAAmB,UAC1D,mBAAmB,QAAQ,UAAU,mBAAmB,QACxD,mBAAmB,OAAO,UAAU,mBAAmB,OACvD,mBAAmB,UAAU,UAAU,mBAAmB,UAC1D,mBAAmB,eAAe,UAAU,mBAAmB;AAMc,kBAAkB,YAAY,UAAU,kBAAkB;AAKvI,UAAU,sBAAsB,QAAQ,sBAAsB,SAC9D,UAAU,sBAAsB,kBAAkB,sBAAsB,kBACxE,UAAU,sBAAsB,iCAAiC,sBAAsB;AAKb,iBAAiB,SAAS,UAAU,6BAA6B;AAM3I,WAAW,MAAM,UAAU,WAAW,MACtC,WAAW,QAAQ,UAAU,WAAW,QACxC,WAAW,WAAW,UAAU,WAAW,WAC3C,WAAW,SAAS,UAAU,WAAW,SACzC,WAAW,OAAO,UAAU,WAAW,OACvC,WAAW,QAAQ,UAAU,WAAW,QACxC,WAAW,UAAU,UAAU,WAAW,UAC1C,WAAW,OAAO,UAAU,WAAW,OACvC,WAAW,aAAa,UAAU,WAAW,aAC7C,WAAW,MAAM,UAAU,WAAW,MACtC,WAAW,WAAW,UAAU,WAAW,WAC3C,WAAW,UAAU,UAAU,WAAW,UAC1C,WAAW,UAAU,UAAU,WAAW,UAC1C,WAAW,UAAU,UAAU,WAAW,UAC1C,WAAW,QAAQ,UAAU,WAAW,QACxC,WAAW,QAAQ,UAAU,WAAW,QACxC,WAAW,SAAS,UAAU,WAAW,SACzC,WAAW,OAAO,UAAU,WAAW,OACvC,WAAW,QAAQ,UAAU,WAAW,QACxC,WAAW,KAAK,UAAU,WAAW,KACrC,WAAW,MAAM,UAAU,WAAW,MACtC,WAAW,YAAY,UAAU,WAAW,YAC5C,WAAW,QAAQ,UAAU,WAAW,QACxC,WAAW,OAAO,UAAU,WAAW,OACvC,WAAW,UAAU,UAAU,WAAW,UAC1C,WAAW,eAAe,UAAU,WAAW;AAKc,UAAU,YAAY,UAAU,UAAU;AAKvG,sBAAsB,MAAM,UAAU,sBAAsB,MAC5D,sBAAsB,MAAM,UAAU,sBAAsB,MAC5D,sBAAsB,OAAO,UAAU,sBAAsB;AAO7D,iBAAiB,SAAS,UAAU,iBAAiB,SACrD,iBAAiB,SAAS,UAAU,iBAAiB,SACrD,iBAAiB,QAAQ,UAAU,iBAAiB;AAOpD,eAAe,OAAO,mBAAmB,OACzC,eAAe,SAAS,mBAAmB,SAC3C,eAAe,MAAM,mBAAmB,aACxC,eAAe,MAAM,mBAAmB;AAMxC,mBAAmB,OAAO,eAAe,OACzC,mBAAmB,SAAS,eAAe,SAC3C,mBAAmB,aAAa,eAAe,MAC/C,mBAAmB,MAAM,eAAe;AAMyB,cAAc,aAAa,UAAU,aAAe,cAAc,YAAY,UAAU;AAKzJ,UAAU,yBAAyB,QAAQ,yBAAyB,SACpE,UAAU,yBAAyB,kBAAkB,yBAAyB,kBAC9E,UAAU,yBAAyB,eAAe,yBAAyB;AAaN,cAAc,MAAM,UAAU,cAAc,MAAQ,cAAc,WAAW,UAAU,cAAc;AAs2ChJ,IAAI,IAAI,CAAC,GAAG,OAAO,OAAO,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AA+Q/F,IAAI,OAAO,cAAc;KACpB,IAAI,OAAO,iBAAiB,aAAa,AAAK;KAC9C,IAAI,OAAO,WAAW,aAAa,AAAK,OAAO,aAAa,OAAO;KACnE,IAAI,OAAO,WAAW,aAAa,AAAK,OAAO,aAAa,OAAO;KACnE,IAAI,OAAO,SAAS,aAAa,AAAK,KAAK,aAAa,KAAK;;;ACjhGlE,IAAM,sBAAsB,CAAC;AAC7B,IAAM,sBAAsB,CAAC;AAC7B,IAAM,qBAAN,MAAM,mBAAmB;CACvB,OAAO,YAAY,YAAY;EAC7B,IAAI,CAAC,oBAAoB,aACvB,oBAAoB,cAAc,IAAI,mBAAmB,UAAU;EAErE,OAAO,oBAAoB;CAC7B;CACA,YAAY,YAAY;EACtB,KAAK,cAAc;EACnB,KAAK,oBAAoB;EACzB,KAAK,mBAAmB,IAAI,SAAS,SAAS,WAAW;GACvD,KAAK,0BAA0B;GAC/B,KAAK,yBAAyB;EAChC,CAAC;CACH;CACA,OAAO;EACL,IAAI,CAAC,KAAK,mBAAmB;GAC3B,KAAK,oBAAoB;GACzB,oBAAoB,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,MAC5C,QAAQ,KAAK,wBAAwB,GAAG,IACxC,QAAQ,KAAK,uBAAuB,GAAG,CAC1C;EACF;EACA,OAAO,KAAK;CACd;AACF;AACA,SAAS,iBAAiB,KAAK;CAC7B,MAAM,aAAa,IAAI;CACvB,oBAAoB,cAAc;CAClC,UAAU,SAAS,GAAG;CACtB,MAAM,qBAAqB,mBAAmB,YAAY,UAAU;CACpE,UAAU,8BAA8B,YAAY,EAClD,QAAQ,YAAY;EAElB,QAAO,MADW,mBAAmB,KAAK,EAAA,CAC/B;CACb,EACF,CAAC;CACD,UAAU,sBAAsB,YAAY,YAAY;EACtD,MAAM,MAAM,MAAM,mBAAmB,KAAK;EAC1C,UAAU,yBAAyB,YAAY,IAAI,IAAI;CACzD,CAAC;AACH;;;AC3CA,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO;CACpB,SAAS,CAAC,QAAQ,MAAM;CACxB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS,CAAC,QAAQ,MAAM;CACxB,WAAW,CAAC,sBAAsB,aAAa;CAC/C,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,QAAQ;CACrB,SAAS,CAAC,aAAa,OAAO;CAC9B,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,QAAQ,MAAM;CAC3B,SAAS,CAAC,SAAS,KAAK;CACxB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,QAAQ;CACrB,SAAS,CAAC,OAAO;CACjB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,QAAQ;CACrB,SAAS,CAAC,UAAU;CACpB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAQ;EAAS;EAAS;CAAM;CAC7C,SAAS,CAAC,WAAW,SAAS;CAC9B,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,SAAS;CACtB,SAAS;EAAC;EAAgB;EAAgB;CAAQ;CAClD,WAAW,CAAC,uBAAuB,mBAAmB;CACtD,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM,IAAI;CACvB,SAAS,CAAC,KAAK,GAAG;CAClB,cAAc,OAAO;AACvB,CAAC;AACD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAQ;EAAO;EAAQ;EAAQ;EAAO;CAAM;CACzD,SAAS;EAAC;EAAO;EAAO;CAAK;CAC7B,cAAc,OAAO;AACvB,CAAC;;;ACXD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAO;EAAQ;CAAO;CACnC,SAAS,CAAC,MAAM,QAAQ;CACxB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS,CAAC,OAAO,KAAK;CACtB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS,CAAC,OAAO,KAAK;CACtB,WAAW,CAAC,UAAU;CACtB,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,WAAW,MAAM;CAC9B,SAAS,CAAC,UAAU,YAAY;CAChC,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO;CACpB,SAAS,CAAC,QAAQ,MAAM;CACxB,WAAW,CAAC,sBAAsB,aAAa;CAC/C,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,aAAa;CAC1B,WAAW,CAAC,YAAY;CACxB,SAAS,CAAC,YAAY;CACtB,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS;EAAC;EAAO;EAAO;CAAK;CAC7B,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO,MAAM;CAC1B,SAAS;EAAC;EAAU;EAAU;CAAI;CAClC,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO;CACpB,SAAS;EAAC;EAAS;EAAQ;EAAS;CAAM;CAC1C,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAO;EAAQ;EAAO;EAAQ;EAAQ;CAAW;CAC9D,SAAS;EAAC;EAAM;EAAU;CAAQ;CAClC,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAQ;EAAS;CAAO;CACrC,SAAS,CAAC,eAAe,oBAAoB;CAC7C,cAAc;EACZ,OAAO,OAAO,4BAAmB,CAAC,MAAM,MAAM,EAAE,0BAA0B;CAC5E;AACF,CAAC;AACD,iBAAiB;CACf,IAAI;CACJ,SAAS,CAAC,8BAA8B,mCAAmC;CAC3E,cAAc;EACZ,OAAO,OAAO,4BAAmB,CAAC,MAAM,MAAM,EAAE,2BAA2B;CAC7E;AACF,CAAC;AACD,iBAAiB;CACf,IAAI;CACJ,SAAS,CAAC,gCAAgC,qCAAqC;CAC/E,cAAc;EACZ,OAAO,OAAO,4BAAmB,CAAC,MAAM,MAAM,EAAE,6BAA6B;CAC/E;AACF,CAAC;AACD,iBAAiB;CACf,IAAI;CACJ,SAAS,CAAC,+BAA+B,oCAAoC;CAC7E,cAAc;EACZ,OAAO,OAAO,4BAAmB,CAAC,MAAM,MAAM,EAAE,4BAA4B;CAC9E;AACF,CAAC;AACD,iBAAiB;CACf,IAAI;CACJ,SAAS,CAAC,iCAAiC,sCAAsC;CACjF,cAAc;EACZ,OAAO,OAAO,4BAAmB,CAAC,MAAM,MAAM,EAAE,8BAA8B;CAChF;AACF,CAAC;AACD,iBAAiB;CACf,IAAI;CACJ,SAAS,CAAC,6BAA6B,kCAAkC;CACzE,cAAc;EACZ,OAAO,OAAO,4BAAmB,CAAC,MAAM,MAAM,EAAE,0BAA0B;CAC5E;AACF,CAAC;AACD,iBAAiB;CACf,IAAI;CACJ,SAAS,CAAC,8BAA8B,mCAAmC;CAC3E,cAAc;EACZ,OAAO,OAAO,4BAAmB,CAAC,MAAM,MAAM,EAAE,2BAA2B;CAC7E;AACF,CAAC;;;ACjDD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,KAAK;CAClB,SAAS,CAAC,IAAI;CACd,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,YAAY,MAAM;CAC/B,SAAS;EAAC;EAAW;EAAW;CAAK;CACrC,WAAW,CAAC,qBAAqB;CACjC,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,eAAe,MAAM;CAClC,SAAS;EAAC;EAAc;EAAc;CAAK;CAC3C,WAAW,CAAC,4BAA4B;CACxC,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAO;EAAW;CAAM;CACrC,SAAS;EAAC;EAAa;EAAM;EAAO;CAAK;CACzC,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAS;EAAQ;EAAU;EAAU;EAAS;EAAQ;EAAQ;EAAS;CAAQ;CAC5F,SAAS;EAAC;EAAQ;EAAO;EAAQ;CAAO;CACxC,WAAW;EAAC;EAAa;EAAgB;EAAiB;CAAkB;CAC5E,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAQ;EAAe;CAAY;CAChD,WAAW;EAAC;EAAU;EAAkB;EAAc;CAAe;CACrE,SAAS,CAAC,OAAO,KAAK;CACtB,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,SAAS,MAAM;CAC5B,SAAS,CAAC,QAAQ,MAAM;CACxB,WAAW,CAAC,sBAAsB,aAAa;CAC/C,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAO;EAAQ;EAAQ;EAAQ;CAAM;CAClD,WAAW;CACX,WAAW,CAAC,UAAU;CACtB,SAAS;EAAC;EAAc;EAAc;CAAI;CAC1C,WAAW,CAAC,iBAAiB;CAC7B,cAAc,OAAO;AACvB,CAAC;;;ACRD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,KAAK;CAClB,SAAS,CAAC,SAAS,OAAO;CAC1B,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO,MAAM;CAC1B,SAAS,CAAC,UAAU,QAAQ;CAC5B,WAAW,CAAC,wBAAwB,eAAe;CACnD,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO;CACpB,SAAS,CAAC,QAAQ,MAAM;CACxB,WAAW,CAAC,eAAe,WAAW;CACtC,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS,CAAC,OAAO;CACjB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS,CAAC,OAAO,KAAK;CACtB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,WAAW,cAAc;CACtC,SAAS,CAAC,UAAU,QAAQ;CAC5B,WAAW,CAAC,oBAAoB;CAChC,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAO;EAAO;EAAO;CAAK;CACvC,SAAS;EAAC;EAAY;EAAW;EAAW;CAAI;CAChD,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAO;EAAa;EAAU;EAAS;EAAQ;EAAS;EAAU;CAAS;CACxF,SAAS,CAAC,YAAY,UAAU;CAChC,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS,CAAC,OAAO,KAAK;CACtB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,IAAI;CACjB,SAAS,CAAC,QAAQ,QAAQ;CAC1B,WAAW;EAAC;EAAe;EAAa;CAAgB;CACxD,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,QAAQ,QAAQ;CAC7B,SAAS,CAAC,OAAO,OAAO;CACxB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC;CACb,SAAS,CAAC,SAAS,OAAO;CAC1B,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,IAAI;CACjB,SAAS,CAAC,aAAa;CACvB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAQ;EAAM;CAAK;CAChC,SAAS,CAAC,UAAU,KAAK;CACzB,WAAW,CAAC,wBAAwB,eAAe;CACnD,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO;CACpB,SAAS,CAAC,aAAa,MAAM;CAC7B,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO,KAAK;CACzB,SAAS,CAAC,QAAQ,IAAI;CACtB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC;CACb,SAAS;EAAC;EAAc;EAAY;EAAM;CAAS;CACnD,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAQ;EAAS;EAAS;EAAU;CAAM;CACvD,SAAS,CAAC,OAAO,KAAK;CACtB,WAAW,CAAC,mBAAmB;CAC/B,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,cAAc,OAAO;AACvB,CAAC;;;ACJD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAS;EAAS;CAAO;CACtC,SAAS,CAAC,OAAO,cAAc;CAC/B,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO,MAAM;CAC1B,SAAS;EAAC;EAAM;EAAK;EAAe;CAAe;CACnD,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAQ;EAAS;CAAO;CACrC,SAAS;EAAC;EAAc;EAAc;EAAM;CAAK;CACjD,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,QAAQ;CACrB,SAAS,CAAC,YAAY,kBAAkB;CACxC,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,SAAS,MAAM;CAC5B,SAAS;EAAC;EAAO;EAAQ;CAAM;CAC/B,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAO;EAAQ;EAAQ;EAAQ;EAAQ;CAAO;CAC3D,SAAS,CAAC,UAAU,IAAI;CACxB,WAAW;CACX,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,KAAK;CAClB,SAAS,CAAC,MAAM,QAAQ;CACxB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAM;EAAa;EAAQ;EAAa;CAAK;CAC1D,SAAS,CAAC,KAAK,GAAG;CAClB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,SAAS;CACtB,SAAS,CAAC,SAAS,OAAO;CAC1B,WAAW,CAAC,eAAe;CAC3B,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,QAAQ;CACrB,SAAS,CAAC,OAAO;CACjB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC;CACb,SAAS,CAAC,YAAY,UAAU;CAChC,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS,CAAC,oBAAoB,kBAAkB;CAChD,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAO;EAAQ;EAAQ;EAAY;CAAK;CACrD,WAAW,CAAC,YAAY,SAAS;CACjC,SAAS,CAAC,QAAQ,IAAI;CACtB,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO,OAAO;CAC3B,SAAS,CAAC,QAAQ,MAAM;CACxB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,KAAK;CAClB,SAAS,CAAC,eAAe,IAAI;CAC7B,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAU;EAAO;CAAM;CACpC,SAAS;EAAC;EAAS;EAAS;EAAO;EAAO;EAAO;EAAS;CAAO;CACjE,WAAW;EAAC;EAAuB;EAAgB;EAAc;CAAc;CAC/E,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAQ;EAAO;EAAQ;CAAM;CAC1C,SAAS,CAAC,UAAU,QAAQ;CAC5B,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO;CACpB,SAAS;EAAC;EAAQ;EAAQ;CAAM;CAChC,WAAW,CAAC,eAAe,WAAW;CACtC,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO,OAAO;CAC3B,SAAS,CAAC,SAAS,IAAI;CACvB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS;EAAC;EAAO;EAAY;CAAU;CACvC,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS;EAAC;EAAO;EAAU;CAAQ;CACnC,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,KAAK;CAClB,SAAS,CAAC,UAAU,QAAQ;CAC5B,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS,CAAC,KAAK;CACf,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAO;EAAU;EAAW;EAAW;EAAU;EAAU;EAAU;CAAO;CACzF,SAAS;EAAC;EAAkB;EAAO;CAAK;CACxC,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,SAAS,CAAC,SAAS,OAAO;CAC1B,YAAY,CAAC,QAAQ;CACrB,WAAW,CAAC,YAAY;CACxB,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO,MAAM;CAC1B,SAAS;EAAC;EAAM;EAAM;EAAiB;CAAe;CACtD,cAAc,OAAO;AACvB,CAAC;AACD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM,KAAK;CACxB,SAAS;EAAC;EAAK;EAAK;EAAW;CAAS;CACxC,cAAc,OAAO;AACvB,CAAC;;;ACXD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS;EAAC;EAAO;EAAO;EAAS;EAAS;EAAU;CAAQ;CAC5D,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO;CACpB,SAAS,CAAC,QAAQ,MAAM;CACxB,WAAW,CAAC,aAAa;CACzB,cAAc,OAAO;AACvB,CAAC;;;ACND,iBAAiB;CACf,IAAI;CACJ,YAAY;EAAC;EAAO;EAAQ;EAAQ;CAAM;CAC1C,SAAS;EAAC;EAAc;EAAM;CAAY;CAC1C,WAAW,CAAC,iBAAiB;CAC7B,cAAc;EACZ,OAAO,OAAO;CAChB;AACF,CAAC;;;ACRD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,MAAM;CACnB,SAAS,CAAC,UAAU;CACpB,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,KAAK;CAClB,SAAS,CAAC,gBAAgB,IAAI;CAC9B,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,OAAO;CACpB,SAAS;EAAC;EAA2B;EAAQ;CAAM;CACnD,cAAc,OAAO;AACvB,CAAC;;;ACLD,iBAAiB;CACf,IAAI;CACJ,YAAY;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,WAAW;CACX,SAAS,CAAC,OAAO,KAAK;CACtB,WAAW;EAAC;EAAY;EAAmB;EAAwB;CAAqB;CACxF,cAAc,OAAO;AACvB,CAAC;;;ACzBD,iBAAiB;CACf,IAAI;CACJ,YAAY,CAAC,SAAS,MAAM;CAC5B,SAAS;EAAC;EAAQ;EAAQ;EAAO;CAAK;CACtC,WAAW,CAAC,sBAAsB,aAAa;CAC/C,cAAc,OAAO;AACvB,CAAC;;;ACND,IAAMA,gCAAN,MAAkC;CAChC,YAAY,YAAY,SAAS,mBAAmB;EAClD,KAAK,eAAe,IAAI,QAAQ;EAChC,KAAK,cAAc;EACnB,KAAK,WAAW,OAAO;EACvB,KAAK,qBAAqB,iBAAiB;CAC7C;CACA,IAAI,cAAc;EAChB,OAAO,KAAK,aAAa;CAC3B;CACA,IAAI,aAAa;EACf,OAAO,KAAK;CACd;CACA,IAAI,oBAAoB;EACtB,OAAO,KAAK;CACd;CACA,IAAI,qBAAqB;EACvB,OAAO,KAAK;CACd;CACA,IAAI,UAAU;EACZ,OAAO,KAAK;CACd;CACA,WAAW,SAAS;EAClB,KAAK,WAAW,WAA2B,uBAAO,OAAO,IAAI;EAC7D,KAAK,aAAa,KAAK,IAAI;CAC7B;CACA,sBAAsB,SAAS;EAC7B,KAAK,WAAW,OAAO;CACzB;CACA,qBAAqB,mBAAmB;EACtC,KAAK,qBAAqB,qBAAqC,uBAAO,OAAO,IAAI;EACjF,KAAK,aAAa,KAAK,IAAI;CAC7B;AACF;AACA,IAAMC,mBAAiB;CACrB,UAAU;CACV,MAAM;EACJ,0BAA0B;EAC1B,cAAc;EACd,qBAAqB;EACrB,YAAY;EACZ,iBAAiB;EACjB,UAAU;EACV,mBAAmB;EACnB,WAAW;EACX,oBAAoB;EACpB,gBAAgB;EAChB,0BAA0B;EAC1B,mBAAmB;EACnB,QAAQ;EACR,iCAAiC;EACjC,6BAA6B;EAC7B,WAAW;EACX,OAAO;EACP,YAAY;CACd;CACA,MAAM,EAAE,wBAAwB,KAAK;CACrC,QAAQ;EACN,yBAAyB;EACzB,qBAAqB;EACrB,8BAA8B;EAC9B,YAAY;EACZ,qBAAqB,KAAK;EAC1B,kBAAkB;CACpB;AACF;AACA,IAAM,2BAA2B;CAC/B,iBAAiB;CACjB,QAAQ;CACR,iBAAiB;CACjB,aAAa;CACb,YAAY;CACZ,oBAAoB;CACpB,QAAQ;CACR,QAAQ;CACR,eAAe;CACf,aAAa;CACb,iBAAiB;CACjB,yBAAyB;CACzB,8BAA8B;AAChC;AACA,IAAM,cAAc,IAAID,8BACtB,OACAC,kBACA,wBACF;AACA,IAAM,eAAe,IAAID,8BACvB,QACAC,kBACA,wBACF;AACA,IAAM,eAAe,IAAID,8BACvB,QACAC,kBACA,wBACF;AACA,SAASC,YAAU;CACjB,OAAO,OAAO;AAChB;AACA,UAAU,WAAW,cAAc;CACjC,UAAQ,CAAC,CAAC,MAAM,UAAU,MAAM,UAAU,YAAY,CAAC;AACzD,CAAC;AACD,UAAU,WAAW,cAAc;CACjC,UAAQ,CAAC,CAAC,MAAM,UAAU,MAAM,UAAU,YAAY,CAAC;AACzD,CAAC;AACD,UAAU,WAAW,aAAa;CAChC,UAAQ,CAAC,CAAC,MAAM,UAAU,MAAM,UAAU,WAAW,CAAC;AACxD,CAAC;;;AC3GD,IAAMC,gCAAN,MAAkC;CAChC,YAAY,YAAY,SAAS,mBAAmB;EAClD,KAAK,eAAe,IAAI,QAAQ;EAChC,KAAK,cAAc;EACnB,KAAK,WAAW,OAAO;EACvB,KAAK,qBAAqB,iBAAiB;CAC7C;CACA,IAAI,cAAc;EAChB,OAAO,KAAK,aAAa;CAC3B;CACA,IAAI,aAAa;EACf,OAAO,KAAK;CACd;CACA,IAAI,UAAU;EACZ,OAAO,KAAK;CACd;CACA,IAAI,oBAAoB;EACtB,OAAO,KAAK;CACd;CACA,WAAW,SAAS;EAClB,KAAK,WAAW,WAA2B,uBAAO,OAAO,IAAI;EAC7D,KAAK,aAAa,KAAK,IAAI;CAC7B;CACA,qBAAqB,mBAAmB;EACtC,KAAK,qBAAqB,qBAAqC,uBAAO,OAAO,IAAI;EACjF,KAAK,aAAa,KAAK,IAAI;CAC7B;AACF;AAeA,IAAM,iBAAiB;CACrB,QAAQ;EAdR,SAAS;EACT,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,oBAAoB;EACpB,iBAAiB;EACjB,kBAAkB;EAClB,qBAAqB,KAAK;EAC1B,kBAAkB;EAClB,gBAAgB;EAChB,aAAa;EACb,gBAAgB;CAGK;CACrB,SAAS,CAAC;CACV,MAAM,EAAE,wBAAwB,KAAK;AACvC;AACA,SAAS,wBAAwB,YAAY;CAC3C,OAAO;EACL,iBAAiB;EACjB,QAAQ;EACR,iBAAiB;EACjB,OAAO;EACP,oBAAoB;EACpB,QAAQ;EACR,QAAQ;EACR,eAAe;EACf,iBAAiB;EACjB,aAAa,eAAe;EAE5B,yBAAyB,eAAe;EAExC,8BAA8B,eAAe;CAE/C;AACF;AACA,IAAM,iBAAiB;AACvB,IAAM,uBAAuB;AAC7B,IAAM,kBAAkB;AACI,4BAC1B,gBACA,gBACA,wBAAwB,cAAc,CAEnB,CAAA,CAAoB;AACR,4BAC/B,sBACA,gBACA,wBAAwB,oBAAoB,CAEpB,CAAA,CAAyB;AACtB,4BAC3B,iBACA,gBACA,wBAAwB,eAAe,CAEnB,CAAA,CAAqB;AAC3C,SAASC,YAAU;CACjB,OAAO,OAAO;AAChB;AACA,SAAS,4BAA4B,YAAY,UAAU,gBAAgB,oBAAoB,wBAAwB,UAAU,GAAG;CAClI,MAAM,WAAW,IAAID,8BAA4B,YAAY,SAAS,iBAAiB;CACvF,IAAI;CACJ,MAAM,qBAAqB,UAAU,WAAW,YAAY,YAAY;EACtE,SAAS,MAAMC,UAAQ,EAAA,CAAG,UAAU,QAAQ;CAC9C,CAAC;CACD,OAAO;EACL;EACA,UAAU;GACR,mBAAmB,QAAQ;GAC3B,OAAO,QAAQ;GACf,QAAQ,KAAK;EACf;CACF;AACF;;;ACxGA,IAAM,8BAAN,MAAkC;CAChC,YAAY,YAAY,oBAAoB,mBAAmB;EAC7D,KAAK,eAAe,IAAI,QAAQ;EAChC,KAAK,cAAc;EACnB,KAAK,sBAAsB,kBAAkB;EAC7C,KAAK,qBAAqB,iBAAiB;CAC7C;CACA,IAAI,cAAc;EAChB,OAAO,KAAK,aAAa;CAC3B;CACA,IAAI,aAAa;EACf,OAAO,KAAK;CACd;CACA,IAAI,oBAAoB;EACtB,OAAO,KAAK;CACd;CACA,IAAI,qBAAqB;EACvB,OAAO,KAAK;CACd;CACA,sBAAsB,SAAS;EAC7B,KAAK,sBAAsB,WAA2B,uBAAO,OAAO,IAAI;EACxE,KAAK,aAAa,KAAK,IAAI;CAC7B;CACA,qBAAqB,mBAAmB;EACtC,KAAK,qBAAqB,qBAAqC,uBAAO,OAAO,IAAI;EACjF,KAAK,aAAa,KAAK,IAAI;CAC7B;AACF;AAuBA,IAAM,eAAe,IAAI,4BACvB,QACA;CAvBA,UAAU;CACV,eAAe;CACf,SAAS,CAAC;CACV,qBAAqB;CACrB,eAAe;CACf,kBAAkB;CAClB,UAAU;CACV,gBAAgB;AAgBA,GAChB;CAdA,yBAAyB;CACzB,8BAA8B;CAC9B,iBAAiB;CACjB,QAAQ;CACR,iBAAiB;CACjB,QAAQ;CACR,QAAQ;CACR,eAAe;CACf,aAAa;CACb,iBAAiB;AAKM,CACzB;AAEA,SAAS,UAAU;CACjB,OAAO,OAAO;AAChB;AACA,UAAU,SAAS;CACjB,IAAI;CACJ,YAAY;EAAC;EAAS;EAAY;EAAa;EAAW;EAAa;EAAY;CAAM;CACzF,SAAS,CAAC,QAAQ,MAAM;CACxB,WAAW,CAAC,kBAAkB;AAChC,CAAC;AACD,UAAU,WAAW,cAAc;CACjC,QAAQ,CAAC,CAAC,MAAM,UAAU,MAAM,UAAU,YAAY,CAAC;AACzD,CAAC;;;AClED,IAAM,mBAAmB;AACzB,IAAM,sBAAsB;AAC5B,SAAS,2BAA2B,QAAQ,SAAS;CACnD,MAAM,UAAU,QAAQ;CACxB,IAAI,CAAC,SACH;CAEF,MAAM,oBAAoB,QAAQ,iBAAiB,qEAAiE;CACpH,KAAK,MAAM,WAAW,mBAAmB;EACvC,IAAI,EAAE,mBAAmB,cACvB;EAEF,IAAI,SAAS;GACX,IAAI,EAAE,uBAAuB,QAAQ,UACnC;GAEF,MAAM,mBAAmB,QAAQ,QAAQ;GACzC,IAAI,qBAAqB,IACvB,QAAQ,gBAAgB,UAAU;QAElC,QAAQ,WAAW,OAAO,gBAAgB;GAE5C,OAAO,QAAQ,QAAQ;EACzB,OAAO;GACL,IAAI,EAAE,uBAAuB,QAAQ,UACnC,QAAQ,QAAQ,uBAAuB,QAAQ,aAAa,UAAU,KAAK;GAE7E,QAAQ,WAAW;EACrB;CACF;AACF;AACA,IAAI,CAAC,WAAW,mBAAmB;CACjC,MAAM,iBAAiB,WAAW,UAAU;CAC5C,MAAM,eAAe,WAAW,UAAU;CAC1C,WAAW,UAAU,UAAU,SAAS,GAAG,MAAM;EAC/C,eAAe,MAAM,MAAM,IAAI;EAC/B,2BAA2B,MAAM,IAAI;CACvC;CACA,WAAW,UAAU,QAAQ,SAAS,GAAG,MAAM;EAC7C,aAAa,MAAM,MAAM,IAAI;EAC7B,2BAA2B,MAAM,KAAK;CACxC;CACA,WAAW,oBAAoB;AACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjCA,IAAM,oCAAoB,IAAI,IAAY;;;;;AAM1C,SAAgB,4BAAkC;CAChD,MAAM,gBACJ,qBAAqB,iBAA4C,eAAe;CAElF,KAAK,MAAM,gBAAgB,eAAe;EACxC,MAAM,KAAK,aAAa;EACxB,IAAI,CAAC,MAAM,kBAAkB,IAAI,EAAE,GAAG;EAGtC,IAAI,CAAA,UADkC,aAAa,CAAC,CAAC,MAAM,SAAS,KAAK,OAAO,EAC3E,GACH,UAAiB,SAAS;GACxB;GACA,YAAY,aAAa;GACzB,SAAS,aAAa;GACtB,WAAW,aAAa;EAC1B,CAAC;EAGH,IAAI,aAAa,MACf,UAAiB,yBAAyB,IAAI,aAAa,IAAI;EAEjE,UAAiB,yBAAyB,IAAI,aAAa,QAAQ;EACnE,kBAAkB,IAAI,EAAE;CAC1B;AACF;AAEA,IAAI,YAAY;AAEhB,SAAgB,2BAAiC;CAC/C,IAAI,WAAW;CACf,YAAY;CACZ,UAAU,+BAA+B,UAAmC;EAC1E,IAAI,MAAM,WAAA,mBAA4B;EACtC,0BAA0B;CAC5B,CAAC;AACH;;;ACtCA,SAAS,gBAAgB,GAAY,OAAuB;CACxD,QAAQ,OAAR;EACI,KAAK,QAAQ,OAAO,IAAIK,gBAAW;EACnC,KAAK;EACL,KAAK;EACL,KAAK,QAAQ,OAAO,IAAIC,gBAAU;EAClC,KAAK;EACL,KAAK;EACL,KAAK,SAAS,OAAO,IAAIC,gBAAW;EACpC,KAAK;EACL,KAAK,cAAc,OAAO,IAAIC,cAAS;EACvC,SAAS,OAAO,IAAIC,gBAAa;CACrC;AACJ;AAEA,KAAK,oBAAoB,EAAE,WAAW,gBAAgB;AAEtD,yBAAyB;AAGlB,IAAM,oBAAN,MAAM,0BAA0B,WAAW;;;EAW1B,KAAA,WAAA;EAGJ,KAAA,QAAA;EAGH,KAAA,aAAA;EAEU,KAAA,eAAA,UAAuB;;CAM9C,iBAAiC;EAC7B,MAAM,OAAO,SAAS;EACtB,IAAI,KAAK,UAAU,SAAS,SAAS,GAAG,OAAO;EAC/C,IAAI,KAAK,UAAU,SAAS,UAAU,GAAG,OAAO;EAChD,OAAO;CACX;CAEA,qBAAmC;EAC/B,MAAM,cAAc,SAAS;EAC7B,IAAI,eAAe,KAAK,eAAe;EAEvC,KAAK,gBAAgB,IAAI,uBAAuB;GAC5C,MAAM,WAAW,KAAK,eAAe;GACrC,IAAI,aAAa,cAAc;IAC3B,eAAe;IACf,OAAc,SAAS,QAAQ;GACnC;EACJ,CAAC;EAED,KAAK,cAAc,QAAQ,aAAa;GACpC,YAAY;GACZ,iBAAiB,CAAC,OAAO;EAC7B,CAAC;CACL;CAEA,eAAuB;EACnB,MAAM,YAAY,KAAK,aAAa;EACpC,IAAI,CAAC,aAAa,KAAK,QAAQ;EAC/B,IAAI,KAAK,UAAU,KAAA,GAAW;EAE9B,0BAA0B;EAE1B,MAAM,MAAM,KAAK,OAAO,OAAA,IAAkB,KAAK,KAAK,GAAG,IAAI,KAAA;EAC3D,KAAK,QAAA,OAAsB,YAAY,KAAK,OAAO,KAAK,UAAU,GAAG;EACrE,KAAK,SAAA,OAAuB,OAAO,WAAW;GAC1C,OAAO,KAAK,eAAe;GAC3B,iBAAiB,KAAK;GACtB,SAAS,EAAE,SAAS,MAAM;GAC1B,sBAAsB;EAC1B,CAAC;EACD,KAAK,MAAM,yBAAyB;GAChC,IAAI,KAAK,UAAU;GACnB,KAAK,cAAc,IAAI,YAAY,kBAAkB;IAAE,SAAS;IAAM,UAAU;GAAK,CAAC,CAAC;EAC3F,CAAC;EACD,KAAK,OAAO,SAAS,KAAK,KAAK;EAC/B,KAAK,OAAO,2BAA2B;GACnC,KAAK,cAAc,IAAI,YAAY,gBAAgB;IAAE,SAAS;IAAM,UAAU;GAAK,CAAC,CAAC;EACzF,CAAC;EACD,KAAK,OAAO,0BAA0B;GAClC,KAAK,cAAc,IAAI,YAAY,eAAe;IAAE,SAAS;IAAM,UAAU;GAAK,CAAC,CAAC;EACxF,CAAC;EACD,KAAK,OAAO,6BAA6B;GACrC,MAAM,SAAS,KAAK,QAAQ,iBAAiB,KAAK;GAClD,KAAK,cAAc,IAAI,YAAY,0BAA0B;IAAE,QAAQ,EAAE,OAAO;IAAG,SAAS;IAAM,UAAU;GAAK,CAAC,CAAC;EACvH,CAAC;EACD,KAAK,iBAAiB,IAAI,qBAAqB,KAAK,QAAQ,OAAO,CAAC;EACpE,KAAK,eAAe,QAAQ,SAAS;EACrC,KAAK,mBAAmB;CAC5B;CAEA,aAAuB,oBAAoC;EACvD,MAAM,aAAa,kBAAkB;EACrC,KAAK,aAAa;CACtB;CAEA,QAAkB,mBAAmC;EACjD,MAAM,QAAQ,iBAAiB;EAC/B,IAAI,kBAAkB,IAAI,OAAO,KAAK,kBAAkB,IAAI,UAAU,KAAK,kBAAkB,IAAI,KAAK,GAClG,KAAK,aAAa;CAE1B;CAEA,uBAAuB;EACnB,KAAK,QAAQ;EACb,MAAM,qBAAqB;CAC/B;CAEA,UAAiB;EACb,KAAK,gBAAgB,WAAW;EAChC,KAAK,iBAAiB,KAAA;EACtB,KAAK,eAAe,WAAW;EAC/B,KAAK,gBAAgB,KAAA;EACrB,KAAK,OAAO,QAAQ;EACpB,KAAK,QAAQ,QAAQ;EACrB,KAAK,QAAQ,KAAA;EACb,KAAK,SAAS,KAAA;CAClB;CAEA,YAAoE;EAChE,OAAO,KAAK;CAChB;CAEA,mBAAkC;EAC9B,OAAO,KAAK,QAAQ,iBAAiB,KAAK;CAC9C;CAEA,SAAsB;EAClB,KAAK,QAAQ,OAAO;CACxB;CAEA,WAAwD;EACpD,OAAO,KAAK;CAChB;CAEA,aAAmC;EAC/B,OAAO,KAAK,OAAO,SAAS,KAAK;CACrC;CAEA,cAAoC;EAChC,OAAO,KAAK,OAAO,cAAc,CAAC,EAAE,YAAY,KAAK;CACzD;CAEA,WAAkB,MAAuB;EACrC,OAAO,KAAK,YAAY,MAAM,KAAK,YAAY;CACnD;CAEA,eAAqC;EACjC,IAAI,CAAC,KAAK,UAAU,CAAC,KAAK,OAAO,OAAO;EACxC,IAAI;GACA,MAAM,YAAY,KAAK,OAAO,aAAa;GAC3C,IAAI,CAAC,aAAa,UAAU,QAAQ,GAAG,OAAO;GAC9C,OAAO,KAAK,MAAM,gBAAgB,SAAS,KAAK;EACpD,QAAQ;GACJ,OAAO;EACX;CACJ;CAEA,WAAkB,QAAgB,GAAmD;EACjF,IAAI,CAAC,KAAK,UAAU,CAAC,KAAK,OAAO,OAAO;EACxC,IAAI;GACA,MAAM,WAAW,KAAK,OAAO,YAAY;GACzC,IAAI,CAAC,UAAU,OAAO;GACtB,MAAM,IAAI,MAAM,KAAK,KAAK,QAAQ,IAAI,IAAI;GAC1C,MAAM,mBAAmB,SAAS;GAClC,MAAM,aAAa,KAAK,MAAM,aAAa;GAC3C,MAAM,YAAY,KAAK,IAAI,GAAG,mBAAmB,CAAC;GAClD,MAAM,UAAU,KAAK,IAAI,YAAY,mBAAmB,CAAC;GAOzD,OAAO;IAAE,SANO,KAAK,MAAM,gBAAgB;KACvC,iBAAiB;KACjB,aAAa;KACb,eAAe;KACf,WAAW,KAAK,MAAM,iBAAiB,OAAO;IAClD,CACS;IAAS,YAAY;GAAiB;EACnD,QAAQ;GACJ,OAAO;EACX;CACJ;CAEA,SAAS;EACL,OAAO,IAAI;qBACEC,oBAAO;mDACuB,IAAI,KAAK,YAAY,EAAE;;CAEtE;;EAEgB,KAAA,SAAA,GAAG;;;;;;;;;;;;;;;;;;;;AAmBvB;AAvMK,UAAA,CAAA,SAAS,EAAE,WAAW,MAAM,CAAC,CAAA,GAAA,kBAAA,WAAA,SAAA,KAAA,CAAA;AAG7B,UAAA,CAAA,SAAS,CAAA,GAAA,kBAAA,WAAA,YAAA,KAAA,CAAA;AAGT,UAAA,CAAA,SAAS,CAAA,GAAA,kBAAA,WAAA,OAAA,KAAA,CAAA;AAGT,UAAA,CAAA,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,kBAAA,WAAA,YAAA,KAAA,CAAA;AAG1B,UAAA,CAAA,SAAS,CAAA,GAAA,kBAAA,WAAA,SAAA,KAAA,CAAA;AAGT,UAAA,CAAA,SAAS;CAAE,MAAM;CAAS,WAAW;AAAc,CAAC,CAAA,GAAA,kBAAA,WAAA,cAAA,KAAA,CAAA;AAjBxD,oBAAA,UAAA,CAAA,cAAc,qBAAqB,CAAA,GAAA,iBAAA"}
1
+ {"version":3,"file":"monaco-widget-vQSNeFxK.js","names":["LanguageServiceDefaultsImpl","optionsDefault","getMode","LanguageServiceDefaultsImpl","getMode","styles"],"sources":["../../../node_modules/monaco-editor/esm/external/monaco-lsp-client/out/index.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/_.contribution.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/abap/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/apex/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/azcli/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/bat/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/bicep/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/cameligo/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/clojure/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/coffee/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/cpp/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/csharp/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/csp/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/css/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/cypher/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/dart/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/dockerfile/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/ecl/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/elixir/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/flow9/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/fsharp/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/freemarker2/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/go/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/graphql/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/handlebars/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/hcl/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/html/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/ini/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/java/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/javascript/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/julia/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/kotlin/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/less/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/lexon/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/lua/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/liquid/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/m3/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/markdown/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/mdx/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/mips/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/msdax/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/mysql/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/objective-c/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/pascal/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/pascaligo/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/perl/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/pgsql/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/php/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/pla/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/postiats/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/powerquery/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/powershell/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/protobuf/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/pug/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/python/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/qsharp/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/r/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/razor/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/redis/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/redshift/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/restructuredtext/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/ruby/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/rust/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/sb/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/scala/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/scheme/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/scss/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/shell/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/solidity/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/sophia/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/sparql/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/sql/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/st/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/swift/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/systemverilog/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/tcl/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/twig/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/typescript/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/typespec/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/vb/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/wgsl/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/xml/register.js","../../../node_modules/monaco-editor/esm/vs/languages/definitions/yaml/register.js","../../../node_modules/monaco-editor/esm/vs/languages/features/css/register.js","../../../node_modules/monaco-editor/esm/vs/languages/features/html/register.js","../../../node_modules/monaco-editor/esm/vs/languages/features/json/register.js","../../../node_modules/monaco-editor/esm/vs/features/find/register.js","../src/monaco-grammars.ts","../src/monaco-widget.ts"],"sourcesContent":["import '../../../vs/editor/browser/coreCommands.js';\nimport '../../../vs/editor/browser/widget/codeEditor/codeEditorWidget.js';\nimport '../../../vs/editor/browser/widget/diffEditor/diffEditor.contribution.js';\nimport '../../../vs/editor/contrib/anchorSelect/browser/anchorSelect.js';\nimport '../../../vs/editor/contrib/bracketMatching/browser/bracketMatching.js';\nimport '../../../vs/editor/contrib/caretOperations/browser/caretOperations.js';\nimport '../../../vs/editor/contrib/caretOperations/browser/transpose.js';\nimport '../../../vs/editor/contrib/clipboard/browser/clipboard.js';\nimport '../../../vs/editor/contrib/codeAction/browser/codeActionContributions.js';\nimport '../../../vs/editor/contrib/codelens/browser/codelensController.js';\nimport '../../../vs/editor/contrib/colorPicker/browser/colorPickerContribution.js';\nimport '../../../vs/editor/contrib/comment/browser/comment.js';\nimport '../../../vs/editor/contrib/contextmenu/browser/contextmenu.js';\nimport '../../../vs/editor/contrib/cursorUndo/browser/cursorUndo.js';\nimport '../../../vs/editor/contrib/dnd/browser/dnd.js';\nimport '../../../vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js';\nimport '../../../vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js';\nimport '../../../vs/editor/contrib/find/browser/findController.js';\nimport '../../../vs/editor/contrib/folding/browser/folding.js';\nimport '../../../vs/editor/contrib/fontZoom/browser/fontZoom.js';\nimport '../../../vs/editor/contrib/format/browser/formatActions.js';\nimport '../../../vs/editor/contrib/documentSymbols/browser/documentSymbols.js';\nimport '../../../vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js';\nimport '../../../vs/editor/contrib/inlineProgress/browser/inlineProgress.js';\nimport '../../../vs/editor/contrib/gotoSymbol/browser/goToCommands.js';\nimport '../../../vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js';\nimport '../../../vs/editor/contrib/gotoError/browser/gotoError.js';\nimport '../../../vs/editor/contrib/gotoError/browser/markerSelectionStatus.js';\nimport '../../../vs/editor/contrib/gpu/browser/gpuActions.js';\nimport '../../../vs/editor/contrib/hover/browser/hoverContribution.js';\nimport '../../../vs/editor/contrib/indentation/browser/indentation.js';\nimport '../../../vs/editor/contrib/inlayHints/browser/inlayHintsContribution.js';\nimport '../../../vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js';\nimport '../../../vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js';\nimport '../../../vs/editor/contrib/lineSelection/browser/lineSelection.js';\nimport '../../../vs/editor/contrib/linesOperations/browser/linesOperations.js';\nimport '../../../vs/editor/contrib/linkedEditing/browser/linkedEditing.js';\nimport '../../../vs/editor/contrib/links/browser/links.js';\nimport '../../../vs/editor/contrib/longLinesHelper/browser/longLinesHelper.js';\nimport '../../../vs/editor/contrib/middleScroll/browser/middleScroll.contribution.js';\nimport '../../../vs/editor/contrib/multicursor/browser/multicursor.js';\nimport '../../../vs/editor/contrib/parameterHints/browser/parameterHints.js';\nimport '../../../vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js';\nimport '../../../vs/editor/contrib/rename/browser/rename.js';\nimport '../../../vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js';\nimport '../../../vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js';\nimport '../../../vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.js';\nimport '../../../vs/editor/contrib/smartSelect/browser/smartSelect.js';\nimport '../../../vs/editor/contrib/snippet/browser/snippetController2.js';\nimport '../../../vs/editor/contrib/stickyScroll/browser/stickyScrollContribution.js';\nimport '../../../vs/editor/contrib/suggest/browser/suggestController.js';\nimport '../../../vs/editor/contrib/suggest/browser/suggestInlineCompletions.js';\nimport '../../../vs/editor/contrib/tokenization/browser/tokenization.js';\nimport '../../../vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js';\nimport '../../../vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js';\nimport '../../../vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js';\nimport '../../../vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js';\nimport '../../../vs/editor/contrib/wordOperations/browser/wordOperations.js';\nimport '../../../vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js';\nimport '../../../vs/editor/contrib/readOnlyMessage/browser/contribution.js';\nimport '../../../vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js';\nimport '../../../vs/editor/contrib/floatingMenu/browser/floatingMenu.contribution.js';\nimport '../../../vs/editor/common/standaloneStrings.js';\nimport '../../../vs/base/browser/ui/codicons/codicon/codicon.css';\nimport '../../../vs/base/browser/ui/codicons/codicon/codicon-modifiers.css';\nimport '../../../vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js';\nimport '../../../vs/editor/standalone/browser/inspectTokens/inspectTokens.js';\nimport '../../../vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js';\nimport '../../../vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js';\nimport '../../../vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js';\nimport '../../../vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js';\nimport '../../../vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js';\nimport '../../../vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.js';\nimport { languages, MarkerSeverity, MarkerTag, editor, Position, Range, Emitter, Uri } from '../../../vs/editor/editor.api.js';\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar _a, _b, _c, _d, _e;\nfunction isRequestOrNotification(msg) {\n return msg.method !== void 0;\n}\nvar ErrorObject;\n(function(ErrorObject$1) {\n function create(obj) {\n return obj;\n }\n ErrorObject$1.create = create;\n})(ErrorObject || (ErrorObject = {}));\nvar ErrorCode;\n(function(ErrorCode$1) {\n ErrorCode$1.parseError = -32700;\n ErrorCode$1.invalidRequest = -32600;\n ErrorCode$1.methodNotFound = -32601;\n ErrorCode$1.invalidParams = -32602;\n ErrorCode$1.internalError = -32603;\n function isServerError(code) {\n return -32099 <= code && code <= -32e3;\n }\n ErrorCode$1.isServerError = isServerError;\n function serverError(code) {\n if (!isServerError(code)) throw new Error(\"Invalid range for a server error.\");\n return code;\n }\n ErrorCode$1.serverError = serverError;\n ErrorCode$1.unexpectedServerError = -32e3;\n function isApplicationError(code) {\n return true;\n }\n ErrorCode$1.isApplicationError = isApplicationError;\n function applicationError(code) {\n return code;\n }\n ErrorCode$1.applicationError = applicationError;\n ErrorCode$1.genericApplicationError = -320100;\n})(ErrorCode || (ErrorCode = {}));\nvar EventEmitter = class {\n constructor() {\n __publicField(this, \"listeners\", /* @__PURE__ */ new Set());\n __publicField(this, \"event\", (listener) => {\n this.listeners.add(listener);\n return { dispose: () => {\n this.listeners.delete(listener);\n } };\n });\n }\n fire(args) {\n this.listeners.forEach((listener) => listener(args));\n }\n};\nvar ValueWithChangeEvent = class {\n constructor(initialValue) {\n __publicField(this, \"_value\");\n __publicField(this, \"eventEmitter\");\n this._value = initialValue;\n this.eventEmitter = new EventEmitter();\n }\n get value() {\n return this._value;\n }\n set value(newValue) {\n if (this._value !== newValue) {\n this._value = newValue;\n this.eventEmitter.fire(newValue);\n }\n }\n get onChange() {\n return this.eventEmitter.event;\n }\n};\nfunction createTimeout(delay, callback) {\n const handle = setTimeout(callback, delay);\n return { dispose: () => clearTimeout(handle) };\n}\nfunction setAndDeleteOnDispose(set, keyOrItem, item) {\n if (set instanceof Set) {\n set.add(keyOrItem);\n return { dispose: () => set.delete(keyOrItem) };\n } else {\n set.set(keyOrItem, item);\n return { dispose: () => set.delete(keyOrItem) };\n }\n}\nvar Deferred = class {\n constructor() {\n __publicField(this, \"_state\", \"none\");\n __publicField(this, \"promise\");\n __publicField(this, \"resolve\", () => {\n });\n __publicField(this, \"reject\", () => {\n });\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n get state() {\n return this._state;\n }\n};\nvar BaseMessageTransport = (_a = class {\n constructor() {\n __publicField(this, \"_unprocessedMessages\", []);\n __publicField(this, \"_messageListener\");\n __publicField(this, \"id\", _a.id++);\n __publicField(this, \"_state\", new ValueWithChangeEvent({ state: \"open\" }));\n __publicField(this, \"state\", this._state);\n }\n /**\n * Sets a callback for incoming messages.\n */\n setListener(listener) {\n this._messageListener = listener;\n if (!listener) return;\n while (this._unprocessedMessages.length > 0 && this._messageListener !== void 0) {\n const msg = this._unprocessedMessages.shift();\n this._messageListener(msg);\n }\n }\n /**\n * Writes a message to the stream.\n */\n send(message) {\n return this._sendImpl(message);\n }\n /**\n * Call this in derived classes to signal a new message.\n */\n _dispatchReceivedMessage(message) {\n if (this._unprocessedMessages.length === 0 && this._messageListener) this._messageListener(message);\n else this._unprocessedMessages.push(message);\n }\n /**\n * Call this in derived classes to signal that the connection closed.\n */\n _onConnectionClosed() {\n this._state.value = {\n state: \"closed\",\n error: void 0\n };\n }\n log(logger) {\n return new StreamLogger(this, logger ?? new ConsoleMessageLogger());\n }\n}, __publicField(_a, \"id\", 0), _a);\nvar StreamLogger = class {\n constructor(baseStream, logger) {\n __publicField(this, \"baseStream\");\n __publicField(this, \"logger\");\n this.baseStream = baseStream;\n this.logger = logger;\n }\n get state() {\n return this.baseStream.state;\n }\n setListener(listener) {\n if (listener === void 0) {\n this.baseStream.setListener(void 0);\n return;\n }\n this.baseStream.setListener((readMessage) => {\n this.logger.log(this.baseStream, \"incoming\", readMessage);\n listener(readMessage);\n });\n }\n send(message) {\n this.logger.log(this.baseStream, \"outgoing\", message);\n return this.baseStream.send(message);\n }\n toString() {\n return `StreamLogger/${this.baseStream.toString()}`;\n }\n};\nvar ConsoleMessageLogger = class {\n log(stream, type, message) {\n const char = type === \"incoming\" ? \"<-\" : \"->\";\n console.log(`${char} [${stream.toString()}] ${JSON.stringify(message)}`);\n }\n};\nvar Channel = class Channel2 {\n constructor(connect) {\n __publicField(this, \"connect\");\n this.connect = connect;\n }\n mapContext(map) {\n return new Channel2((listener) => this.connect(listener ? mapRequestHandlerContext(listener, map) : void 0));\n }\n};\nfunction mapRequestHandlerContext(messageHandler, map) {\n return {\n handleNotification: (request, context) => messageHandler.handleNotification(request, map(context)),\n handleRequest: (request, requestId, context) => messageHandler.handleRequest(request, requestId, map(context))\n };\n}\nvar StreamBasedChannel = class StreamBasedChannel2 {\n constructor(_stream, _listener, _logger) {\n __publicField(this, \"_stream\");\n __publicField(this, \"_listener\");\n __publicField(this, \"_logger\");\n __publicField(this, \"_unprocessedResponses\", /* @__PURE__ */ new Map());\n __publicField(this, \"_lastUsedRequestId\", 0);\n this._stream = _stream;\n this._listener = _listener;\n this._logger = _logger;\n this._stream.setListener((message) => {\n if (isRequestOrNotification(message)) if (message.id === void 0) this._processNotification(message);\n else this._processRequest(message);\n else this._processResponse(message);\n });\n }\n /**\n * Creates a channel factory from a given stream and logger.\n * This allows to delay specifying a `RequestHandler`.\n * Once the channel is created, it processes incoming messages.\n */\n static createChannel(stream, logger) {\n let constructed = false;\n return new Channel((listener) => {\n if (constructed) throw new Error(`A channel to the stream ${stream} was already constructed!`);\n else constructed = true;\n return new StreamBasedChannel2(stream, listener, logger);\n });\n }\n get state() {\n return this._stream.state;\n }\n async _processNotification(message) {\n if (message.id !== void 0) throw new Error();\n if (!this._listener) {\n if (this._logger) this._logger.debug({\n text: \"Notification ignored\",\n message\n });\n return;\n }\n try {\n await this._listener.handleNotification({\n method: message.method,\n params: message.params || null\n });\n } catch (exception) {\n if (this._logger) this._logger.warn({\n text: `Exception was thrown while handling notification: ${exception}`,\n exception,\n message\n });\n }\n }\n async _processRequest(message) {\n if (message.id === void 0) throw new Error();\n let result;\n if (this._listener) try {\n result = await this._listener.handleRequest({\n method: message.method,\n params: message.params || null\n }, message.id);\n } catch (exception) {\n if (this._logger) this._logger.warn({\n text: `Exception was thrown while handling request: ${exception}`,\n message,\n exception\n });\n result = { error: {\n code: ErrorCode.internalError,\n message: \"An unexpected exception was thrown.\",\n data: void 0\n } };\n }\n else {\n if (this._logger) this._logger.debug({\n text: \"Received request even though not listening for requests\",\n message\n });\n result = { error: {\n code: ErrorCode.methodNotFound,\n message: \"This endpoint does not listen for requests or notifications.\",\n data: void 0\n } };\n }\n let responseMsg;\n if (\"result\" in result) responseMsg = {\n jsonrpc: \"2.0\",\n id: message.id,\n result: result.result\n };\n else responseMsg = {\n jsonrpc: \"2.0\",\n id: message.id,\n error: result.error\n };\n await this._stream.send(responseMsg);\n }\n _processResponse(message) {\n const strId = \"\" + message.id;\n const callback = this._unprocessedResponses.get(strId);\n if (!callback) {\n if (this._logger) this._logger.debug({\n text: \"Got an unexpected response message\",\n message\n });\n return;\n }\n this._unprocessedResponses.delete(strId);\n callback(message);\n }\n _newRequestId() {\n return this._lastUsedRequestId++;\n }\n sendRequest(request, _context, messageIdCallback) {\n const message = {\n jsonrpc: \"2.0\",\n id: this._newRequestId(),\n method: request.method,\n params: request.params || void 0\n };\n if (messageIdCallback) messageIdCallback(message.id);\n return new Promise((resolve, reject) => {\n const strId = \"\" + message.id;\n this._unprocessedResponses.set(strId, (response) => {\n if (\"result\" in response) resolve({ result: response.result });\n else {\n if (!response.error) reject(/* @__PURE__ */ new Error(\"Response had neither 'result' nor 'error' field set.\"));\n resolve({ error: response.error });\n }\n });\n this._stream.send(message).then(void 0, (reason) => {\n this._unprocessedResponses.delete(strId);\n reject(reason);\n });\n });\n }\n sendNotification(notification, context) {\n const msg = {\n jsonrpc: \"2.0\",\n id: void 0,\n method: notification.method,\n params: notification.params || void 0\n };\n return this._stream.send(msg);\n }\n toString() {\n return \"StreamChannel/\" + this._stream.toString();\n }\n};\nvar Serializers;\n(function(Serializers$1) {\n function sAny() {\n return {\n deserializeFromJson: (input) => ({\n hasErrors: false,\n value: input\n }),\n serializeToJson: (input) => input\n };\n }\n Serializers$1.sAny = sAny;\n function sEmptyObject() {\n return {\n deserializeFromJson: (input) => ({\n hasErrors: false,\n value: {}\n }),\n serializeToJson: (input) => ({})\n };\n }\n Serializers$1.sEmptyObject = sEmptyObject;\n function sVoidFromNull() {\n return {\n deserializeFromJson: (input) => ({\n hasErrors: false,\n value: void 0\n }),\n serializeToJson: (input) => null\n };\n }\n Serializers$1.sVoidFromNull = sVoidFromNull;\n})(Serializers || (Serializers = {}));\nconst OptionalMethodNotFound = Symbol(\"OptionalMethodNotFound\");\nvar TypedChannelBase = class {\n contextualize(args) {\n return new ContextualizedTypedChannel(this, args);\n }\n};\nvar ContextualizedTypedChannel = class extends TypedChannelBase {\n constructor(underylingTypedChannel, converters) {\n super();\n __publicField(this, \"underylingTypedChannel\");\n __publicField(this, \"converters\");\n this.underylingTypedChannel = underylingTypedChannel;\n this.converters = converters;\n }\n async request(requestType, args, newContext) {\n const context = await this.converters.getSendContext(newContext);\n return this.underylingTypedChannel.request(requestType, args, context);\n }\n async notify(notificationType, params, newContext) {\n const context = await this.converters.getSendContext(newContext);\n return this.underylingTypedChannel.notify(notificationType, params, context);\n }\n registerNotificationHandler(type, handler) {\n return this.underylingTypedChannel.registerNotificationHandler(type, async (arg, context) => {\n return await handler(arg, await this.converters.getNewContext(context));\n });\n }\n registerRequestHandler(requestType, handler) {\n return this.underylingTypedChannel.registerRequestHandler(requestType, async (arg, requestId, context) => {\n return await handler(arg, requestId, await this.converters.getNewContext(context));\n });\n }\n};\nvar TypedChannel = class TypedChannel2 extends TypedChannelBase {\n constructor(channelCtor, options = {}) {\n super();\n __publicField(this, \"channelCtor\");\n __publicField(this, \"_requestSender\");\n __publicField(this, \"_handler\", /* @__PURE__ */ new Map());\n __publicField(this, \"_unknownNotificationHandler\", /* @__PURE__ */ new Set());\n __publicField(this, \"_timeout\");\n __publicField(this, \"sendExceptionDetails\", false);\n __publicField(this, \"_logger\");\n __publicField(this, \"listeningDeferred\", new Deferred());\n __publicField(this, \"onListening\", this.listeningDeferred.promise);\n __publicField(this, \"_requestDidErrorEventEmitter\", new EventEmitter());\n __publicField(this, \"onRequestDidError\", this._requestDidErrorEventEmitter.event);\n this.channelCtor = channelCtor;\n this._logger = options.logger;\n this.sendExceptionDetails = !!options.sendExceptionDetails;\n this._timeout = createTimeout(1e3, () => {\n if (!this._requestSender) console.warn(`\"${this.startListen.name}\" has not been called within 1 second after construction of this channel. Did you forget to call it?`, this);\n });\n }\n static fromTransport(stream, options = {}) {\n return new TypedChannel2(StreamBasedChannel.createChannel(stream, options.logger), options);\n }\n /**\n * This method must be called to forward messages from the stream to this channel.\n * This is not done automatically on construction so that this instance\n * can be setup properly before handling messages.\n */\n startListen() {\n if (this._requestSender) throw new Error(`\"${this.startListen.name}\" can be called only once, but it already has been called.`);\n if (this._timeout) {\n this._timeout.dispose();\n this._timeout = void 0;\n }\n this._requestSender = this.channelCtor.connect({\n handleRequest: (req, id, context) => this.handleRequest(req, id, context),\n handleNotification: (req, context) => this.handleNotification(req, context)\n });\n this.listeningDeferred.resolve();\n }\n checkChannel(channel) {\n if (!channel) throw new Error(`\"${this.startListen.name}\" must be called before any messages can be sent or received.`);\n return true;\n }\n async handleRequest(request, requestId, context) {\n const handler = this._handler.get(request.method);\n if (!handler) {\n if (this._logger) this._logger.debug({\n text: `No request handler for \"${request.method}\".`,\n data: { requestObject: request }\n });\n return { error: {\n code: ErrorCode.methodNotFound,\n message: `No request handler for \"${request.method}\".`,\n data: { method: request.method }\n } };\n }\n if (handler.kind != \"request\") {\n const message = `\"${request.method}\" is registered as notification, but was sent as request.`;\n if (this._logger) this._logger.debug({\n text: message,\n data: { requestObject: request }\n });\n return { error: {\n code: ErrorCode.invalidRequest,\n message,\n data: { method: request.method }\n } };\n }\n const decodeResult = handler.requestType.paramsSerializer.deserializeFromJson(request.params);\n if (decodeResult.hasErrors) {\n const message = `Got invalid params: ${decodeResult.errorMessage}`;\n if (this._logger) this._logger.debug({\n text: message,\n data: {\n requestObject: request,\n errorMessage: decodeResult.errorMessage\n }\n });\n return { error: {\n code: ErrorCode.invalidParams,\n message,\n data: { errors: decodeResult.errorMessage }\n } };\n } else {\n const args = decodeResult.value;\n let response;\n try {\n const result = await handler.handler(args, requestId, context);\n if (\"error\" in result || \"errorMessage\" in result) {\n const errorData = result.error ? handler.requestType.errorSerializer.serializeToJson(result.error) : void 0;\n response = { error: {\n code: result.errorCode || ErrorCode.genericApplicationError,\n message: result.errorMessage || \"An error was returned\",\n data: errorData\n } };\n } else response = { result: handler.requestType.resultSerializer.serializeToJson(result.ok) };\n } catch (exception) {\n if (exception instanceof RequestHandlingError) response = { error: {\n code: exception.code,\n message: exception.message\n } };\n else {\n if (this._logger) this._logger.warn({\n text: `An exception was thrown while handling a request: ${exception}.`,\n exception,\n data: { requestObject: request }\n });\n response = { error: {\n code: ErrorCode.unexpectedServerError,\n message: this.sendExceptionDetails ? `An exception was thrown while handling a request: ${exception}.` : \"Server has thrown an unexpected exception\"\n } };\n }\n }\n return response;\n }\n }\n async handleNotification(request, context) {\n const handler = this._handler.get(request.method);\n if (!handler) {\n for (const h of this._unknownNotificationHandler) h(request);\n if (this._unknownNotificationHandler.size === 0) {\n if (this._logger) this._logger.debug({\n text: `Unhandled notification \"${request.method}\"`,\n data: { requestObject: request }\n });\n }\n return;\n }\n if (handler.kind != \"notification\") {\n if (this._logger) this._logger.debug({\n text: `\"${request.method}\" is registered as request, but was sent as notification.`,\n data: { requestObject: request }\n });\n return;\n }\n const decodeResult = handler.notificationType.paramsSerializer.deserializeFromJson(request.params);\n if (decodeResult.hasErrors) {\n if (this._logger) this._logger.debug({\n text: `Got invalid params: ${decodeResult}`,\n data: {\n requestObject: request,\n errorMessage: decodeResult.errorMessage\n }\n });\n return;\n }\n const val = decodeResult.value;\n for (const handlerFunc of handler.handlers) try {\n handlerFunc(val, context);\n } catch (exception) {\n if (this._logger) this._logger.warn({\n text: `An exception was thrown while handling a notification: ${exception}.`,\n exception,\n data: { requestObject: request }\n });\n }\n }\n registerUnknownNotificationHandler(handler) {\n return setAndDeleteOnDispose(this._unknownNotificationHandler, handler);\n }\n registerRequestHandler(requestType, handler) {\n if (this._handler.get(requestType.method)) throw new Error(`Handler with method \"${requestType.method}\" already registered.`);\n return setAndDeleteOnDispose(this._handler, requestType.method, {\n kind: \"request\",\n requestType,\n handler\n });\n }\n registerNotificationHandler(type, handler) {\n let registeredHandler = this._handler.get(type.method);\n if (!registeredHandler) {\n registeredHandler = {\n kind: \"notification\",\n notificationType: type,\n handlers: /* @__PURE__ */ new Set()\n };\n this._handler.set(type.method, registeredHandler);\n } else {\n if (registeredHandler.kind !== \"notification\") throw new Error(`Method \"${type.method}\" was already registered as request handler.`);\n if (registeredHandler.notificationType !== type) throw new Error(`Method \"${type.method}\" was registered for a different type.`);\n }\n return setAndDeleteOnDispose(registeredHandler.handlers, handler);\n }\n getRegisteredTypes() {\n const result = [];\n for (const h of this._handler.values()) if (h.kind === \"notification\") result.push(h.notificationType);\n else if (h.kind === \"request\") result.push(h.requestType);\n return result;\n }\n async request(requestType, args, context) {\n if (!this.checkChannel(this._requestSender)) throw new Error(\"Impossible\");\n const params = requestType.paramsSerializer.serializeToJson(args);\n assertObjectArrayOrNull(params);\n const response = await this._requestSender.sendRequest({\n method: requestType.method,\n params\n }, context);\n if (\"error\" in response) {\n if (requestType.isOptional && response.error.code === ErrorCode.methodNotFound) return OptionalMethodNotFound;\n let errorData;\n if (response.error.data !== void 0) {\n const deserializationResult = requestType.errorSerializer.deserializeFromJson(response.error.data);\n if (deserializationResult.hasErrors) throw new Error(deserializationResult.errorMessage);\n errorData = deserializationResult.value;\n } else errorData = void 0;\n const error = new RequestHandlingError(response.error.message, errorData, response.error.code);\n this._requestDidErrorEventEmitter.fire({ error });\n throw error;\n } else {\n const result = requestType.resultSerializer.deserializeFromJson(response.result);\n if (result.hasErrors) throw new Error(\"Could not deserialize response: \" + result.errorMessage + `\n\n${JSON.stringify(response, null, 2)}`);\n else return result.value;\n }\n }\n async notify(notificationType, params, context) {\n if (!this.checkChannel(this._requestSender)) throw new Error();\n const encodedParams = notificationType.paramsSerializer.serializeToJson(params);\n assertObjectArrayOrNull(encodedParams);\n this._requestSender.sendNotification({\n method: notificationType.method,\n params: encodedParams\n }, context);\n }\n};\nfunction assertObjectArrayOrNull(val) {\n if (val !== null && Array.isArray(val) && typeof val !== \"object\") throw new Error(\"Invalid value! Only null, array and object is allowed.\");\n}\nvar RequestHandlingError = class RequestHandlingError2 extends Error {\n constructor(message, data, code = ErrorCode.genericApplicationError) {\n super(message);\n __publicField(this, \"data\");\n __publicField(this, \"code\");\n this.data = data;\n this.code = code;\n Object.setPrototypeOf(this, RequestHandlingError2.prototype);\n }\n};\nvar RequestType = class RequestType2 {\n constructor(method, paramsSerializer, resultSerializer, errorSerializer, isOptional = false) {\n __publicField(this, \"method\");\n __publicField(this, \"paramsSerializer\");\n __publicField(this, \"resultSerializer\");\n __publicField(this, \"errorSerializer\");\n __publicField(this, \"isOptional\");\n __publicField(this, \"kind\", \"request\");\n this.method = method;\n this.paramsSerializer = paramsSerializer;\n this.resultSerializer = resultSerializer;\n this.errorSerializer = errorSerializer;\n this.isOptional = isOptional;\n }\n withMethod(method) {\n return new RequestType2(method, this.paramsSerializer, this.resultSerializer, this.errorSerializer);\n }\n optional() {\n return new RequestType2(this.method, this.paramsSerializer, this.resultSerializer, this.errorSerializer, true);\n }\n};\nvar NotificationType = class NotificationType2 {\n constructor(method, paramsSerializer) {\n __publicField(this, \"method\");\n __publicField(this, \"paramsSerializer\");\n __publicField(this, \"kind\", \"notification\");\n this.method = method;\n this.paramsSerializer = paramsSerializer;\n }\n withMethod(method) {\n return new NotificationType2(method, this.paramsSerializer);\n }\n};\nfunction unverifiedRequest(request) {\n return new RequestType((request || {}).method, Serializers.sAny(), Serializers.sAny(), Serializers.sAny());\n}\nfunction unverifiedNotification(request) {\n return new NotificationType((request || {}).method, Serializers.sAny());\n}\nconst IsErrorWrapper = Symbol();\nvar ErrorWrapper = (_b = IsErrorWrapper, _c = class {\n constructor(error) {\n __publicField(this, \"error\");\n __publicField(this, _b);\n this.error = error;\n }\n}, __publicField(_c, \"factory\", (error) => {\n return new _c(error);\n}), _c);\nfunction contract(contractObj) {\n const server = transform(contractObj[\"server\"]);\n const client = transform(contractObj[\"client\"]);\n return new Contract(contractObj.tags || [], server, client);\n}\nfunction transform(requestMap) {\n const result = {};\n for (const [key, req] of Object.entries(requestMap)) {\n const method = req.method ? req.method : key;\n result[key] = req.withMethod(method);\n }\n return result;\n}\nvar Contract = class Contract2 {\n constructor(tags = [], server, client) {\n __publicField(this, \"tags\");\n __publicField(this, \"server\");\n __publicField(this, \"client\");\n this.tags = tags;\n this.server = server;\n this.client = client;\n }\n _onlyDesignTime() {\n return /* @__PURE__ */ new Error(\"This property is not meant to be accessed at runtime\");\n }\n get TContractObject() {\n throw this._onlyDesignTime();\n }\n get TClientInterface() {\n throw this._onlyDesignTime();\n }\n get TServerInterface() {\n throw this._onlyDesignTime();\n }\n get TClientHandler() {\n throw this._onlyDesignTime();\n }\n get TServerHandler() {\n throw this._onlyDesignTime();\n }\n get TTags() {\n throw this._onlyDesignTime();\n }\n getInterface(typedChannel, myContract, otherContract, myInterface) {\n const counterpart = this.buildCounterpart(typedChannel, otherContract);\n const disposable = this.registerHandlers(typedChannel, myContract, myInterface, counterpart);\n return {\n counterpart,\n dispose: () => disposable.dispose()\n };\n }\n buildCounterpart(typedChannel, otherContract) {\n const counterpart = {};\n for (const [key, req] of Object.entries(otherContract)) {\n let method;\n if (req.kind === \"request\") if (req.isOptional) method = async (args, context) => {\n if (args === void 0) args = {};\n try {\n return await typedChannel.request(req, args, context);\n } catch (error) {\n if (error && error.code === ErrorCode.methodNotFound) return OptionalMethodNotFound;\n throw error;\n }\n };\n else method = (args, context) => {\n if (args === void 0) args = {};\n return typedChannel.request(req, args, context);\n };\n else method = (args, context) => {\n if (args === void 0) args = {};\n return typedChannel.notify(req, args, context);\n };\n counterpart[key] = method;\n }\n return counterpart;\n }\n registerHandlers(typedChannel, myContract, myInterface, counterpart) {\n const disposables = [];\n for (const [key, req] of Object.entries(myContract)) if (req.kind === \"request\") {\n let method = myInterface[key];\n if (!method) continue;\n const handler = this.createRequestHandler(counterpart, method);\n disposables.push(typedChannel.registerRequestHandler(req, handler));\n } else {\n const method = myInterface[key];\n if (method) disposables.push(typedChannel.registerNotificationHandler(req, (args, context) => {\n method(args, {\n context,\n counterpart\n });\n }));\n }\n return { dispose: () => disposables.forEach((d) => d.dispose()) };\n }\n createRequestHandler(counterpart, method) {\n return async (args, requestId, listenerContext) => {\n const result = await method(args, {\n context: listenerContext,\n counterpart,\n newErr: ErrorWrapper.factory,\n requestId\n });\n if (result instanceof ErrorWrapper) return result.error;\n return { ok: result };\n };\n }\n /**\n * Gets a server object directly from a stream by constructing a new `TypedChannel`.\n * It also registers the client implementation to the stream.\n * The channel starts listening immediately.\n */\n static getServerFromStream(contract$1, stream, options, clientImplementation) {\n const channel = TypedChannel.fromTransport(stream, options);\n const { server } = contract$1.getServer(channel, clientImplementation);\n channel.startListen();\n return {\n channel,\n server\n };\n }\n /**\n * Gets a client object directly from a stream by constructing a new `TypedChannel`.\n * It also registers the server implementation to the stream.\n * The channel starts listening immediately.\n */\n static registerServerToStream(contract$1, stream, options, serverImplementation) {\n const channel = TypedChannel.fromTransport(stream, options);\n const { client } = contract$1.registerServer(channel, serverImplementation);\n channel.startListen();\n return {\n channel,\n client\n };\n }\n getServer(typedChannel, clientImplementation) {\n const { counterpart, dispose } = this.getInterface(typedChannel, this.client, this.server, clientImplementation);\n return {\n server: counterpart,\n dispose\n };\n }\n registerServer(typedChannel, serverImplementation) {\n const { counterpart, dispose } = this.getInterface(typedChannel, this.server, this.client, serverImplementation);\n return {\n client: counterpart,\n dispose\n };\n }\n withContext() {\n return new Contract2(this.tags, this.server, this.client);\n }\n};\nlet FoldingRangeKind = /* @__PURE__ */ (function(FoldingRangeKind$1) {\n FoldingRangeKind$1[\"Comment\"] = \"comment\";\n FoldingRangeKind$1[\"Imports\"] = \"imports\";\n FoldingRangeKind$1[\"Region\"] = \"region\";\n return FoldingRangeKind$1;\n})({});\nlet SymbolKind = /* @__PURE__ */ (function(SymbolKind$1) {\n SymbolKind$1[SymbolKind$1[\"File\"] = 1] = \"File\";\n SymbolKind$1[SymbolKind$1[\"Module\"] = 2] = \"Module\";\n SymbolKind$1[SymbolKind$1[\"Namespace\"] = 3] = \"Namespace\";\n SymbolKind$1[SymbolKind$1[\"Package\"] = 4] = \"Package\";\n SymbolKind$1[SymbolKind$1[\"Class\"] = 5] = \"Class\";\n SymbolKind$1[SymbolKind$1[\"Method\"] = 6] = \"Method\";\n SymbolKind$1[SymbolKind$1[\"Property\"] = 7] = \"Property\";\n SymbolKind$1[SymbolKind$1[\"Field\"] = 8] = \"Field\";\n SymbolKind$1[SymbolKind$1[\"Constructor\"] = 9] = \"Constructor\";\n SymbolKind$1[SymbolKind$1[\"Enum\"] = 10] = \"Enum\";\n SymbolKind$1[SymbolKind$1[\"Interface\"] = 11] = \"Interface\";\n SymbolKind$1[SymbolKind$1[\"Function\"] = 12] = \"Function\";\n SymbolKind$1[SymbolKind$1[\"Variable\"] = 13] = \"Variable\";\n SymbolKind$1[SymbolKind$1[\"Constant\"] = 14] = \"Constant\";\n SymbolKind$1[SymbolKind$1[\"String\"] = 15] = \"String\";\n SymbolKind$1[SymbolKind$1[\"Number\"] = 16] = \"Number\";\n SymbolKind$1[SymbolKind$1[\"Boolean\"] = 17] = \"Boolean\";\n SymbolKind$1[SymbolKind$1[\"Array\"] = 18] = \"Array\";\n SymbolKind$1[SymbolKind$1[\"Object\"] = 19] = \"Object\";\n SymbolKind$1[SymbolKind$1[\"Key\"] = 20] = \"Key\";\n SymbolKind$1[SymbolKind$1[\"Null\"] = 21] = \"Null\";\n SymbolKind$1[SymbolKind$1[\"EnumMember\"] = 22] = \"EnumMember\";\n SymbolKind$1[SymbolKind$1[\"Struct\"] = 23] = \"Struct\";\n SymbolKind$1[SymbolKind$1[\"Event\"] = 24] = \"Event\";\n SymbolKind$1[SymbolKind$1[\"Operator\"] = 25] = \"Operator\";\n SymbolKind$1[SymbolKind$1[\"TypeParameter\"] = 26] = \"TypeParameter\";\n return SymbolKind$1;\n})({});\nlet SymbolTag = /* @__PURE__ */ (function(SymbolTag$1) {\n SymbolTag$1[SymbolTag$1[\"Deprecated\"] = 1] = \"Deprecated\";\n return SymbolTag$1;\n})({});\nlet InlayHintKind = /* @__PURE__ */ (function(InlayHintKind$1) {\n InlayHintKind$1[InlayHintKind$1[\"Type\"] = 1] = \"Type\";\n InlayHintKind$1[InlayHintKind$1[\"Parameter\"] = 2] = \"Parameter\";\n return InlayHintKind$1;\n})({});\nlet TextDocumentSyncKind = /* @__PURE__ */ (function(TextDocumentSyncKind$1) {\n TextDocumentSyncKind$1[TextDocumentSyncKind$1[\"None\"] = 0] = \"None\";\n TextDocumentSyncKind$1[TextDocumentSyncKind$1[\"Full\"] = 1] = \"Full\";\n TextDocumentSyncKind$1[TextDocumentSyncKind$1[\"Incremental\"] = 2] = \"Incremental\";\n return TextDocumentSyncKind$1;\n})({});\nlet CompletionItemKind = /* @__PURE__ */ (function(CompletionItemKind$1) {\n CompletionItemKind$1[CompletionItemKind$1[\"Text\"] = 1] = \"Text\";\n CompletionItemKind$1[CompletionItemKind$1[\"Method\"] = 2] = \"Method\";\n CompletionItemKind$1[CompletionItemKind$1[\"Function\"] = 3] = \"Function\";\n CompletionItemKind$1[CompletionItemKind$1[\"Constructor\"] = 4] = \"Constructor\";\n CompletionItemKind$1[CompletionItemKind$1[\"Field\"] = 5] = \"Field\";\n CompletionItemKind$1[CompletionItemKind$1[\"Variable\"] = 6] = \"Variable\";\n CompletionItemKind$1[CompletionItemKind$1[\"Class\"] = 7] = \"Class\";\n CompletionItemKind$1[CompletionItemKind$1[\"Interface\"] = 8] = \"Interface\";\n CompletionItemKind$1[CompletionItemKind$1[\"Module\"] = 9] = \"Module\";\n CompletionItemKind$1[CompletionItemKind$1[\"Property\"] = 10] = \"Property\";\n CompletionItemKind$1[CompletionItemKind$1[\"Unit\"] = 11] = \"Unit\";\n CompletionItemKind$1[CompletionItemKind$1[\"Value\"] = 12] = \"Value\";\n CompletionItemKind$1[CompletionItemKind$1[\"Enum\"] = 13] = \"Enum\";\n CompletionItemKind$1[CompletionItemKind$1[\"Keyword\"] = 14] = \"Keyword\";\n CompletionItemKind$1[CompletionItemKind$1[\"Snippet\"] = 15] = \"Snippet\";\n CompletionItemKind$1[CompletionItemKind$1[\"Color\"] = 16] = \"Color\";\n CompletionItemKind$1[CompletionItemKind$1[\"File\"] = 17] = \"File\";\n CompletionItemKind$1[CompletionItemKind$1[\"Reference\"] = 18] = \"Reference\";\n CompletionItemKind$1[CompletionItemKind$1[\"Folder\"] = 19] = \"Folder\";\n CompletionItemKind$1[CompletionItemKind$1[\"EnumMember\"] = 20] = \"EnumMember\";\n CompletionItemKind$1[CompletionItemKind$1[\"Constant\"] = 21] = \"Constant\";\n CompletionItemKind$1[CompletionItemKind$1[\"Struct\"] = 22] = \"Struct\";\n CompletionItemKind$1[CompletionItemKind$1[\"Event\"] = 23] = \"Event\";\n CompletionItemKind$1[CompletionItemKind$1[\"Operator\"] = 24] = \"Operator\";\n CompletionItemKind$1[CompletionItemKind$1[\"TypeParameter\"] = 25] = \"TypeParameter\";\n return CompletionItemKind$1;\n})({});\nlet CompletionItemTag = /* @__PURE__ */ (function(CompletionItemTag$1) {\n CompletionItemTag$1[CompletionItemTag$1[\"Deprecated\"] = 1] = \"Deprecated\";\n return CompletionItemTag$1;\n})({});\nlet InsertTextFormat = /* @__PURE__ */ (function(InsertTextFormat$1) {\n InsertTextFormat$1[InsertTextFormat$1[\"PlainText\"] = 1] = \"PlainText\";\n InsertTextFormat$1[InsertTextFormat$1[\"Snippet\"] = 2] = \"Snippet\";\n return InsertTextFormat$1;\n})({});\nlet DocumentHighlightKind = /* @__PURE__ */ (function(DocumentHighlightKind$1) {\n DocumentHighlightKind$1[DocumentHighlightKind$1[\"Text\"] = 1] = \"Text\";\n DocumentHighlightKind$1[DocumentHighlightKind$1[\"Read\"] = 2] = \"Read\";\n DocumentHighlightKind$1[DocumentHighlightKind$1[\"Write\"] = 3] = \"Write\";\n return DocumentHighlightKind$1;\n})({});\nlet CodeActionKind = /* @__PURE__ */ (function(CodeActionKind$1) {\n CodeActionKind$1[\"Empty\"] = \"\";\n CodeActionKind$1[\"QuickFix\"] = \"quickfix\";\n CodeActionKind$1[\"Refactor\"] = \"refactor\";\n CodeActionKind$1[\"RefactorExtract\"] = \"refactor.extract\";\n CodeActionKind$1[\"RefactorInline\"] = \"refactor.inline\";\n CodeActionKind$1[\"RefactorRewrite\"] = \"refactor.rewrite\";\n CodeActionKind$1[\"Source\"] = \"source\";\n CodeActionKind$1[\"SourceOrganizeImports\"] = \"source.organizeImports\";\n CodeActionKind$1[\"SourceFixAll\"] = \"source.fixAll\";\n return CodeActionKind$1;\n})({});\nlet MarkupKind = /* @__PURE__ */ (function(MarkupKind$1) {\n MarkupKind$1[\"PlainText\"] = \"plaintext\";\n MarkupKind$1[\"Markdown\"] = \"markdown\";\n return MarkupKind$1;\n})({});\nlet DiagnosticSeverity = /* @__PURE__ */ (function(DiagnosticSeverity$1) {\n DiagnosticSeverity$1[DiagnosticSeverity$1[\"Error\"] = 1] = \"Error\";\n DiagnosticSeverity$1[DiagnosticSeverity$1[\"Warning\"] = 2] = \"Warning\";\n DiagnosticSeverity$1[DiagnosticSeverity$1[\"Information\"] = 3] = \"Information\";\n DiagnosticSeverity$1[DiagnosticSeverity$1[\"Hint\"] = 4] = \"Hint\";\n return DiagnosticSeverity$1;\n})({});\nlet DiagnosticTag = /* @__PURE__ */ (function(DiagnosticTag$1) {\n DiagnosticTag$1[DiagnosticTag$1[\"Unnecessary\"] = 1] = \"Unnecessary\";\n DiagnosticTag$1[DiagnosticTag$1[\"Deprecated\"] = 2] = \"Deprecated\";\n return DiagnosticTag$1;\n})({});\nlet CompletionTriggerKind = /* @__PURE__ */ (function(CompletionTriggerKind$1) {\n CompletionTriggerKind$1[CompletionTriggerKind$1[\"Invoked\"] = 1] = \"Invoked\";\n CompletionTriggerKind$1[CompletionTriggerKind$1[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n CompletionTriggerKind$1[CompletionTriggerKind$1[\"TriggerForIncompleteCompletions\"] = 3] = \"TriggerForIncompleteCompletions\";\n return CompletionTriggerKind$1;\n})({});\nlet SignatureHelpTriggerKind = /* @__PURE__ */ (function(SignatureHelpTriggerKind$1) {\n SignatureHelpTriggerKind$1[SignatureHelpTriggerKind$1[\"Invoked\"] = 1] = \"Invoked\";\n SignatureHelpTriggerKind$1[SignatureHelpTriggerKind$1[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n SignatureHelpTriggerKind$1[SignatureHelpTriggerKind$1[\"ContentChange\"] = 3] = \"ContentChange\";\n return SignatureHelpTriggerKind$1;\n})({});\nlet CodeActionTriggerKind = /* @__PURE__ */ (function(CodeActionTriggerKind$1) {\n CodeActionTriggerKind$1[CodeActionTriggerKind$1[\"Invoked\"] = 1] = \"Invoked\";\n CodeActionTriggerKind$1[CodeActionTriggerKind$1[\"Automatic\"] = 2] = \"Automatic\";\n return CodeActionTriggerKind$1;\n})({});\nlet TokenFormat = /* @__PURE__ */ (function(TokenFormat$1) {\n TokenFormat$1[\"Relative\"] = \"relative\";\n return TokenFormat$1;\n})({});\nvar Capability = class {\n constructor(method) {\n this.method = method;\n }\n};\nconst capabilities = {\n textDocumentImplementation: new Capability(\"textDocument/implementation\"),\n textDocumentTypeDefinition: new Capability(\"textDocument/typeDefinition\"),\n textDocumentDocumentColor: new Capability(\"textDocument/documentColor\"),\n textDocumentColorPresentation: new Capability(\"textDocument/colorPresentation\"),\n textDocumentFoldingRange: new Capability(\"textDocument/foldingRange\"),\n textDocumentDeclaration: new Capability(\"textDocument/declaration\"),\n textDocumentSelectionRange: new Capability(\"textDocument/selectionRange\"),\n textDocumentPrepareCallHierarchy: new Capability(\"textDocument/prepareCallHierarchy\"),\n textDocumentSemanticTokensFull: new Capability(\"textDocument/semanticTokens/full\"),\n textDocumentSemanticTokensFullDelta: new Capability(\"textDocument/semanticTokens/full/delta\"),\n textDocumentLinkedEditingRange: new Capability(\"textDocument/linkedEditingRange\"),\n workspaceWillCreateFiles: new Capability(\"workspace/willCreateFiles\"),\n workspaceWillRenameFiles: new Capability(\"workspace/willRenameFiles\"),\n workspaceWillDeleteFiles: new Capability(\"workspace/willDeleteFiles\"),\n textDocumentMoniker: new Capability(\"textDocument/moniker\"),\n textDocumentPrepareTypeHierarchy: new Capability(\"textDocument/prepareTypeHierarchy\"),\n textDocumentInlineValue: new Capability(\"textDocument/inlineValue\"),\n textDocumentInlayHint: new Capability(\"textDocument/inlayHint\"),\n textDocumentDiagnostic: new Capability(\"textDocument/diagnostic\"),\n textDocumentInlineCompletion: new Capability(\"textDocument/inlineCompletion\"),\n textDocumentWillSaveWaitUntil: new Capability(\"textDocument/willSaveWaitUntil\"),\n textDocumentCompletion: new Capability(\"textDocument/completion\"),\n textDocumentHover: new Capability(\"textDocument/hover\"),\n textDocumentSignatureHelp: new Capability(\"textDocument/signatureHelp\"),\n textDocumentDefinition: new Capability(\"textDocument/definition\"),\n textDocumentReferences: new Capability(\"textDocument/references\"),\n textDocumentDocumentHighlight: new Capability(\"textDocument/documentHighlight\"),\n textDocumentDocumentSymbol: new Capability(\"textDocument/documentSymbol\"),\n textDocumentCodeAction: new Capability(\"textDocument/codeAction\"),\n workspaceSymbol: new Capability(\"workspace/symbol\"),\n textDocumentCodeLens: new Capability(\"textDocument/codeLens\"),\n textDocumentDocumentLink: new Capability(\"textDocument/documentLink\"),\n textDocumentFormatting: new Capability(\"textDocument/formatting\"),\n textDocumentRangeFormatting: new Capability(\"textDocument/rangeFormatting\"),\n textDocumentRangesFormatting: new Capability(\"textDocument/rangesFormatting\"),\n textDocumentOnTypeFormatting: new Capability(\"textDocument/onTypeFormatting\"),\n textDocumentRename: new Capability(\"textDocument/rename\"),\n workspaceExecuteCommand: new Capability(\"workspace/executeCommand\"),\n workspaceDidCreateFiles: new Capability(\"workspace/didCreateFiles\"),\n workspaceDidRenameFiles: new Capability(\"workspace/didRenameFiles\"),\n workspaceDidDeleteFiles: new Capability(\"workspace/didDeleteFiles\"),\n workspaceDidChangeConfiguration: new Capability(\"workspace/didChangeConfiguration\"),\n textDocumentDidOpen: new Capability(\"textDocument/didOpen\"),\n textDocumentDidChange: new Capability(\"textDocument/didChange\"),\n textDocumentDidClose: new Capability(\"textDocument/didClose\"),\n textDocumentDidSave: new Capability(\"textDocument/didSave\"),\n textDocumentWillSave: new Capability(\"textDocument/willSave\"),\n workspaceDidChangeWatchedFiles: new Capability(\"workspace/didChangeWatchedFiles\")\n};\nconst api = contract({\n server: {\n textDocumentImplementation: unverifiedRequest({ method: \"textDocument/implementation\" }),\n textDocumentTypeDefinition: unverifiedRequest({ method: \"textDocument/typeDefinition\" }),\n textDocumentDocumentColor: unverifiedRequest({ method: \"textDocument/documentColor\" }),\n textDocumentColorPresentation: unverifiedRequest({ method: \"textDocument/colorPresentation\" }),\n textDocumentFoldingRange: unverifiedRequest({ method: \"textDocument/foldingRange\" }),\n textDocumentDeclaration: unverifiedRequest({ method: \"textDocument/declaration\" }),\n textDocumentSelectionRange: unverifiedRequest({ method: \"textDocument/selectionRange\" }),\n textDocumentPrepareCallHierarchy: unverifiedRequest({ method: \"textDocument/prepareCallHierarchy\" }),\n callHierarchyIncomingCalls: unverifiedRequest({ method: \"callHierarchy/incomingCalls\" }),\n callHierarchyOutgoingCalls: unverifiedRequest({ method: \"callHierarchy/outgoingCalls\" }),\n textDocumentSemanticTokensFull: unverifiedRequest({ method: \"textDocument/semanticTokens/full\" }),\n textDocumentSemanticTokensFullDelta: unverifiedRequest({ method: \"textDocument/semanticTokens/full/delta\" }),\n textDocumentSemanticTokensRange: unverifiedRequest({ method: \"textDocument/semanticTokens/range\" }),\n textDocumentLinkedEditingRange: unverifiedRequest({ method: \"textDocument/linkedEditingRange\" }),\n workspaceWillCreateFiles: unverifiedRequest({ method: \"workspace/willCreateFiles\" }),\n workspaceWillRenameFiles: unverifiedRequest({ method: \"workspace/willRenameFiles\" }),\n workspaceWillDeleteFiles: unverifiedRequest({ method: \"workspace/willDeleteFiles\" }),\n textDocumentMoniker: unverifiedRequest({ method: \"textDocument/moniker\" }),\n textDocumentPrepareTypeHierarchy: unverifiedRequest({ method: \"textDocument/prepareTypeHierarchy\" }),\n typeHierarchySupertypes: unverifiedRequest({ method: \"typeHierarchy/supertypes\" }),\n typeHierarchySubtypes: unverifiedRequest({ method: \"typeHierarchy/subtypes\" }),\n textDocumentInlineValue: unverifiedRequest({ method: \"textDocument/inlineValue\" }),\n textDocumentInlayHint: unverifiedRequest({ method: \"textDocument/inlayHint\" }),\n inlayHintResolve: unverifiedRequest({ method: \"inlayHint/resolve\" }),\n textDocumentDiagnostic: unverifiedRequest({ method: \"textDocument/diagnostic\" }),\n workspaceDiagnostic: unverifiedRequest({ method: \"workspace/diagnostic\" }),\n textDocumentInlineCompletion: unverifiedRequest({ method: \"textDocument/inlineCompletion\" }),\n initialize: unverifiedRequest({ method: \"initialize\" }),\n shutdown: unverifiedRequest({ method: \"shutdown\" }),\n textDocumentWillSaveWaitUntil: unverifiedRequest({ method: \"textDocument/willSaveWaitUntil\" }),\n textDocumentCompletion: unverifiedRequest({ method: \"textDocument/completion\" }),\n completionItemResolve: unverifiedRequest({ method: \"completionItem/resolve\" }),\n textDocumentHover: unverifiedRequest({ method: \"textDocument/hover\" }),\n textDocumentSignatureHelp: unverifiedRequest({ method: \"textDocument/signatureHelp\" }),\n textDocumentDefinition: unverifiedRequest({ method: \"textDocument/definition\" }),\n textDocumentReferences: unverifiedRequest({ method: \"textDocument/references\" }),\n textDocumentDocumentHighlight: unverifiedRequest({ method: \"textDocument/documentHighlight\" }),\n textDocumentDocumentSymbol: unverifiedRequest({ method: \"textDocument/documentSymbol\" }),\n textDocumentCodeAction: unverifiedRequest({ method: \"textDocument/codeAction\" }),\n codeActionResolve: unverifiedRequest({ method: \"codeAction/resolve\" }),\n workspaceSymbol: unverifiedRequest({ method: \"workspace/symbol\" }),\n workspaceSymbolResolve: unverifiedRequest({ method: \"workspaceSymbol/resolve\" }),\n textDocumentCodeLens: unverifiedRequest({ method: \"textDocument/codeLens\" }),\n codeLensResolve: unverifiedRequest({ method: \"codeLens/resolve\" }),\n textDocumentDocumentLink: unverifiedRequest({ method: \"textDocument/documentLink\" }),\n documentLinkResolve: unverifiedRequest({ method: \"documentLink/resolve\" }),\n textDocumentFormatting: unverifiedRequest({ method: \"textDocument/formatting\" }),\n textDocumentRangeFormatting: unverifiedRequest({ method: \"textDocument/rangeFormatting\" }),\n textDocumentRangesFormatting: unverifiedRequest({ method: \"textDocument/rangesFormatting\" }),\n textDocumentOnTypeFormatting: unverifiedRequest({ method: \"textDocument/onTypeFormatting\" }),\n textDocumentRename: unverifiedRequest({ method: \"textDocument/rename\" }),\n textDocumentPrepareRename: unverifiedRequest({ method: \"textDocument/prepareRename\" }),\n workspaceExecuteCommand: unverifiedRequest({ method: \"workspace/executeCommand\" }),\n workspaceDidChangeWorkspaceFolders: unverifiedNotification({ method: \"workspace/didChangeWorkspaceFolders\" }),\n windowWorkDoneProgressCancel: unverifiedNotification({ method: \"window/workDoneProgress/cancel\" }),\n workspaceDidCreateFiles: unverifiedNotification({ method: \"workspace/didCreateFiles\" }),\n workspaceDidRenameFiles: unverifiedNotification({ method: \"workspace/didRenameFiles\" }),\n workspaceDidDeleteFiles: unverifiedNotification({ method: \"workspace/didDeleteFiles\" }),\n notebookDocumentDidOpen: unverifiedNotification({ method: \"notebookDocument/didOpen\" }),\n notebookDocumentDidChange: unverifiedNotification({ method: \"notebookDocument/didChange\" }),\n notebookDocumentDidSave: unverifiedNotification({ method: \"notebookDocument/didSave\" }),\n notebookDocumentDidClose: unverifiedNotification({ method: \"notebookDocument/didClose\" }),\n initialized: unverifiedNotification({ method: \"initialized\" }),\n exit: unverifiedNotification({ method: \"exit\" }),\n workspaceDidChangeConfiguration: unverifiedNotification({ method: \"workspace/didChangeConfiguration\" }),\n textDocumentDidOpen: unverifiedNotification({ method: \"textDocument/didOpen\" }),\n textDocumentDidChange: unverifiedNotification({ method: \"textDocument/didChange\" }),\n textDocumentDidClose: unverifiedNotification({ method: \"textDocument/didClose\" }),\n textDocumentDidSave: unverifiedNotification({ method: \"textDocument/didSave\" }),\n textDocumentWillSave: unverifiedNotification({ method: \"textDocument/willSave\" }),\n workspaceDidChangeWatchedFiles: unverifiedNotification({ method: \"workspace/didChangeWatchedFiles\" }),\n setTrace: unverifiedNotification({ method: \"$/setTrace\" }),\n cancelRequest: unverifiedNotification({ method: \"$/cancelRequest\" }),\n progress: unverifiedNotification({ method: \"$/progress\" })\n },\n client: {\n workspaceWorkspaceFolders: unverifiedRequest({ method: \"workspace/workspaceFolders\" }).optional(),\n workspaceConfiguration: unverifiedRequest({ method: \"workspace/configuration\" }).optional(),\n workspaceFoldingRangeRefresh: unverifiedRequest({ method: \"workspace/foldingRange/refresh\" }).optional(),\n windowWorkDoneProgressCreate: unverifiedRequest({ method: \"window/workDoneProgress/create\" }).optional(),\n workspaceSemanticTokensRefresh: unverifiedRequest({ method: \"workspace/semanticTokens/refresh\" }).optional(),\n windowShowDocument: unverifiedRequest({ method: \"window/showDocument\" }).optional(),\n workspaceInlineValueRefresh: unverifiedRequest({ method: \"workspace/inlineValue/refresh\" }).optional(),\n workspaceInlayHintRefresh: unverifiedRequest({ method: \"workspace/inlayHint/refresh\" }).optional(),\n workspaceDiagnosticRefresh: unverifiedRequest({ method: \"workspace/diagnostic/refresh\" }).optional(),\n clientRegisterCapability: unverifiedRequest({ method: \"client/registerCapability\" }).optional(),\n clientUnregisterCapability: unverifiedRequest({ method: \"client/unregisterCapability\" }).optional(),\n windowShowMessageRequest: unverifiedRequest({ method: \"window/showMessageRequest\" }).optional(),\n workspaceCodeLensRefresh: unverifiedRequest({ method: \"workspace/codeLens/refresh\" }).optional(),\n workspaceApplyEdit: unverifiedRequest({ method: \"workspace/applyEdit\" }).optional(),\n windowShowMessage: unverifiedNotification({ method: \"window/showMessage\" }),\n windowLogMessage: unverifiedNotification({ method: \"window/logMessage\" }),\n telemetryEvent: unverifiedNotification({ method: \"telemetry/event\" }),\n textDocumentPublishDiagnostics: unverifiedNotification({ method: \"textDocument/publishDiagnostics\" }),\n logTrace: unverifiedNotification({ method: \"$/logTrace\" }),\n cancelRequest: unverifiedNotification({ method: \"$/cancelRequest\" }),\n progress: unverifiedNotification({ method: \"$/progress\" })\n }\n});\nfunction assertTargetTextModel(input, expectedTextModel) {\n if (input.textModel !== expectedTextModel) throw new Error(`Expected text model to be ${expectedTextModel}, but got ${input.textModel}`);\n return input;\n}\nvar Disposable = (_d = class {\n constructor() {\n __publicField(this, \"_store\", new DisposableStore());\n }\n dispose() {\n this._store.dispose();\n }\n _register(t) {\n if (t === this) throw new Error(\"Cannot register a disposable on itself!\");\n return this._store.add(t);\n }\n}, __publicField(_d, \"None\", Object.freeze({ dispose() {\n} })), _d);\nvar DisposableStore = (_e = class {\n constructor() {\n __publicField(this, \"_toDispose\", /* @__PURE__ */ new Set());\n __publicField(this, \"_isDisposed\", false);\n }\n dispose() {\n if (this._isDisposed) return;\n this._isDisposed = true;\n this.clear();\n }\n clear() {\n if (this._toDispose.size === 0) return;\n try {\n for (const item of this._toDispose) item.dispose();\n } finally {\n this._toDispose.clear();\n }\n }\n add(t) {\n if (!t) return t;\n if (t === this) throw new Error(\"Cannot register a disposable on itself!\");\n if (this._isDisposed) {\n if (!_e.DISABLE_DISPOSED_WARNING) console.warn((/* @__PURE__ */ new Error(\"Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!\")).stack);\n } else this._toDispose.add(t);\n return t;\n }\n}, __publicField(_e, \"DISABLE_DISPOSED_WARNING\", false), _e);\nconst lspCodeActionKindToMonacoCodeActionKind = /* @__PURE__ */ new Map([\n [CodeActionKind.Empty, \"\"],\n [CodeActionKind.QuickFix, \"quickfix\"],\n [CodeActionKind.Refactor, \"refactor\"],\n [CodeActionKind.RefactorExtract, \"refactor.extract\"],\n [CodeActionKind.RefactorInline, \"refactor.inline\"],\n [CodeActionKind.RefactorRewrite, \"refactor.rewrite\"],\n [CodeActionKind.Source, \"source\"],\n [CodeActionKind.SourceOrganizeImports, \"source.organizeImports\"],\n [CodeActionKind.SourceFixAll, \"source.fixAll\"]\n]);\nfunction toMonacoCodeActionKind(kind) {\n if (!kind) return;\n return lspCodeActionKindToMonacoCodeActionKind.get(kind) ?? kind;\n}\nconst monacoCodeActionTriggerTypeToLspCodeActionTriggerKind = /* @__PURE__ */ new Map([[languages.CodeActionTriggerType.Invoke, CodeActionTriggerKind.Invoked], [languages.CodeActionTriggerType.Auto, CodeActionTriggerKind.Automatic]]);\nfunction toLspCodeActionTriggerKind(monacoTrigger) {\n return monacoCodeActionTriggerTypeToLspCodeActionTriggerKind.get(monacoTrigger) ?? CodeActionTriggerKind.Invoked;\n}\nconst lspCompletionItemKindToMonacoCompletionItemKind = /* @__PURE__ */ new Map([\n [CompletionItemKind.Text, languages.CompletionItemKind.Text],\n [CompletionItemKind.Method, languages.CompletionItemKind.Method],\n [CompletionItemKind.Function, languages.CompletionItemKind.Function],\n [CompletionItemKind.Constructor, languages.CompletionItemKind.Constructor],\n [CompletionItemKind.Field, languages.CompletionItemKind.Field],\n [CompletionItemKind.Variable, languages.CompletionItemKind.Variable],\n [CompletionItemKind.Class, languages.CompletionItemKind.Class],\n [CompletionItemKind.Interface, languages.CompletionItemKind.Interface],\n [CompletionItemKind.Module, languages.CompletionItemKind.Module],\n [CompletionItemKind.Property, languages.CompletionItemKind.Property],\n [CompletionItemKind.Unit, languages.CompletionItemKind.Unit],\n [CompletionItemKind.Value, languages.CompletionItemKind.Value],\n [CompletionItemKind.Enum, languages.CompletionItemKind.Enum],\n [CompletionItemKind.Keyword, languages.CompletionItemKind.Keyword],\n [CompletionItemKind.Snippet, languages.CompletionItemKind.Snippet],\n [CompletionItemKind.Color, languages.CompletionItemKind.Color],\n [CompletionItemKind.File, languages.CompletionItemKind.File],\n [CompletionItemKind.Reference, languages.CompletionItemKind.Reference],\n [CompletionItemKind.Folder, languages.CompletionItemKind.Folder],\n [CompletionItemKind.EnumMember, languages.CompletionItemKind.EnumMember],\n [CompletionItemKind.Constant, languages.CompletionItemKind.Constant],\n [CompletionItemKind.Struct, languages.CompletionItemKind.Struct],\n [CompletionItemKind.Event, languages.CompletionItemKind.Event],\n [CompletionItemKind.Operator, languages.CompletionItemKind.Operator],\n [CompletionItemKind.TypeParameter, languages.CompletionItemKind.TypeParameter]\n]);\nfunction toMonacoCompletionItemKind(kind) {\n if (!kind) return languages.CompletionItemKind.Text;\n return lspCompletionItemKindToMonacoCompletionItemKind.get(kind) ?? languages.CompletionItemKind.Text;\n}\nconst lspCompletionItemTagToMonacoCompletionItemTag = /* @__PURE__ */ new Map([[CompletionItemTag.Deprecated, languages.CompletionItemTag.Deprecated]]);\nfunction toMonacoCompletionItemTag(tag) {\n return lspCompletionItemTagToMonacoCompletionItemTag.get(tag);\n}\nconst monacoCompletionTriggerKindToLspCompletionTriggerKind = /* @__PURE__ */ new Map([\n [languages.CompletionTriggerKind.Invoke, CompletionTriggerKind.Invoked],\n [languages.CompletionTriggerKind.TriggerCharacter, CompletionTriggerKind.TriggerCharacter],\n [languages.CompletionTriggerKind.TriggerForIncompleteCompletions, CompletionTriggerKind.TriggerForIncompleteCompletions]\n]);\nfunction toLspCompletionTriggerKind(monacoKind) {\n return monacoCompletionTriggerKindToLspCompletionTriggerKind.get(monacoKind) ?? CompletionTriggerKind.Invoked;\n}\nconst lspInsertTextFormatToMonacoInsertTextRules = /* @__PURE__ */ new Map([[InsertTextFormat.Snippet, languages.CompletionItemInsertTextRule.InsertAsSnippet]]);\nfunction toMonacoInsertTextRules(format) {\n if (!format) return;\n return lspInsertTextFormatToMonacoInsertTextRules.get(format);\n}\nconst lspSymbolKindToMonacoSymbolKind = /* @__PURE__ */ new Map([\n [SymbolKind.File, languages.SymbolKind.File],\n [SymbolKind.Module, languages.SymbolKind.Module],\n [SymbolKind.Namespace, languages.SymbolKind.Namespace],\n [SymbolKind.Package, languages.SymbolKind.Package],\n [SymbolKind.Class, languages.SymbolKind.Class],\n [SymbolKind.Method, languages.SymbolKind.Method],\n [SymbolKind.Property, languages.SymbolKind.Property],\n [SymbolKind.Field, languages.SymbolKind.Field],\n [SymbolKind.Constructor, languages.SymbolKind.Constructor],\n [SymbolKind.Enum, languages.SymbolKind.Enum],\n [SymbolKind.Interface, languages.SymbolKind.Interface],\n [SymbolKind.Function, languages.SymbolKind.Function],\n [SymbolKind.Variable, languages.SymbolKind.Variable],\n [SymbolKind.Constant, languages.SymbolKind.Constant],\n [SymbolKind.String, languages.SymbolKind.String],\n [SymbolKind.Number, languages.SymbolKind.Number],\n [SymbolKind.Boolean, languages.SymbolKind.Boolean],\n [SymbolKind.Array, languages.SymbolKind.Array],\n [SymbolKind.Object, languages.SymbolKind.Object],\n [SymbolKind.Key, languages.SymbolKind.Key],\n [SymbolKind.Null, languages.SymbolKind.Null],\n [SymbolKind.EnumMember, languages.SymbolKind.EnumMember],\n [SymbolKind.Struct, languages.SymbolKind.Struct],\n [SymbolKind.Event, languages.SymbolKind.Event],\n [SymbolKind.Operator, languages.SymbolKind.Operator],\n [SymbolKind.TypeParameter, languages.SymbolKind.TypeParameter]\n]);\nfunction toMonacoSymbolKind(kind) {\n return lspSymbolKindToMonacoSymbolKind.get(kind) ?? languages.SymbolKind.File;\n}\nconst lspSymbolTagToMonacoSymbolTag = /* @__PURE__ */ new Map([[SymbolTag.Deprecated, languages.SymbolTag.Deprecated]]);\nfunction toMonacoSymbolTag(tag) {\n return lspSymbolTagToMonacoSymbolTag.get(tag);\n}\nconst lspDocumentHighlightKindToMonacoDocumentHighlightKind = /* @__PURE__ */ new Map([\n [DocumentHighlightKind.Text, languages.DocumentHighlightKind.Text],\n [DocumentHighlightKind.Read, languages.DocumentHighlightKind.Read],\n [DocumentHighlightKind.Write, languages.DocumentHighlightKind.Write]\n]);\nfunction toMonacoDocumentHighlightKind(kind) {\n if (!kind) return languages.DocumentHighlightKind.Text;\n return lspDocumentHighlightKindToMonacoDocumentHighlightKind.get(kind) ?? languages.DocumentHighlightKind.Text;\n}\nconst lspFoldingRangeKindToMonacoFoldingRangeKind = /* @__PURE__ */ new Map([\n [FoldingRangeKind.Comment, languages.FoldingRangeKind.Comment],\n [FoldingRangeKind.Imports, languages.FoldingRangeKind.Imports],\n [FoldingRangeKind.Region, languages.FoldingRangeKind.Region]\n]);\nfunction toMonacoFoldingRangeKind(kind) {\n if (!kind) return;\n return lspFoldingRangeKindToMonacoFoldingRangeKind.get(kind);\n}\nconst monacoMarkerSeverityToLspDiagnosticSeverity = /* @__PURE__ */ new Map([\n [MarkerSeverity.Error, DiagnosticSeverity.Error],\n [MarkerSeverity.Warning, DiagnosticSeverity.Warning],\n [MarkerSeverity.Info, DiagnosticSeverity.Information],\n [MarkerSeverity.Hint, DiagnosticSeverity.Hint]\n]);\nfunction toLspDiagnosticSeverity(severity) {\n return monacoMarkerSeverityToLspDiagnosticSeverity.get(severity) ?? DiagnosticSeverity.Error;\n}\nconst lspDiagnosticSeverityToMonacoMarkerSeverity = /* @__PURE__ */ new Map([\n [DiagnosticSeverity.Error, MarkerSeverity.Error],\n [DiagnosticSeverity.Warning, MarkerSeverity.Warning],\n [DiagnosticSeverity.Information, MarkerSeverity.Info],\n [DiagnosticSeverity.Hint, MarkerSeverity.Hint]\n]);\nfunction toMonacoDiagnosticSeverity(severity) {\n if (!severity) return MarkerSeverity.Error;\n return lspDiagnosticSeverityToMonacoMarkerSeverity.get(severity) ?? MarkerSeverity.Error;\n}\nconst lspDiagnosticTagToMonacoMarkerTag = /* @__PURE__ */ new Map([[DiagnosticTag.Unnecessary, MarkerTag.Unnecessary], [DiagnosticTag.Deprecated, MarkerTag.Deprecated]]);\nfunction toMonacoDiagnosticTag(tag) {\n return lspDiagnosticTagToMonacoMarkerTag.get(tag);\n}\nconst monacoSignatureHelpTriggerKindToLspSignatureHelpTriggerKind = /* @__PURE__ */ new Map([\n [languages.SignatureHelpTriggerKind.Invoke, SignatureHelpTriggerKind.Invoked],\n [languages.SignatureHelpTriggerKind.TriggerCharacter, SignatureHelpTriggerKind.TriggerCharacter],\n [languages.SignatureHelpTriggerKind.ContentChange, SignatureHelpTriggerKind.ContentChange]\n]);\nfunction toLspSignatureHelpTriggerKind(monacoKind) {\n return monacoSignatureHelpTriggerKindToLspSignatureHelpTriggerKind.get(monacoKind) ?? SignatureHelpTriggerKind.Invoked;\n}\nfunction toMonacoCommand(command) {\n if (!command) return;\n return {\n id: command.command,\n title: command.title,\n arguments: command.arguments\n };\n}\nconst lspInlayHintKindToMonacoInlayHintKind = /* @__PURE__ */ new Map([[InlayHintKind.Type, languages.InlayHintKind.Type], [InlayHintKind.Parameter, languages.InlayHintKind.Parameter]]);\nfunction toMonacoInlayHintKind(kind) {\n if (!kind) return languages.InlayHintKind.Type;\n return lspInlayHintKindToMonacoInlayHintKind.get(kind) ?? languages.InlayHintKind.Type;\n}\nfunction toMonacoLocation(location, client) {\n if (\"targetUri\" in location) {\n const translatedRange = client.bridge.translateBackRange({ uri: location.targetUri }, location.targetRange);\n return {\n uri: translatedRange.textModel.uri,\n range: translatedRange.range,\n originSelectionRange: location.originSelectionRange ? client.bridge.translateBackRange({ uri: location.targetUri }, location.originSelectionRange).range : void 0,\n targetSelectionRange: location.targetSelectionRange ? client.bridge.translateBackRange({ uri: location.targetUri }, location.targetSelectionRange).range : void 0\n };\n } else {\n const translatedRange = client.bridge.translateBackRange({ uri: location.uri }, location.range);\n return {\n uri: translatedRange.textModel.uri,\n range: translatedRange.range\n };\n }\n}\nfunction toMonacoLanguageSelector(s) {\n if (!s || s.length === 0) return { language: \"*\" };\n return s.map((s$1) => {\n if (\"notebook\" in s$1) if (typeof s$1.notebook === \"string\") return {\n notebookType: s$1.notebook,\n language: s$1.language\n };\n else return {\n notebookType: s$1.notebook.notebookType,\n language: s$1.language,\n pattern: s$1.notebook.pattern,\n scheme: s$1.notebook.scheme\n };\n else return {\n language: s$1.language,\n pattern: s$1.pattern,\n scheme: s$1.scheme\n };\n });\n}\nfunction matchesDocumentSelector(model, selector) {\n if (!selector) return true;\n const languageId = model.getLanguageId();\n model.uri.toString(true);\n if (!selector || selector.length === 0) return true;\n for (const filter of selector) {\n if (filter.language && filter.language !== \"*\" && filter.language !== languageId) continue;\n return true;\n }\n return false;\n}\nfunction toDiagnosticMarker(diagnostic) {\n const marker = {\n severity: toMonacoDiagnosticSeverity(diagnostic.severity),\n startLineNumber: diagnostic.range.start.line + 1,\n startColumn: diagnostic.range.start.character + 1,\n endLineNumber: diagnostic.range.end.line + 1,\n endColumn: diagnostic.range.end.character + 1,\n message: diagnostic.message,\n source: diagnostic.source,\n code: typeof diagnostic.code === \"string\" ? diagnostic.code : diagnostic.code?.toString()\n };\n if (diagnostic.tags) marker.tags = diagnostic.tags.map((tag) => toMonacoDiagnosticTag(tag)).filter((tag) => tag !== void 0);\n if (diagnostic.relatedInformation) marker.relatedInformation = diagnostic.relatedInformation.map((info) => ({\n resource: Uri.parse(info.location.uri),\n startLineNumber: info.location.range.start.line + 1,\n startColumn: info.location.range.start.character + 1,\n endLineNumber: info.location.range.end.line + 1,\n endColumn: info.location.range.end.character + 1,\n message: info.message\n }));\n return marker;\n}\nvar LspCompletionFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { completion: {\n dynamicRegistration: true,\n contextSupport: true,\n completionItemKind: { valueSet: Array.from(lspCompletionItemKindToMonacoCompletionItemKind.keys()) },\n completionItem: {\n tagSupport: { valueSet: Array.from(lspCompletionItemTagToMonacoCompletionItemTag.keys()) },\n commitCharactersSupport: true,\n deprecatedSupport: true,\n preselectSupport: true\n }\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentCompletion, true, (capability) => {\n return languages.registerCompletionItemProvider(toMonacoLanguageSelector(capability.documentSelector), new LspCompletionProvider(this._connection, capability));\n }));\n }\n};\nvar LspCompletionProvider = class {\n constructor(_client, _capabilities) {\n __publicField(this, \"resolveCompletionItem\");\n this._client = _client;\n this._capabilities = _capabilities;\n if (_capabilities.resolveProvider) this.resolveCompletionItem = async (item, token) => {\n applyLspCompletionItemProperties(item, await this._client.server.completionItemResolve(item._lspItem), this._client.bridge, item._translated, item._model);\n return item;\n };\n }\n get triggerCharacters() {\n return this._capabilities.triggerCharacters;\n }\n async provideCompletionItems(model, position, context, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentCompletion({\n textDocument: translated.textDocument,\n position: translated.position,\n context: context.triggerCharacter ? {\n triggerKind: toLspCompletionTriggerKind(context.triggerKind),\n triggerCharacter: context.triggerCharacter\n } : void 0\n });\n if (!result) return { suggestions: [] };\n return { suggestions: (Array.isArray(result) ? result : result.items).map((i) => {\n return {\n ...convertLspToMonacoCompletionItem(i, this._client.bridge, translated, model, position),\n _lspItem: i,\n _translated: translated,\n _model: model\n };\n }) };\n }\n};\nfunction convertLspToMonacoCompletionItem(lspItem, bridge, translated, model, position) {\n let insertText = lspItem.insertText || lspItem.label;\n let range = void 0;\n if (lspItem.textEdit) if (\"range\" in lspItem.textEdit) {\n insertText = lspItem.textEdit.newText;\n range = assertTargetTextModel(bridge.translateBackRange(translated.textDocument, lspItem.textEdit.range), model).range;\n } else {\n insertText = lspItem.textEdit.newText;\n range = {\n insert: assertTargetTextModel(bridge.translateBackRange(translated.textDocument, lspItem.textEdit.insert), model).range,\n replace: assertTargetTextModel(bridge.translateBackRange(translated.textDocument, lspItem.textEdit.replace), model).range\n };\n }\n if (!range) range = Range.fromPositions(position, position);\n const item = {\n label: lspItem.label,\n kind: toMonacoCompletionItemKind(lspItem.kind),\n insertText,\n sortText: lspItem.sortText,\n filterText: lspItem.filterText,\n preselect: lspItem.preselect,\n commitCharacters: lspItem.commitCharacters,\n range\n };\n applyLspCompletionItemProperties(item, lspItem, bridge, translated, model);\n return item;\n}\nfunction applyLspCompletionItemProperties(monacoItem, lspItem, bridge, translated, targetModel) {\n if (lspItem.detail !== void 0) monacoItem.detail = lspItem.detail;\n if (lspItem.documentation !== void 0) monacoItem.documentation = toMonacoDocumentation$1(lspItem.documentation);\n if (lspItem.insertTextFormat !== void 0) monacoItem.insertTextRules = toMonacoInsertTextRules(lspItem.insertTextFormat);\n if (lspItem.tags && lspItem.tags.length > 0) monacoItem.tags = lspItem.tags.map(toMonacoCompletionItemTag).filter((tag) => tag !== void 0);\n if (lspItem.additionalTextEdits && lspItem.additionalTextEdits.length > 0) monacoItem.additionalTextEdits = lspItem.additionalTextEdits.map((edit) => ({\n range: assertTargetTextModel(bridge.translateBackRange(translated.textDocument, edit.range), targetModel).range,\n text: edit.newText\n }));\n if (lspItem.command) monacoItem.command = toMonacoCommand(lspItem.command);\n}\nfunction toMonacoDocumentation$1(doc) {\n if (!doc) return void 0;\n if (typeof doc === \"string\") return doc;\n return { value: doc.value };\n}\nvar LspHoverFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { hover: {\n dynamicRegistration: true,\n contentFormat: [MarkupKind.Markdown, MarkupKind.PlainText]\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentHover, true, (capability) => {\n return languages.registerHoverProvider(toMonacoLanguageSelector(capability.documentSelector), new LspHoverProvider(this._connection, capability));\n }));\n }\n};\nvar LspHoverProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideHover(model, position, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentHover({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result || !result.contents) return null;\n return {\n contents: toMonacoMarkdownString(result.contents),\n range: result.range ? this._client.bridge.translateBackRange(translated.textDocument, result.range).range : void 0\n };\n }\n};\nfunction toMonacoMarkdownString(contents) {\n if (Array.isArray(contents)) return contents.map((c) => toSingleMarkdownString(c));\n return [toSingleMarkdownString(contents)];\n}\nfunction toSingleMarkdownString(content) {\n if (typeof content === \"string\") return { value: content };\n if (\"kind\" in content) return { value: content.value };\n return { value: `\\`\\`\\`${content.language}\n${content.value}\n\\`\\`\\`` };\n}\nvar LspSignatureHelpFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { signatureHelp: {\n dynamicRegistration: true,\n contextSupport: true,\n signatureInformation: {\n documentationFormat: [MarkupKind.Markdown, MarkupKind.PlainText],\n parameterInformation: { labelOffsetSupport: true },\n activeParameterSupport: true\n }\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentSignatureHelp, true, (capability) => {\n return languages.registerSignatureHelpProvider(toMonacoLanguageSelector(capability.documentSelector), new LspSignatureHelpProvider(this._connection, capability));\n }));\n }\n};\nvar LspSignatureHelpProvider = class {\n constructor(_client, _capabilities) {\n __publicField(this, \"signatureHelpTriggerCharacters\");\n __publicField(this, \"signatureHelpRetriggerCharacters\");\n this._client = _client;\n this._capabilities = _capabilities;\n this.signatureHelpTriggerCharacters = _capabilities.triggerCharacters;\n this.signatureHelpRetriggerCharacters = _capabilities.retriggerCharacters;\n }\n async provideSignatureHelp(model, position, token, context) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentSignatureHelp({\n textDocument: translated.textDocument,\n position: translated.position,\n context: {\n triggerKind: toLspSignatureHelpTriggerKind(context.triggerKind),\n triggerCharacter: context.triggerCharacter,\n isRetrigger: context.isRetrigger\n }\n });\n if (!result) return null;\n return {\n value: {\n signatures: result.signatures.map((sig) => ({\n label: sig.label,\n documentation: toMonacoDocumentation(sig.documentation),\n parameters: sig.parameters?.map((param) => ({\n label: param.label,\n documentation: toMonacoDocumentation(param.documentation)\n })) || [],\n activeParameter: sig.activeParameter\n })),\n activeSignature: result.activeSignature || 0,\n activeParameter: result.activeParameter || 0\n },\n dispose: () => {\n }\n };\n }\n};\nfunction toMonacoDocumentation(doc) {\n if (!doc) return void 0;\n if (typeof doc === \"string\") return doc;\n return { value: doc.value };\n}\nvar LspDefinitionFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { definition: {\n dynamicRegistration: true,\n linkSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDefinition, true, (capability) => {\n return languages.registerDefinitionProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDefinitionProvider(this._connection, capability));\n }));\n }\n};\nvar LspDefinitionProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideDefinition(model, position, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentDefinition({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result) return null;\n if (Array.isArray(result)) return result.map((loc) => toMonacoLocation(loc, this._client));\n return toMonacoLocation(result, this._client);\n }\n};\nvar LspDeclarationFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { declaration: {\n dynamicRegistration: true,\n linkSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDeclaration, true, (capability) => {\n return languages.registerDeclarationProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDeclarationProvider(this._connection, capability));\n }));\n }\n};\nvar LspDeclarationProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideDeclaration(model, position, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentDeclaration({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result) return null;\n if (Array.isArray(result)) return result.map((loc) => toMonacoLocation(loc, this._client));\n return toMonacoLocation(result, this._client);\n }\n};\nvar LspTypeDefinitionFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { typeDefinition: {\n dynamicRegistration: true,\n linkSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentTypeDefinition, true, (capability) => {\n return languages.registerTypeDefinitionProvider(toMonacoLanguageSelector(capability.documentSelector), new LspTypeDefinitionProvider(this._connection, capability));\n }));\n }\n};\nvar LspTypeDefinitionProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideTypeDefinition(model, position, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentTypeDefinition({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result) return null;\n if (Array.isArray(result)) return result.map((loc) => toMonacoLocation(loc, this._client));\n return toMonacoLocation(result, this._client);\n }\n};\nvar LspImplementationFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { implementation: {\n dynamicRegistration: true,\n linkSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentImplementation, true, (capability) => {\n return languages.registerImplementationProvider(toMonacoLanguageSelector(capability.documentSelector), new LspImplementationProvider(this._connection, capability));\n }));\n }\n};\nvar LspImplementationProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideImplementation(model, position, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentImplementation({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result) return null;\n if (Array.isArray(result)) return result.map((loc) => toMonacoLocation(loc, this._client));\n return toMonacoLocation(result, this._client);\n }\n};\nvar LspReferencesFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { references: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentReferences, true, (capability) => {\n return languages.registerReferenceProvider(toMonacoLanguageSelector(capability.documentSelector), new LspReferenceProvider(this._connection, capability));\n }));\n }\n};\nvar LspReferenceProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideReferences(model, position, context, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentReferences({\n textDocument: translated.textDocument,\n position: translated.position,\n context: { includeDeclaration: context.includeDeclaration }\n });\n if (!result) return null;\n return result.map((loc) => {\n const translated$1 = this._client.bridge.translateBackRange({ uri: loc.uri }, loc.range);\n return {\n uri: translated$1.textModel.uri,\n range: translated$1.range\n };\n });\n }\n};\nvar LspDocumentHighlightFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { documentHighlight: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDocumentHighlight, true, (capability) => {\n return languages.registerDocumentHighlightProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDocumentHighlightProvider(this._connection, capability));\n }));\n }\n};\nvar LspDocumentHighlightProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideDocumentHighlights(model, position, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentDocumentHighlight({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result) return null;\n return result.map((highlight) => ({\n range: this._client.bridge.translateBackRange(translated.textDocument, highlight.range).range,\n kind: toMonacoDocumentHighlightKind(highlight.kind)\n }));\n }\n};\nvar LspDocumentSymbolFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { documentSymbol: {\n dynamicRegistration: true,\n hierarchicalDocumentSymbolSupport: true,\n symbolKind: { valueSet: Array.from(lspSymbolKindToMonacoSymbolKind.keys()) },\n tagSupport: { valueSet: [SymbolTag.Deprecated] }\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDocumentSymbol, true, (capability) => {\n return languages.registerDocumentSymbolProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDocumentSymbolProvider(this._connection, capability));\n }));\n }\n};\nvar LspDocumentSymbolProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideDocumentSymbols(model, token) {\n const translated = this._client.bridge.translate(model, new Position(1, 1));\n const result = await this._client.server.textDocumentDocumentSymbol({ textDocument: translated.textDocument });\n if (!result) return null;\n if (Array.isArray(result) && result.length > 0) if (\"location\" in result[0]) return result.map((symbol) => toMonacoSymbolInformation(symbol, this._client));\n else return result.map((symbol) => toMonacoDocumentSymbol(symbol, this._client, translated.textDocument));\n return [];\n }\n};\nfunction toMonacoDocumentSymbol(symbol, client, textDocument) {\n return {\n name: symbol.name,\n detail: symbol.detail || \"\",\n kind: toMonacoSymbolKind(symbol.kind),\n tags: symbol.tags?.map((tag) => toMonacoSymbolTag(tag)).filter((t) => t !== void 0) || [],\n range: client.bridge.translateBackRange(textDocument, symbol.range).range,\n selectionRange: client.bridge.translateBackRange(textDocument, symbol.selectionRange).range,\n children: symbol.children?.map((child) => toMonacoDocumentSymbol(child, client, textDocument)) || []\n };\n}\nfunction toMonacoSymbolInformation(symbol, client) {\n return {\n name: symbol.name,\n detail: \"\",\n kind: toMonacoSymbolKind(symbol.kind),\n tags: symbol.tags?.map((tag) => toMonacoSymbolTag(tag)).filter((t) => t !== void 0) || [],\n range: client.bridge.translateBackRange({ uri: symbol.location.uri }, symbol.location.range).range,\n selectionRange: client.bridge.translateBackRange({ uri: symbol.location.uri }, symbol.location.range).range,\n children: []\n };\n}\nvar LspRenameFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { rename: {\n dynamicRegistration: true,\n prepareSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentRename, true, (capability) => {\n return languages.registerRenameProvider(toMonacoLanguageSelector(capability.documentSelector), new LspRenameProvider(this._connection, capability));\n }));\n }\n};\nvar LspRenameProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideRenameEdits(model, position, newName, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentRename({\n textDocument: translated.textDocument,\n position: translated.position,\n newName\n });\n if (!result) return null;\n return toMonacoWorkspaceEdit$1(result, this._client);\n }\n async resolveRenameLocation(model, position, token) {\n if (!this._capabilities.prepareProvider) return null;\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentPrepareRename({\n textDocument: translated.textDocument,\n position: translated.position\n });\n if (!result) return null;\n if (\"range\" in result && \"placeholder\" in result) return {\n range: this._client.bridge.translateBackRange(translated.textDocument, result.range).range,\n text: result.placeholder\n };\n else if (\"defaultBehavior\" in result) return null;\n else if (\"start\" in result && \"end\" in result) {\n const range = this._client.bridge.translateBackRange(translated.textDocument, result).range;\n return {\n range,\n text: model.getValueInRange(range)\n };\n }\n return null;\n }\n};\nfunction toMonacoWorkspaceEdit$1(edit, client) {\n const edits = [];\n if (edit.changes) for (const uri in edit.changes) {\n const textEdits = edit.changes[uri];\n for (const textEdit of textEdits) {\n const translated = client.bridge.translateBackRange({ uri }, textEdit.range);\n edits.push({\n resource: translated.textModel.uri,\n versionId: void 0,\n textEdit: {\n range: translated.range,\n text: textEdit.newText\n }\n });\n }\n }\n if (edit.documentChanges) {\n for (const change of edit.documentChanges) if (\"textDocument\" in change) {\n const uri = change.textDocument.uri;\n for (const textEdit of change.edits) {\n const translated = client.bridge.translateBackRange({ uri }, textEdit.range);\n edits.push({\n resource: translated.textModel.uri,\n versionId: change.textDocument.version,\n textEdit: {\n range: translated.range,\n text: textEdit.newText\n }\n });\n }\n }\n }\n return { edits };\n}\nvar LspCodeActionFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { codeAction: {\n dynamicRegistration: true,\n codeActionLiteralSupport: { codeActionKind: { valueSet: Array.from(lspCodeActionKindToMonacoCodeActionKind.keys()) } },\n isPreferredSupport: true,\n disabledSupport: true,\n dataSupport: true,\n resolveSupport: { properties: [\"edit\"] }\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentCodeAction, true, (capability) => {\n return languages.registerCodeActionProvider(toMonacoLanguageSelector(capability.documentSelector), new LspCodeActionProvider(this._connection, capability));\n }));\n }\n};\nvar LspCodeActionProvider = class {\n constructor(_client, _capabilities) {\n __publicField(this, \"resolveCodeAction\");\n this._client = _client;\n this._capabilities = _capabilities;\n if (_capabilities.resolveProvider) this.resolveCodeAction = async (codeAction, token) => {\n if (codeAction._lspAction) {\n const resolved = await this._client.server.codeActionResolve(codeAction._lspAction);\n if (resolved.edit) codeAction.edit = toMonacoWorkspaceEdit(resolved.edit, this._client);\n if (resolved.command) codeAction.command = toMonacoCommand(resolved.command);\n }\n return codeAction;\n };\n }\n async provideCodeActions(model, range, context, token) {\n const translated = this._client.bridge.translate(model, range.getStartPosition());\n const result = await this._client.server.textDocumentCodeAction({\n textDocument: translated.textDocument,\n range: this._client.bridge.translateRange(model, range),\n context: {\n diagnostics: context.markers.map((marker) => ({\n range: this._client.bridge.translateRange(model, Range.lift(marker)),\n message: marker.message,\n severity: toLspDiagnosticSeverity(marker.severity)\n })),\n triggerKind: toLspCodeActionTriggerKind(context.trigger)\n }\n });\n if (!result) return null;\n return {\n actions: (Array.isArray(result) ? result : [result]).map((action) => {\n if (\"title\" in action && !(\"kind\" in action)) {\n const cmd = action;\n return {\n title: cmd.title,\n command: toMonacoCommand(cmd)\n };\n } else {\n const codeAction = action;\n return {\n title: codeAction.title,\n kind: toMonacoCodeActionKind(codeAction.kind),\n isPreferred: codeAction.isPreferred,\n disabled: codeAction.disabled?.reason,\n edit: codeAction.edit ? toMonacoWorkspaceEdit(codeAction.edit, this._client) : void 0,\n command: toMonacoCommand(codeAction.command),\n _lspAction: codeAction\n };\n }\n }),\n dispose: () => {\n }\n };\n }\n};\nfunction toMonacoWorkspaceEdit(edit, client) {\n const edits = [];\n if (edit.changes) for (const uri in edit.changes) {\n const textEdits = edit.changes[uri];\n for (const textEdit of textEdits) {\n const translated = client.bridge.translateBackRange({ uri }, textEdit.range);\n edits.push({\n resource: translated.textModel.uri,\n versionId: void 0,\n textEdit: {\n range: translated.range,\n text: textEdit.newText\n }\n });\n }\n }\n if (edit.documentChanges) {\n for (const change of edit.documentChanges) if (\"textDocument\" in change) {\n const uri = change.textDocument.uri;\n for (const textEdit of change.edits) {\n const translated = client.bridge.translateBackRange({ uri }, textEdit.range);\n edits.push({\n resource: translated.textModel.uri,\n versionId: change.textDocument.version ?? void 0,\n textEdit: {\n range: translated.range,\n text: textEdit.newText\n }\n });\n }\n }\n }\n return { edits };\n}\nvar LspCodeLensFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { codeLens: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentCodeLens, true, (capability) => {\n return languages.registerCodeLensProvider(toMonacoLanguageSelector(capability.documentSelector), new LspCodeLensProvider(this._connection, capability));\n }));\n }\n};\nvar LspCodeLensProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideCodeLenses(model, token) {\n const translated = this._client.bridge.translate(model, new Position(1, 1));\n const result = await this._client.server.textDocumentCodeLens({ textDocument: translated.textDocument });\n if (!result) return null;\n return {\n lenses: result.map((lens) => {\n return {\n range: assertTargetTextModel(this._client.bridge.translateBackRange(translated.textDocument, lens.range), model).range,\n command: toMonacoCommand(lens.command),\n _lspCodeLens: lens\n };\n }),\n dispose: () => {\n }\n };\n }\n async resolveCodeLens(model, codeLens, token) {\n if (!this._capabilities.resolveProvider || !codeLens._lspCodeLens) return codeLens;\n const resolved = await this._client.server.codeLensResolve(codeLens._lspCodeLens);\n if (resolved.command) codeLens.command = {\n id: resolved.command.command,\n title: resolved.command.title,\n arguments: resolved.command.arguments\n };\n return codeLens;\n }\n};\nvar LspDocumentLinkFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { documentLink: {\n dynamicRegistration: true,\n tooltipSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDocumentLink, true, (capability) => {\n return languages.registerLinkProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDocumentLinkProvider(this._connection, capability));\n }));\n }\n};\nvar LspDocumentLinkProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideLinks(model, token) {\n const translated = this._client.bridge.translate(model, new Position(1, 1));\n const result = await this._client.server.textDocumentDocumentLink({ textDocument: translated.textDocument });\n if (!result) return null;\n return { links: result.map((link) => ({\n range: this._client.bridge.translateBackRange(translated.textDocument, link.range).range,\n url: link.target,\n tooltip: link.tooltip\n })) };\n }\n async resolveLink(link, token) {\n if (!this._capabilities.resolveProvider) return link;\n return link;\n }\n};\nvar LspFormattingFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { formatting: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentFormatting, true, (capability) => {\n return languages.registerDocumentFormattingEditProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDocumentFormattingProvider(this._connection, capability));\n }));\n }\n};\nvar LspDocumentFormattingProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideDocumentFormattingEdits(model, options, token) {\n const translated = this._client.bridge.translate(model, new Position(1, 1));\n const result = await this._client.server.textDocumentFormatting({\n textDocument: translated.textDocument,\n options: {\n tabSize: options.tabSize,\n insertSpaces: options.insertSpaces\n }\n });\n if (!result) return null;\n return result.map((edit) => ({\n range: this._client.bridge.translateBackRange(translated.textDocument, edit.range).range,\n text: edit.newText\n }));\n }\n};\nvar LspRangeFormattingFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { rangeFormatting: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentRangeFormatting, true, (capability) => {\n return languages.registerDocumentRangeFormattingEditProvider(toMonacoLanguageSelector(capability.documentSelector), new LspDocumentRangeFormattingProvider(this._connection, capability));\n }));\n }\n};\nvar LspDocumentRangeFormattingProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideDocumentRangeFormattingEdits(model, range, options, token) {\n const translated = this._client.bridge.translate(model, range.getStartPosition());\n const result = await this._client.server.textDocumentRangeFormatting({\n textDocument: translated.textDocument,\n range: this._client.bridge.translateRange(model, range),\n options: {\n tabSize: options.tabSize,\n insertSpaces: options.insertSpaces\n }\n });\n if (!result) return null;\n return result.map((edit) => ({\n range: this._client.bridge.translateBackRange(translated.textDocument, edit.range).range,\n text: edit.newText\n }));\n }\n};\nvar LspOnTypeFormattingFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { onTypeFormatting: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentOnTypeFormatting, true, (capability) => {\n return languages.registerOnTypeFormattingEditProvider(toMonacoLanguageSelector(capability.documentSelector), new LspOnTypeFormattingProvider(this._connection, capability));\n }));\n }\n};\nvar LspOnTypeFormattingProvider = class {\n constructor(_client, _capabilities) {\n __publicField(this, \"autoFormatTriggerCharacters\");\n this._client = _client;\n this._capabilities = _capabilities;\n this.autoFormatTriggerCharacters = [_capabilities.firstTriggerCharacter, ..._capabilities.moreTriggerCharacter || []];\n }\n async provideOnTypeFormattingEdits(model, position, ch, options, token) {\n const translated = this._client.bridge.translate(model, position);\n const result = await this._client.server.textDocumentOnTypeFormatting({\n textDocument: translated.textDocument,\n position: translated.position,\n ch,\n options: {\n tabSize: options.tabSize,\n insertSpaces: options.insertSpaces\n }\n });\n if (!result) return null;\n return result.map((edit) => ({\n range: this._client.bridge.translateBackRange(translated.textDocument, edit.range).range,\n text: edit.newText\n }));\n }\n};\nvar LspFoldingRangeFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { foldingRange: {\n dynamicRegistration: true,\n rangeLimit: 5e3,\n lineFoldingOnly: false,\n foldingRangeKind: { valueSet: [\n FoldingRangeKind.Comment,\n FoldingRangeKind.Imports,\n FoldingRangeKind.Region\n ] }\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentFoldingRange, true, (capability) => {\n return languages.registerFoldingRangeProvider(toMonacoLanguageSelector(capability.documentSelector), new LspFoldingRangeProvider(this._connection, capability));\n }));\n }\n};\nvar LspFoldingRangeProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideFoldingRanges(model, context, token) {\n const translated = this._client.bridge.translate(model, new Position(1, 1));\n const result = await this._client.server.textDocumentFoldingRange({ textDocument: translated.textDocument });\n if (!result) return null;\n return result.map((range) => ({\n start: range.startLine + 1,\n end: range.endLine + 1,\n kind: toMonacoFoldingRangeKind(range.kind)\n }));\n }\n};\nvar LspSelectionRangeFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { selectionRange: { dynamicRegistration: true } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentSelectionRange, true, (capability) => {\n return languages.registerSelectionRangeProvider(toMonacoLanguageSelector(capability.documentSelector), new LspSelectionRangeProvider(this._connection, capability));\n }));\n }\n};\nvar LspSelectionRangeProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n async provideSelectionRanges(model, positions, token) {\n const translated = this._client.bridge.translate(model, positions[0]);\n const result = await this._client.server.textDocumentSelectionRange({\n textDocument: translated.textDocument,\n positions: positions.map((pos) => this._client.bridge.translate(model, pos).position)\n });\n if (!result) return null;\n return result.map((selRange) => this.convertSelectionRange(selRange, translated.textDocument));\n }\n convertSelectionRange(range, textDocument) {\n const result = [];\n let current = range;\n while (current) {\n result.push({ range: this._client.bridge.translateBackRange(textDocument, current.range).range });\n current = current.parent;\n }\n return result;\n }\n};\nvar LspInlayHintsFeature = class extends Disposable {\n constructor(_connection) {\n super();\n __publicField(this, \"_providers\", /* @__PURE__ */ new Set());\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({\n textDocument: { inlayHint: {\n dynamicRegistration: true,\n resolveSupport: { properties: [\n \"tooltip\",\n \"textEdits\",\n \"label.tooltip\",\n \"label.location\",\n \"label.command\"\n ] }\n } },\n workspace: { inlayHint: { refreshSupport: true } }\n }));\n this._register(this._connection.connection.registerRequestHandler(api.client.workspaceInlayHintRefresh, async () => {\n for (const provider of this._providers) provider.refresh();\n return { ok: null };\n }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentInlayHint, true, (capability) => {\n const provider = new LspInlayHintsProvider(this._connection, capability);\n this._providers.add(provider);\n const disposable = languages.registerInlayHintsProvider(toMonacoLanguageSelector(capability.documentSelector), provider);\n return { dispose: () => {\n this._providers.delete(provider);\n disposable.dispose();\n } };\n }));\n }\n};\nvar LspInlayHintsProvider = class {\n constructor(_client, _capabilities) {\n __publicField(this, \"_onDidChangeInlayHints\", new Emitter());\n __publicField(this, \"onDidChangeInlayHints\", this._onDidChangeInlayHints.event);\n __publicField(this, \"resolveInlayHint\");\n this._client = _client;\n this._capabilities = _capabilities;\n if (_capabilities.resolveProvider) this.resolveInlayHint = async (hint, token) => {\n const resolved = await this._client.server.inlayHintResolve(hint._lspInlayHint);\n if (resolved.tooltip) hint.tooltip = toMonacoTooltip(resolved.tooltip);\n if (resolved.label !== hint._lspInlayHint.label) hint.label = toLspInlayHintLabel(resolved.label);\n if (resolved.textEdits) hint.textEdits = resolved.textEdits.map((edit) => {\n return {\n range: this._client.bridge.translateBackRange({ uri: hint._targetUri }, edit.range).range,\n text: edit.newText\n };\n });\n return hint;\n };\n }\n refresh() {\n this._onDidChangeInlayHints.fire();\n }\n async provideInlayHints(model, range, token) {\n const translated = this._client.bridge.translate(model, range.getStartPosition());\n const result = await retryOnContentModified(async () => await this._client.server.textDocumentInlayHint({\n textDocument: translated.textDocument,\n range: this._client.bridge.translateRange(model, range)\n }));\n if (!result) return null;\n return {\n hints: result.map((hint) => {\n return {\n label: toLspInlayHintLabel(hint.label),\n position: assertTargetTextModel(this._client.bridge.translateBack(translated.textDocument, hint.position), model).position,\n kind: toMonacoInlayHintKind(hint.kind),\n tooltip: toMonacoTooltip(hint.tooltip),\n paddingLeft: hint.paddingLeft,\n paddingRight: hint.paddingRight,\n textEdits: hint.textEdits?.map((edit) => ({\n range: assertTargetTextModel(this._client.bridge.translateBackRange(translated.textDocument, edit.range), model).range,\n text: edit.newText\n })),\n _lspInlayHint: hint,\n _targetUri: translated.textDocument.uri\n };\n }),\n dispose: () => {\n }\n };\n }\n};\nasync function retryOnContentModified(cb) {\n for (let triesLeft = 3; ; triesLeft--) try {\n return await cb();\n } catch (e) {\n if (e.message === \"content modified\" && triesLeft > 0) continue;\n throw e;\n }\n}\nfunction toLspInlayHintLabel(label) {\n if (typeof label === \"string\") return label;\n return label.map((part) => {\n const monacoLabelPart = {\n label: part.value,\n tooltip: toMonacoTooltip(part.tooltip),\n command: toMonacoCommand(part.command)\n };\n if (part.location) monacoLabelPart.location = {\n uri: Uri.parse(part.location.uri),\n range: new Range(part.location.range.start.line + 1, part.location.range.start.character + 1, part.location.range.end.line + 1, part.location.range.end.character + 1)\n };\n return monacoLabelPart;\n });\n}\nfunction toMonacoTooltip(tooltip) {\n if (!tooltip) return;\n if (typeof tooltip === \"string\") return tooltip;\n return { value: tooltip.value };\n}\nvar LspSemanticTokensFeature = class extends Disposable {\n constructor(_connection) {\n super();\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: { semanticTokens: {\n dynamicRegistration: true,\n requests: {\n range: true,\n full: { delta: true }\n },\n tokenTypes: [\n \"namespace\",\n \"type\",\n \"class\",\n \"enum\",\n \"interface\",\n \"struct\",\n \"typeParameter\",\n \"parameter\",\n \"variable\",\n \"property\",\n \"enumMember\",\n \"event\",\n \"function\",\n \"method\",\n \"macro\",\n \"keyword\",\n \"modifier\",\n \"comment\",\n \"string\",\n \"number\",\n \"regexp\",\n \"operator\",\n \"decorator\"\n ],\n tokenModifiers: [\n \"declaration\",\n \"definition\",\n \"readonly\",\n \"static\",\n \"deprecated\",\n \"abstract\",\n \"async\",\n \"modification\",\n \"documentation\",\n \"defaultLibrary\"\n ],\n formats: [TokenFormat.Relative],\n overlappingTokenSupport: false,\n multilineTokenSupport: true\n } } }));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentSemanticTokensFull, true, (capability) => {\n return languages.registerDocumentSemanticTokensProvider(toMonacoLanguageSelector(capability.documentSelector), new LspSemanticTokensProvider(this._connection, capability));\n }));\n }\n};\nvar LspSemanticTokensProvider = class {\n constructor(_client, _capabilities) {\n this._client = _client;\n this._capabilities = _capabilities;\n }\n getLegend() {\n return {\n tokenTypes: this._capabilities.legend.tokenTypes,\n tokenModifiers: this._capabilities.legend.tokenModifiers\n };\n }\n releaseDocumentSemanticTokens(resultId) {\n }\n async provideDocumentSemanticTokens(model, lastResultId, token) {\n const translated = this._client.bridge.translate(model, model.getPositionAt(0));\n const full = this._capabilities.full;\n if (lastResultId && full && typeof full === \"object\" && full.delta) {\n const deltaResult = await this._client.server.textDocumentSemanticTokensFullDelta({\n textDocument: translated.textDocument,\n previousResultId: lastResultId\n });\n if (!deltaResult) return null;\n if (\"edits\" in deltaResult) return {\n resultId: deltaResult.resultId,\n edits: deltaResult.edits.map((edit) => ({\n start: edit.start,\n deleteCount: edit.deleteCount,\n data: edit.data ? new Uint32Array(edit.data) : void 0\n }))\n };\n else return {\n resultId: deltaResult.resultId,\n data: new Uint32Array(deltaResult.data)\n };\n }\n const result = await this._client.server.textDocumentSemanticTokensFull({ textDocument: translated.textDocument });\n if (!result) return null;\n return {\n resultId: result.resultId,\n data: new Uint32Array(result.data)\n };\n }\n async provideDocumentSemanticTokensEdits(model, previousResultId, token) {\n return this.provideDocumentSemanticTokens(model, previousResultId, token);\n }\n};\nvar LspDiagnosticsFeature = class extends Disposable {\n constructor(_connection) {\n super();\n __publicField(this, \"_diagnosticsMarkerOwner\", \"lsp\");\n __publicField(this, \"_pullDiagnosticProviders\", /* @__PURE__ */ new Map());\n this._connection = _connection;\n this._register(this._connection.capabilities.addStaticClientCapabilities({ textDocument: {\n publishDiagnostics: {\n relatedInformation: true,\n tagSupport: { valueSet: [...lspDiagnosticTagToMonacoMarkerTag.keys()] },\n versionSupport: true,\n codeDescriptionSupport: true,\n dataSupport: true\n },\n diagnostic: {\n dynamicRegistration: true,\n relatedDocumentSupport: true\n }\n } }));\n this._register(this._connection.connection.registerNotificationHandler(api.client.textDocumentPublishDiagnostics, (params) => this._handlePublishDiagnostics(params)));\n this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDiagnostic, true, (capability) => {\n const disposables = new DisposableStore();\n for (const model of editor.getModels()) this._addPullDiagnosticProvider(model, capability, disposables);\n disposables.add(editor.onDidCreateModel((model) => {\n this._addPullDiagnosticProvider(model, capability, disposables);\n }));\n return disposables;\n }));\n }\n _addPullDiagnosticProvider(model, capability, disposables) {\n model.getLanguageId();\n if (!matchesDocumentSelector(model, capability.documentSelector)) return;\n const provider = new ModelDiagnosticProvider(model, this._connection, this._diagnosticsMarkerOwner, capability);\n this._pullDiagnosticProviders.set(model, provider);\n disposables.add(provider);\n disposables.add(model.onWillDispose(() => {\n this._pullDiagnosticProviders.delete(model);\n }));\n }\n _handlePublishDiagnostics(params) {\n const uri = params.uri;\n try {\n const model = this._connection.bridge.translateBack({ uri }, {\n line: 0,\n character: 0\n }).textModel;\n if (!model || model.isDisposed()) return;\n const markers = params.diagnostics.map((diagnostic) => toDiagnosticMarker(diagnostic));\n editor.setModelMarkers(model, this._diagnosticsMarkerOwner, markers);\n } catch (error) {\n console.debug(`Could not set diagnostics for ${uri}:`, error);\n }\n }\n};\nvar ModelDiagnosticProvider = class extends Disposable {\n constructor(_model, _connection, _markerOwner, _capability) {\n super();\n __publicField(this, \"_updateHandle\");\n __publicField(this, \"_previousResultId\");\n this._model = _model;\n this._connection = _connection;\n this._markerOwner = _markerOwner;\n this._capability = _capability;\n this._register(this._model.onDidChangeContent(() => {\n this._scheduleDiagnosticUpdate();\n }));\n this._scheduleDiagnosticUpdate();\n }\n _scheduleDiagnosticUpdate() {\n if (this._updateHandle !== void 0) clearTimeout(this._updateHandle);\n this._updateHandle = window.setTimeout(() => {\n this._updateHandle = void 0;\n this._requestDiagnostics();\n }, 500);\n }\n async _requestDiagnostics() {\n if (this._model.isDisposed()) return;\n try {\n const translated = this._connection.bridge.translate(this._model, new Position(1, 1));\n const result = await this._connection.server.textDocumentDiagnostic({\n textDocument: translated.textDocument,\n identifier: this._capability.identifier,\n previousResultId: this._previousResultId\n });\n if (this._model.isDisposed()) return;\n this._handleDiagnosticReport(result);\n } catch (error) {\n console.error(\"Error requesting diagnostics:\", error);\n }\n }\n _handleDiagnosticReport(report) {\n if (report.kind === \"full\") {\n this._previousResultId = report.resultId;\n const markers = report.items.map((diagnostic) => toDiagnosticMarker(diagnostic));\n editor.setModelMarkers(this._model, this._markerOwner, markers);\n if (\"relatedDocuments\" in report && report.relatedDocuments) this._handleRelatedDocuments(report.relatedDocuments);\n } else if (report.kind === \"unchanged\") this._previousResultId = report.resultId;\n }\n _handleRelatedDocuments(relatedDocuments) {\n for (const [uri, report] of Object.entries(relatedDocuments)) try {\n const model = this._connection.bridge.translateBack({ uri }, {\n line: 0,\n character: 0\n }).textModel;\n if (!model || model.isDisposed()) continue;\n if (report.kind === \"full\") {\n const markers = report.items.map((diagnostic) => toDiagnosticMarker(diagnostic));\n editor.setModelMarkers(model, this._markerOwner, markers);\n }\n } catch (error) {\n console.debug(`Could not set related diagnostics for ${uri}:`, error);\n }\n }\n dispose() {\n if (this._updateHandle !== void 0) {\n clearTimeout(this._updateHandle);\n this._updateHandle = void 0;\n }\n super.dispose();\n }\n};\nvar LspConnection = class {\n constructor(server, bridge, capabilities$1, connection) {\n this.server = server;\n this.bridge = bridge;\n this.capabilities = capabilities$1;\n this.connection = connection;\n }\n};\nvar LspCapabilitiesRegistry = class extends Disposable {\n constructor(_connection) {\n super();\n __publicField(this, \"_staticCapabilities\", /* @__PURE__ */ new Set());\n __publicField(this, \"_dynamicFromStatic\", DynamicFromStaticOptions.create());\n __publicField(this, \"_registrations\", /* @__PURE__ */ new Map());\n __publicField(this, \"_serverCapabilities\");\n this._connection = _connection;\n this._register(this._connection.registerRequestHandler(api.client.clientRegisterCapability, async (params) => {\n for (const registration of params.registrations) {\n const capability = getCapabilityByMethod(registration.method);\n const r = new CapabilityRegistration(registration.id, capability, registration.registerOptions, false);\n this._registerCapabilityOptions(r);\n }\n return { ok: null };\n }));\n this._register(this._connection.registerRequestHandler(api.client.clientUnregisterCapability, async (params) => {\n for (const unregistration of params.unregisterations) {\n const capability = getCapabilityByMethod(unregistration.method);\n const info = this._registrations.get(capability);\n const handlerInfo = info?.registrations.get(unregistration.id);\n if (!handlerInfo) throw new Error(`No registration for method ${unregistration.method} with id ${unregistration.id}`);\n handlerInfo?.handlerDisposables.forEach((d) => d.dispose());\n info?.registrations.delete(unregistration.id);\n }\n return { ok: null };\n }));\n }\n _registerCapabilityOptions(registration) {\n let registrationForMethod = this._registrations.get(registration.capability);\n if (!registrationForMethod) {\n registrationForMethod = new CapabilityInfo();\n this._registrations.set(registration.capability, registrationForMethod);\n }\n if (registrationForMethod.registrations.has(registration.id)) throw new Error(`Handler for method ${registration.capability.method} with id ${registration.id} already registered`);\n registrationForMethod.registrations.set(registration.id, registration);\n for (const h of registrationForMethod.handlers) {\n if (!h.handleStaticCapability && registration.isFromStatic) continue;\n registration.handlerDisposables.set(h, h.handler(registration.options));\n }\n }\n setServerCapabilities(serverCapabilities) {\n if (this._serverCapabilities) throw new Error(\"Server capabilities already set\");\n this._serverCapabilities = serverCapabilities;\n for (const cap of Object.values(capabilities)) {\n const options = this._dynamicFromStatic.getOptions(cap, serverCapabilities);\n if (options) this._registerCapabilityOptions(new CapabilityRegistration(cap.method, cap, options, true));\n }\n }\n getClientCapabilities() {\n const result = {};\n for (const c of this._staticCapabilities) deepAssign(result, c.cap);\n return result;\n }\n addStaticClientCapabilities(capability) {\n const obj = { cap: capability };\n this._staticCapabilities.add(obj);\n return { dispose: () => {\n this._staticCapabilities.delete(obj);\n } };\n }\n registerCapabilityHandler(capability, handleStaticCapability, handler) {\n let info = this._registrations.get(capability);\n if (!info) {\n info = new CapabilityInfo();\n this._registrations.set(capability, info);\n }\n const handlerInfo = new CapabilityHandler(capability, handleStaticCapability, handler);\n info.handlers.add(handlerInfo);\n for (const registration of info.registrations.values()) {\n if (!handlerInfo.handleStaticCapability && registration.isFromStatic) continue;\n registration.handlerDisposables.set(handlerInfo, handler(registration.options));\n }\n return { dispose: () => {\n info.handlers.delete(handlerInfo);\n for (const registration of info.registrations.values()) {\n const disposable = registration.handlerDisposables.get(handlerInfo);\n if (disposable) {\n disposable.dispose();\n registration.handlerDisposables.delete(handlerInfo);\n }\n }\n } };\n }\n};\nvar CapabilityHandler = class {\n constructor(capability, handleStaticCapability, handler) {\n this.capability = capability;\n this.handleStaticCapability = handleStaticCapability;\n this.handler = handler;\n }\n};\nvar CapabilityRegistration = class {\n constructor(id, capability, options, isFromStatic) {\n __publicField(this, \"handlerDisposables\", /* @__PURE__ */ new Map());\n this.id = id;\n this.capability = capability;\n this.options = options;\n this.isFromStatic = isFromStatic;\n }\n};\nconst capabilitiesByMethod = new Map([...Object.values(capabilities)].map((c) => [c.method, c]));\nfunction getCapabilityByMethod(method) {\n const c = capabilitiesByMethod.get(method);\n if (!c) throw new Error(`No capability found for method ${method}`);\n return c;\n}\nvar CapabilityInfo = class {\n constructor() {\n __publicField(this, \"handlers\", /* @__PURE__ */ new Set());\n __publicField(this, \"registrations\", /* @__PURE__ */ new Map());\n }\n};\nvar DynamicFromStaticOptions = class DynamicFromStaticOptions2 {\n constructor() {\n __publicField(this, \"_mappings\", /* @__PURE__ */ new Map());\n }\n static create() {\n const o = new DynamicFromStaticOptions2();\n o.set(capabilities.textDocumentDidChange, (s) => {\n if (s.textDocumentSync === void 0) return;\n if (typeof s.textDocumentSync === \"object\") return {\n syncKind: s.textDocumentSync.change ?? TextDocumentSyncKind.None,\n documentSelector: null\n };\n else return {\n syncKind: s.textDocumentSync,\n documentSelector: null\n };\n });\n o.set(capabilities.textDocumentCompletion, (s) => s.completionProvider);\n o.set(capabilities.textDocumentHover, (s) => s.hoverProvider);\n o.set(capabilities.textDocumentSignatureHelp, (s) => s.signatureHelpProvider);\n o.set(capabilities.textDocumentDefinition, (s) => s.definitionProvider);\n o.set(capabilities.textDocumentReferences, (s) => s.referencesProvider);\n o.set(capabilities.textDocumentDocumentHighlight, (s) => s.documentHighlightProvider);\n o.set(capabilities.textDocumentDocumentSymbol, (s) => s.documentSymbolProvider);\n o.set(capabilities.textDocumentCodeAction, (s) => s.codeActionProvider);\n o.set(capabilities.textDocumentCodeLens, (s) => s.codeLensProvider);\n o.set(capabilities.textDocumentDocumentLink, (s) => s.documentLinkProvider);\n o.set(capabilities.textDocumentFormatting, (s) => s.documentFormattingProvider);\n o.set(capabilities.textDocumentRangeFormatting, (s) => s.documentRangeFormattingProvider);\n o.set(capabilities.textDocumentOnTypeFormatting, (s) => s.documentOnTypeFormattingProvider);\n o.set(capabilities.textDocumentRename, (s) => s.renameProvider);\n o.set(capabilities.textDocumentFoldingRange, (s) => s.foldingRangeProvider);\n o.set(capabilities.textDocumentDeclaration, (s) => s.declarationProvider);\n o.set(capabilities.textDocumentTypeDefinition, (s) => s.typeDefinitionProvider);\n o.set(capabilities.textDocumentImplementation, (s) => s.implementationProvider);\n o.set(capabilities.textDocumentDocumentColor, (s) => s.colorProvider);\n o.set(capabilities.textDocumentSelectionRange, (s) => s.selectionRangeProvider);\n o.set(capabilities.textDocumentLinkedEditingRange, (s) => s.linkedEditingRangeProvider);\n o.set(capabilities.textDocumentPrepareCallHierarchy, (s) => s.callHierarchyProvider);\n o.set(capabilities.textDocumentSemanticTokensFull, (s) => s.semanticTokensProvider);\n o.set(capabilities.textDocumentInlayHint, (s) => s.inlayHintProvider);\n o.set(capabilities.textDocumentInlineValue, (s) => s.inlineValueProvider);\n o.set(capabilities.textDocumentDiagnostic, (s) => s.diagnosticProvider);\n o.set(capabilities.textDocumentMoniker, (s) => s.monikerProvider);\n o.set(capabilities.textDocumentPrepareTypeHierarchy, (s) => s.typeHierarchyProvider);\n o.set(capabilities.workspaceSymbol, (s) => s.workspaceSymbolProvider);\n o.set(capabilities.workspaceExecuteCommand, (s) => s.executeCommandProvider);\n return o;\n }\n set(capability, getOptionsFromStatic) {\n if (this._mappings.has(capability.method)) throw new Error(`Capability for method ${capability.method} already registered`);\n this._mappings.set(capability.method, getOptionsFromStatic);\n }\n getOptions(capability, serverCapabilities) {\n const getter = this._mappings.get(capability.method);\n if (!getter) return;\n return getter(serverCapabilities);\n }\n};\nfunction deepAssign(target, source) {\n for (const key of Object.keys(source)) {\n const srcValue = source[key];\n if (srcValue === void 0) continue;\n const tgtValue = target[key];\n if (tgtValue === void 0) {\n target[key] = srcValue;\n continue;\n }\n if (typeof srcValue !== \"object\" || srcValue === null) {\n target[key] = srcValue;\n continue;\n }\n if (typeof tgtValue !== \"object\" || tgtValue === null) {\n target[key] = srcValue;\n continue;\n }\n deepAssign(tgtValue, srcValue);\n }\n}\nvar TextDocumentSynchronizer = class extends Disposable {\n constructor(_server, _capabilities) {\n super();\n __publicField(this, \"_managedModels\", /* @__PURE__ */ new Map());\n __publicField(this, \"_managedModelsReverse\", /* @__PURE__ */ new Map());\n __publicField(this, \"_started\", false);\n this._server = _server;\n this._capabilities = _capabilities;\n this._register(this._capabilities.addStaticClientCapabilities({ textDocument: { synchronization: {\n dynamicRegistration: true,\n willSave: false,\n willSaveWaitUntil: false,\n didSave: false\n } } }));\n this._register(_capabilities.registerCapabilityHandler(capabilities.textDocumentDidChange, true, (e) => {\n if (this._started) return { dispose: () => {\n } };\n this._started = true;\n this._register(editor.onDidCreateModel((m) => {\n this._getOrCreateManagedModel(m);\n }));\n for (const m of editor.getModels()) this._getOrCreateManagedModel(m);\n return { dispose: () => {\n } };\n }));\n }\n _getOrCreateManagedModel(m) {\n if (!this._started) throw new Error(\"Not started\");\n const uriStr = m.uri.toString(true).toLowerCase();\n let mm = this._managedModels.get(m);\n if (!mm) {\n mm = new ManagedModel(m, this._server);\n this._managedModels.set(m, mm);\n this._managedModelsReverse.set(uriStr, m);\n }\n m.onWillDispose(() => {\n mm.dispose();\n this._managedModels.delete(m);\n this._managedModelsReverse.delete(uriStr);\n });\n return mm;\n }\n translateBack(textDocument, position) {\n const uri = textDocument.uri.toLowerCase();\n const textModel = this._managedModelsReverse.get(uri);\n if (!textModel) throw new Error(`No text model for uri ${uri}`);\n return {\n textModel,\n position: new Position(position.line + 1, position.character + 1)\n };\n }\n translateBackRange(textDocument, range) {\n const uri = textDocument.uri.toLowerCase();\n const textModel = this._managedModelsReverse.get(uri);\n if (!textModel) throw new Error(`No text model for uri ${uri}`);\n return {\n textModel,\n range: new Range(range.start.line + 1, range.start.character + 1, range.end.line + 1, range.end.character + 1)\n };\n }\n translate(textModel, monacoPos) {\n return {\n textDocument: { uri: textModel.uri.toString(true) },\n position: {\n line: monacoPos.lineNumber - 1,\n character: monacoPos.column - 1\n }\n };\n }\n translateRange(textModel, monacoRange) {\n return {\n start: {\n line: monacoRange.startLineNumber - 1,\n character: monacoRange.startColumn - 1\n },\n end: {\n line: monacoRange.endLineNumber - 1,\n character: monacoRange.endColumn - 1\n }\n };\n }\n};\nvar ManagedModel = class extends Disposable {\n constructor(_textModel, _api) {\n super();\n this._textModel = _textModel;\n this._api = _api;\n const uri = _textModel.uri.toString(true).toLowerCase();\n this._api.textDocumentDidOpen({ textDocument: {\n languageId: _textModel.getLanguageId(),\n uri,\n version: _textModel.getVersionId(),\n text: _textModel.getValue()\n } });\n this._register(_textModel.onDidChangeContent((e) => {\n const contentChanges = e.changes.map((c) => toLspTextDocumentContentChangeEvent(c));\n this._api.textDocumentDidChange({\n textDocument: {\n uri,\n version: _textModel.getVersionId()\n },\n contentChanges\n });\n }));\n this._register({ dispose: () => {\n this._api.textDocumentDidClose({ textDocument: { uri } });\n } });\n }\n};\nfunction toLspTextDocumentContentChangeEvent(change) {\n return {\n range: toLspRange(change.range),\n rangeLength: change.rangeLength,\n text: change.text\n };\n}\nfunction toLspRange(range) {\n return {\n start: {\n line: range.startLineNumber - 1,\n character: range.startColumn - 1\n },\n end: {\n line: range.endLineNumber - 1,\n character: range.endColumn - 1\n }\n };\n}\nvar MonacoLspClient = class {\n constructor(transport) {\n __publicField(this, \"_connection\");\n __publicField(this, \"_capabilitiesRegistry\");\n __publicField(this, \"_bridge\");\n __publicField(this, \"_initPromise\");\n const c = TypedChannel.fromTransport(transport);\n const s = api.getServer(c, {});\n c.startListen();\n this._capabilitiesRegistry = new LspCapabilitiesRegistry(c);\n this._bridge = new TextDocumentSynchronizer(s.server, this._capabilitiesRegistry);\n this._connection = new LspConnection(s.server, this._bridge, this._capabilitiesRegistry, c);\n this.createFeatures();\n this._initPromise = this._init();\n }\n async _init() {\n const result = await this._connection.server.initialize({\n processId: null,\n capabilities: this._capabilitiesRegistry.getClientCapabilities(),\n rootUri: null\n });\n this._connection.server.initialized({});\n this._capabilitiesRegistry.setServerCapabilities(result.capabilities);\n }\n createFeatures() {\n const store = new DisposableStore();\n store.add(new LspCompletionFeature(this._connection));\n store.add(new LspHoverFeature(this._connection));\n store.add(new LspSignatureHelpFeature(this._connection));\n store.add(new LspDefinitionFeature(this._connection));\n store.add(new LspDeclarationFeature(this._connection));\n store.add(new LspTypeDefinitionFeature(this._connection));\n store.add(new LspImplementationFeature(this._connection));\n store.add(new LspReferencesFeature(this._connection));\n store.add(new LspDocumentHighlightFeature(this._connection));\n store.add(new LspDocumentSymbolFeature(this._connection));\n store.add(new LspRenameFeature(this._connection));\n store.add(new LspCodeActionFeature(this._connection));\n store.add(new LspCodeLensFeature(this._connection));\n store.add(new LspDocumentLinkFeature(this._connection));\n store.add(new LspFormattingFeature(this._connection));\n store.add(new LspRangeFormattingFeature(this._connection));\n store.add(new LspOnTypeFormattingFeature(this._connection));\n store.add(new LspFoldingRangeFeature(this._connection));\n store.add(new LspSelectionRangeFeature(this._connection));\n store.add(new LspInlayHintsFeature(this._connection));\n store.add(new LspSemanticTokensFeature(this._connection));\n store.add(new LspDiagnosticsFeature(this._connection));\n return store;\n }\n};\nvar ws = null;\nif (typeof WebSocket !== \"undefined\") ws = WebSocket;\nelse if (typeof MozWebSocket !== \"undefined\") ws = MozWebSocket;\nelse if (typeof global !== \"undefined\") ws = global.WebSocket || global.MozWebSocket;\nelse if (typeof window !== \"undefined\") ws = window.WebSocket || window.MozWebSocket;\nelse if (typeof self !== \"undefined\") ws = self.WebSocket || self.MozWebSocket;\nvar browser_default = ws;\nfunction normalizeWebSocketOptions(options) {\n if (\"host\" in options) return { address: `${options.forceTls ? \"wss\" : \"ws\"}://${options.host}:${options.port}` };\n else return options;\n}\nvar WebSocketTransport = class WebSocketTransport2 extends BaseMessageTransport {\n constructor(socket) {\n super();\n __publicField(this, \"socket\");\n __publicField(this, \"errorEmitter\", new EventEmitter());\n __publicField(this, \"onError\", this.errorEmitter);\n this.socket = socket;\n socket.onmessage = (msg) => {\n try {\n const data = msg.data;\n if (typeof data === \"string\") {\n const json = JSON.parse(data);\n this._dispatchReceivedMessage(json);\n } else throw new Error(\"Not supported\");\n } catch (error) {\n this.errorEmitter.fire({ error });\n }\n };\n socket.onclose = (_event) => {\n this._onConnectionClosed();\n };\n }\n static connectTo(options) {\n const ws$1 = new browser_default(normalizeWebSocketOptions(options).address);\n return new Promise((res, rej) => {\n ws$1.onerror = (err) => {\n rej(err);\n };\n ws$1.onopen = () => {\n res(new WebSocketTransport2(ws$1));\n };\n });\n }\n static fromWebSocket(socket) {\n return new WebSocketTransport2(socket);\n }\n /**\n * Closes the underlying socket.\n */\n close() {\n this.socket.close();\n }\n /**\n * Same as `close`.\n */\n dispose() {\n this.close();\n }\n _sendImpl(message) {\n const str = JSON.stringify(message);\n return new Promise((res, rej) => {\n this.socket.send(str, (err) => {\n if (err) rej(err);\n else res();\n });\n });\n }\n toString() {\n return `${this.id}@${this.socket.url}`;\n }\n};\nvar WindowLikeTransport = class extends BaseMessageTransport {\n constructor(_windowLike, _source = void 0, _loadingState = void 0) {\n super();\n __publicField(this, \"_windowLike\");\n __publicField(this, \"_source\");\n __publicField(this, \"_loadingState\");\n __publicField(this, \"_disposed\", false);\n __publicField(this, \"_messageHandler\", ({ data, source }) => {\n if (this._source && source !== this._source) return;\n if (typeof data === \"object\" && data) this._dispatchReceivedMessage(data);\n });\n this._windowLike = _windowLike;\n this._source = _source;\n this._loadingState = _loadingState;\n this._windowLike.addEventListener(\"message\", this._messageHandler);\n }\n async _sendImpl(message) {\n if (this._disposed) throw new Error(\"Transport is disposed\");\n if (this._loadingState && !this._loadingState.loaded) await this._loadingState.onLoaded;\n this._windowLike.postMessage(message);\n }\n toString() {\n return `${this.id}@${this._windowLike}`;\n }\n dispose() {\n if (this._disposed) return;\n this._disposed = true;\n this._windowLike.removeEventListener(\"message\", this._messageHandler);\n }\n};\nfunction createTransportToWorker(worker) {\n if (typeof window === \"undefined\") throw new Error(`call this function from the main browser thread`);\n return new WindowLikeTransport(worker);\n}\nfunction createTransportToIFrame(iframe) {\n if (typeof window === \"undefined\") throw new Error(`call this function from the main browser thread`);\n return new WindowLikeTransport(iframe.contentWindow, iframe.contentWindow, {\n loaded: window.document.readyState === \"complete\",\n onLoaded: new Promise((res) => {\n window.addEventListener(\"load\", () => res());\n })\n });\n}\n\nexport { MonacoLspClient, WebSocketTransport, createTransportToIFrame, createTransportToWorker };\n","import { languages } from '../../editor/editor.api.js';\n\nconst languageDefinitions = {};\nconst lazyLanguageLoaders = {};\nclass LazyLanguageLoader {\n static getOrCreate(languageId) {\n if (!lazyLanguageLoaders[languageId]) {\n lazyLanguageLoaders[languageId] = new LazyLanguageLoader(languageId);\n }\n return lazyLanguageLoaders[languageId];\n }\n constructor(languageId) {\n this._languageId = languageId;\n this._loadingTriggered = false;\n this._lazyLoadPromise = new Promise((resolve, reject) => {\n this._lazyLoadPromiseResolve = resolve;\n this._lazyLoadPromiseReject = reject;\n });\n }\n load() {\n if (!this._loadingTriggered) {\n this._loadingTriggered = true;\n languageDefinitions[this._languageId].loader().then(\n (mod) => this._lazyLoadPromiseResolve(mod),\n (err) => this._lazyLoadPromiseReject(err)\n );\n }\n return this._lazyLoadPromise;\n }\n}\nfunction registerLanguage(def) {\n const languageId = def.id;\n languageDefinitions[languageId] = def;\n languages.register(def);\n const lazyLanguageLoader = LazyLanguageLoader.getOrCreate(languageId);\n languages.registerTokensProviderFactory(languageId, {\n create: async () => {\n const mod = await lazyLanguageLoader.load();\n return mod.language;\n }\n });\n languages.onLanguageEncountered(languageId, async () => {\n const mod = await lazyLanguageLoader.load();\n languages.setLanguageConfiguration(languageId, mod.conf);\n });\n}\n\nexport { registerLanguage };\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"abap\",\n extensions: [\".abap\"],\n aliases: [\"abap\", \"ABAP\"],\n loader: () => import('./abap.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"apex\",\n extensions: [\".cls\"],\n aliases: [\"Apex\", \"apex\"],\n mimetypes: [\"text/x-apex-source\", \"text/x-apex\"],\n loader: () => import('./apex.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"azcli\",\n extensions: [\".azcli\"],\n aliases: [\"Azure CLI\", \"azcli\"],\n loader: () => import('./azcli.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"bat\",\n extensions: [\".bat\", \".cmd\"],\n aliases: [\"Batch\", \"bat\"],\n loader: () => import('./bat.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"bicep\",\n extensions: [\".bicep\"],\n aliases: [\"Bicep\"],\n loader: () => import('./bicep.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"cameligo\",\n extensions: [\".mligo\"],\n aliases: [\"Cameligo\"],\n loader: () => import('./cameligo.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"clojure\",\n extensions: [\".clj\", \".cljs\", \".cljc\", \".edn\"],\n aliases: [\"clojure\", \"Clojure\"],\n loader: () => import('./clojure.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"coffeescript\",\n extensions: [\".coffee\"],\n aliases: [\"CoffeeScript\", \"coffeescript\", \"coffee\"],\n mimetypes: [\"text/x-coffeescript\", \"text/coffeescript\"],\n loader: () => import('./coffee.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"c\",\n extensions: [\".c\", \".h\"],\n aliases: [\"C\", \"c\"],\n loader: () => import('./cpp.js')\n});\nregisterLanguage({\n id: \"cpp\",\n extensions: [\".cpp\", \".cc\", \".cxx\", \".hpp\", \".hh\", \".hxx\"],\n aliases: [\"C++\", \"Cpp\", \"cpp\"],\n loader: () => import('./cpp.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"csharp\",\n extensions: [\".cs\", \".csx\", \".cake\"],\n aliases: [\"C#\", \"csharp\"],\n loader: () => import('./csharp.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"csp\",\n extensions: [\".csp\"],\n aliases: [\"CSP\", \"csp\"],\n loader: () => import('./csp.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"css\",\n extensions: [\".css\"],\n aliases: [\"CSS\", \"css\"],\n mimetypes: [\"text/css\"],\n loader: () => import('./css.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"cypher\",\n extensions: [\".cypher\", \".cyp\"],\n aliases: [\"Cypher\", \"OpenCypher\"],\n loader: () => import('./cypher.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"dart\",\n extensions: [\".dart\"],\n aliases: [\"Dart\", \"dart\"],\n mimetypes: [\"text/x-dart-source\", \"text/x-dart\"],\n loader: () => import('./dart.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"dockerfile\",\n extensions: [\".dockerfile\"],\n filenames: [\"Dockerfile\"],\n aliases: [\"Dockerfile\"],\n loader: () => import('./dockerfile.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"ecl\",\n extensions: [\".ecl\"],\n aliases: [\"ECL\", \"Ecl\", \"ecl\"],\n loader: () => import('./ecl.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"elixir\",\n extensions: [\".ex\", \".exs\"],\n aliases: [\"Elixir\", \"elixir\", \"ex\"],\n loader: () => import('./elixir.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"flow9\",\n extensions: [\".flow\"],\n aliases: [\"Flow9\", \"Flow\", \"flow9\", \"flow\"],\n loader: () => import('./flow9.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"fsharp\",\n extensions: [\".fs\", \".fsi\", \".ml\", \".mli\", \".fsx\", \".fsscript\"],\n aliases: [\"F#\", \"FSharp\", \"fsharp\"],\n loader: () => import('./fsharp.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"freemarker2\",\n extensions: [\".ftl\", \".ftlh\", \".ftlx\"],\n aliases: [\"FreeMarker2\", \"Apache FreeMarker2\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagAutoInterpolationDollar);\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-angle.interpolation-dollar\",\n aliases: [\"FreeMarker2 (Angle/Dollar)\", \"Apache FreeMarker2 (Angle/Dollar)\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagAngleInterpolationDollar);\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-bracket.interpolation-dollar\",\n aliases: [\"FreeMarker2 (Bracket/Dollar)\", \"Apache FreeMarker2 (Bracket/Dollar)\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagBracketInterpolationDollar);\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-angle.interpolation-bracket\",\n aliases: [\"FreeMarker2 (Angle/Bracket)\", \"Apache FreeMarker2 (Angle/Bracket)\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagAngleInterpolationBracket);\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-bracket.interpolation-bracket\",\n aliases: [\"FreeMarker2 (Bracket/Bracket)\", \"Apache FreeMarker2 (Bracket/Bracket)\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagBracketInterpolationBracket);\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-auto.interpolation-dollar\",\n aliases: [\"FreeMarker2 (Auto/Dollar)\", \"Apache FreeMarker2 (Auto/Dollar)\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagAutoInterpolationDollar);\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-auto.interpolation-bracket\",\n aliases: [\"FreeMarker2 (Auto/Bracket)\", \"Apache FreeMarker2 (Auto/Bracket)\"],\n loader: () => {\n return import('./freemarker2.js').then((m) => m.TagAutoInterpolationBracket);\n }\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"go\",\n extensions: [\".go\"],\n aliases: [\"Go\"],\n loader: () => import('./go.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"graphql\",\n extensions: [\".graphql\", \".gql\"],\n aliases: [\"GraphQL\", \"graphql\", \"gql\"],\n mimetypes: [\"application/graphql\"],\n loader: () => import('./graphql.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"handlebars\",\n extensions: [\".handlebars\", \".hbs\"],\n aliases: [\"Handlebars\", \"handlebars\", \"hbs\"],\n mimetypes: [\"text/x-handlebars-template\"],\n loader: () => import('./handlebars.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"hcl\",\n extensions: [\".tf\", \".tfvars\", \".hcl\"],\n aliases: [\"Terraform\", \"tf\", \"HCL\", \"hcl\"],\n loader: () => import('./hcl.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"html\",\n extensions: [\".html\", \".htm\", \".shtml\", \".xhtml\", \".mdoc\", \".jsp\", \".asp\", \".aspx\", \".jshtm\"],\n aliases: [\"HTML\", \"htm\", \"html\", \"xhtml\"],\n mimetypes: [\"text/html\", \"text/x-jshtm\", \"text/template\", \"text/ng-template\"],\n loader: () => import('./html.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"ini\",\n extensions: [\".ini\", \".properties\", \".gitconfig\"],\n filenames: [\"config\", \".gitattributes\", \".gitconfig\", \".editorconfig\"],\n aliases: [\"Ini\", \"ini\"],\n loader: () => import('./ini.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"java\",\n extensions: [\".java\", \".jav\"],\n aliases: [\"Java\", \"java\"],\n mimetypes: [\"text/x-java-source\", \"text/x-java\"],\n loader: () => import('./java.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"javascript\",\n extensions: [\".js\", \".es6\", \".jsx\", \".mjs\", \".cjs\"],\n firstLine: \"^#!.*\\\\bnode\",\n filenames: [\"jakefile\"],\n aliases: [\"JavaScript\", \"javascript\", \"js\"],\n mimetypes: [\"text/javascript\"],\n loader: () => import('./javascript.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"julia\",\n extensions: [\".jl\"],\n aliases: [\"julia\", \"Julia\"],\n loader: () => import('./julia.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"kotlin\",\n extensions: [\".kt\", \".kts\"],\n aliases: [\"Kotlin\", \"kotlin\"],\n mimetypes: [\"text/x-kotlin-source\", \"text/x-kotlin\"],\n loader: () => import('./kotlin.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"less\",\n extensions: [\".less\"],\n aliases: [\"Less\", \"less\"],\n mimetypes: [\"text/x-less\", \"text/less\"],\n loader: () => import('./less.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"lexon\",\n extensions: [\".lex\"],\n aliases: [\"Lexon\"],\n loader: () => import('./lexon.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"lua\",\n extensions: [\".lua\"],\n aliases: [\"Lua\", \"lua\"],\n loader: () => import('./lua.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"liquid\",\n extensions: [\".liquid\", \".html.liquid\"],\n aliases: [\"Liquid\", \"liquid\"],\n mimetypes: [\"application/liquid\"],\n loader: () => import('./liquid.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"m3\",\n extensions: [\".m3\", \".i3\", \".mg\", \".ig\"],\n aliases: [\"Modula-3\", \"Modula3\", \"modula3\", \"m3\"],\n loader: () => import('./m3.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"markdown\",\n extensions: [\".md\", \".markdown\", \".mdown\", \".mkdn\", \".mkd\", \".mdwn\", \".mdtxt\", \".mdtext\"],\n aliases: [\"Markdown\", \"markdown\"],\n loader: () => import('./markdown.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"mdx\",\n extensions: [\".mdx\"],\n aliases: [\"MDX\", \"mdx\"],\n loader: () => import('./mdx.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"mips\",\n extensions: [\".s\"],\n aliases: [\"MIPS\", \"MIPS-V\"],\n mimetypes: [\"text/x-mips\", \"text/mips\", \"text/plaintext\"],\n loader: () => import('./mips.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"msdax\",\n extensions: [\".dax\", \".msdax\"],\n aliases: [\"DAX\", \"MSDAX\"],\n loader: () => import('./msdax.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"mysql\",\n extensions: [],\n aliases: [\"MySQL\", \"mysql\"],\n loader: () => import('./mysql.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"objective-c\",\n extensions: [\".m\"],\n aliases: [\"Objective-C\"],\n loader: () => import('./objective-c.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"pascal\",\n extensions: [\".pas\", \".p\", \".pp\"],\n aliases: [\"Pascal\", \"pas\"],\n mimetypes: [\"text/x-pascal-source\", \"text/x-pascal\"],\n loader: () => import('./pascal.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"pascaligo\",\n extensions: [\".ligo\"],\n aliases: [\"Pascaligo\", \"ligo\"],\n loader: () => import('./pascaligo.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"perl\",\n extensions: [\".pl\", \".pm\"],\n aliases: [\"Perl\", \"pl\"],\n loader: () => import('./perl.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"pgsql\",\n extensions: [],\n aliases: [\"PostgreSQL\", \"postgres\", \"pg\", \"postgre\"],\n loader: () => import('./pgsql.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"php\",\n extensions: [\".php\", \".php4\", \".php5\", \".phtml\", \".ctp\"],\n aliases: [\"PHP\", \"php\"],\n mimetypes: [\"application/x-php\"],\n loader: () => import('./php.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"pla\",\n extensions: [\".pla\"],\n loader: () => import('./pla.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"postiats\",\n extensions: [\".dats\", \".sats\", \".hats\"],\n aliases: [\"ATS\", \"ATS/Postiats\"],\n loader: () => import('./postiats.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"powerquery\",\n extensions: [\".pq\", \".pqm\"],\n aliases: [\"PQ\", \"M\", \"Power Query\", \"Power Query M\"],\n loader: () => import('./powerquery.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"powershell\",\n extensions: [\".ps1\", \".psm1\", \".psd1\"],\n aliases: [\"PowerShell\", \"powershell\", \"ps\", \"ps1\"],\n loader: () => import('./powershell.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"proto\",\n extensions: [\".proto\"],\n aliases: [\"protobuf\", \"Protocol Buffers\"],\n loader: () => import('./protobuf.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"pug\",\n extensions: [\".jade\", \".pug\"],\n aliases: [\"Pug\", \"Jade\", \"jade\"],\n loader: () => import('./pug.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"python\",\n extensions: [\".py\", \".rpy\", \".pyw\", \".cpy\", \".gyp\", \".gypi\"],\n aliases: [\"Python\", \"py\"],\n firstLine: \"^#!/.*\\\\bpython[0-9.-]*\\\\b\",\n loader: () => import('./python.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"qsharp\",\n extensions: [\".qs\"],\n aliases: [\"Q#\", \"qsharp\"],\n loader: () => import('./qsharp.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"r\",\n extensions: [\".r\", \".rhistory\", \".rmd\", \".rprofile\", \".rt\"],\n aliases: [\"R\", \"r\"],\n loader: () => import('./r.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"razor\",\n extensions: [\".cshtml\"],\n aliases: [\"Razor\", \"razor\"],\n mimetypes: [\"text/x-cshtml\"],\n loader: () => import('./razor.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"redis\",\n extensions: [\".redis\"],\n aliases: [\"redis\"],\n loader: () => import('./redis.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"redshift\",\n extensions: [],\n aliases: [\"Redshift\", \"redshift\"],\n loader: () => import('./redshift.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"restructuredtext\",\n extensions: [\".rst\"],\n aliases: [\"reStructuredText\", \"restructuredtext\"],\n loader: () => import('./restructuredtext.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"ruby\",\n extensions: [\".rb\", \".rbx\", \".rjs\", \".gemspec\", \".pp\"],\n filenames: [\"rakefile\", \"Gemfile\"],\n aliases: [\"Ruby\", \"rb\"],\n loader: () => import('./ruby.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"rust\",\n extensions: [\".rs\", \".rlib\"],\n aliases: [\"Rust\", \"rust\"],\n loader: () => import('./rust.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"sb\",\n extensions: [\".sb\"],\n aliases: [\"Small Basic\", \"sb\"],\n loader: () => import('./sb.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"scala\",\n extensions: [\".scala\", \".sc\", \".sbt\"],\n aliases: [\"Scala\", \"scala\", \"SBT\", \"Sbt\", \"sbt\", \"Dotty\", \"dotty\"],\n mimetypes: [\"text/x-scala-source\", \"text/x-scala\", \"text/x-sbt\", \"text/x-dotty\"],\n loader: () => import('./scala.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"scheme\",\n extensions: [\".scm\", \".ss\", \".sch\", \".rkt\"],\n aliases: [\"scheme\", \"Scheme\"],\n loader: () => import('./scheme.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"scss\",\n extensions: [\".scss\"],\n aliases: [\"Sass\", \"sass\", \"scss\"],\n mimetypes: [\"text/x-scss\", \"text/scss\"],\n loader: () => import('./scss.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"shell\",\n extensions: [\".sh\", \".bash\"],\n aliases: [\"Shell\", \"sh\"],\n loader: () => import('./shell.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"sol\",\n extensions: [\".sol\"],\n aliases: [\"sol\", \"solidity\", \"Solidity\"],\n loader: () => import('./solidity.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"aes\",\n extensions: [\".aes\"],\n aliases: [\"aes\", \"sophia\", \"Sophia\"],\n loader: () => import('./sophia.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"sparql\",\n extensions: [\".rq\"],\n aliases: [\"sparql\", \"SPARQL\"],\n loader: () => import('./sparql.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"sql\",\n extensions: [\".sql\"],\n aliases: [\"SQL\"],\n loader: () => import('./sql.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"st\",\n extensions: [\".st\", \".iecst\", \".iecplc\", \".lc3lib\", \".TcPOU\", \".TcDUT\", \".TcGVL\", \".TcIO\"],\n aliases: [\"StructuredText\", \"scl\", \"stl\"],\n loader: () => import('./st.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"swift\",\n aliases: [\"Swift\", \"swift\"],\n extensions: [\".swift\"],\n mimetypes: [\"text/swift\"],\n loader: () => import('./swift.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"systemverilog\",\n extensions: [\".sv\", \".svh\"],\n aliases: [\"SV\", \"sv\", \"SystemVerilog\", \"systemverilog\"],\n loader: () => import('./systemverilog.js')\n});\nregisterLanguage({\n id: \"verilog\",\n extensions: [\".v\", \".vh\"],\n aliases: [\"V\", \"v\", \"Verilog\", \"verilog\"],\n loader: () => import('./systemverilog.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"tcl\",\n extensions: [\".tcl\"],\n aliases: [\"tcl\", \"Tcl\", \"tcltk\", \"TclTk\", \"tcl/tk\", \"Tcl/Tk\"],\n loader: () => import('./tcl.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"twig\",\n extensions: [\".twig\"],\n aliases: [\"Twig\", \"twig\"],\n mimetypes: [\"text/x-twig\"],\n loader: () => import('./twig.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"typescript\",\n extensions: [\".ts\", \".tsx\", \".cts\", \".mts\"],\n aliases: [\"TypeScript\", \"ts\", \"typescript\"],\n mimetypes: [\"text/typescript\"],\n loader: () => {\n return import('./typescript.js');\n }\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"typespec\",\n extensions: [\".tsp\"],\n aliases: [\"TypeSpec\"],\n loader: () => import('./typespec.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"vb\",\n extensions: [\".vb\"],\n aliases: [\"Visual Basic\", \"vb\"],\n loader: () => import('./vb.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"wgsl\",\n extensions: [\".wgsl\"],\n aliases: [\"WebGPU Shading Language\", \"WGSL\", \"wgsl\"],\n loader: () => import('./wgsl.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"xml\",\n extensions: [\n \".xml\",\n \".xsd\",\n \".dtd\",\n \".ascx\",\n \".csproj\",\n \".config\",\n \".props\",\n \".targets\",\n \".wxi\",\n \".wxl\",\n \".wxs\",\n \".xaml\",\n \".svg\",\n \".svgz\",\n \".opf\",\n \".xslt\",\n \".xsl\"\n ],\n firstLine: \"(\\\\<\\\\?xml.*)|(\\\\<svg)|(\\\\<\\\\!doctype\\\\s+svg)\",\n aliases: [\"XML\", \"xml\"],\n mimetypes: [\"text/xml\", \"application/xml\", \"application/xaml+xml\", \"application/xml-dtd\"],\n loader: () => import('./xml.js')\n});\n","import { registerLanguage } from '../_.contribution.js';\n\nregisterLanguage({\n id: \"yaml\",\n extensions: [\".yaml\", \".yml\"],\n aliases: [\"YAML\", \"yaml\", \"YML\", \"yml\"],\n mimetypes: [\"application/x-yaml\", \"text/x-yaml\"],\n loader: () => import('./yaml.js')\n});\n","import { languages, Emitter } from '../../../editor/editor.api.js';\n\nclass LanguageServiceDefaultsImpl {\n constructor(languageId, options, modeConfiguration) {\n this._onDidChange = new Emitter();\n this._languageId = languageId;\n this.setOptions(options);\n this.setModeConfiguration(modeConfiguration);\n }\n get onDidChange() {\n return this._onDidChange.event;\n }\n get languageId() {\n return this._languageId;\n }\n get modeConfiguration() {\n return this._modeConfiguration;\n }\n get diagnosticsOptions() {\n return this.options;\n }\n get options() {\n return this._options;\n }\n setOptions(options) {\n this._options = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n setDiagnosticsOptions(options) {\n this.setOptions(options);\n }\n setModeConfiguration(modeConfiguration) {\n this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n}\nconst optionsDefault = {\n validate: true,\n lint: {\n compatibleVendorPrefixes: \"ignore\",\n vendorPrefix: \"warning\",\n duplicateProperties: \"warning\",\n emptyRules: \"warning\",\n importStatement: \"ignore\",\n boxModel: \"ignore\",\n universalSelector: \"ignore\",\n zeroUnits: \"ignore\",\n fontFaceProperties: \"warning\",\n hexColorLength: \"error\",\n argumentsInColorFunction: \"error\",\n unknownProperties: \"warning\",\n ieHack: \"ignore\",\n unknownVendorSpecificProperties: \"ignore\",\n propertyIgnoredDueToDisplay: \"warning\",\n important: \"ignore\",\n float: \"ignore\",\n idSelector: \"ignore\"\n },\n data: { useDefaultDataProvider: true },\n format: {\n newlineBetweenSelectors: true,\n newlineBetweenRules: true,\n spaceAroundSelectorSeparator: false,\n braceStyle: \"collapse\",\n maxPreserveNewLines: void 0,\n preserveNewLines: true\n }\n};\nconst modeConfigurationDefault = {\n completionItems: true,\n hovers: true,\n documentSymbols: true,\n definitions: true,\n references: true,\n documentHighlights: true,\n rename: true,\n colors: true,\n foldingRanges: true,\n diagnostics: true,\n selectionRanges: true,\n documentFormattingEdits: true,\n documentRangeFormattingEdits: true\n};\nconst cssDefaults = new LanguageServiceDefaultsImpl(\n \"css\",\n optionsDefault,\n modeConfigurationDefault\n);\nconst scssDefaults = new LanguageServiceDefaultsImpl(\n \"scss\",\n optionsDefault,\n modeConfigurationDefault\n);\nconst lessDefaults = new LanguageServiceDefaultsImpl(\n \"less\",\n optionsDefault,\n modeConfigurationDefault\n);\nfunction getMode() {\n return import('./cssMode.js');\n}\nlanguages.onLanguage(\"less\", () => {\n getMode().then((mode2) => mode2.setupMode(lessDefaults));\n});\nlanguages.onLanguage(\"scss\", () => {\n getMode().then((mode2) => mode2.setupMode(scssDefaults));\n});\nlanguages.onLanguage(\"css\", () => {\n getMode().then((mode2) => mode2.setupMode(cssDefaults));\n});\n\nexport { cssDefaults, lessDefaults, scssDefaults };\n","import { languages, Emitter } from '../../../editor/editor.api.js';\n\nclass LanguageServiceDefaultsImpl {\n constructor(languageId, options, modeConfiguration) {\n this._onDidChange = new Emitter();\n this._languageId = languageId;\n this.setOptions(options);\n this.setModeConfiguration(modeConfiguration);\n }\n get onDidChange() {\n return this._onDidChange.event;\n }\n get languageId() {\n return this._languageId;\n }\n get options() {\n return this._options;\n }\n get modeConfiguration() {\n return this._modeConfiguration;\n }\n setOptions(options) {\n this._options = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n setModeConfiguration(modeConfiguration) {\n this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n}\nconst formatDefaults = {\n tabSize: 4,\n insertSpaces: false,\n wrapLineLength: 120,\n unformatted: 'default\": \"a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',\n contentUnformatted: \"pre\",\n indentInnerHtml: false,\n preserveNewLines: true,\n maxPreserveNewLines: void 0,\n indentHandlebars: false,\n endWithNewline: false,\n extraLiners: \"head, body, /html\",\n wrapAttributes: \"auto\"\n};\nconst optionsDefault = {\n format: formatDefaults,\n suggest: {},\n data: { useDefaultDataProvider: true }\n};\nfunction getConfigurationDefault(languageId) {\n return {\n completionItems: true,\n hovers: true,\n documentSymbols: true,\n links: true,\n documentHighlights: true,\n rename: true,\n colors: true,\n foldingRanges: true,\n selectionRanges: true,\n diagnostics: languageId === htmlLanguageId,\n // turned off for Razor and Handlebar\n documentFormattingEdits: languageId === htmlLanguageId,\n // turned off for Razor and Handlebar\n documentRangeFormattingEdits: languageId === htmlLanguageId\n // turned off for Razor and Handlebar\n };\n}\nconst htmlLanguageId = \"html\";\nconst handlebarsLanguageId = \"handlebars\";\nconst razorLanguageId = \"razor\";\nconst htmlLanguageService = registerHTMLLanguageService(\n htmlLanguageId,\n optionsDefault,\n getConfigurationDefault(htmlLanguageId)\n);\nconst htmlDefaults = htmlLanguageService.defaults;\nconst handlebarLanguageService = registerHTMLLanguageService(\n handlebarsLanguageId,\n optionsDefault,\n getConfigurationDefault(handlebarsLanguageId)\n);\nconst handlebarDefaults = handlebarLanguageService.defaults;\nconst razorLanguageService = registerHTMLLanguageService(\n razorLanguageId,\n optionsDefault,\n getConfigurationDefault(razorLanguageId)\n);\nconst razorDefaults = razorLanguageService.defaults;\nfunction getMode() {\n return import('./htmlMode.js');\n}\nfunction registerHTMLLanguageService(languageId, options = optionsDefault, modeConfiguration = getConfigurationDefault(languageId)) {\n const defaults = new LanguageServiceDefaultsImpl(languageId, options, modeConfiguration);\n let mode2;\n const onLanguageListener = languages.onLanguage(languageId, async () => {\n mode2 = (await getMode()).setupMode(defaults);\n });\n return {\n defaults,\n dispose() {\n onLanguageListener.dispose();\n mode2?.dispose();\n mode2 = void 0;\n }\n };\n}\n\nexport { handlebarDefaults, handlebarLanguageService, htmlDefaults, htmlLanguageService, razorDefaults, razorLanguageService, registerHTMLLanguageService };\n","import { languages, Emitter } from '../../../editor/editor.api.js';\n\nclass LanguageServiceDefaultsImpl {\n constructor(languageId, diagnosticsOptions, modeConfiguration) {\n this._onDidChange = new Emitter();\n this._languageId = languageId;\n this.setDiagnosticsOptions(diagnosticsOptions);\n this.setModeConfiguration(modeConfiguration);\n }\n get onDidChange() {\n return this._onDidChange.event;\n }\n get languageId() {\n return this._languageId;\n }\n get modeConfiguration() {\n return this._modeConfiguration;\n }\n get diagnosticsOptions() {\n return this._diagnosticsOptions;\n }\n setDiagnosticsOptions(options) {\n this._diagnosticsOptions = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n setModeConfiguration(modeConfiguration) {\n this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n}\nconst diagnosticDefault = {\n validate: true,\n allowComments: true,\n schemas: [],\n enableSchemaRequest: false,\n schemaRequest: \"warning\",\n schemaValidation: \"warning\",\n comments: \"error\",\n trailingCommas: \"error\"\n};\nconst modeConfigurationDefault = {\n documentFormattingEdits: true,\n documentRangeFormattingEdits: true,\n completionItems: true,\n hovers: true,\n documentSymbols: true,\n tokens: true,\n colors: true,\n foldingRanges: true,\n diagnostics: true,\n selectionRanges: true\n};\nconst jsonDefaults = new LanguageServiceDefaultsImpl(\n \"json\",\n diagnosticDefault,\n modeConfigurationDefault\n);\nconst getWorker = () => getMode().then((mode2) => mode2.getWorker());\nfunction getMode() {\n return import('./jsonMode.js');\n}\nlanguages.register({\n id: \"json\",\n extensions: [\".json\", \".bowerrc\", \".jshintrc\", \".jscsrc\", \".eslintrc\", \".babelrc\", \".har\"],\n aliases: [\"JSON\", \"json\"],\n mimetypes: [\"application/json\"]\n});\nlanguages.onLanguage(\"json\", () => {\n getMode().then((mode2) => mode2.setupMode(jsonDefaults));\n});\n\nexport { getWorker, jsonDefaults };\n","import '../../editor/contrib/find/browser/findController.js';\nimport { FindWidget } from '../../editor/contrib/find/browser/findWidget.js';\n\nconst tabIndexPatchKey = \"__monacoFindWidgetTabIndexPatchApplied\";\nconst originalTabIndexKey = \"__monacoFindWidgetOriginalTabIndex\";\nfunction setFindWidgetTabbableState(widget, visible) {\n const domNode = widget?._domNode;\n if (!domNode) {\n return;\n }\n const focusableElements = domNode.querySelectorAll('input, textarea, [tabindex], [role=\"button\"], [role=\"checkbox\"]');\n for (const element of focusableElements) {\n if (!(element instanceof HTMLElement)) {\n continue;\n }\n if (visible) {\n if (!(originalTabIndexKey in element.dataset)) {\n continue;\n }\n const originalTabIndex = element.dataset[originalTabIndexKey];\n if (originalTabIndex === \"\") {\n element.removeAttribute(\"tabindex\");\n } else {\n element.tabIndex = Number(originalTabIndex);\n }\n delete element.dataset[originalTabIndexKey];\n } else {\n if (!(originalTabIndexKey in element.dataset)) {\n element.dataset[originalTabIndexKey] = element.getAttribute(\"tabindex\") ?? \"\";\n }\n element.tabIndex = -1;\n }\n }\n}\nif (!FindWidget[tabIndexPatchKey]) {\n const originalReveal = FindWidget.prototype._reveal;\n const originalHide = FindWidget.prototype._hide;\n FindWidget.prototype._reveal = function(...args) {\n originalReveal.apply(this, args);\n setFindWidgetTabbableState(this, true);\n };\n FindWidget.prototype._hide = function(...args) {\n originalHide.apply(this, args);\n setFindWidgetTabbableState(this, false);\n };\n FindWidget[tabIndexPatchKey] = true;\n}\n","import {\n contributionRegistry,\n subscribe,\n TOPIC_CONTRIBUTEIONS_CHANGED,\n type ContributionChangeEvent,\n} from '@eclipse-docks/core';\nimport * as monaco from 'monaco-editor';\n\nimport {\n MONACO_GRAMMARS,\n type MonacoGrammarContribution,\n} from './monaco-grammar-api';\n\nconst appliedGrammarIds = new Set<string>();\n\n/**\n * Apply contributed Monarch grammars to this package's Monaco module.\n * Safe to call repeatedly; each language id is registered at most once.\n */\nexport function ensureContributedGrammars(): void {\n const contributions =\n contributionRegistry.getContributions<MonacoGrammarContribution>(MONACO_GRAMMARS);\n\n for (const contribution of contributions) {\n const id = contribution.name;\n if (!id || appliedGrammarIds.has(id)) continue;\n\n const alreadyKnown = monaco.languages.getLanguages().some((lang) => lang.id === id);\n if (!alreadyKnown) {\n monaco.languages.register({\n id,\n extensions: contribution.extensions,\n aliases: contribution.aliases,\n mimetypes: contribution.mimetypes,\n });\n }\n\n if (contribution.conf) {\n monaco.languages.setLanguageConfiguration(id, contribution.conf);\n }\n monaco.languages.setMonarchTokensProvider(id, contribution.language);\n appliedGrammarIds.add(id);\n }\n}\n\nlet listening = false;\n\nexport function watchContributedGrammars(): void {\n if (listening) return;\n listening = true;\n subscribe(TOPIC_CONTRIBUTEIONS_CHANGED, (event: ContributionChangeEvent) => {\n if (event.target !== MONACO_GRAMMARS) return;\n ensureContributedGrammars();\n });\n}\n","import * as monaco from 'monaco-editor';\n// Monaco 0.56+ rewrites package subpaths to esm/vs/*.js, so the bundled CSS is not importable by name.\nimport styles from '../../../node_modules/monaco-editor/min/vs/editor/editor.main.css?raw';\nimport { customElement, property } from \"lit/decorators.js\";\nimport { LitElement, PropertyValues } from \"lit\";\nimport { css, html } from \"lit\";\nimport { createRef, ref } from \"lit/directives/ref.js\";\n\nimport { ensureContributedGrammars, watchContributedGrammars } from './monaco-grammars';\n\nwatchContributedGrammars();\n\n@customElement('docks-monaco-widget')\nexport class DocksMonacoWidget extends LitElement {\n @property({ attribute: false })\n value?: string;\n\n @property()\n language?: string;\n\n @property()\n uri?: string;\n\n @property({ type: Boolean })\n readOnly: boolean = false;\n\n @property()\n theme: string = 'vs-dark';\n\n @property({ type: Boolean, attribute: 'auto-layout' })\n autoLayout = false;\n\n private containerRef = createRef<HTMLElement>();\n private editor?: monaco.editor.IStandaloneCodeEditor;\n private model?: monaco.editor.ITextModel;\n private themeObserver?: MutationObserver;\n private resizeObserver?: ResizeObserver;\n\n private getMonacoTheme(): string {\n const root = document.documentElement;\n if (root.classList.contains('wa-dark')) return 'vs-dark';\n if (root.classList.contains('wa-light')) return 'vs';\n return 'vs-dark';\n }\n\n private setupThemeObserver(): void {\n const rootElement = document.documentElement;\n let currentTheme = this.getMonacoTheme();\n\n this.themeObserver = new MutationObserver(() => {\n const newTheme = this.getMonacoTheme();\n if (newTheme !== currentTheme) {\n currentTheme = newTheme;\n monaco.editor.setTheme(newTheme);\n }\n });\n\n this.themeObserver.observe(rootElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n\n private ensureEditor() {\n const container = this.containerRef.value;\n if (!container || this.editor) return;\n if (this.value === undefined) return;\n\n ensureContributedGrammars();\n\n const uri = this.uri != null ? monaco.Uri.file(this.uri) : undefined;\n this.model = monaco.editor.createModel(this.value, this.language, uri);\n this.editor = monaco.editor.create(container, {\n theme: this.getMonacoTheme(),\n automaticLayout: this.autoLayout,\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n });\n this.model.onDidChangeContent(() => {\n if (this.readOnly) return;\n this.dispatchEvent(new CustomEvent('content-change', { bubbles: true, composed: true }));\n });\n this.editor.setModel(this.model);\n this.editor.onDidFocusEditorText(() => {\n this.dispatchEvent(new CustomEvent('editor-focus', { bubbles: true, composed: true }));\n });\n this.editor.onDidBlurEditorText(() => {\n this.dispatchEvent(new CustomEvent('editor-blur', { bubbles: true, composed: true }));\n });\n this.editor.onDidContentSizeChange(() => {\n const height = this.editor?.getContentHeight() ?? 0;\n this.dispatchEvent(new CustomEvent('content-height-changed', { detail: { height }, bubbles: true, composed: true }));\n });\n this.resizeObserver = new ResizeObserver(() => this.editor?.layout());\n this.resizeObserver.observe(container);\n this.setupThemeObserver();\n }\n\n protected firstUpdated(_changedProperties: PropertyValues) {\n super.firstUpdated(_changedProperties);\n this.ensureEditor();\n }\n\n protected updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n if (changedProperties.has('value') || changedProperties.has('language') || changedProperties.has('uri')) {\n this.ensureEditor();\n }\n }\n\n disconnectedCallback() {\n this.dispose();\n super.disconnectedCallback();\n }\n\n public dispose() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = undefined;\n this.themeObserver?.disconnect();\n this.themeObserver = undefined;\n this.model?.dispose();\n this.editor?.dispose();\n this.model = undefined;\n this.editor = undefined;\n }\n\n public getEditor(): monaco.editor.IStandaloneCodeEditor | undefined {\n return this.editor;\n }\n\n public getContentHeight(): number {\n return this.editor?.getContentHeight() ?? 0;\n }\n\n public layout(): void {\n this.editor?.layout();\n }\n\n public getModel(): monaco.editor.ITextModel | undefined {\n return this.model;\n }\n\n public getContent(): string | null {\n return this.model?.getValue() ?? null;\n }\n\n public getLanguage(): string | null {\n return this.model?.getLanguageId()?.toLowerCase() ?? null;\n }\n\n public isLanguage(lang: string): boolean {\n return this.getLanguage() === lang.toLowerCase();\n }\n\n public getSelection(): string | null {\n if (!this.editor || !this.model) return null;\n try {\n const selection = this.editor.getSelection();\n if (!selection || selection.isEmpty()) return null;\n return this.model.getValueInRange(selection) || null;\n } catch {\n return null;\n }\n }\n\n public getSnippet(lines: number = 5): { snippet: string; cursorLine: number } | null {\n if (!this.editor || !this.model) return null;\n try {\n const position = this.editor.getPosition();\n if (!position) return null;\n const n = isNaN(lines) || lines < 0 ? 5 : lines;\n const cursorLineNumber = position.lineNumber;\n const totalLines = this.model.getLineCount();\n const startLine = Math.max(1, cursorLineNumber - n);\n const endLine = Math.min(totalLines, cursorLineNumber + n);\n const snippet = this.model.getValueInRange({\n startLineNumber: startLine,\n startColumn: 1,\n endLineNumber: endLine,\n endColumn: this.model.getLineMaxColumn(endLine),\n });\n return { snippet, cursorLine: cursorLineNumber };\n } catch {\n return null;\n }\n }\n\n render() {\n return html`\n <style>${styles}</style>\n <div class=\"monaco-editor-container\" ${ref(this.containerRef)}></div>\n `;\n }\n\n static styles = css`\n :host {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n }\n div.monaco-editor-container {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: hidden;\n }\n `;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'docks-monaco-widget': DocksMonacoWidget;\n }\n}\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86],"mappings":"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"}