{
  "version": 3,
  "sources": ["../../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js", "../../codemirror-lsp/src/index.mts", "../../../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.mjs", "../../codemirror-lsp/src/jsonRpc/index.mts", "../../codemirror-lsp/src/lsp/conversion.mts"],
  "sourcesContent": ["'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n  module.exports = EventEmitter;\n}\n", "import { linter, type Diagnostic, setDiagnostics } from \"@codemirror/lint\";\nimport { type Extension } from \"@codemirror/state\";\nimport { type EditorView, ViewPlugin, type ViewUpdate } from \"@codemirror/view\";\nimport { EventEmitter } from \"eventemitter3\";\n\n// import { generateLspAutocomplete } from \"./autocompletion.mts\";\nimport { JsonRpc } from \"./jsonRpc/index.mts\";\nimport {\n  type TextDocumentPublishDiagnosticsRequest,\n  getCharacterFromPosition,\n  getDiagnosticSeverity,\n} from \"./lsp/conversion.mts\";\n\n// Export\nexport * from \"./lsp/conversion.mts\";\n\nexport type ServerResponseCallback = (jsonRpc: string) => void;\n\nexport interface LspConfigData {\n  emitServerCommand: ServerResponseCallback;\n}\nexport interface LspConfig {\n  autocompletion?: boolean;\n  onClientCommand: (jsonRpc: string) => void;\n  getData: (data: LspConfigData) => void;\n}\n\nexport function createLsp(config: LspConfig): Extension {\n  const lspBus = new EventEmitter();\n\n  let lspView: EditorView | null = null;\n  let nextVersionId = 0;\n  const { autocompletion = true, onClientCommand, getData } = config;\n  const jsonRpcClient = new JsonRpc();\n\n  class LspPlugin {\n    view: EditorView;\n\n    constructor(view: EditorView) {\n      this.view = view;\n    }\n\n    update(update: ViewUpdate): void {}\n  }\n  ViewPlugin.fromClass(LspPlugin);\n\n  const lspLinter = linter(async (view) => {\n    lspView = view;\n    lspBus.emit(\"view\", view);\n\n    const diagnostics: Diagnostic[] = [];\n    const localVersion = nextVersionId;\n    nextVersionId += 1;\n\n    jsonRpcClient.notify({\n      method: \"textDocument/didChange\",\n      params: {\n        textDocument: {\n          uri: \"file:///whatever\",\n          version: localVersion,\n        },\n        contentChanges: [\n          {\n            text: view.state.doc.toString(),\n          },\n        ],\n      },\n    });\n\n    return diagnostics;\n  }, {});\n\n  jsonRpcClient.on(\"request\", (request) => {\n    onClientCommand(request);\n  });\n\n  const onNotification = (notification: any): void => {\n    switch (notification.method) {\n      case \"textDocument/publishDiagnostics\":\n        onPublishDiagnostics(notification);\n        break;\n    }\n  };\n\n  jsonRpcClient.on(\"notification\", onNotification);\n\n  const onPublishDiagnostics = (\n    notification: TextDocumentPublishDiagnosticsRequest\n  ): void => {\n    console.log(\"onPublishDiagnostics\", notification, lspView);\n    if (lspView == null) {\n      return;\n    }\n\n    const diagnostics: Diagnostic[] = notification.params.diagnostics.map(\n      (diagnostic) => {\n        return {\n          from: getCharacterFromPosition(\n            lspView?.state.doc.toString() ?? \"\",\n            diagnostic.range.start\n          ),\n          to: getCharacterFromPosition(\n            lspView?.state.doc.toString() ?? \"\",\n            diagnostic.range.end\n          ),\n          severity: getDiagnosticSeverity(diagnostic.severity),\n          source: diagnostic.source,\n          message: diagnostic.message,\n        };\n      }\n    );\n\n    console.log(\"diagnostics\", diagnostics);\n    const transitionSpec = setDiagnostics(lspView.state, diagnostics);\n    const transaction = lspView.state.update(transitionSpec);\n    lspView.dispatch(transaction);\n  };\n\n  const emitServerCommand = (jsonRpc: string): void => {\n    const json = JSON.parse(jsonRpc);\n    if (typeof json === \"string\") {\n      throw new Error(\"JSON is string\");\n    }\n\n    if (Array.isArray(json)) {\n      const elements = [];\n      for (const el of json) {\n        if (\"method\" in el) {\n          jsonRpcClient.emit(\"notification\", el);\n        } else {\n          elements.push(el);\n        }\n      }\n\n      jsonRpcClient.emit(\"batch\", elements);\n      return;\n    }\n    if (\"error\" in json) {\n      jsonRpcClient.emit(\"error\", json);\n      return;\n    }\n    if (\"result\" in json) {\n      jsonRpcClient.emit(\"response\", json);\n      return;\n    }\n    if (\"method\" in json) {\n      jsonRpcClient.emit(\"notification\", json);\n      return;\n    }\n\n    throw new Error(\"unknown error\");\n  };\n\n  getData({ emitServerCommand });\n\n  return [\n    lspLinter,\n    ...(autocompletion\n      ? [\n          // generateLspAutocomplete({\n          //   client: jsonRpcClient,\n          //   bus: lspBus,\n          // }),\n        ]\n      : []),\n  ];\n}\n", "import EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\n", "import EventEmitter from \"eventemitter3\";\n\nimport { type ServerErrors } from \"./serverErrors.mts\";\n\nconst ResponseErrors = {\n  PARSE_ERROR: -32700,\n  INVALID_REQUEST: -32600,\n  METHOD_NOT_FOUND: -32601,\n  INVALID_PARAMS: -32602,\n  INTERNAL_ERROR: -32603,\n} as const;\ntype ResponseErrorKeys = keyof typeof ResponseErrors;\ntype ResponseErrorValues =\n  | (typeof ResponseErrors)[ResponseErrorKeys]\n  | ServerErrors;\n\nexport interface Request {\n  jsonrpc: \"2.0\";\n  method: string;\n  params: any;\n  id?: string | number | null;\n}\n\ninterface Response {\n  jsonrpc: \"2.0\";\n  id?: string | number | null;\n}\n\nexport interface ResponseSuccess extends Response {\n  result: any;\n}\n\nexport interface ResponseError extends Response {\n  error: {\n    code: ResponseErrorValues;\n    message: string;\n    data?: any;\n  };\n}\n\nexport type Responses = ResponseSuccess | ResponseError;\n\ntype PartialRequest = Omit<Request, \"jsonrpc\" | \"\">;\n\nexport class JsonRpcError extends Error {\n  code: number | string = 0;\n  response: ResponseError | null = null;\n\n  constructor(\n    message?: string,\n    options?: ErrorOptions & { code: number | string; response: ResponseError }\n  ) {\n    const { cause, code, response } = options ?? {};\n\n    super(message, { cause });\n\n    if (code != null) {\n      this.code = code;\n    }\n\n    if (response != null) {\n      this.response = response;\n    }\n  }\n}\n\nexport class JsonRpc extends EventEmitter {\n  _requests = new Map<number, Request>();\n  _lastId = 0;\n\n  send(request: PartialRequest): Promise<ResponseSuccess>;\n  send(request: PartialRequest[]): Promise<Responses[]>;\n  async send(\n    request: PartialRequest | PartialRequest[]\n  ): Promise<ResponseSuccess | Responses[]> {\n    return await new Promise<ResponseSuccess | Responses[]>(\n      (resolve, reject) => {\n        if (Array.isArray(request)) {\n          this._processBatch(request, resolve);\n        } else {\n          this._process(request, resolve, reject);\n        }\n      }\n    );\n  }\n\n  notify(request: PartialRequest): void;\n  notify(request: PartialRequest[]): void;\n  notify(request: PartialRequest | PartialRequest[]): void {\n    if (Array.isArray(request)) {\n      new Promise((resolve) => {\n        this._processBatch(request, resolve);\n      }).catch((err) => {\n        console.error(\"Error while processing batch:\", err);\n      });\n      return;\n    }\n    new Promise((resolve, reject) => {\n      this._process(request, resolve, reject);\n    }).catch((err) => {\n      console.error(\"Error while running process:\", err);\n    });\n  }\n\n  _process(\n    request: PartialRequest,\n    resolve: Parameters<\n      ConstructorParameters<typeof Promise<ResponseSuccess>>[0]\n    >[0],\n    reject: Parameters<\n      ConstructorParameters<typeof Promise<ResponseError>>[0]\n    >[1]\n  ): void {\n    const id = this._lastId;\n    this._lastId += 1;\n\n    const formattedRequest = {\n      jsonrpc: \"2.0\" as const,\n      id,\n      ...request,\n    };\n\n    const removeListeners = (): void => {\n      this.off(\"response\", onResponse);\n      this.off(\"error\", onError);\n    };\n\n    const onResponse = (response: ResponseSuccess): void => {\n      if (response.id === id) {\n        resolve(response);\n        removeListeners();\n      }\n    };\n\n    const onError = (response: ResponseError): void => {\n      if (response.id === id) {\n        const error = new JsonRpcError(response.error.message, {\n          code: response.error.code,\n          response,\n        });\n        reject(error);\n        removeListeners();\n      }\n    };\n\n    this.on(\"response\", onResponse);\n    this.on(\"error\", onError);\n\n    this.emit(\"request\", JSON.stringify(formattedRequest));\n  }\n\n  _processBatch(\n    request: PartialRequest[],\n    resolve: Parameters<\n      ConstructorParameters<typeof Promise<Responses[]>>[0]\n    >[0]\n  ): void {\n    const requests: Request[] = request.map((request) => {\n      const formattedRequest = {\n        jsonrpc: \"2.0\" as const,\n        id: this._lastId,\n        ...request,\n      };\n      this._lastId += 1;\n      return formattedRequest;\n    });\n\n    const onBatch = (responses: Responses[]): void => {\n      const receivedResponses = [];\n\n      for (const response of responses) {\n        for (const request of requests) {\n          if (request.id === response.id) {\n            receivedResponses.push(response);\n          }\n        }\n      }\n\n      if (receivedResponses.length > 0) {\n        resolve(receivedResponses);\n        this.off(\"batch\", onBatch);\n      }\n    };\n\n    this.on(\"batch\", onBatch);\n\n    this.emit(\"request\", requests);\n  }\n}\n", "import { type Request } from \"../jsonRpc/index.mts\";\n\nexport interface Position {\n  character: number;\n  line: number;\n}\n\nexport interface Range {\n  start: Position;\n  end: Position;\n}\n\nexport interface TextDocumentPublishDiagnosticsDiagnostic {\n  code: number;\n  message: string;\n  range: Range;\n  severity: number;\n  source: string;\n}\n\nexport interface TextDocumentPublishDiagnosticsRequest extends Request {\n  method: \"textDocument/publishDiagnostics\";\n  params: {\n    diagnostics: TextDocumentPublishDiagnosticsDiagnostic[];\n  };\n}\n\nexport function getCharacterFromPosition(\n  text: string,\n  position: Position\n): number {\n  let currentLine = 0;\n  let currentColumn = 0;\n\n  for (let ci = 0; ci < text.length; ci++) {\n    const char = text[ci];\n    if (char === \"\\n\") {\n      currentLine += 1;\n      currentColumn = 0;\n    } else {\n      currentColumn += 1;\n    }\n\n    if (position.line < currentLine) {\n      return 0;\n    }\n\n    if (currentLine === position.line && currentColumn === position.character) {\n      return ci + 1;\n    }\n  }\n\n  return text.length;\n}\n\nexport function getPositionFromCharacter(\n  text: string,\n  character: number\n): Position {\n  let currentLine = 0;\n  let currentColumn = 0;\n\n  for (let i = 1; i < text.length; i++) {\n    const char = text[i - 1];\n    if (char === \"\\n\") {\n      currentLine += 1;\n      currentColumn = 0;\n    } else {\n      currentColumn += 1;\n    }\n\n    if (i === character) {\n      return {\n        line: currentLine,\n        character: currentColumn,\n      };\n    }\n  }\n\n  return {\n    line: currentLine,\n    character: currentColumn,\n  };\n}\n\nexport function getDiagnosticSeverity(\n  severity: number\n): \"error\" | \"warning\" | \"info\" {\n  switch (severity) {\n    case 1:\n      return \"error\";\n    case 2:\n      return \"warning\";\n    case 3:\n    case 4:\n    default:\n      return \"info\";\n  }\n}\n"],
  "mappings": "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",
  "names": ["linter", "setDiagnostics", "ViewPlugin", "require_eventemitter3", "__commonJS", "exports", "module", "has", "prefix", "Events", "EE", "fn", "context", "once", "addListener", "emitter", "event", "listener", "evt", "clearEvent", "EventEmitter", "names", "events", "name", "handlers", "i", "l", "ee", "listeners", "a1", "a2", "a3", "a4", "a5", "len", "args", "length", "j", "import_index", "__toESM", "eventemitter3_default", "JsonRpcError", "message", "options", "cause", "code", "response", "JsonRpc", "request", "resolve", "reject", "err", "id", "formattedRequest", "removeListeners", "onResponse", "onError", "error", "requests", "onBatch", "responses", "receivedResponses", "getCharacterFromPosition", "text", "position", "currentLine", "currentColumn", "ci", "getPositionFromCharacter", "character", "getDiagnosticSeverity", "severity", "createLsp", "config", "lspBus", "lspView", "nextVersionId", "autocompletion", "onClientCommand", "getData", "jsonRpcClient", "LspPlugin", "view", "update", "lspLinter", "diagnostics", "localVersion", "onNotification", "notification", "onPublishDiagnostics", "diagnostic", "transitionSpec", "transaction", "jsonRpc", "json", "elements", "el"]
}
