likec4 1.59.4 → 1.60.0

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 (96) hide show
  1. package/__app__/codegen/react.mjs +6 -6
  2. package/__app__/codegen/webcomponent.mjs +147 -69
  3. package/__app__/src/aichat/index.mjs +10 -5
  4. package/__app__/src/chunks/AIChat.mjs +1134 -693
  5. package/__app__/src/chunks/LikeC4Styles.mjs +3995 -1779
  6. package/__app__/src/chunks/ProjectsOverview.mjs +624 -334
  7. package/__app__/src/chunks/es.mjs +515 -335
  8. package/__app__/src/chunks/hooks.mjs +578 -369
  9. package/__app__/src/chunks/libs/@floating-ui.mjs +2720 -1966
  10. package/__app__/src/chunks/libs/@mantine.mjs +13920 -10057
  11. package/__app__/src/chunks/libs/@tanstack-ai.mjs +2266 -1146
  12. package/__app__/src/chunks/libs/@tanstack.mjs +3152 -1926
  13. package/__app__/src/chunks/libs/@xstate/react.mjs +2924 -1468
  14. package/__app__/src/chunks/libs/@xyflow/react.mjs +6627 -4067
  15. package/__app__/src/chunks/libs/bezier-js.mjs +1312 -726
  16. package/__app__/src/chunks/libs/d3.mjs +3219 -1505
  17. package/__app__/src/chunks/libs/fast-equals.mjs +434 -210
  18. package/__app__/src/chunks/libs/framer.mjs +9251 -3846
  19. package/__app__/src/chunks/libs/nanostores.mjs +174 -0
  20. package/__app__/src/chunks/libs/zod.mjs +4591 -2363
  21. package/__app__/src/chunks/rolldown-runtime.mjs +39 -23
  22. package/__app__/src/chunks/styled-system.mjs +2279 -1951
  23. package/__app__/src/fonts.css +112 -1
  24. package/__app__/src/main.mjs +40817 -21840
  25. package/__app__/src/style.css +18488 -1
  26. package/config/schema.json +122 -97
  27. package/dist/app/render-view-client.css +1 -1
  28. package/dist/app/render-view-client.js +508 -334
  29. package/dist/chunks/enableServer.mjs +1 -1
  30. package/dist/chunks/filenames.mjs +11 -9
  31. package/dist/chunks/generate-likec4.mjs +5 -0
  32. package/dist/chunks/index.d.mts +243 -183
  33. package/dist/chunks/index2.d.mts +2865 -1977
  34. package/dist/chunks/libs/@chevrotain/gast.mjs +27 -1
  35. package/dist/chunks/libs/@chevrotain/regexp-to-ast.mjs +81 -9
  36. package/dist/chunks/libs/@chevrotain/types.d.mts +4 -1
  37. package/dist/chunks/libs/@logtape/logtape.mjs +5 -4
  38. package/dist/chunks/libs/@lume/kiwi.mjs +1 -1
  39. package/dist/chunks/libs/@ts-graphviz/core.mjs +1 -1
  40. package/dist/chunks/libs/birpc.mjs +1 -1
  41. package/dist/chunks/libs/chevrotain-allstar.mjs +2 -2
  42. package/dist/chunks/libs/chevrotain.mjs +87 -35
  43. package/dist/chunks/libs/eventemitter3.mjs +1 -1
  44. package/dist/chunks/libs/json5.mjs +4 -4
  45. package/dist/chunks/libs/langium.d.mts +9038 -6193
  46. package/dist/chunks/libs/langium.mjs +16 -24
  47. package/dist/chunks/libs/merge-error-cause.mjs +1 -1
  48. package/dist/chunks/libs/p-limit.mjs +1 -0
  49. package/dist/chunks/libs/p-queue.mjs +1 -1
  50. package/dist/chunks/libs/package-manager-detector.mjs +1 -1
  51. package/dist/chunks/libs/pako.mjs +1 -1
  52. package/dist/chunks/libs/pretty-ms.mjs +1 -1
  53. package/dist/chunks/libs/remeda.mjs +1 -1
  54. package/dist/chunks/libs/ufo.mjs +1 -1
  55. package/dist/chunks/libs/unstorage.mjs +1 -1
  56. package/dist/chunks/libs/which.mjs +1 -1
  57. package/dist/chunks/node.mjs +59 -58
  58. package/dist/chunks/rolldown-runtime.mjs +1 -1
  59. package/dist/chunks/sequence-view.mjs +1 -1
  60. package/dist/chunks/vite-plugin.mjs +45 -45
  61. package/dist/cli/index.mjs +207 -1315
  62. package/dist/config/index.d.mts +2 -2
  63. package/dist/generators/likec4.d.mts +6578 -0
  64. package/dist/generators/likec4.mjs +1 -0
  65. package/dist/model/index.d.mts +4 -1
  66. package/dist/vite-plugin/index.d.mts +4 -1
  67. package/dist/vite-plugin/index.mjs +1 -1
  68. package/dist/vite-plugin/internal/chunks/rolldown-runtime.mjs +9 -0
  69. package/dist/vite-plugin/internal/index.d.mts +6 -5
  70. package/dist/vite-plugin/internal/index.mjs +83 -30
  71. package/generators/likec4/package.json +4 -0
  72. package/package.json +113 -106
  73. package/react/index.d.mts +8500 -26659
  74. package/react/index.mjs +534 -63936
  75. package/react/rolldown-runtime-DnkiqaRY.js +1 -0
  76. package/skills/likec4-dsl/SKILL.md +428 -0
  77. package/skills/likec4-dsl/evals/evals-public.json +202 -0
  78. package/skills/likec4-dsl/evals/grading-spec.json +589 -0
  79. package/skills/likec4-dsl/references/bridge-leanix-drawio.md +42 -0
  80. package/skills/likec4-dsl/references/cli.md +139 -0
  81. package/skills/likec4-dsl/references/configuration.md +266 -0
  82. package/skills/likec4-dsl/references/deployment.md +160 -0
  83. package/skills/likec4-dsl/references/dynamic-views.md +455 -0
  84. package/skills/likec4-dsl/references/examples.md +370 -0
  85. package/skills/likec4-dsl/references/identifier-validity.md +90 -0
  86. package/skills/likec4-dsl/references/include-predicates-wildcards.md +179 -0
  87. package/skills/likec4-dsl/references/model.md +151 -0
  88. package/skills/likec4-dsl/references/predicates.md +123 -0
  89. package/skills/likec4-dsl/references/relationships-bidirectional.md +176 -0
  90. package/skills/likec4-dsl/references/specification.md +75 -0
  91. package/skills/likec4-dsl/references/style-tokens-colors.md +150 -0
  92. package/skills/likec4-dsl/references/troubleshooting.md +96 -0
  93. package/skills/likec4-dsl/references/views.md +329 -0
  94. package/dist/chunks/libs/picomatch.mjs +0 -1
  95. package/dist/chunks/libs/zod.d.mts +0 -3840
  96. package/dist/chunks/libs/zod.mjs +0 -65
@@ -1,32 +1,24 @@
1
- import{a as t,c as n,i,n as o,o as s,r as c,s as u,t as f}from"../rolldown-runtime.mjs";import{n as p,t as h}from"./@chevrotain/regexp-to-ast.mjs";import{a as g,l as _,n as x,o as S,r as T,t as E,u as D}from"./chevrotain.mjs";import{t as ee}from"./chevrotain-allstar.mjs";import*as O from"node:fs";function isAstNode(t){return typeof t==`object`&&!!t&&typeof t.$type==`string`}function isReference(t){return typeof t==`object`&&!!t&&typeof t.$refText==`string`}function isAstNodeDescription(t){return typeof t==`object`&&!!t&&typeof t.name==`string`&&typeof t.type==`string`&&typeof t.path==`string`}function isLinkingError(t){return typeof t==`object`&&!!t&&isAstNode(t.container)&&isReference(t.reference)&&typeof t.message==`string`}var AbstractAstReflection=class{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(t,n){return isAstNode(t)&&this.isSubtype(t.$type,n)}isSubtype(t,n){if(t===n)return!0;let i=this.subtypes[t];i||=this.subtypes[t]={};let o=i[n];if(o!==void 0)return o;{let o=this.computeIsSubtype(t,n);return i[n]=o,o}}getAllSubTypes(t){let n=this.allSubtypes[t];if(n)return n;{let n=this.getAllTypes(),i=[];for(let o of n)this.isSubtype(o,t)&&i.push(o);return this.allSubtypes[t]=i,i}}};function isCompositeCstNode(t){return typeof t==`object`&&!!t&&Array.isArray(t.content)}function isLeafCstNode(t){return typeof t==`object`&&!!t&&typeof t.tokenType==`object`}function isRootCstNode(t){return isCompositeCstNode(t)&&typeof t.fullText==`string`}var k=class StreamImpl{constructor(t,n){this.startFn=t,this.nextFn=n}iterator(){let t={state:this.startFn(),next:()=>this.nextFn(t.state),[Symbol.iterator]:()=>t};return t}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let t=this.iterator(),n=0,i=t.next();for(;!i.done;)n++,i=t.next();return n}toArray(){let t=[],n=this.iterator(),i;do i=n.next(),i.value!==void 0&&t.push(i.value);while(!i.done);return t}toSet(){return new Set(this)}toMap(t,n){let i=this.map(i=>[t?t(i):i,n?n(i):i]);return new Map(i)}toString(){return this.join()}concat(t){return new StreamImpl(()=>({first:this.startFn(),firstDone:!1,iterator:t[Symbol.iterator]()}),t=>{let n;if(!t.firstDone){do if(n=this.nextFn(t.first),!n.done)return n;while(!n.done);t.firstDone=!0}do if(n=t.iterator.next(),!n.done)return n;while(!n.done);return j})}join(t=`,`){let n=this.iterator(),i=``,o,s=!1;do o=n.next(),o.done||(s&&(i+=t),i+=toString$1(o.value)),s=!0;while(!o.done);return i}indexOf(t,n=0){let i=this.iterator(),o=0,s=i.next();for(;!s.done;){if(o>=n&&s.value===t)return o;s=i.next(),o++}return-1}every(t){let n=this.iterator(),i=n.next();for(;!i.done;){if(!t(i.value))return!1;i=n.next()}return!0}some(t){let n=this.iterator(),i=n.next();for(;!i.done;){if(t(i.value))return!0;i=n.next()}return!1}forEach(t){let n=this.iterator(),i=0,o=n.next();for(;!o.done;)t(o.value,i),o=n.next(),i++}map(t){return new StreamImpl(this.startFn,n=>{let{done:i,value:o}=this.nextFn(n);return i?j:{done:!1,value:t(o)}})}filter(t){return new StreamImpl(this.startFn,n=>{let i;do if(i=this.nextFn(n),!i.done&&t(i.value))return i;while(!i.done);return j})}nonNullable(){return this.filter(t=>t!=null)}reduce(t,n){let i=this.iterator(),o=n,s=i.next();for(;!s.done;)o=o===void 0?s.value:t(o,s.value),s=i.next();return o}reduceRight(t,n){return this.recursiveReduce(this.iterator(),t,n)}recursiveReduce(t,n,i){let o=t.next();if(o.done)return i;let s=this.recursiveReduce(t,n,i);return s===void 0?o.value:n(s,o.value)}find(t){let n=this.iterator(),i=n.next();for(;!i.done;){if(t(i.value))return i.value;i=n.next()}}findIndex(t){let n=this.iterator(),i=0,o=n.next();for(;!o.done;){if(t(o.value))return i;o=n.next(),i++}return-1}includes(t){let n=this.iterator(),i=n.next();for(;!i.done;){if(i.value===t)return!0;i=n.next()}return!1}flatMap(t){return new StreamImpl(()=>({this:this.startFn()}),n=>{do{if(n.iterator){let t=n.iterator.next();if(t.done)n.iterator=void 0;else return t}let{done:i,value:o}=this.nextFn(n.this);if(!i){let i=t(o);if(isIterable(i))n.iterator=i[Symbol.iterator]();else return{done:!1,value:i}}}while(n.iterator);return j})}flat(t){if(t===void 0&&(t=1),t<=0)return this;let n=t>1?this.flat(t-1):this;return new StreamImpl(()=>({this:n.startFn()}),t=>{do{if(t.iterator){let n=t.iterator.next();if(n.done)t.iterator=void 0;else return n}let{done:i,value:o}=n.nextFn(t.this);if(!i){if(isIterable(o))t.iterator=o[Symbol.iterator]();else return{done:!1,value:o}}}while(t.iterator);return j})}head(){let t=this.iterator().next();if(!t.done)return t.value}tail(t=1){return new StreamImpl(()=>{let n=this.startFn();for(let i=0;i<t;i++)if(this.nextFn(n).done)return n;return n},this.nextFn)}limit(t){return new StreamImpl(()=>({size:0,state:this.startFn()}),n=>(n.size++,n.size>t?j:this.nextFn(n.state)))}distinct(t){return new StreamImpl(()=>({set:new Set,internalState:this.startFn()}),n=>{let i;do if(i=this.nextFn(n.internalState),!i.done){let o=t?t(i.value):i.value;if(!n.set.has(o))return n.set.add(o),i}while(!i.done);return j})}exclude(t,n){let i=new Set;for(let o of t){let t=n?n(o):o;i.add(t)}return this.filter(t=>{let o=n?n(t):t;return!i.has(o)})}};function toString$1(t){return typeof t==`string`?t:t===void 0?`undefined`:typeof t.toString==`function`?t.toString():Object.prototype.toString.call(t)}i(toString$1,`toString`);function isIterable(t){return!!t&&typeof t[Symbol.iterator]==`function`}const A=new k(()=>void 0,()=>j),j=Object.freeze({done:!0,value:void 0});function stream(...t){if(t.length===1){let n=t[0];if(n instanceof k)return n;if(isIterable(n))return new k(()=>n[Symbol.iterator](),t=>t.next());if(typeof n.length==`number`)return new k(()=>({index:0}),t=>t.index<n.length?{done:!1,value:n[t.index++]}:j)}return t.length>1?new k(()=>({collIndex:0,arrIndex:0}),n=>{do{if(n.iterator){let t=n.iterator.next();if(!t.done)return t;n.iterator=void 0}if(n.array){if(n.arrIndex<n.array.length)return{done:!1,value:n.array[n.arrIndex++]};n.array=void 0,n.arrIndex=0}if(n.collIndex<t.length){let i=t[n.collIndex++];isIterable(i)?n.iterator=i[Symbol.iterator]():i&&typeof i.length==`number`&&(n.array=i)}}while(n.iterator||n.array||n.collIndex<t.length);return j}):A}var TreeStreamImpl=class extends k{constructor(t,n,i){super(()=>({iterators:i?.includeRoot?[[t][Symbol.iterator]()]:[n(t)[Symbol.iterator]()],pruned:!1}),t=>{for(t.pruned&&=(t.iterators.pop(),!1);t.iterators.length>0;){let i=t.iterators[t.iterators.length-1].next();if(i.done)t.iterators.pop();else return t.iterators.push(n(i.value)[Symbol.iterator]()),i}return j})}iterator(){let t={state:this.startFn(),next:()=>this.nextFn(t.state),prune:()=>{t.state.pruned=!0},[Symbol.iterator]:()=>t};return t}},M;(function(t){function sum(t){return t.reduce((t,n)=>t+n,0)}t.sum=sum;function product(t){return t.reduce((t,n)=>t*n,0)}t.product=product;function min(t){return t.reduce((t,n)=>Math.min(t,n))}t.min=min;function max(t){return t.reduce((t,n)=>Math.max(t,n))}t.max=max})(M||={});function streamCst(t){return new TreeStreamImpl(t,t=>isCompositeCstNode(t)?t.content:[],{includeRoot:!0})}function flattenCst(t){return streamCst(t).filter(isLeafCstNode)}function isChildNode(t,n){for(;t.container;)if(t=t.container,t===n)return!0;return!1}function tokenToRange(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function toDocumentSegment(t){if(!t)return;let{offset:n,end:i,range:o}=t;return{range:o,offset:n,end:i,length:i-n}}var N;(function(t){t[t.Before=0]=`Before`,t[t.After=1]=`After`,t[t.OverlapFront=2]=`OverlapFront`,t[t.OverlapBack=3]=`OverlapBack`,t[t.Inside=4]=`Inside`,t[t.Outside=5]=`Outside`})(N||={});function compareRange(t,n){if(t.end.line<n.start.line||t.end.line===n.start.line&&t.end.character<=n.start.character)return N.Before;if(t.start.line>n.end.line||t.start.line===n.end.line&&t.start.character>=n.end.character)return N.After;let i=t.start.line>n.start.line||t.start.line===n.start.line&&t.start.character>=n.start.character,o=t.end.line<n.end.line||t.end.line===n.end.line&&t.end.character<=n.end.character;return i&&o?N.Inside:i?N.OverlapBack:o?N.OverlapFront:N.Outside}function inRange(t,n){return compareRange(t,n)>N.After}const P=/^[\w\p{L}]$/u;function findDeclarationNodeAtOffset(t,n,i=P){if(t){if(n>0){let o=n-t.offset,s=t.text.charAt(o);i.test(s)||n--}return findLeafNodeAtOffset(t,n)}}function findCommentNode(t,n){if(t){let i=getPreviousNode(t,!0);if(i&&isCommentNode(i,n))return i;if(isRootCstNode(t)){let i=t.content.findIndex(t=>!t.hidden);for(let o=i-1;o>=0;o--){let i=t.content[o];if(isCommentNode(i,n))return i}}}}function isCommentNode(t,n){return isLeafCstNode(t)&&n.includes(t.tokenType.name)}function findLeafNodeAtOffset(t,n){if(isLeafCstNode(t))return t;if(isCompositeCstNode(t)){let i=binarySearch(t,n,!1);if(i)return findLeafNodeAtOffset(i,n)}}function findLeafNodeBeforeOffset(t,n){if(isLeafCstNode(t))return t;if(isCompositeCstNode(t)){let i=binarySearch(t,n,!0);if(i)return findLeafNodeBeforeOffset(i,n)}}function binarySearch(t,n,i){let o=0,s=t.content.length-1,c;for(;o<=s;){let u=Math.floor((o+s)/2),f=t.content[u];if(f.offset<=n&&f.end>n)return f;f.end<=n?(c=i?f:void 0,o=u+1):s=u-1}return c}function getPreviousNode(t,n=!0){for(;t.container;){let i=t.container,o=i.content.indexOf(t);for(;o>0;){o--;let t=i.content[o];if(n||!t.hidden)return t}t=i}}function getNextNode(t,n=!0){for(;t.container;){let i=t.container,o=i.content.indexOf(t),s=i.content.length-1;for(;o<s;){o++;let t=i.content[o];if(n||!t.hidden)return t}t=i}}function getInteriorNodes(t,n){let i=getCommonParent(t,n);return i?i.parent.content.slice(i.a+1,i.b):[]}function getCommonParent(t,n){let i=getParentChain(t),o=getParentChain(n),s;for(let t=0;t<i.length&&t<o.length;t++){let n=i[t],c=o[t];if(n.parent===c.parent)s={parent:n.parent,a:n.index,b:c.index};else break}return s}function getParentChain(t){let n=[];for(;t.container;){let i=t.container,o=i.content.indexOf(t);n.push({parent:i,index:o}),t=i}return n.reverse()}var ErrorWithLocation=class extends Error{constructor(t,n){super(t?`${n} at ${t.range.start.line}:${t.range.start.character}`:n)}};function assertUnreachable(t){throw Error(`Error! The input value was not handled.`)}const te=`AbstractRule`,F=`AbstractType`,ne=`Condition`,re=`TypeDefinition`,ie=`ValueLiteral`,ae=`AbstractElement`;function isAbstractElement(t){return H.isInstance(t,ae)}const oe=`ArrayLiteral`,se=`ArrayType`;function isArrayType(t){return H.isInstance(t,se)}const ce=`BooleanLiteral`;function isBooleanLiteral(t){return H.isInstance(t,ce)}const le=`Conjunction`;function isConjunction(t){return H.isInstance(t,le)}const I=`Disjunction`;function isDisjunction(t){return H.isInstance(t,I)}const ue=`Grammar`,de=`GrammarImport`,L=`InferredType`;function isInferredType(t){return H.isInstance(t,L)}const R=`Interface`;function isInterface(t){return H.isInstance(t,R)}const fe=`NamedArgument`,z=`Negation`;function isNegation(t){return H.isInstance(t,z)}const B=`NumberLiteral`,pe=`Parameter`,me=`ParameterReference`;function isParameterReference(t){return H.isInstance(t,me)}const he=`ParserRule`;function isParserRule(t){return H.isInstance(t,he)}const ge=`ReferenceType`;function isReferenceType(t){return H.isInstance(t,ge)}const _e=`ReturnType`;function isReturnType(t){return H.isInstance(t,_e)}const V=`SimpleType`;function isSimpleType(t){return H.isInstance(t,V)}const ve=`StringLiteral`,ye=`TerminalRule`;function isTerminalRule(t){return H.isInstance(t,ye)}const be=`Type`;function isType(t){return H.isInstance(t,be)}const xe=`TypeAttribute`,Se=`UnionType`;function isUnionType(t){return H.isInstance(t,Se)}const Ce=`Action`;function isAction(t){return H.isInstance(t,Ce)}const we=`Alternatives`;function isAlternatives(t){return H.isInstance(t,we)}const Te=`Assignment`;function isAssignment(t){return H.isInstance(t,Te)}const Ee=`CharacterRange`;function isCharacterRange(t){return H.isInstance(t,Ee)}const De=`CrossReference`;function isCrossReference(t){return H.isInstance(t,De)}const Oe=`EndOfFile`;function isEndOfFile(t){return H.isInstance(t,Oe)}const ke=`Group`;function isGroup(t){return H.isInstance(t,ke)}const Ae=`Keyword`;function isKeyword(t){return H.isInstance(t,Ae)}const je=`NegatedToken`;function isNegatedToken(t){return H.isInstance(t,je)}const Me=`RegexToken`;function isRegexToken(t){return H.isInstance(t,Me)}const Ne=`RuleCall`;function isRuleCall(t){return H.isInstance(t,Ne)}const Pe=`TerminalAlternatives`;function isTerminalAlternatives(t){return H.isInstance(t,Pe)}const Fe=`TerminalGroup`;function isTerminalGroup(t){return H.isInstance(t,Fe)}const Ie=`TerminalRuleCall`;function isTerminalRuleCall(t){return H.isInstance(t,Ie)}const Le=`UnorderedGroup`;function isUnorderedGroup(t){return H.isInstance(t,Le)}const Re=`UntilToken`;function isUntilToken(t){return H.isInstance(t,Re)}const ze=`Wildcard`;function isWildcard(t){return H.isInstance(t,ze)}var LangiumGrammarAstReflection=class extends AbstractAstReflection{getAllTypes(){return[ae,te,F,Ce,we,oe,se,Te,ce,Ee,ne,le,De,I,Oe,ue,de,ke,L,R,Ae,fe,je,z,B,pe,me,he,ge,Me,_e,Ne,V,ve,Pe,Fe,ye,Ie,be,xe,re,Se,Le,Re,ie,ze]}computeIsSubtype(t,n){switch(t){case Ce:case we:case Te:case Ee:case De:case Oe:case ke:case Ae:case je:case Me:case Ne:case Pe:case Fe:case Ie:case Le:case Re:case ze:return this.isSubtype(ae,n);case oe:case B:case ve:return this.isSubtype(ie,n);case se:case ge:case V:case Se:return this.isSubtype(re,n);case ce:return this.isSubtype(`Condition`,n)||this.isSubtype(`ValueLiteral`,n);case le:case I:case z:case me:return this.isSubtype(ne,n);case L:case R:case be:return this.isSubtype(F,n);case he:return this.isSubtype(`AbstractRule`,n)||this.isSubtype(`AbstractType`,n);case ye:return this.isSubtype(te,n);default:return!1}}getReferenceType(t){let n=`${t.container.$type}:${t.property}`;switch(n){case`Action:type`:case`CrossReference:type`:case`Interface:superTypes`:case`ParserRule:returnType`:case`SimpleType:typeRef`:return F;case`Grammar:hiddenTokens`:case`ParserRule:hiddenTokens`:case`RuleCall:rule`:return te;case`Grammar:usedGrammars`:return ue;case`NamedArgument:parameter`:case`ParameterReference:parameter`:return pe;case`TerminalRuleCall:rule`:return ye;default:throw Error(`${n} is not a valid reference id.`)}}getTypeMetaData(t){switch(t){case ae:return{name:ae,properties:[{name:`cardinality`},{name:`lookahead`}]};case oe:return{name:oe,properties:[{name:`elements`,defaultValue:[]}]};case se:return{name:se,properties:[{name:`elementType`}]};case ce:return{name:ce,properties:[{name:`true`,defaultValue:!1}]};case le:return{name:le,properties:[{name:`left`},{name:`right`}]};case I:return{name:I,properties:[{name:`left`},{name:`right`}]};case ue:return{name:ue,properties:[{name:`definesHiddenTokens`,defaultValue:!1},{name:`hiddenTokens`,defaultValue:[]},{name:`imports`,defaultValue:[]},{name:`interfaces`,defaultValue:[]},{name:`isDeclared`,defaultValue:!1},{name:`name`},{name:`rules`,defaultValue:[]},{name:`types`,defaultValue:[]},{name:`usedGrammars`,defaultValue:[]}]};case de:return{name:de,properties:[{name:`path`}]};case L:return{name:L,properties:[{name:`name`}]};case R:return{name:R,properties:[{name:`attributes`,defaultValue:[]},{name:`name`},{name:`superTypes`,defaultValue:[]}]};case fe:return{name:fe,properties:[{name:`calledByName`,defaultValue:!1},{name:`parameter`},{name:`value`}]};case z:return{name:z,properties:[{name:`value`}]};case B:return{name:B,properties:[{name:`value`}]};case pe:return{name:pe,properties:[{name:`name`}]};case me:return{name:me,properties:[{name:`parameter`}]};case he:return{name:he,properties:[{name:`dataType`},{name:`definesHiddenTokens`,defaultValue:!1},{name:`definition`},{name:`entry`,defaultValue:!1},{name:`fragment`,defaultValue:!1},{name:`hiddenTokens`,defaultValue:[]},{name:`inferredType`},{name:`name`},{name:`parameters`,defaultValue:[]},{name:`returnType`},{name:`wildcard`,defaultValue:!1}]};case ge:return{name:ge,properties:[{name:`referenceType`}]};case _e:return{name:_e,properties:[{name:`name`}]};case V:return{name:V,properties:[{name:`primitiveType`},{name:`stringType`},{name:`typeRef`}]};case ve:return{name:ve,properties:[{name:`value`}]};case ye:return{name:ye,properties:[{name:`definition`},{name:`fragment`,defaultValue:!1},{name:`hidden`,defaultValue:!1},{name:`name`},{name:`type`}]};case be:return{name:be,properties:[{name:`name`},{name:`type`}]};case xe:return{name:xe,properties:[{name:`defaultValue`},{name:`isOptional`,defaultValue:!1},{name:`name`},{name:`type`}]};case Se:return{name:Se,properties:[{name:`types`,defaultValue:[]}]};case Ce:return{name:Ce,properties:[{name:`cardinality`},{name:`feature`},{name:`inferredType`},{name:`lookahead`},{name:`operator`},{name:`type`}]};case we:return{name:we,properties:[{name:`cardinality`},{name:`elements`,defaultValue:[]},{name:`lookahead`}]};case Te:return{name:Te,properties:[{name:`cardinality`},{name:`feature`},{name:`lookahead`},{name:`operator`},{name:`terminal`}]};case Ee:return{name:Ee,properties:[{name:`cardinality`},{name:`left`},{name:`lookahead`},{name:`right`}]};case De:return{name:De,properties:[{name:`cardinality`},{name:`deprecatedSyntax`,defaultValue:!1},{name:`lookahead`},{name:`terminal`},{name:`type`}]};case Oe:return{name:Oe,properties:[{name:`cardinality`},{name:`lookahead`}]};case ke:return{name:ke,properties:[{name:`cardinality`},{name:`elements`,defaultValue:[]},{name:`guardCondition`},{name:`lookahead`}]};case Ae:return{name:Ae,properties:[{name:`cardinality`},{name:`lookahead`},{name:`value`}]};case je:return{name:je,properties:[{name:`cardinality`},{name:`lookahead`},{name:`terminal`}]};case Me:return{name:Me,properties:[{name:`cardinality`},{name:`lookahead`},{name:`regex`}]};case Ne:return{name:Ne,properties:[{name:`arguments`,defaultValue:[]},{name:`cardinality`},{name:`lookahead`},{name:`rule`}]};case Pe:return{name:Pe,properties:[{name:`cardinality`},{name:`elements`,defaultValue:[]},{name:`lookahead`}]};case Fe:return{name:Fe,properties:[{name:`cardinality`},{name:`elements`,defaultValue:[]},{name:`lookahead`}]};case Ie:return{name:Ie,properties:[{name:`cardinality`},{name:`lookahead`},{name:`rule`}]};case Le:return{name:Le,properties:[{name:`cardinality`},{name:`elements`,defaultValue:[]},{name:`lookahead`}]};case Re:return{name:Re,properties:[{name:`cardinality`},{name:`lookahead`},{name:`terminal`}]};case ze:return{name:ze,properties:[{name:`cardinality`},{name:`lookahead`}]};default:return{name:t,properties:[]}}}};const H=new LangiumGrammarAstReflection;var Be=c({assignMandatoryProperties:()=>assignMandatoryProperties,copyAstNode:()=>copyAstNode,findLocalReferences:()=>findLocalReferences,findRootNode:()=>findRootNode,getContainerOfType:()=>getContainerOfType,getDocument:()=>getDocument,hasContainerOfType:()=>hasContainerOfType,linkContentToContainer:()=>linkContentToContainer,streamAllContents:()=>streamAllContents,streamAst:()=>streamAst,streamContents:()=>streamContents,streamReferences:()=>streamReferences});function linkContentToContainer(t){for(let[n,i]of Object.entries(t))n.startsWith(`$`)||(Array.isArray(i)?i.forEach((i,o)=>{isAstNode(i)&&(i.$container=t,i.$containerProperty=n,i.$containerIndex=o)}):isAstNode(i)&&(i.$container=t,i.$containerProperty=n))}function getContainerOfType(t,n){let i=t;for(;i;){if(n(i))return i;i=i.$container}}function hasContainerOfType(t,n){let i=t;for(;i;){if(n(i))return!0;i=i.$container}return!1}function getDocument(t){let n=findRootNode(t).$document;if(!n)throw Error(`AST node has no document.`);return n}function findRootNode(t){for(;t.$container;)t=t.$container;return t}function streamContents(t,n){if(!t)throw Error(`Node must be an AstNode.`);let i=n?.range;return new k(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndex<n.keys.length;){let o=n.keys[n.keyIndex];if(!o.startsWith(`$`)){let s=t[o];if(isAstNode(s)){if(n.keyIndex++,isAstNodeInRange(s,i))return{done:!1,value:s}}else if(Array.isArray(s)){for(;n.arrayIndex<s.length;){let t=s[n.arrayIndex++];if(isAstNode(t)&&isAstNodeInRange(t,i))return{done:!1,value:t}}n.arrayIndex=0}}n.keyIndex++}return j})}function streamAllContents(t,n){if(!t)throw Error(`Root node must be an AstNode.`);return new TreeStreamImpl(t,t=>streamContents(t,n))}function streamAst(t,n){if(!t)throw Error(`Root node must be an AstNode.`);return n?.range&&!isAstNodeInRange(t,n.range)?new TreeStreamImpl(t,()=>[]):new TreeStreamImpl(t,t=>streamContents(t,n),{includeRoot:!0})}function isAstNodeInRange(t,n){if(!n)return!0;let i=t.$cstNode?.range;return i?inRange(i,n):!1}function streamReferences(t){return new k(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndex<n.keys.length;){let i=n.keys[n.keyIndex];if(!i.startsWith(`$`)){let o=t[i];if(isReference(o))return n.keyIndex++,{done:!1,value:{reference:o,container:t,property:i}};if(Array.isArray(o)){for(;n.arrayIndex<o.length;){let s=n.arrayIndex++,c=o[s];if(isReference(c))return{done:!1,value:{reference:c,container:t,property:i,index:s}}}n.arrayIndex=0}}n.keyIndex++}return j})}function findLocalReferences(t,n=getDocument(t).parseResult.value){let i=[];return streamAst(n).forEach(n=>{streamReferences(n).forEach(n=>{n.reference.ref===t&&i.push(n.reference)})}),stream(i)}function assignMandatoryProperties(t,n){let i=t.getTypeMetaData(n.$type),o=n;for(let t of i.properties)t.defaultValue!==void 0&&o[t.name]===void 0&&(o[t.name]=copyDefaultValue(t.defaultValue))}function copyDefaultValue(t){return Array.isArray(t)?[...t.map(copyDefaultValue)]:t}function copyAstNode(t,n){let i={$type:t.$type};for(let[o,s]of Object.entries(t))if(!o.startsWith(`$`)){if(isAstNode(s))i[o]=copyAstNode(s,n);else if(isReference(s))i[o]=n(i,o,s.$refNode,s.$refText);else if(Array.isArray(s)){let t=[];for(let c of s)isAstNode(c)?t.push(copyAstNode(c,n)):isReference(c)?t.push(n(i,o,c.$refNode,c.$refText)):t.push(c);i[o]=t}else i[o]=s}return linkContentToContainer(i),i}const Ve=/\r?\n/gm,He=new p;var TerminalRegExpVisitor=class extends h{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join(``)}reset(t){this.multiline=!1,this.regex=t,this.startRegexp=``,this.isStarting=!0,this.endRegexpStack=[]}visitGroup(t){t.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(t){let n=String.fromCharCode(t.value);if(!this.multiline&&n===`
1
+ import{i as t,n,o as i,r as a,t as o}from"../rolldown-runtime.mjs";import{n as c,t as l}from"./@chevrotain/regexp-to-ast.mjs";import{a as f,l as p,n as h,o as _,r as x,t as S,u as C}from"./chevrotain.mjs";import{t as w}from"./chevrotain-allstar.mjs";import*as T from"node:fs";function isAstNode(t){return typeof t==`object`&&!!t&&typeof t.$type==`string`}function isReference(t){return typeof t==`object`&&!!t&&typeof t.$refText==`string`&&`ref`in t}function isMultiReference(t){return typeof t==`object`&&!!t&&typeof t.$refText==`string`&&`items`in t}function isAstNodeDescription(t){return typeof t==`object`&&!!t&&typeof t.name==`string`&&typeof t.type==`string`&&typeof t.path==`string`}function isLinkingError(t){return typeof t==`object`&&!!t&&typeof t.info==`object`&&typeof t.message==`string`}var AbstractAstReflection=class{constructor(){this.subtypes={},this.allSubtypes={}}getAllTypes(){return Object.keys(this.types)}getReferenceType(t){let n=this.types[t.container.$type];if(!n)throw Error(`Type ${t.container.$type||`undefined`} not found.`);let i=n.properties[t.property]?.referenceType;if(!i)throw Error(`Property ${t.property||`undefined`} of type ${t.container.$type} is not a reference.`);return i}getTypeMetaData(t){return this.types[t]||{name:t,properties:{},superTypes:[]}}isInstance(t,n){return isAstNode(t)&&this.isSubtype(t.$type,n)}isSubtype(t,n){if(t===n)return!0;let i=this.subtypes[t];i||=this.subtypes[t]={};let a=i[n];if(a!==void 0)return a;{let a=this.types[t],o=a?a.superTypes.some(t=>this.isSubtype(t,n)):!1;return i[n]=o,o}}getAllSubTypes(t){let n=this.allSubtypes[t];if(n)return n;{let n=this.getAllTypes(),i=[];for(let a of n)this.isSubtype(a,t)&&i.push(a);return this.allSubtypes[t]=i,i}}isComplete(t){let n=this.getTypeMetaData(t.$type);for(let i of Object.keys(n.properties)){let a=n.properties[i];if(!a.optional&&t[a.name]==null)return!1}return!0}};function isCompositeCstNode(t){return typeof t==`object`&&!!t&&Array.isArray(t.content)}function isLeafCstNode(t){return typeof t==`object`&&!!t&&typeof t.tokenType==`object`}function isRootCstNode(t){return isCompositeCstNode(t)&&typeof t.fullText==`string`}var E=class StreamImpl{constructor(t,n){this.startFn=t,this.nextFn=n}iterator(){let t={state:this.startFn(),next:()=>this.nextFn(t.state),[Symbol.iterator]:()=>t};return t}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let t=this.iterator(),n=0,i=t.next();for(;!i.done;)n++,i=t.next();return n}toArray(){let t=[],n=this.iterator(),i;do i=n.next(),i.value!==void 0&&t.push(i.value);while(!i.done);return t}toSet(){return new Set(this)}toMap(t,n){let i=this.map(i=>[t?t(i):i,n?n(i):i]);return new Map(i)}toString(){return this.join()}concat(t){return new StreamImpl(()=>({first:this.startFn(),firstDone:!1,iterator:t[Symbol.iterator]()}),t=>{let n;if(!t.firstDone){do if(n=this.nextFn(t.first),!n.done)return n;while(!n.done);t.firstDone=!0}do if(n=t.iterator.next(),!n.done)return n;while(!n.done);return O})}join(t=`,`){let n=this.iterator(),i=``,a,o=!1;do a=n.next(),a.done||(o&&(i+=t),i+=toString$1(a.value)),o=!0;while(!a.done);return i}indexOf(t,n=0){let i=this.iterator(),a=0,o=i.next();for(;!o.done;){if(a>=n&&o.value===t)return a;o=i.next(),a++}return-1}every(t){let n=this.iterator(),i=n.next();for(;!i.done;){if(!t(i.value))return!1;i=n.next()}return!0}some(t){let n=this.iterator(),i=n.next();for(;!i.done;){if(t(i.value))return!0;i=n.next()}return!1}forEach(t){let n=this.iterator(),i=0,a=n.next();for(;!a.done;)t(a.value,i),a=n.next(),i++}map(t){return new StreamImpl(this.startFn,n=>{let{done:i,value:a}=this.nextFn(n);return i?O:{done:!1,value:t(a)}})}filter(t){return new StreamImpl(this.startFn,n=>{let i;do if(i=this.nextFn(n),!i.done&&t(i.value))return i;while(!i.done);return O})}nonNullable(){return this.filter(t=>t!=null)}reduce(t,n){let i=this.iterator(),a=n,o=i.next();for(;!o.done;)a=a===void 0?o.value:t(a,o.value),o=i.next();return a}reduceRight(t,n){return this.recursiveReduce(this.iterator(),t,n)}recursiveReduce(t,n,i){let a=t.next();if(a.done)return i;let o=this.recursiveReduce(t,n,i);return o===void 0?a.value:n(o,a.value)}find(t){let n=this.iterator(),i=n.next();for(;!i.done;){if(t(i.value))return i.value;i=n.next()}}findIndex(t){let n=this.iterator(),i=0,a=n.next();for(;!a.done;){if(t(a.value))return i;a=n.next(),i++}return-1}includes(t){let n=this.iterator(),i=n.next();for(;!i.done;){if(i.value===t)return!0;i=n.next()}return!1}flatMap(t){return new StreamImpl(()=>({this:this.startFn()}),n=>{do{if(n.iterator){let t=n.iterator.next();if(t.done)n.iterator=void 0;else return t}let{done:i,value:a}=this.nextFn(n.this);if(!i){let i=t(a);if(isIterable(i))n.iterator=i[Symbol.iterator]();else return{done:!1,value:i}}}while(n.iterator);return O})}flat(t){if(t===void 0&&(t=1),t<=0)return this;let n=t>1?this.flat(t-1):this;return new StreamImpl(()=>({this:n.startFn()}),t=>{do{if(t.iterator){let n=t.iterator.next();if(n.done)t.iterator=void 0;else return n}let{done:i,value:a}=n.nextFn(t.this);if(!i){if(isIterable(a))t.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}}while(t.iterator);return O})}head(){let t=this.iterator().next();if(!t.done)return t.value}tail(t=1){return new StreamImpl(()=>{let n=this.startFn();for(let i=0;i<t;i++)if(this.nextFn(n).done)return n;return n},this.nextFn)}limit(t){return new StreamImpl(()=>({size:0,state:this.startFn()}),n=>(n.size++,n.size>t?O:this.nextFn(n.state)))}distinct(t){return new StreamImpl(()=>({set:/* @__PURE__ */ new Set,internalState:this.startFn()}),n=>{let i;do if(i=this.nextFn(n.internalState),!i.done){let a=t?t(i.value):i.value;if(!n.set.has(a))return n.set.add(a),i}while(!i.done);return O})}exclude(t,n){let i=/* @__PURE__ */ new Set;for(let a of t){let t=n?n(a):a;i.add(t)}return this.filter(t=>{let a=n?n(t):t;return!i.has(a)})}};function toString$1(t){return typeof t==`string`?t:t===void 0?`undefined`:typeof t.toString==`function`?t.toString():Object.prototype.toString.call(t)}t(toString$1,`toString`);function isIterable(t){return!!t&&typeof t[Symbol.iterator]==`function`}const D=new E(()=>void 0,()=>O),O=Object.freeze({done:!0,value:void 0});function stream(...t){if(t.length===1){let n=t[0];if(n instanceof E)return n;if(isIterable(n))return new E(()=>n[Symbol.iterator](),t=>t.next());if(typeof n.length==`number`)return new E(()=>({index:0}),t=>t.index<n.length?{done:!1,value:n[t.index++]}:O)}return t.length>1?new E(()=>({collIndex:0,arrIndex:0}),n=>{do{if(n.iterator){let t=n.iterator.next();if(!t.done)return t;n.iterator=void 0}if(n.array){if(n.arrIndex<n.array.length)return{done:!1,value:n.array[n.arrIndex++]};n.array=void 0,n.arrIndex=0}if(n.collIndex<t.length){let i=t[n.collIndex++];isIterable(i)?n.iterator=i[Symbol.iterator]():i&&typeof i.length==`number`&&(n.array=i)}}while(n.iterator||n.array||n.collIndex<t.length);return O}):D}var TreeStreamImpl=class extends E{constructor(t,n,i){super(()=>({iterators:i?.includeRoot?[[t][Symbol.iterator]()]:[n(t)[Symbol.iterator]()],pruned:!1}),t=>{for(t.pruned&&=(t.iterators.pop(),!1);t.iterators.length>0;){let i=t.iterators[t.iterators.length-1].next();if(i.done)t.iterators.pop();else return t.iterators.push(n(i.value)[Symbol.iterator]()),i}return O})}iterator(){let t={state:this.startFn(),next:()=>this.nextFn(t.state),prune:()=>{t.state.pruned=!0},[Symbol.iterator]:()=>t};return t}},k;(function(t){function sum(t){return t.reduce((t,n)=>t+n,0)}t.sum=sum;function product(t){return t.reduce((t,n)=>t*n,0)}t.product=product;function min(t){return t.reduce((t,n)=>Math.min(t,n))}t.min=min;function max(t){return t.reduce((t,n)=>Math.max(t,n))}t.max=max})(k||={});var ee=/* @__PURE__ */ a({assignMandatoryProperties:()=>assignMandatoryProperties,copyAstNode:()=>copyAstNode,findRootNode:()=>findRootNode,getContainerOfType:()=>getContainerOfType,getDocument:()=>getDocument,getReferenceNodes:()=>getReferenceNodes,hasContainerOfType:()=>hasContainerOfType,linkContentToContainer:()=>linkContentToContainer,streamAllContents:()=>streamAllContents,streamAst:()=>streamAst,streamContents:()=>streamContents,streamReferences:()=>streamReferences});function linkContentToContainer(t,n={}){for(let[i,a]of Object.entries(t))i.startsWith(`$`)||(Array.isArray(a)?a.forEach((a,o)=>{isAstNode(a)&&(a.$container=t,a.$containerProperty=i,a.$containerIndex=o,n.deep&&linkContentToContainer(a,n))}):isAstNode(a)&&(a.$container=t,a.$containerProperty=i,n.deep&&linkContentToContainer(a,n)))}function getContainerOfType(t,n){let i=t;for(;i;){if(n(i))return i;i=i.$container}}function hasContainerOfType(t,n){let i=t;for(;i;){if(n(i))return!0;i=i.$container}return!1}function getDocument(t){let n=findRootNode(t).$document;if(!n)throw Error(`AST node has no document.`);return n}function findRootNode(t){for(;t.$container;)t=t.$container;return t}function getReferenceNodes(t){return isReference(t)?t.ref?[t.ref]:[]:isMultiReference(t)?t.items.map(t=>t.ref):[]}function streamContents(t,n){if(!t)throw Error(`Node must be an AstNode.`);let i=n?.range;return new E(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndex<n.keys.length;){let a=n.keys[n.keyIndex];if(!a.startsWith(`$`)){let o=t[a];if(isAstNode(o)){if(n.keyIndex++,isAstNodeInRange(o,i))return{done:!1,value:o}}else if(Array.isArray(o)){for(;n.arrayIndex<o.length;){let t=o[n.arrayIndex++];if(isAstNode(t)&&isAstNodeInRange(t,i))return{done:!1,value:t}}n.arrayIndex=0}}n.keyIndex++}return O})}function streamAllContents(t,n){if(!t)throw Error(`Root node must be an AstNode.`);return new TreeStreamImpl(t,t=>streamContents(t,n))}function streamAst(t,n){if(!t)throw Error(`Root node must be an AstNode.`);return n?.range&&!isAstNodeInRange(t,n.range)?new TreeStreamImpl(t,()=>[]):new TreeStreamImpl(t,t=>streamContents(t,n),{includeRoot:!0})}function isAstNodeInRange(t,n){if(!n)return!0;let i=t.$cstNode?.range;return i?inRange(i,n):!1}function streamReferences(t){return new E(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndex<n.keys.length;){let i=n.keys[n.keyIndex];if(!i.startsWith(`$`)){let a=t[i];if(isReference(a)||isMultiReference(a))return n.keyIndex++,{done:!1,value:{reference:a,container:t,property:i}};if(Array.isArray(a)){for(;n.arrayIndex<a.length;){let o=n.arrayIndex++,c=a[o];if(isReference(c)||isMultiReference(c))return{done:!1,value:{reference:c,container:t,property:i,index:o}}}n.arrayIndex=0}}n.keyIndex++}return O})}function assignMandatoryProperties(t,n){let i=t.getTypeMetaData(n.$type),a=n;for(let t of Object.values(i.properties))t.defaultValue!==void 0&&a[t.name]===void 0&&(a[t.name]=copyDefaultValue(t.defaultValue))}function copyDefaultValue(t){return Array.isArray(t)?[...t.map(copyDefaultValue)]:t}function copyAstNode(t,n,i){let a={$type:t.$type};i&&(i.set(t,a),i.set(a,t));for(let[o,c]of Object.entries(t))if(!o.startsWith(`$`)){if(isAstNode(c))a[o]=copyAstNode(c,n,i);else if(isReference(c))a[o]=n(a,o,c.$refNode,c.$refText,c);else if(Array.isArray(c)){let t=[];for(let l of c)isAstNode(l)?t.push(copyAstNode(l,n,i)):isReference(l)?t.push(n(a,o,l.$refNode,l.$refText,l)):t.push(l);a[o]=t}else a[o]=c}return linkContentToContainer(a,{deep:!0}),a}const A={$type:`AbstractElement`,cardinality:`cardinality`};function isAbstractElement(t){return H.isInstance(t,A.$type)}const te={$type:`AbstractParserRule`};function isAbstractParserRule(t){return H.isInstance(t,te.$type)}const ne={$type:`AbstractRule`},j={$type:`AbstractType`},M={$type:`Action`,cardinality:`cardinality`,feature:`feature`,inferredType:`inferredType`,operator:`operator`,type:`type`};function isAction(t){return H.isInstance(t,M.$type)}const N={$type:`Alternatives`,cardinality:`cardinality`,elements:`elements`};function isAlternatives(t){return H.isInstance(t,N.$type)}const P={$type:`ArrayLiteral`,elements:`elements`},re={$type:`ArrayType`,elementType:`elementType`};function isArrayType(t){return H.isInstance(t,re.$type)}const F={$type:`Assignment`,cardinality:`cardinality`,feature:`feature`,operator:`operator`,predicate:`predicate`,terminal:`terminal`};function isAssignment(t){return H.isInstance(t,F.$type)}const I={$type:`BooleanLiteral`,true:`true`};function isBooleanLiteral(t){return H.isInstance(t,I.$type)}const L={$type:`CharacterRange`,cardinality:`cardinality`,left:`left`,lookahead:`lookahead`,parenthesized:`parenthesized`,right:`right`};function isCharacterRange(t){return H.isInstance(t,L.$type)}const ie={$type:`Condition`},ae={$type:`Conjunction`,left:`left`,right:`right`};function isConjunction(t){return H.isInstance(t,ae.$type)}const oe={$type:`CrossReference`,cardinality:`cardinality`,deprecatedSyntax:`deprecatedSyntax`,isMulti:`isMulti`,terminal:`terminal`,type:`type`};function isCrossReference(t){return H.isInstance(t,oe.$type)}const se={$type:`Disjunction`,left:`left`,right:`right`};function isDisjunction(t){return H.isInstance(t,se.$type)}const ce={$type:`EndOfFile`,cardinality:`cardinality`};function isEndOfFile(t){return H.isInstance(t,ce.$type)}const R={$type:`Grammar`,imports:`imports`,interfaces:`interfaces`,isDeclared:`isDeclared`,name:`name`,rules:`rules`,types:`types`},le={$type:`GrammarImport`,path:`path`},ue={$type:`Group`,cardinality:`cardinality`,elements:`elements`,guardCondition:`guardCondition`,predicate:`predicate`};function isGroup(t){return H.isInstance(t,ue.$type)}const de={$type:`InferredType`,name:`name`};function isInferredType(t){return H.isInstance(t,de.$type)}const z={$type:`InfixRule`,call:`call`,dataType:`dataType`,inferredType:`inferredType`,name:`name`,operators:`operators`,parameters:`parameters`,returnType:`returnType`};function isInfixRule(t){return H.isInstance(t,z.$type)}const fe={$type:`InfixRuleOperatorList`,associativity:`associativity`,operators:`operators`},B={$type:`InfixRuleOperators`,precedences:`precedences`},V={$type:`Interface`,attributes:`attributes`,name:`name`,superTypes:`superTypes`};function isInterface(t){return H.isInstance(t,V.$type)}const pe={$type:`Keyword`,cardinality:`cardinality`,predicate:`predicate`,value:`value`};function isKeyword(t){return H.isInstance(t,pe.$type)}const me={$type:`NamedArgument`,calledByName:`calledByName`,parameter:`parameter`,value:`value`},he={$type:`NegatedToken`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`,terminal:`terminal`};function isNegatedToken(t){return H.isInstance(t,he.$type)}const ge={$type:`Negation`,value:`value`};function isNegation(t){return H.isInstance(t,ge.$type)}const _e={$type:`NumberLiteral`,value:`value`},ve={$type:`Parameter`,name:`name`},ye={$type:`ParameterReference`,parameter:`parameter`};function isParameterReference(t){return H.isInstance(t,ye.$type)}const be={$type:`ParserRule`,dataType:`dataType`,definition:`definition`,entry:`entry`,fragment:`fragment`,inferredType:`inferredType`,name:`name`,parameters:`parameters`,returnType:`returnType`};function isParserRule(t){return H.isInstance(t,be.$type)}const xe={$type:`ReferenceType`,isMulti:`isMulti`,referenceType:`referenceType`};function isReferenceType(t){return H.isInstance(t,xe.$type)}const Se={$type:`RegexToken`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`,regex:`regex`};function isRegexToken(t){return H.isInstance(t,Se.$type)}const Ce={$type:`ReturnType`,name:`name`};function isReturnType(t){return H.isInstance(t,Ce.$type)}const we={$type:`RuleCall`,arguments:`arguments`,cardinality:`cardinality`,predicate:`predicate`,rule:`rule`};function isRuleCall(t){return H.isInstance(t,we.$type)}const Te={$type:`SimpleType`,primitiveType:`primitiveType`,stringType:`stringType`,typeRef:`typeRef`};function isSimpleType(t){return H.isInstance(t,Te.$type)}const Ee={$type:`StringLiteral`,value:`value`},De={$type:`TerminalAlternatives`,cardinality:`cardinality`,elements:`elements`,lookahead:`lookahead`,parenthesized:`parenthesized`};function isTerminalAlternatives(t){return H.isInstance(t,De.$type)}const Oe={$type:`TerminalElement`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`},ke={$type:`TerminalGroup`,cardinality:`cardinality`,elements:`elements`,lookahead:`lookahead`,parenthesized:`parenthesized`};function isTerminalGroup(t){return H.isInstance(t,ke.$type)}const Ae={$type:`TerminalRule`,definition:`definition`,fragment:`fragment`,hidden:`hidden`,name:`name`,type:`type`};function isTerminalRule(t){return H.isInstance(t,Ae.$type)}const je={$type:`TerminalRuleCall`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`,rule:`rule`};function isTerminalRuleCall(t){return H.isInstance(t,je.$type)}const Me={$type:`Type`,name:`name`,type:`type`};function isType(t){return H.isInstance(t,Me.$type)}const Ne={$type:`TypeAttribute`,defaultValue:`defaultValue`,isOptional:`isOptional`,name:`name`,type:`type`},Pe={$type:`TypeDefinition`},Fe={$type:`UnionType`,types:`types`};function isUnionType(t){return H.isInstance(t,Fe.$type)}const Ie={$type:`UnorderedGroup`,cardinality:`cardinality`,elements:`elements`};function isUnorderedGroup(t){return H.isInstance(t,Ie.$type)}const Le={$type:`UntilToken`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`,terminal:`terminal`};function isUntilToken(t){return H.isInstance(t,Le.$type)}const Re={$type:`ValueLiteral`},ze={$type:`Wildcard`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`};function isWildcard(t){return H.isInstance(t,ze.$type)}var LangiumGrammarAstReflection=class extends AbstractAstReflection{constructor(){super(...arguments),this.types={AbstractElement:{name:A.$type,properties:{cardinality:{name:A.cardinality,optional:!0}},superTypes:[]},AbstractParserRule:{name:te.$type,properties:{},superTypes:[ne.$type,j.$type]},AbstractRule:{name:ne.$type,properties:{},superTypes:[]},AbstractType:{name:j.$type,properties:{},superTypes:[]},Action:{name:M.$type,properties:{cardinality:{name:M.cardinality,optional:!0},feature:{name:M.feature,optional:!0},inferredType:{name:M.inferredType,optional:!0},operator:{name:M.operator,optional:!0},type:{name:M.type,referenceType:j.$type,optional:!0}},superTypes:[A.$type]},Alternatives:{name:N.$type,properties:{cardinality:{name:N.cardinality,optional:!0},elements:{name:N.elements,defaultValue:[]}},superTypes:[A.$type]},ArrayLiteral:{name:P.$type,properties:{elements:{name:P.elements,defaultValue:[]}},superTypes:[Re.$type]},ArrayType:{name:re.$type,properties:{elementType:{name:re.elementType}},superTypes:[Pe.$type]},Assignment:{name:F.$type,properties:{cardinality:{name:F.cardinality,optional:!0},feature:{name:F.feature},operator:{name:F.operator},predicate:{name:F.predicate,optional:!0},terminal:{name:F.terminal}},superTypes:[A.$type]},BooleanLiteral:{name:I.$type,properties:{true:{name:I.true,defaultValue:!1}},superTypes:[ie.$type,Re.$type]},CharacterRange:{name:L.$type,properties:{cardinality:{name:L.cardinality,optional:!0},left:{name:L.left},lookahead:{name:L.lookahead,optional:!0},parenthesized:{name:L.parenthesized,defaultValue:!1,optional:!0},right:{name:L.right,optional:!0}},superTypes:[Oe.$type]},Condition:{name:ie.$type,properties:{},superTypes:[]},Conjunction:{name:ae.$type,properties:{left:{name:ae.left},right:{name:ae.right}},superTypes:[ie.$type]},CrossReference:{name:oe.$type,properties:{cardinality:{name:oe.cardinality,optional:!0},deprecatedSyntax:{name:oe.deprecatedSyntax,defaultValue:!1},isMulti:{name:oe.isMulti,defaultValue:!1},terminal:{name:oe.terminal,optional:!0},type:{name:oe.type,referenceType:j.$type}},superTypes:[A.$type]},Disjunction:{name:se.$type,properties:{left:{name:se.left},right:{name:se.right}},superTypes:[ie.$type]},EndOfFile:{name:ce.$type,properties:{cardinality:{name:ce.cardinality,optional:!0}},superTypes:[A.$type]},Grammar:{name:R.$type,properties:{imports:{name:R.imports,defaultValue:[]},interfaces:{name:R.interfaces,defaultValue:[]},isDeclared:{name:R.isDeclared,defaultValue:!1},name:{name:R.name,optional:!0},rules:{name:R.rules,defaultValue:[]},types:{name:R.types,defaultValue:[]}},superTypes:[]},GrammarImport:{name:le.$type,properties:{path:{name:le.path}},superTypes:[]},Group:{name:ue.$type,properties:{cardinality:{name:ue.cardinality,optional:!0},elements:{name:ue.elements,defaultValue:[]},guardCondition:{name:ue.guardCondition,optional:!0},predicate:{name:ue.predicate,optional:!0}},superTypes:[A.$type]},InferredType:{name:de.$type,properties:{name:{name:de.name}},superTypes:[j.$type]},InfixRule:{name:z.$type,properties:{call:{name:z.call},dataType:{name:z.dataType,optional:!0},inferredType:{name:z.inferredType,optional:!0},name:{name:z.name},operators:{name:z.operators},parameters:{name:z.parameters,defaultValue:[]},returnType:{name:z.returnType,referenceType:j.$type,optional:!0}},superTypes:[te.$type]},InfixRuleOperatorList:{name:fe.$type,properties:{associativity:{name:fe.associativity,optional:!0},operators:{name:fe.operators,defaultValue:[]}},superTypes:[]},InfixRuleOperators:{name:B.$type,properties:{precedences:{name:B.precedences,defaultValue:[]}},superTypes:[]},Interface:{name:V.$type,properties:{attributes:{name:V.attributes,defaultValue:[]},name:{name:V.name},superTypes:{name:V.superTypes,defaultValue:[],referenceType:j.$type}},superTypes:[j.$type]},Keyword:{name:pe.$type,properties:{cardinality:{name:pe.cardinality,optional:!0},predicate:{name:pe.predicate,optional:!0},value:{name:pe.value}},superTypes:[A.$type]},NamedArgument:{name:me.$type,properties:{calledByName:{name:me.calledByName,defaultValue:!1},parameter:{name:me.parameter,referenceType:ve.$type,optional:!0},value:{name:me.value}},superTypes:[]},NegatedToken:{name:he.$type,properties:{cardinality:{name:he.cardinality,optional:!0},lookahead:{name:he.lookahead,optional:!0},parenthesized:{name:he.parenthesized,defaultValue:!1,optional:!0},terminal:{name:he.terminal}},superTypes:[Oe.$type]},Negation:{name:ge.$type,properties:{value:{name:ge.value}},superTypes:[ie.$type]},NumberLiteral:{name:_e.$type,properties:{value:{name:_e.value}},superTypes:[Re.$type]},Parameter:{name:ve.$type,properties:{name:{name:ve.name}},superTypes:[]},ParameterReference:{name:ye.$type,properties:{parameter:{name:ye.parameter,referenceType:ve.$type}},superTypes:[ie.$type]},ParserRule:{name:be.$type,properties:{dataType:{name:be.dataType,optional:!0},definition:{name:be.definition},entry:{name:be.entry,defaultValue:!1},fragment:{name:be.fragment,defaultValue:!1},inferredType:{name:be.inferredType,optional:!0},name:{name:be.name},parameters:{name:be.parameters,defaultValue:[]},returnType:{name:be.returnType,referenceType:j.$type,optional:!0}},superTypes:[te.$type]},ReferenceType:{name:xe.$type,properties:{isMulti:{name:xe.isMulti,defaultValue:!1},referenceType:{name:xe.referenceType}},superTypes:[Pe.$type]},RegexToken:{name:Se.$type,properties:{cardinality:{name:Se.cardinality,optional:!0},lookahead:{name:Se.lookahead,optional:!0},parenthesized:{name:Se.parenthesized,defaultValue:!1,optional:!0},regex:{name:Se.regex}},superTypes:[Oe.$type]},ReturnType:{name:Ce.$type,properties:{name:{name:Ce.name}},superTypes:[]},RuleCall:{name:we.$type,properties:{arguments:{name:we.arguments,defaultValue:[]},cardinality:{name:we.cardinality,optional:!0},predicate:{name:we.predicate,optional:!0},rule:{name:we.rule,referenceType:ne.$type}},superTypes:[A.$type]},SimpleType:{name:Te.$type,properties:{primitiveType:{name:Te.primitiveType,optional:!0},stringType:{name:Te.stringType,optional:!0},typeRef:{name:Te.typeRef,referenceType:j.$type,optional:!0}},superTypes:[Pe.$type]},StringLiteral:{name:Ee.$type,properties:{value:{name:Ee.value}},superTypes:[Re.$type]},TerminalAlternatives:{name:De.$type,properties:{cardinality:{name:De.cardinality,optional:!0},elements:{name:De.elements,defaultValue:[]},lookahead:{name:De.lookahead,optional:!0},parenthesized:{name:De.parenthesized,defaultValue:!1,optional:!0}},superTypes:[Oe.$type]},TerminalElement:{name:Oe.$type,properties:{cardinality:{name:Oe.cardinality,optional:!0},lookahead:{name:Oe.lookahead,optional:!0},parenthesized:{name:Oe.parenthesized,defaultValue:!1,optional:!0}},superTypes:[A.$type]},TerminalGroup:{name:ke.$type,properties:{cardinality:{name:ke.cardinality,optional:!0},elements:{name:ke.elements,defaultValue:[]},lookahead:{name:ke.lookahead,optional:!0},parenthesized:{name:ke.parenthesized,defaultValue:!1,optional:!0}},superTypes:[Oe.$type]},TerminalRule:{name:Ae.$type,properties:{definition:{name:Ae.definition},fragment:{name:Ae.fragment,defaultValue:!1},hidden:{name:Ae.hidden,defaultValue:!1},name:{name:Ae.name},type:{name:Ae.type,optional:!0}},superTypes:[ne.$type]},TerminalRuleCall:{name:je.$type,properties:{cardinality:{name:je.cardinality,optional:!0},lookahead:{name:je.lookahead,optional:!0},parenthesized:{name:je.parenthesized,defaultValue:!1,optional:!0},rule:{name:je.rule,referenceType:Ae.$type}},superTypes:[Oe.$type]},Type:{name:Me.$type,properties:{name:{name:Me.name},type:{name:Me.type}},superTypes:[j.$type]},TypeAttribute:{name:Ne.$type,properties:{defaultValue:{name:Ne.defaultValue,optional:!0},isOptional:{name:Ne.isOptional,defaultValue:!1},name:{name:Ne.name},type:{name:Ne.type}},superTypes:[]},TypeDefinition:{name:Pe.$type,properties:{},superTypes:[]},UnionType:{name:Fe.$type,properties:{types:{name:Fe.types,defaultValue:[]}},superTypes:[Pe.$type]},UnorderedGroup:{name:Ie.$type,properties:{cardinality:{name:Ie.cardinality,optional:!0},elements:{name:Ie.elements,defaultValue:[]}},superTypes:[A.$type]},UntilToken:{name:Le.$type,properties:{cardinality:{name:Le.cardinality,optional:!0},lookahead:{name:Le.lookahead,optional:!0},parenthesized:{name:Le.parenthesized,defaultValue:!1,optional:!0},terminal:{name:Le.terminal}},superTypes:[Oe.$type]},ValueLiteral:{name:Re.$type,properties:{},superTypes:[]},Wildcard:{name:ze.$type,properties:{cardinality:{name:ze.cardinality,optional:!0},lookahead:{name:ze.lookahead,optional:!0},parenthesized:{name:ze.parenthesized,defaultValue:!1,optional:!0}},superTypes:[Oe.$type]}}}};const H=new LangiumGrammarAstReflection;var Be=/* @__PURE__ */ a({DefaultNameRegexp:()=>He,RangeComparison:()=>Ve,compareRange:()=>compareRange,findCommentNode:()=>findCommentNode,findDeclarationNodeAtOffset:()=>findDeclarationNodeAtOffset,findLeafNodeAtOffset:()=>findLeafNodeAtOffset,findLeafNodeBeforeOffset:()=>findLeafNodeBeforeOffset,flattenCst:()=>flattenCst,getDatatypeNode:()=>getDatatypeNode,getInteriorNodes:()=>getInteriorNodes,getNextNode:()=>getNextNode,getPreviousNode:()=>getPreviousNode,getStartlineNode:()=>getStartlineNode,inRange:()=>inRange,isChildNode:()=>isChildNode,isCommentNode:()=>isCommentNode,isValidTokenRange:()=>isValidTokenRange,streamCst:()=>streamCst,toDocumentSegment:()=>toDocumentSegment,tokenToRange:()=>tokenToRange});function getDatatypeNode(t){let n=t,i=!1;for(;n;){let t=getContainerOfType(n.grammarSource,isParserRule);if(t&&t.dataType)n=n.container,i=!0;else if(i)return n;else return}}function streamCst(t){return new TreeStreamImpl(t,t=>isCompositeCstNode(t)?t.content:[],{includeRoot:!0})}function flattenCst(t){return streamCst(t).filter(isLeafCstNode)}function isChildNode(t,n){for(;t.container;)if(t=t.container,t===n)return!0;return!1}function tokenToRange(t){return{start:{line:t.startLine-1,character:t.startColumn-1},end:{line:t.endLine-1,character:t.endColumn}}}function isValidTokenRange(t){let{startOffset:n,endOffset:i}=t;return typeof n==`number`&&Number.isFinite(n)&&n>=0&&typeof i==`number`&&Number.isFinite(i)&&i>=n}function toDocumentSegment(t){if(!t)return;let{offset:n,end:i,range:a}=t;return{range:a,offset:n,end:i,length:i-n}}var Ve;(function(t){t[t.Before=0]=`Before`,t[t.After=1]=`After`,t[t.OverlapFront=2]=`OverlapFront`,t[t.OverlapBack=3]=`OverlapBack`,t[t.Inside=4]=`Inside`,t[t.Outside=5]=`Outside`})(Ve||={});function compareRange(t,n){if(t.end.line<n.start.line||t.end.line===n.start.line&&t.end.character<=n.start.character)return Ve.Before;if(t.start.line>n.end.line||t.start.line===n.end.line&&t.start.character>=n.end.character)return Ve.After;let i=t.start.line>n.start.line||t.start.line===n.start.line&&t.start.character>=n.start.character,a=t.end.line<n.end.line||t.end.line===n.end.line&&t.end.character<=n.end.character;return i&&a?Ve.Inside:i?Ve.OverlapBack:a?Ve.OverlapFront:Ve.Outside}function inRange(t,n){return compareRange(t,n)>Ve.After}const He=/^[\w\p{L}]$/u;function findDeclarationNodeAtOffset(t,n,i=He){if(t){if(n>0){let a=n>=t.offset&&n<t.end?t.root.fullText.charAt(n):``;i.test(a)||n--}return findLeafNodeAtOffset(t,n)}}function findCommentNode(t,n){if(t){let i=getPreviousNode(t,!0);if(i&&isCommentNode(i,n))return i;if(isRootCstNode(t)){let i=t.content.findIndex(t=>!t.hidden);for(let a=i-1;a>=0;a--){let i=t.content[a];if(isCommentNode(i,n))return i}}}}function isCommentNode(t,n){return isLeafCstNode(t)&&n.includes(t.tokenType.name)}function findLeafNodeAtOffset(t,n){if(isLeafCstNode(t))return t;if(isCompositeCstNode(t)){let i=binarySearch(t,n,!1);if(i)return findLeafNodeAtOffset(i,n)}}function findLeafNodeBeforeOffset(t,n){if(isLeafCstNode(t))return t;if(isCompositeCstNode(t)){let i=binarySearch(t,n,!0);if(i)return findLeafNodeBeforeOffset(i,n)}}function binarySearch(t,n,i){let a=0,o=t.content.length-1,c;for(;a<=o;){let l=Math.floor((a+o)/2),f=t.content[l];if(f.offset<=n&&f.end>n)return f;f.end<=n?(c=i?f:void 0,a=l+1):o=l-1}return c}function getPreviousNode(t,n=!0){for(;t.container;){let i=t.container,a=i.content.indexOf(t);for(;a>0;){a--;let t=i.content[a];if(n||!t.hidden)return t}t=i}}function getNextNode(t,n=!0){for(;t.container;){let i=t.container,a=i.content.indexOf(t),o=i.content.length-1;for(;a<o;){a++;let t=i.content[a];if(n||!t.hidden)return t}t=i}}function getStartlineNode(t){if(t.range.start.character===0)return t;let n=t.range.start.line,i=t,a;for(;t.container;){let o=t.container,c=a??o.content.indexOf(t);if(c===0?(t=o,a=void 0):(a=c-1,t=o.content[a]),t.range.start.line!==n)break;i=t}return i}function getInteriorNodes(t,n){let i=getCommonParent(t,n);return i?i.parent.content.slice(i.a+1,i.b):[]}function getCommonParent(t,n){let i=getParentChain(t),a=getParentChain(n),o;for(let t=0;t<i.length&&t<a.length;t++){let n=i[t],c=a[t];if(n.parent===c.parent)o={parent:n.parent,a:n.index,b:c.index};else break}return o}function getParentChain(t){let n=[];for(;t.container;){let i=t.container,a=i.content.indexOf(t);n.push({parent:i,index:a}),t=i}return n.reverse()}var ErrorWithLocation=class extends Error{constructor(t,n){let i=typeof n==`string`?n:n();super(t?`${i} at ${t.range.start.line}:${t.range.start.character}`:i)}};function assertUnreachable(t,n=`Error: Got unexpected value.`){throw Error(typeof n==`string`?n:n())}const Ue=/\r?\n/gm,We=new c;var TerminalRegExpVisitor=class extends l{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join(``)}reset(t){this.multiline=!1,this.regex=t,this.startRegexp=``,this.isStarting=!0,this.endRegexpStack=[]}visitGroup(t){t.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(t){let n=String.fromCharCode(t.value);if(!this.multiline&&n===`
2
2
  `&&(this.multiline=!0),t.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let t=escapeRegExp(n);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitSet(t){if(!this.multiline){let n=this.regex.substring(t.loc.begin,t.loc.end),i=new RegExp(n);this.multiline=!!`
3
- `.match(i)}if(t.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=this.regex.substring(t.loc.begin,t.loc.end);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitChildren(t){t.type===`Group`&&t.quantifier||super.visitChildren(t)}};const Ue=new TerminalRegExpVisitor;function isMultilineComment(t){try{return typeof t==`string`&&(t=new RegExp(t)),t=t.toString(),Ue.reset(t),Ue.visit(He.pattern(t)),Ue.multiline}catch{return!1}}const We=`\f
4
- \r \v \xA0            \u2028\u2029   `.split(``);function isWhitespace(t){let n=typeof t==`string`?new RegExp(t):t;return We.some(t=>n.test(t))}function escapeRegExp(t){return t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function partialMatches(t,n){let i=partialRegExp(t),o=n.match(i);return!!o&&o[0].length>0}function partialRegExp(t){typeof t==`string`&&(t=new RegExp(t));let n=t,i=t.source,o=0;function process(){let t=``,s;function appendRaw(n){t+=i.substr(o,n),o+=n}function appendOptional(n){t+=`(?:`+i.substr(o,n)+`|$)`,o+=n}for(;o<i.length;)switch(i[o]){case`\\`:switch(i[o+1]){case`c`:appendOptional(3);break;case`x`:appendOptional(4);break;case`u`:n.unicode?i[o+2]===`{`?appendOptional(i.indexOf(`}`,o)-o+1):appendOptional(6):appendOptional(2);break;case`p`:case`P`:n.unicode?appendOptional(i.indexOf(`}`,o)-o+1):appendOptional(2);break;case`k`:appendOptional(i.indexOf(`>`,o)-o+1);break;default:appendOptional(2)}break;case`[`:s=/\[(?:\\.|.)*?\]/g,s.lastIndex=o,s=s.exec(i)||[],appendOptional(s[0].length);break;case`|`:case`^`:case`$`:case`*`:case`+`:case`?`:appendRaw(1);break;case`{`:s=/\{\d+,?\d*\}/g,s.lastIndex=o,s=s.exec(i),s?appendRaw(s[0].length):appendOptional(1);break;case`(`:if(i[o+1]===`?`)switch(i[o+2]){case`:`:t+=`(?:`,o+=3,t+=process()+`|$)`;break;case`=`:t+=`(?=`,o+=3,t+=process()+`)`;break;case`!`:s=o,o+=3,process(),t+=i.substr(s,o-s);break;case`<`:switch(i[o+3]){case`=`:case`!`:s=o,o+=4,process(),t+=i.substr(s,o-s);break;default:appendRaw(i.indexOf(`>`,o)-o+1),t+=process()+`|$)`}}else appendRaw(1),t+=process()+`|$)`;break;case`)`:return++o,t;default:appendOptional(1)}return t}return new RegExp(process(),t.flags)}var Ge=c({findAssignment:()=>findAssignment,findNameAssignment:()=>findNameAssignment,findNodeForKeyword:()=>findNodeForKeyword,findNodeForProperty:()=>findNodeForProperty,findNodesForKeyword:()=>findNodesForKeyword,findNodesForKeywordInternal:()=>findNodesForKeywordInternal,findNodesForProperty:()=>findNodesForProperty,getActionAtElement:()=>getActionAtElement,getActionType:()=>getActionType,getAllReachableRules:()=>getAllReachableRules,getAllRulesUsedForCrossReferences:()=>getAllRulesUsedForCrossReferences,getCrossReferenceTerminal:()=>getCrossReferenceTerminal,getEntryRule:()=>getEntryRule,getExplicitRuleType:()=>getExplicitRuleType,getHiddenRules:()=>getHiddenRules,getRuleType:()=>getRuleType,getRuleTypeName:()=>getRuleTypeName,getTypeName:()=>getTypeName,isArrayCardinality:()=>isArrayCardinality,isArrayOperator:()=>isArrayOperator,isCommentTerminal:()=>isCommentTerminal,isDataType:()=>isDataType,isDataTypeRule:()=>isDataTypeRule,isOptionalCardinality:()=>isOptionalCardinality,terminalRegex:()=>terminalRegex});function getEntryRule(t){return t.rules.find(t=>isParserRule(t)&&t.entry)}function getHiddenRules(t){return t.rules.filter(t=>isTerminalRule(t)&&t.hidden)}function getAllReachableRules(t,n){let i=new Set,o=getEntryRule(t);if(!o)return new Set(t.rules);let s=[o].concat(getHiddenRules(t));for(let t of s)ruleDfs(t,i,n);let c=new Set;for(let n of t.rules)(i.has(n.name)||isTerminalRule(n)&&n.hidden)&&c.add(n);return c}function ruleDfs(t,n,i){n.add(t.name),streamAllContents(t).forEach(t=>{if(isRuleCall(t)||i&&isTerminalRuleCall(t)){let o=t.rule.ref;o&&!n.has(o.name)&&ruleDfs(o,n,i)}})}function getAllRulesUsedForCrossReferences(t){let n=new Set;return streamAllContents(t).forEach(t=>{isCrossReference(t)&&(isParserRule(t.type.ref)&&n.add(t.type.ref),isInferredType(t.type.ref)&&isParserRule(t.type.ref.$container)&&n.add(t.type.ref.$container))}),n}function getCrossReferenceTerminal(t){if(t.terminal)return t.terminal;if(t.type.ref)return findNameAssignment(t.type.ref)?.terminal}function isCommentTerminal(t){return t.hidden&&!isWhitespace(terminalRegex(t))}function findNodesForProperty(t,n){return!t||!n?[]:findNodesForPropertyInternal(t,n,t.astNode,!0)}function findNodeForProperty(t,n,i){if(!t||!n)return;let o=findNodesForPropertyInternal(t,n,t.astNode,!0);if(o.length!==0)return i=i===void 0?0:Math.max(0,Math.min(i,o.length-1)),o[i]}function findNodesForPropertyInternal(t,n,i,o){if(!o){let i=getContainerOfType(t.grammarSource,isAssignment);if(i&&i.feature===n)return[t]}return isCompositeCstNode(t)&&t.astNode===i?t.content.flatMap(t=>findNodesForPropertyInternal(t,n,i,!1)):[]}function findNodesForKeyword(t,n){return t?findNodesForKeywordInternal(t,n,t?.astNode):[]}function findNodeForKeyword(t,n,i){if(!t)return;let o=findNodesForKeywordInternal(t,n,t?.astNode);if(o.length!==0)return i=i===void 0?0:Math.max(0,Math.min(i,o.length-1)),o[i]}function findNodesForKeywordInternal(t,n,i){if(t.astNode!==i)return[];if(isKeyword(t.grammarSource)&&t.grammarSource.value===n)return[t];let o=streamCst(t).iterator(),s,c=[];do if(s=o.next(),!s.done){let t=s.value;t.astNode===i?isKeyword(t.grammarSource)&&t.grammarSource.value===n&&c.push(t):o.prune()}while(!s.done);return c}function findAssignment(t){let n=t.astNode;for(;n===t.container?.astNode;){let n=getContainerOfType(t.grammarSource,isAssignment);if(n)return n;t=t.container}}function findNameAssignment(t){let n=t;return isInferredType(n)&&(isAction(n.$container)?n=n.$container.$container:isParserRule(n.$container)?n=n.$container:assertUnreachable(n.$container)),findNameAssignmentInternal(t,n,new Map)}function findNameAssignmentInternal(t,n,i){function go(n,o){let s;return getContainerOfType(n,isAssignment)||(s=findNameAssignmentInternal(o,o,i)),i.set(t,s),s}if(i.has(t))return i.get(t);i.set(t,void 0);for(let o of streamAllContents(n))if(isAssignment(o)&&o.feature.toLowerCase()===`name`)return i.set(t,o),o;else if(isRuleCall(o)&&isParserRule(o.rule.ref))return go(o,o.rule.ref);else if(isSimpleType(o)&&o.typeRef?.ref)return go(o,o.typeRef.ref)}function getActionAtElement(t){let n=t.$container;if(isGroup(n)){let i=n.elements,o=i.indexOf(t);for(let t=o-1;t>=0;t--){let n=i[t];if(isAction(n))return n;{let n=streamAllContents(i[t]).find(isAction);if(n)return n}}}if(isAbstractElement(n))return getActionAtElement(n)}function isOptionalCardinality(t,n){return t===`?`||t===`*`||isGroup(n)&&!!n.guardCondition}function isArrayCardinality(t){return t===`*`||t===`+`}function isArrayOperator(t){return t===`+=`}function isDataTypeRule(t){return isDataTypeRuleInternal(t,new Set)}function isDataTypeRuleInternal(t,n){if(n.has(t))return!0;n.add(t);for(let i of streamAllContents(t))if(isRuleCall(i)){if(!i.rule.ref||isParserRule(i.rule.ref)&&!isDataTypeRuleInternal(i.rule.ref,n))return!1}else if(isAssignment(i))return!1;else if(isAction(i))return!1;return!!t.definition}function isDataType(t){return isDataTypeInternal(t.type,new Set)}function isDataTypeInternal(t,n){if(n.has(t))return!0;if(n.add(t),isArrayType(t)||isReferenceType(t))return!1;if(isUnionType(t))return t.types.every(t=>isDataTypeInternal(t,n));if(isSimpleType(t)){if(t.primitiveType!==void 0||t.stringType!==void 0)return!0;if(t.typeRef!==void 0){let i=t.typeRef.ref;return isType(i)?isDataTypeInternal(i.type,n):!1}return!1}return!1}function getExplicitRuleType(t){if(t.inferredType)return t.inferredType.name;if(t.dataType)return t.dataType;if(t.returnType){let n=t.returnType.ref;if(n&&(isParserRule(n)||isInterface(n)||isType(n)))return n.name}}function getTypeName(t){if(isParserRule(t))return isDataTypeRule(t)?t.name:getExplicitRuleType(t)??t.name;if(isInterface(t)||isType(t)||isReturnType(t))return t.name;if(isAction(t)){let n=getActionType(t);if(n)return n}else if(isInferredType(t))return t.name;throw Error(`Cannot get name of Unknown Type`)}function getActionType(t){if(t.inferredType)return t.inferredType.name;if(t.type?.ref)return getTypeName(t.type.ref)}function getRuleTypeName(t){return isTerminalRule(t)?t.type?.name??`string`:isDataTypeRule(t)?t.name:getExplicitRuleType(t)??t.name}function getRuleType(t){return isTerminalRule(t)?t.type?.name??`string`:getExplicitRuleType(t)??t.name}function terminalRegex(t){let n={s:!1,i:!1,u:!1},i=abstractElementToRegex(t.definition,n),o=Object.entries(n).filter(([,t])=>t).map(([t])=>t).join(``);return new RegExp(i,o)}const Ke=`[\\s\\S]`;function abstractElementToRegex(t,n){if(isTerminalAlternatives(t))return terminalAlternativesToRegex(t);if(isTerminalGroup(t))return terminalGroupToRegex(t);if(isCharacterRange(t))return characterRangeToRegex(t);if(isTerminalRuleCall(t)){let n=t.rule.ref;if(!n)throw Error(`Missing rule reference.`);return withCardinality(abstractElementToRegex(n.definition),{cardinality:t.cardinality,lookahead:t.lookahead})}if(isNegatedToken(t))return negateTokenToRegex(t);if(isUntilToken(t))return untilTokenToRegex(t);if(isRegexToken(t)){let i=t.regex.lastIndexOf(`/`),o=t.regex.substring(1,i),s=t.regex.substring(i+1);return n&&(n.i=s.includes(`i`),n.s=s.includes(`s`),n.u=s.includes(`u`)),withCardinality(o,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}if(isWildcard(t))return withCardinality(Ke,{cardinality:t.cardinality,lookahead:t.lookahead});throw Error(`Invalid terminal element: ${t?.$type}`)}function terminalAlternativesToRegex(t){return withCardinality(t.elements.map(t=>abstractElementToRegex(t)).join(`|`),{cardinality:t.cardinality,lookahead:t.lookahead})}function terminalGroupToRegex(t){return withCardinality(t.elements.map(t=>abstractElementToRegex(t)).join(``),{cardinality:t.cardinality,lookahead:t.lookahead})}function untilTokenToRegex(t){return withCardinality(`${Ke}*?${abstractElementToRegex(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead})}function negateTokenToRegex(t){return withCardinality(`(?!${abstractElementToRegex(t.terminal)})${Ke}*?`,{cardinality:t.cardinality,lookahead:t.lookahead})}function characterRangeToRegex(t){return t.right?withCardinality(`[${keywordToRegex(t.left)}-${keywordToRegex(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1}):withCardinality(keywordToRegex(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}function keywordToRegex(t){return escapeRegExp(t.value)}function withCardinality(t,n){return(n.wrap!==!1||n.lookahead)&&(t=`(${n.lookahead??``}${t})`),n.cardinality?`${t}${n.cardinality}`:t}function createGrammarConfig(t){let n=[],i=t.Grammar;for(let t of i.rules)isTerminalRule(t)&&isCommentTerminal(t)&&isMultilineComment(terminalRegex(t))&&n.push(t.name);return{multilineCommentRules:n,nameRegexp:P}}var qe=c({AnnotatedTextEdit:()=>pt,ChangeAnnotation:()=>ft,ChangeAnnotationIdentifier:()=>G,CodeAction:()=>qt,CodeActionContext:()=>Kt,CodeActionKind:()=>Wt,CodeActionTriggerKind:()=>Gt,CodeDescription:()=>ct,CodeLens:()=>Jt,Color:()=>et,ColorInformation:()=>tt,ColorPresentation:()=>nt,Command:()=>ut,CompletionItem:()=>jt,CompletionItemKind:()=>Tt,CompletionItemLabelDetails:()=>At,CompletionItemTag:()=>Dt,CompletionList:()=>Mt,CreateFile:()=>ht,DeleteFile:()=>_t,Diagnostic:()=>lt,DiagnosticRelatedInformation:()=>at,DiagnosticSeverity:()=>ot,DiagnosticTag:()=>st,DocumentHighlight:()=>Rt,DocumentHighlightKind:()=>Lt,DocumentLink:()=>Xt,DocumentSymbol:()=>Ut,DocumentUri:()=>Je,EOL:()=>gn,FoldingRange:()=>it,FoldingRangeKind:()=>rt,FormattingOptions:()=>Yt,Hover:()=>Pt,InlayHint:()=>cn,InlayHintKind:()=>on,InlayHintLabelPart:()=>sn,InlineCompletionContext:()=>mn,InlineCompletionItem:()=>un,InlineCompletionList:()=>dn,InlineCompletionTriggerKind:()=>fn,InlineValueContext:()=>an,InlineValueEvaluatableExpression:()=>rn,InlineValueText:()=>tn,InlineValueVariableLookup:()=>nn,InsertReplaceEdit:()=>Ot,InsertTextFormat:()=>Et,InsertTextMode:()=>kt,Location:()=>Qe,LocationLink:()=>$e,MarkedString:()=>Nt,MarkupContent:()=>wt,MarkupKind:()=>Ct,OptionalVersionedTextDocumentIdentifier:()=>xt,ParameterInformation:()=>Ft,Position:()=>U,Range:()=>W,RenameFile:()=>gt,SelectedCompletionInfo:()=>pn,SelectionRange:()=>Zt,SemanticTokenModifiers:()=>$t,SemanticTokenTypes:()=>Qt,SemanticTokens:()=>en,SignatureInformation:()=>It,StringValue:()=>ln,SymbolInformation:()=>Vt,SymbolKind:()=>zt,SymbolTag:()=>Bt,TextDocument:()=>_n,TextDocumentEdit:()=>mt,TextDocumentIdentifier:()=>yt,TextDocumentItem:()=>St,TextEdit:()=>dt,URI:()=>Ye,VersionedTextDocumentIdentifier:()=>bt,WorkspaceChange:()=>WorkspaceChange,WorkspaceEdit:()=>vt,WorkspaceFolder:()=>hn,WorkspaceSymbol:()=>Ht,integer:()=>Xe,uinteger:()=>Ze}),Je,Ye,Xe,Ze,U,W,Qe,$e,et,tt,nt,rt,it,at,ot,st,ct,lt,ut,dt,ft,G,pt,mt,ht,gt,_t,vt,TextEditChangeImpl,ChangeAnnotations,WorkspaceChange,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Ot,kt,At,jt,Mt,Nt,Pt,Ft,It,Lt,Rt,zt,Bt,Vt,Ht,Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on,sn,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,FullTextDocument$1,K,vn=o((()=>{(function(t){function is(t){return typeof t==`string`}t.is=is})(Je||={}),(function(t){function is(t){return typeof t==`string`}t.is=is})(Ye||={}),(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function is(n){return typeof n==`number`&&t.MIN_VALUE<=n&&n<=t.MAX_VALUE}t.is=is})(Xe||={}),(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function is(n){return typeof n==`number`&&t.MIN_VALUE<=n&&n<=t.MAX_VALUE}t.is=is})(Ze||={}),(function(t){function create(t,n){return t===Number.MAX_VALUE&&(t=Ze.MAX_VALUE),n===Number.MAX_VALUE&&(n=Ze.MAX_VALUE),{line:t,character:n}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&K.uinteger(n.line)&&K.uinteger(n.character)}t.is=is})(U||={}),(function(t){function create(t,n,i,o){if(K.uinteger(t)&&K.uinteger(n)&&K.uinteger(i)&&K.uinteger(o))return{start:U.create(t,n),end:U.create(i,o)};if(U.is(t)&&U.is(n))return{start:t,end:n};throw Error(`Range#create called with invalid arguments[${t}, ${n}, ${i}, ${o}]`)}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&U.is(n.start)&&U.is(n.end)}t.is=is})(W||={}),(function(t){function create(t,n){return{uri:t,range:n}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&W.is(n.range)&&(K.string(n.uri)||K.undefined(n.uri))}t.is=is})(Qe||={}),(function(t){function create(t,n,i,o){return{targetUri:t,targetRange:n,targetSelectionRange:i,originSelectionRange:o}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&W.is(n.targetRange)&&K.string(n.targetUri)&&W.is(n.targetSelectionRange)&&(W.is(n.originSelectionRange)||K.undefined(n.originSelectionRange))}t.is=is})($e||={}),(function(t){function create(t,n,i,o){return{red:t,green:n,blue:i,alpha:o}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&K.numberRange(n.red,0,1)&&K.numberRange(n.green,0,1)&&K.numberRange(n.blue,0,1)&&K.numberRange(n.alpha,0,1)}t.is=is})(et||={}),(function(t){function create(t,n){return{range:t,color:n}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&W.is(n.range)&&et.is(n.color)}t.is=is})(tt||={}),(function(t){function create(t,n,i){return{label:t,textEdit:n,additionalTextEdits:i}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&K.string(n.label)&&(K.undefined(n.textEdit)||dt.is(n))&&(K.undefined(n.additionalTextEdits)||K.typedArray(n.additionalTextEdits,dt.is))}t.is=is})(nt||={}),(function(t){t.Comment=`comment`,t.Imports=`imports`,t.Region=`region`})(rt||={}),(function(t){function create(t,n,i,o,s,c){let u={startLine:t,endLine:n};return K.defined(i)&&(u.startCharacter=i),K.defined(o)&&(u.endCharacter=o),K.defined(s)&&(u.kind=s),K.defined(c)&&(u.collapsedText=c),u}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&K.uinteger(n.startLine)&&K.uinteger(n.startLine)&&(K.undefined(n.startCharacter)||K.uinteger(n.startCharacter))&&(K.undefined(n.endCharacter)||K.uinteger(n.endCharacter))&&(K.undefined(n.kind)||K.string(n.kind))}t.is=is})(it||={}),(function(t){function create(t,n){return{location:t,message:n}}t.create=create;function is(t){let n=t;return K.defined(n)&&Qe.is(n.location)&&K.string(n.message)}t.is=is})(at||={}),(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(ot||={}),(function(t){t.Unnecessary=1,t.Deprecated=2})(st||={}),(function(t){function is(t){let n=t;return K.objectLiteral(n)&&K.string(n.href)}t.is=is})(ct||={}),(function(t){function create(t,n,i,o,s,c){let u={range:t,message:n};return K.defined(i)&&(u.severity=i),K.defined(o)&&(u.code=o),K.defined(s)&&(u.source=s),K.defined(c)&&(u.relatedInformation=c),u}t.create=create;function is(t){let n=t;return K.defined(n)&&W.is(n.range)&&K.string(n.message)&&(K.number(n.severity)||K.undefined(n.severity))&&(K.integer(n.code)||K.string(n.code)||K.undefined(n.code))&&(K.undefined(n.codeDescription)||K.string(n.codeDescription?.href))&&(K.string(n.source)||K.undefined(n.source))&&(K.undefined(n.relatedInformation)||K.typedArray(n.relatedInformation,at.is))}t.is=is})(lt||={}),(function(t){function create(t,n,...i){let o={title:t,command:n};return K.defined(i)&&i.length>0&&(o.arguments=i),o}t.create=create;function is(t){let n=t;return K.defined(n)&&K.string(n.title)&&K.string(n.command)}t.is=is})(ut||={}),(function(t){function replace(t,n){return{range:t,newText:n}}t.replace=replace;function insert(t,n){return{range:{start:t,end:t},newText:n}}t.insert=insert;function del(t){return{range:t,newText:``}}t.del=del;function is(t){let n=t;return K.objectLiteral(n)&&K.string(n.newText)&&W.is(n.range)}t.is=is})(dt||={}),(function(t){function create(t,n,i){let o={label:t};return n!==void 0&&(o.needsConfirmation=n),i!==void 0&&(o.description=i),o}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&K.string(n.label)&&(K.boolean(n.needsConfirmation)||n.needsConfirmation===void 0)&&(K.string(n.description)||n.description===void 0)}t.is=is})(ft||={}),(function(t){function is(t){let n=t;return K.string(n)}t.is=is})(G||={}),(function(t){function replace(t,n,i){return{range:t,newText:n,annotationId:i}}t.replace=replace;function insert(t,n,i){return{range:{start:t,end:t},newText:n,annotationId:i}}t.insert=insert;function del(t,n){return{range:t,newText:``,annotationId:n}}t.del=del;function is(t){let n=t;return dt.is(n)&&(ft.is(n.annotationId)||G.is(n.annotationId))}t.is=is})(pt||={}),(function(t){function create(t,n){return{textDocument:t,edits:n}}t.create=create;function is(t){let n=t;return K.defined(n)&&xt.is(n.textDocument)&&Array.isArray(n.edits)}t.is=is})(mt||={}),(function(t){function create(t,n,i){let o={kind:`create`,uri:t};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(o.options=n),i!==void 0&&(o.annotationId=i),o}t.create=create;function is(t){let n=t;return n&&n.kind===`create`&&K.string(n.uri)&&(n.options===void 0||(n.options.overwrite===void 0||K.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||K.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||G.is(n.annotationId))}t.is=is})(ht||={}),(function(t){function create(t,n,i,o){let s={kind:`rename`,oldUri:t,newUri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),o!==void 0&&(s.annotationId=o),s}t.create=create;function is(t){let n=t;return n&&n.kind===`rename`&&K.string(n.oldUri)&&K.string(n.newUri)&&(n.options===void 0||(n.options.overwrite===void 0||K.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||K.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||G.is(n.annotationId))}t.is=is})(gt||={}),(function(t){function create(t,n,i){let o={kind:`delete`,uri:t};return n!==void 0&&(n.recursive!==void 0||n.ignoreIfNotExists!==void 0)&&(o.options=n),i!==void 0&&(o.annotationId=i),o}t.create=create;function is(t){let n=t;return n&&n.kind===`delete`&&K.string(n.uri)&&(n.options===void 0||(n.options.recursive===void 0||K.boolean(n.options.recursive))&&(n.options.ignoreIfNotExists===void 0||K.boolean(n.options.ignoreIfNotExists)))&&(n.annotationId===void 0||G.is(n.annotationId))}t.is=is})(_t||={}),(function(t){function is(t){let n=t;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(t=>K.string(t.kind)?ht.is(t)||gt.is(t)||_t.is(t):mt.is(t)))}t.is=is})(vt||={}),TextEditChangeImpl=class{constructor(t,n){this.edits=t,this.changeAnnotations=n}insert(t,n,i){let o,s;if(i===void 0?o=dt.insert(t,n):G.is(i)?(s=i,o=pt.insert(t,n,i)):(this.assertChangeAnnotations(this.changeAnnotations),s=this.changeAnnotations.manage(i),o=pt.insert(t,n,s)),this.edits.push(o),s!==void 0)return s}replace(t,n,i){let o,s;if(i===void 0?o=dt.replace(t,n):G.is(i)?(s=i,o=pt.replace(t,n,i)):(this.assertChangeAnnotations(this.changeAnnotations),s=this.changeAnnotations.manage(i),o=pt.replace(t,n,s)),this.edits.push(o),s!==void 0)return s}delete(t,n){let i,o;if(n===void 0?i=dt.del(t):G.is(n)?(o=n,i=pt.del(t,n)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(n),i=pt.del(t,o)),this.edits.push(i),o!==void 0)return o}add(t){this.edits.push(t)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(t){if(t===void 0)throw Error(`Text edit change is not configured to manage change annotations.`)}},ChangeAnnotations=class{constructor(t){this._annotations=t===void 0?Object.create(null):t,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(t,n){let i;if(G.is(t)?i=t:(i=this.nextId(),n=t),this._annotations[i]!==void 0)throw Error(`Id ${i} is already in use.`);if(n===void 0)throw Error(`No annotation provided for id ${i}`);return this._annotations[i]=n,this._size++,i}nextId(){return this._counter++,this._counter.toString()}},WorkspaceChange=class{constructor(t){this._textEditChanges=Object.create(null),t===void 0?this._workspaceEdit={}:(this._workspaceEdit=t,t.documentChanges?(this._changeAnnotations=new ChangeAnnotations(t.changeAnnotations),t.changeAnnotations=this._changeAnnotations.all(),t.documentChanges.forEach(t=>{if(mt.is(t)){let n=new TextEditChangeImpl(t.edits,this._changeAnnotations);this._textEditChanges[t.textDocument.uri]=n}})):t.changes&&Object.keys(t.changes).forEach(n=>{let i=new TextEditChangeImpl(t.changes[n]);this._textEditChanges[n]=i}))}get edit(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(t){if(xt.is(t)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw Error(`Workspace edit is not configured for document changes.`);let n={uri:t.uri,version:t.version},i=this._textEditChanges[n.uri];if(!i){let t=[],o={textDocument:n,edits:t};this._workspaceEdit.documentChanges.push(o),i=new TextEditChangeImpl(t,this._changeAnnotations),this._textEditChanges[n.uri]=i}return i}{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw Error(`Workspace edit is not configured for normal text edit changes.`);let n=this._textEditChanges[t];if(!n){let i=[];this._workspaceEdit.changes[t]=i,n=new TextEditChangeImpl(i),this._textEditChanges[t]=n}return n}}initDocumentChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ChangeAnnotations,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))}createFile(t,n,i){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw Error(`Workspace edit is not configured for document changes.`);let o;ft.is(n)||G.is(n)?o=n:i=n;let s,c;if(o===void 0?s=ht.create(t,i):(c=G.is(o)?o:this._changeAnnotations.manage(o),s=ht.create(t,i,c)),this._workspaceEdit.documentChanges.push(s),c!==void 0)return c}renameFile(t,n,i,o){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw Error(`Workspace edit is not configured for document changes.`);let s;ft.is(i)||G.is(i)?s=i:o=i;let c,u;if(s===void 0?c=gt.create(t,n,o):(u=G.is(s)?s:this._changeAnnotations.manage(s),c=gt.create(t,n,o,u)),this._workspaceEdit.documentChanges.push(c),u!==void 0)return u}deleteFile(t,n,i){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw Error(`Workspace edit is not configured for document changes.`);let o;ft.is(n)||G.is(n)?o=n:i=n;let s,c;if(o===void 0?s=_t.create(t,i):(c=G.is(o)?o:this._changeAnnotations.manage(o),s=_t.create(t,i,c)),this._workspaceEdit.documentChanges.push(s),c!==void 0)return c}},(function(t){function create(t){return{uri:t}}t.create=create;function is(t){let n=t;return K.defined(n)&&K.string(n.uri)}t.is=is})(yt||={}),(function(t){function create(t,n){return{uri:t,version:n}}t.create=create;function is(t){let n=t;return K.defined(n)&&K.string(n.uri)&&K.integer(n.version)}t.is=is})(bt||={}),(function(t){function create(t,n){return{uri:t,version:n}}t.create=create;function is(t){let n=t;return K.defined(n)&&K.string(n.uri)&&(n.version===null||K.integer(n.version))}t.is=is})(xt||={}),(function(t){function create(t,n,i,o){return{uri:t,languageId:n,version:i,text:o}}t.create=create;function is(t){let n=t;return K.defined(n)&&K.string(n.uri)&&K.string(n.languageId)&&K.integer(n.version)&&K.string(n.text)}t.is=is})(St||={}),(function(t){t.PlainText=`plaintext`,t.Markdown=`markdown`;function is(n){let i=n;return i===t.PlainText||i===t.Markdown}t.is=is})(Ct||={}),(function(t){function is(t){let n=t;return K.objectLiteral(t)&&Ct.is(n.kind)&&K.string(n.value)}t.is=is})(wt||={}),(function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25})(Tt||={}),(function(t){t.PlainText=1,t.Snippet=2})(Et||={}),(function(t){t.Deprecated=1})(Dt||={}),(function(t){function create(t,n,i){return{newText:t,insert:n,replace:i}}t.create=create;function is(t){let n=t;return n&&K.string(n.newText)&&W.is(n.insert)&&W.is(n.replace)}t.is=is})(Ot||={}),(function(t){t.asIs=1,t.adjustIndentation=2})(kt||={}),(function(t){function is(t){let n=t;return n&&(K.string(n.detail)||n.detail===void 0)&&(K.string(n.description)||n.description===void 0)}t.is=is})(At||={}),(function(t){function create(t){return{label:t}}t.create=create})(jt||={}),(function(t){function create(t,n){return{items:t||[],isIncomplete:!!n}}t.create=create})(Mt||={}),(function(t){function fromPlainText(t){return t.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}t.fromPlainText=fromPlainText;function is(t){let n=t;return K.string(n)||K.objectLiteral(n)&&K.string(n.language)&&K.string(n.value)}t.is=is})(Nt||={}),(function(t){function is(t){let n=t;return!!n&&K.objectLiteral(n)&&(wt.is(n.contents)||Nt.is(n.contents)||K.typedArray(n.contents,Nt.is))&&(t.range===void 0||W.is(t.range))}t.is=is})(Pt||={}),(function(t){function create(t,n){return n?{label:t,documentation:n}:{label:t}}t.create=create})(Ft||={}),(function(t){function create(t,n,...i){let o={label:t};return K.defined(n)&&(o.documentation=n),o.parameters=K.defined(i)?i:[],o}t.create=create})(It||={}),(function(t){t.Text=1,t.Read=2,t.Write=3})(Lt||={}),(function(t){function create(t,n){let i={range:t};return K.number(n)&&(i.kind=n),i}t.create=create})(Rt||={}),(function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26})(zt||={}),(function(t){t.Deprecated=1})(Bt||={}),(function(t){function create(t,n,i,o,s){let c={name:t,kind:n,location:{uri:o,range:i}};return s&&(c.containerName=s),c}t.create=create})(Vt||={}),(function(t){function create(t,n,i,o){return o===void 0?{name:t,kind:n,location:{uri:i}}:{name:t,kind:n,location:{uri:i,range:o}}}t.create=create})(Ht||={}),(function(t){function create(t,n,i,o,s,c){let u={name:t,detail:n,kind:i,range:o,selectionRange:s};return c!==void 0&&(u.children=c),u}t.create=create;function is(t){let n=t;return n&&K.string(n.name)&&K.number(n.kind)&&W.is(n.range)&&W.is(n.selectionRange)&&(n.detail===void 0||K.string(n.detail))&&(n.deprecated===void 0||K.boolean(n.deprecated))&&(n.children===void 0||Array.isArray(n.children))&&(n.tags===void 0||Array.isArray(n.tags))}t.is=is})(Ut||={}),(function(t){t.Empty=``,t.QuickFix=`quickfix`,t.Refactor=`refactor`,t.RefactorExtract=`refactor.extract`,t.RefactorInline=`refactor.inline`,t.RefactorRewrite=`refactor.rewrite`,t.Source=`source`,t.SourceOrganizeImports=`source.organizeImports`,t.SourceFixAll=`source.fixAll`})(Wt||={}),(function(t){t.Invoked=1,t.Automatic=2})(Gt||={}),(function(t){function create(t,n,i){let o={diagnostics:t};return n!=null&&(o.only=n),i!=null&&(o.triggerKind=i),o}t.create=create;function is(t){let n=t;return K.defined(n)&&K.typedArray(n.diagnostics,lt.is)&&(n.only===void 0||K.typedArray(n.only,K.string))&&(n.triggerKind===void 0||n.triggerKind===Gt.Invoked||n.triggerKind===Gt.Automatic)}t.is=is})(Kt||={}),(function(t){function create(t,n,i){let o={title:t},s=!0;return typeof n==`string`?(s=!1,o.kind=n):ut.is(n)?o.command=n:o.edit=n,s&&i!==void 0&&(o.kind=i),o}t.create=create;function is(t){let n=t;return n&&K.string(n.title)&&(n.diagnostics===void 0||K.typedArray(n.diagnostics,lt.is))&&(n.kind===void 0||K.string(n.kind))&&(n.edit!==void 0||n.command!==void 0)&&(n.command===void 0||ut.is(n.command))&&(n.isPreferred===void 0||K.boolean(n.isPreferred))&&(n.edit===void 0||vt.is(n.edit))}t.is=is})(qt||={}),(function(t){function create(t,n){let i={range:t};return K.defined(n)&&(i.data=n),i}t.create=create;function is(t){let n=t;return K.defined(n)&&W.is(n.range)&&(K.undefined(n.command)||ut.is(n.command))}t.is=is})(Jt||={}),(function(t){function create(t,n){return{tabSize:t,insertSpaces:n}}t.create=create;function is(t){let n=t;return K.defined(n)&&K.uinteger(n.tabSize)&&K.boolean(n.insertSpaces)}t.is=is})(Yt||={}),(function(t){function create(t,n,i){return{range:t,target:n,data:i}}t.create=create;function is(t){let n=t;return K.defined(n)&&W.is(n.range)&&(K.undefined(n.target)||K.string(n.target))}t.is=is})(Xt||={}),(function(t){function create(t,n){return{range:t,parent:n}}t.create=create;function is(n){let i=n;return K.objectLiteral(i)&&W.is(i.range)&&(i.parent===void 0||t.is(i.parent))}t.is=is})(Zt||={}),(function(t){t.namespace=`namespace`,t.type=`type`,t.class=`class`,t.enum=`enum`,t.interface=`interface`,t.struct=`struct`,t.typeParameter=`typeParameter`,t.parameter=`parameter`,t.variable=`variable`,t.property=`property`,t.enumMember=`enumMember`,t.event=`event`,t.function=`function`,t.method=`method`,t.macro=`macro`,t.keyword=`keyword`,t.modifier=`modifier`,t.comment=`comment`,t.string=`string`,t.number=`number`,t.regexp=`regexp`,t.operator=`operator`,t.decorator=`decorator`})(Qt||={}),(function(t){t.declaration=`declaration`,t.definition=`definition`,t.readonly=`readonly`,t.static=`static`,t.deprecated=`deprecated`,t.abstract=`abstract`,t.async=`async`,t.modification=`modification`,t.documentation=`documentation`,t.defaultLibrary=`defaultLibrary`})($t||={}),(function(t){function is(t){let n=t;return K.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId==`string`)&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]==`number`)}t.is=is})(en||={}),(function(t){function create(t,n){return{range:t,text:n}}t.create=create;function is(t){let n=t;return n!=null&&W.is(n.range)&&K.string(n.text)}t.is=is})(tn||={}),(function(t){function create(t,n,i){return{range:t,variableName:n,caseSensitiveLookup:i}}t.create=create;function is(t){let n=t;return n!=null&&W.is(n.range)&&K.boolean(n.caseSensitiveLookup)&&(K.string(n.variableName)||n.variableName===void 0)}t.is=is})(nn||={}),(function(t){function create(t,n){return{range:t,expression:n}}t.create=create;function is(t){let n=t;return n!=null&&W.is(n.range)&&(K.string(n.expression)||n.expression===void 0)}t.is=is})(rn||={}),(function(t){function create(t,n){return{frameId:t,stoppedLocation:n}}t.create=create;function is(t){let n=t;return K.defined(n)&&W.is(t.stoppedLocation)}t.is=is})(an||={}),(function(t){t.Type=1,t.Parameter=2;function is(t){return t===1||t===2}t.is=is})(on||={}),(function(t){function create(t){return{value:t}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&(n.tooltip===void 0||K.string(n.tooltip)||wt.is(n.tooltip))&&(n.location===void 0||Qe.is(n.location))&&(n.command===void 0||ut.is(n.command))}t.is=is})(sn||={}),(function(t){function create(t,n,i){let o={position:t,label:n};return i!==void 0&&(o.kind=i),o}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&U.is(n.position)&&(K.string(n.label)||K.typedArray(n.label,sn.is))&&(n.kind===void 0||on.is(n.kind))&&n.textEdits===void 0||K.typedArray(n.textEdits,dt.is)&&(n.tooltip===void 0||K.string(n.tooltip)||wt.is(n.tooltip))&&(n.paddingLeft===void 0||K.boolean(n.paddingLeft))&&(n.paddingRight===void 0||K.boolean(n.paddingRight))}t.is=is})(cn||={}),(function(t){function createSnippet(t){return{kind:`snippet`,value:t}}t.createSnippet=createSnippet})(ln||={}),(function(t){function create(t,n,i,o){return{insertText:t,filterText:n,range:i,command:o}}t.create=create})(un||={}),(function(t){function create(t){return{items:t}}t.create=create})(dn||={}),(function(t){t.Invoked=0,t.Automatic=1})(fn||={}),(function(t){function create(t,n){return{range:t,text:n}}t.create=create})(pn||={}),(function(t){function create(t,n){return{triggerKind:t,selectedCompletionInfo:n}}t.create=create})(mn||={}),(function(t){function is(t){let n=t;return K.objectLiteral(n)&&Ye.is(n.uri)&&K.string(n.name)}t.is=is})(hn||={}),gn=[`
3
+ `.match(i)}if(t.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=this.regex.substring(t.loc.begin,t.loc.end);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitChildren(t){t.type===`Group`&&t.quantifier||super.visitChildren(t)}};const Ge=new TerminalRegExpVisitor;function isMultilineComment(t){try{return typeof t==`string`&&(t=new RegExp(t)),t=t.toString(),Ge.reset(t),Ge.visit(We.pattern(t)),Ge.multiline}catch{return!1}}const Ke=`\f
4
+ \r \v \xA0            \u2028\u2029   `.split(``);function isWhitespace(t){let n=typeof t==`string`?new RegExp(t):t;return Ke.some(t=>n.test(t))}function escapeRegExp(t){return t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function partialMatches(t,n){let i=partialRegExp(t),a=n.match(i);return!!a&&a[0].length>0}function partialRegExp(t){typeof t==`string`&&(t=new RegExp(t));let n=t,i=t.source,a=0;function process(){let t=``,o;function appendRaw(n){t+=i.substr(a,n),a+=n}function appendOptional(n){t+=`(?:`+i.substr(a,n)+`|$)`,a+=n}for(;a<i.length;)switch(i[a]){case`\\`:switch(i[a+1]){case`c`:appendOptional(3);break;case`x`:appendOptional(4);break;case`u`:n.unicode?i[a+2]===`{`?appendOptional(i.indexOf(`}`,a)-a+1):appendOptional(6):appendOptional(2);break;case`p`:case`P`:n.unicode?appendOptional(i.indexOf(`}`,a)-a+1):appendOptional(2);break;case`k`:appendOptional(i.indexOf(`>`,a)-a+1);break;default:appendOptional(2)}break;case`[`:o=/\[(?:\\.|.)*?\]/g,o.lastIndex=a,o=o.exec(i)||[],appendOptional(o[0].length);break;case`|`:case`^`:case`$`:case`*`:case`+`:case`?`:appendRaw(1);break;case`{`:o=/\{\d+,?\d*\}/g,o.lastIndex=a,o=o.exec(i),o?appendRaw(o[0].length):appendOptional(1);break;case`(`:if(i[a+1]===`?`)switch(i[a+2]){case`:`:t+=`(?:`,a+=3,t+=process()+`|$)`;break;case`=`:t+=`(?=`,a+=3,t+=process()+`)`;break;case`!`:o=a,a+=3,process(),t+=i.substr(o,a-o);break;case`<`:switch(i[a+3]){case`=`:case`!`:o=a,a+=4,process(),t+=i.substr(o,a-o);break;default:appendRaw(i.indexOf(`>`,a)-a+1),t+=process()+`|$)`}}else appendRaw(1),t+=process()+`|$)`;break;case`)`:return++a,t;default:appendOptional(1)}return t}return new RegExp(process(),t.flags)}var qe=/* @__PURE__ */ a({findAssignment:()=>findAssignment,findNameAssignment:()=>findNameAssignment,findNodeForKeyword:()=>findNodeForKeyword,findNodeForProperty:()=>findNodeForProperty,findNodesForKeyword:()=>findNodesForKeyword,findNodesForKeywordInternal:()=>findNodesForKeywordInternal,findNodesForProperty:()=>findNodesForProperty,getActionAtElement:()=>getActionAtElement,getActionType:()=>getActionType,getAllReachableRules:()=>getAllReachableRules,getAllRulesUsedForCrossReferences:()=>getAllRulesUsedForCrossReferences,getCrossReferenceTerminal:()=>getCrossReferenceTerminal,getEntryRule:()=>getEntryRule,getExplicitRuleType:()=>getExplicitRuleType,getHiddenRules:()=>getHiddenRules,getRuleType:()=>getRuleType,getRuleTypeName:()=>getRuleTypeName,getTypeName:()=>getTypeName,isArrayCardinality:()=>isArrayCardinality,isArrayOperator:()=>isArrayOperator,isCommentTerminal:()=>isCommentTerminal,isDataType:()=>isDataType,isDataTypeRule:()=>isDataTypeRule,isOptionalCardinality:()=>isOptionalCardinality,terminalRegex:()=>terminalRegex});function getEntryRule(t){return t.rules.find(t=>isParserRule(t)&&t.entry)}function getHiddenRules(t){return t.rules.filter(t=>isTerminalRule(t)&&t.hidden)}function getAllReachableRules(t,n){let i=/* @__PURE__ */ new Set,a=getEntryRule(t);if(!a)return new Set(t.rules);let o=[a].concat(getHiddenRules(t));for(let t of o)ruleDfs(t,i,n);let c=/* @__PURE__ */ new Set;for(let n of t.rules)(i.has(n.name)||isTerminalRule(n)&&n.hidden)&&c.add(n);return c}function ruleDfs(t,n,i){n.add(t.name),streamAllContents(t).forEach(t=>{if(isRuleCall(t)||i&&isTerminalRuleCall(t)){let a=t.rule.ref;a&&!n.has(a.name)&&ruleDfs(a,n,i)}})}function getAllRulesUsedForCrossReferences(t){let n=/* @__PURE__ */ new Set;return streamAllContents(t).forEach(t=>{isCrossReference(t)&&(isParserRule(t.type.ref)&&n.add(t.type.ref),isInferredType(t.type.ref)&&isParserRule(t.type.ref.$container)&&n.add(t.type.ref.$container))}),n}function getCrossReferenceTerminal(t){if(t.terminal)return t.terminal;if(t.type.ref)return findNameAssignment(t.type.ref)?.terminal}function isCommentTerminal(t){return t.hidden&&!isWhitespace(terminalRegex(t))}function findNodesForProperty(t,n){return!t||!n?[]:findNodesForPropertyInternal(t,n,t.astNode,!0)}function findNodeForProperty(t,n,i){if(!t||!n)return;let a=findNodesForPropertyInternal(t,n,t.astNode,!0);if(a.length!==0)return i=i===void 0?0:Math.max(0,Math.min(i,a.length-1)),a[i]}function findNodesForPropertyInternal(t,n,i,a){if(!a){let i=getContainerOfType(t.grammarSource,isAssignment);if(i&&i.feature===n)return[t]}return isCompositeCstNode(t)&&t.astNode===i?t.content.flatMap(t=>findNodesForPropertyInternal(t,n,i,!1)):[]}function findNodesForKeyword(t,n){return t?findNodesForKeywordInternal(t,n,t?.astNode):[]}function findNodeForKeyword(t,n,i){if(!t)return;let a=findNodesForKeywordInternal(t,n,t?.astNode);if(a.length!==0)return i=i===void 0?0:Math.max(0,Math.min(i,a.length-1)),a[i]}function findNodesForKeywordInternal(t,n,i){if(t.astNode!==i)return[];if(isKeyword(t.grammarSource)&&t.grammarSource.value===n)return[t];let a=streamCst(t).iterator(),o,c=[];do if(o=a.next(),!o.done){let t=o.value;t.astNode===i?isKeyword(t.grammarSource)&&t.grammarSource.value===n&&c.push(t):a.prune()}while(!o.done);return c}function findAssignment(t){let n=t.astNode;for(;n===t.container?.astNode;){let n=getContainerOfType(t.grammarSource,isAssignment);if(n)return n;t=t.container}}function findNameAssignment(t){let n=t;return isInferredType(n)&&(isAction(n.$container)?n=n.$container.$container:isAbstractParserRule(n.$container)?n=n.$container:assertUnreachable(n.$container)),findNameAssignmentInternal(t,n,/* @__PURE__ */ new Map)}function findNameAssignmentInternal(t,n,i){function go(n,a){let o;return getContainerOfType(n,isAssignment)||(o=findNameAssignmentInternal(a,a,i)),i.set(t,o),o}if(i.has(t))return i.get(t);i.set(t,void 0);for(let a of streamAllContents(n))if(isAssignment(a)&&a.feature.toLowerCase()===`name`)return i.set(t,a),a;else if(isRuleCall(a)&&isParserRule(a.rule.ref))return go(a,a.rule.ref);else if(isSimpleType(a)&&a.typeRef?.ref)return go(a,a.typeRef.ref)}function getActionAtElement(t){let n=t.$container;if(isGroup(n)){let i=n.elements,a=i.indexOf(t);for(let t=a-1;t>=0;t--){let n=i[t];if(isAction(n))return n;{let n=streamAllContents(i[t]).find(isAction);if(n)return n}}}if(isAbstractElement(n))return getActionAtElement(n)}function isOptionalCardinality(t,n){return t===`?`||t===`*`||isGroup(n)&&!!n.guardCondition}function isArrayCardinality(t){return t===`*`||t===`+`}function isArrayOperator(t){return t===`+=`}function isDataTypeRule(t){return isDataTypeRuleInternal(t,/* @__PURE__ */ new Set)}function isDataTypeRuleInternal(t,n){if(n.has(t))return!0;n.add(t);for(let i of streamAllContents(t))if(isRuleCall(i)){if(!i.rule.ref||isParserRule(i.rule.ref)&&!isDataTypeRuleInternal(i.rule.ref,n)||isInfixRule(i.rule.ref))return!1}else if(isAssignment(i))return!1;else if(isAction(i))return!1;return!!t.definition}function isDataType(t){return isDataTypeInternal(t.type,/* @__PURE__ */ new Set)}function isDataTypeInternal(t,n){if(n.has(t))return!0;if(n.add(t),isArrayType(t)||isReferenceType(t))return!1;if(isUnionType(t))return t.types.every(t=>isDataTypeInternal(t,n));if(isSimpleType(t)){if(t.primitiveType!==void 0||t.stringType!==void 0)return!0;if(t.typeRef!==void 0){let i=t.typeRef.ref;return isType(i)?isDataTypeInternal(i.type,n):!1}return!1}return!1}function getExplicitRuleType(t){if(!isTerminalRule(t)){if(t.inferredType)return t.inferredType.name;if(t.dataType)return t.dataType;if(t.returnType){let n=t.returnType.ref;if(n)return n.name}}}function getTypeName(t){if(isAbstractParserRule(t))return isParserRule(t)&&isDataTypeRule(t)?t.name:getExplicitRuleType(t)??t.name;if(isInterface(t)||isType(t)||isReturnType(t))return t.name;if(isAction(t)){let n=getActionType(t);if(n)return n}else if(isInferredType(t))return t.name;throw Error(`Cannot get name of Unknown Type`)}function getActionType(t){if(t.inferredType)return t.inferredType.name;if(t.type?.ref)return getTypeName(t.type.ref)}function getRuleTypeName(t){return isTerminalRule(t)?t.type?.name??`string`:isParserRule(t)&&isDataTypeRule(t)?t.name:getExplicitRuleType(t)??t.name}function getRuleType(t){return isTerminalRule(t)?t.type?.name??`string`:getExplicitRuleType(t)??t.name}function terminalRegex(t){let n={s:!1,i:!1,u:!1},i=abstractElementToRegex(t.definition,n),a=Object.entries(n).filter(([,t])=>t).map(([t])=>t).join(``);return new RegExp(i,a)}const Je=`[\\s\\S]`;function abstractElementToRegex(t,n){if(isTerminalAlternatives(t))return terminalAlternativesToRegex(t);if(isTerminalGroup(t))return terminalGroupToRegex(t);if(isCharacterRange(t))return characterRangeToRegex(t);if(isTerminalRuleCall(t)){let n=t.rule.ref;if(!n)throw Error(`Missing rule reference.`);return withCardinality(abstractElementToRegex(n.definition),{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized})}if(isNegatedToken(t))return negateTokenToRegex(t);if(isUntilToken(t))return untilTokenToRegex(t);if(isRegexToken(t)){let i=t.regex.lastIndexOf(`/`),a=t.regex.substring(1,i),o=t.regex.substring(i+1);return n&&(n.i=o.includes(`i`),n.s=o.includes(`s`),n.u=o.includes(`u`)),withCardinality(a,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1})}if(isWildcard(t))return withCardinality(Je,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized});throw Error(`Invalid terminal element: ${t?.$type}, ${t?.$cstNode?.text}`)}function terminalAlternativesToRegex(t){return withCardinality(t.elements.map(t=>abstractElementToRegex(t)).join(`|`),{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1})}function terminalGroupToRegex(t){return withCardinality(t.elements.map(t=>abstractElementToRegex(t)).join(``),{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1})}function untilTokenToRegex(t){return withCardinality(`${Je}*?${abstractElementToRegex(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized})}function negateTokenToRegex(t){return withCardinality(`(?!${abstractElementToRegex(t.terminal)})${Je}*?`,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized})}function characterRangeToRegex(t){return t.right?withCardinality(`[${keywordToRegex(t.left)}-${keywordToRegex(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1}):withCardinality(keywordToRegex(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,parenthesized:t.parenthesized,wrap:!1})}function keywordToRegex(t){return escapeRegExp(t.value)}function withCardinality(t,n){return(n.parenthesized||n.lookahead||n.wrap!==!1)&&(t=`(${n.lookahead??(n.parenthesized?``:`?:`)}${t})`),n.cardinality?`${t}${n.cardinality}`:t}function createGrammarConfig(t){let n=[],i=t.Grammar;for(let t of i.rules)isTerminalRule(t)&&isCommentTerminal(t)&&isMultilineComment(terminalRegex(t))&&n.push(t.name);return{multilineCommentRules:n,nameRegexp:He}}var CstNodeBuilder=class{constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]??this.rootNode}buildRootNode(t){return this.rootNode=new RootCstNodeImpl(t),this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(t){let n=new CompositeCstNodeImpl;return n.grammarSource=t,this.appendChild(this.current,n),this.nodeStack.push(n),n}buildLeafNode(t,n){let i=this.createLeafNode(t,!n);return n&&(i.grammarSource=n),this.appendChild(this.current,i),i}createLeafNode(t,n){return new LeafCstNodeImpl(t.startOffset,t.image.length,t.startLine-1,t.startColumn-1,t.endLine-1,t.endColumn,t.tokenType,n)}appendChild(t,n){n.container=t,t.content.push(n)}appendChildren(t,n){for(let i of n)i.container=t;t.content.length===0?t.content=n.slice():t.content.push(...n)}insertChildren(t,n,i){for(let n of i)n.container=t;t.content.splice(n,0,...i)}removeNode(t){let n=t.container;if(n){let i=n.content.indexOf(t);i>=0&&n.content.splice(i,1)}}addHiddenNodes(t){let n=[];for(let i of t)n.push(this.createLeafNode(i,!0));let i=this.current,a=!1;if(i.content.length>0)this.appendChildren(i,n);else{for(;i.container;){let t=i.container.content.indexOf(i);if(t>0){this.insertChildren(i.container,t,n),a=!0;break}i=i.container}a||this.insertChildren(this.rootNode,0,n)}}construct(t){t.$cstNode=this.current;let n=this.nodeStack.pop();n&&(n.content.length===0?this.removeNode(n):n.content=n.content.slice())}},AbstractCstNode=class{constructor(){this.container=void 0,this.grammarSource=void 0}get root(){let t=this;for(;t.container;)t=t.container;return t}get text(){return this.root.fullText.substring(this.offset,this.end)}},LeafCstNodeImpl=class extends AbstractCstNode{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get astNode(){let t=this.container;if(!t)throw Error(`This node has no associated AST element`);return t.astNode}get range(){return{start:{line:this._startLine,character:this._startColumn},end:{line:this._endLine,character:this._endColumn}}}constructor(t,n,i,a,o,c,l,f=!1){super(),this._hidden=f,this._offset=toSmi(t),this._length=toSmi(n),this._startLine=toSmi(i),this._startColumn=toSmi(a),this._endLine=toSmi(o),this._endColumn=toSmi(c),this._tokenType=l}};function toSmi(t){return t|0}var CompositeCstNodeImpl=class extends AbstractCstNode{constructor(){super(...arguments),this.content=[],this._astNode=void 0,this._rangeCache=void 0}get astNode(){let t=this;for(;t;){if(t._astNode)return t._astNode;t=t.container}throw Error(`This node has no associated AST element`)}set astNode(t){this._astNode=t}get hidden(){return!1}get offset(){return this.firstNonHiddenNode?.offset??0}get length(){return this.end-this.offset}get end(){return this.lastNonHiddenNode?.end??0}get range(){let t=this._rangeCache;if(t===void 0){let n=this.firstNonHiddenNode,i=this.lastNonHiddenNode;if(n&&i){let{range:a}=n,{range:o}=i;this._rangeCache=t={start:a.start,end:o.end.line<a.start.line?a.start:o.end}}else return{start:{line:0,character:0},end:{line:0,character:0}}}return t}get firstNonHiddenNode(){for(let t of this.content)if(!t.hidden)return t;return this.content[0]}get lastNonHiddenNode(){for(let t=this.content.length-1;t>=0;t--){let n=this.content[t];if(!n.hidden)return n}return this.content[this.content.length-1]}},RootCstNodeImpl=class extends CompositeCstNodeImpl{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(t){super(),this._text=``,this._text=t??``}};const Ye=Symbol(`Datatype`);function isDataTypeNode(t){return t.$type===Ye}const withRuleSuffix=t=>t.endsWith(`​`)?t:t+`​`;var AbstractLangiumParser=class{constructor(t,n){this._unorderedGroups=/* @__PURE__ */ new Map,this.allRules=/* @__PURE__ */ new Map,this.lexer=t.parser.Lexer;let i=this.lexer.definition,a=t.LanguageMetaData.mode===`production`;this.wrapper=t.shared.profilers.LangiumProfiler?.isActive(`parsing`)?new ProfilerWrapper(i,{...t.parser.ParserConfig,skipValidations:a,errorMessageProvider:t.parser.ParserErrorMessageProvider},n,t.shared.profilers.LangiumProfiler.createTask(`parsing`,t.LanguageMetaData.languageId)):new ChevrotainWrapper(i,{...t.parser.ParserConfig,skipValidations:a,errorMessageProvider:t.parser.ParserErrorMessageProvider},n)}alternatives(t,n){this.wrapper.wrapOr(t,n)}optional(t,n){this.wrapper.wrapOption(t,n)}many(t,n){this.wrapper.wrapMany(t,n)}atLeastOne(t,n){this.wrapper.wrapAtLeastOne(t,n)}getRule(t){return this.allRules.get(t)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},LangiumParser=class extends AbstractLangiumParser{get current(){return this.stack[this.stack.length-1]}constructor(t){super(t,!1),this.nodeBuilder=new CstNodeBuilder,this.stack=[],this.assignmentMap=/* @__PURE__ */ new Map,this.operatorPrecedence=/* @__PURE__ */ new Map,this.linker=t.references.Linker,this.converter=t.parser.ValueConverter,this.astReflection=t.shared.AstReflection}rule(t,n){let i=this.computeRuleType(t),a;isInfixRule(t)&&(a=t.name,this.registerPrecedenceMap(t));let o=this.wrapper.DEFINE_RULE(withRuleSuffix(t.name),this.startImplementation(i,a,n).bind(this));return this.allRules.set(t.name,o),isParserRule(t)&&t.entry&&(this.mainRule=o),o}registerPrecedenceMap(t){let n=t.name,i=/* @__PURE__ */ new Map;for(let n=0;n<t.operators.precedences.length;n++){let a=t.operators.precedences[n];for(let t of a.operators)i.set(t.value,{precedence:n,rightAssoc:a.associativity===`right`})}this.operatorPrecedence.set(n,i)}computeRuleType(t){if(isInfixRule(t))return getTypeName(t);if(!t.fragment)return isDataTypeRule(t)?Ye:getTypeName(t)}parse(t,n={}){this.nodeBuilder.buildRootNode(t);let i=this.lexerResult=this.lexer.tokenize(t);this.wrapper.input=i.tokens;let a=n.rule?this.allRules.get(n.rule):this.mainRule;if(!a)throw Error(n.rule?`No rule found with name '${n.rule}'`:`No main rule available.`);let o=this.doParse(a);return this.nodeBuilder.addHiddenNodes(i.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,linkContentToContainer(o,{deep:!0}),{value:o,lexerErrors:i.errors,lexerReport:i.report,parserErrors:this.wrapper.errors}}doParse(t){let n=this.wrapper.rule(t);if(this.stack.length>0&&(n=this.construct()),n===void 0)throw Error(`No result from parser`);if(this.stack.length>0)throw Error(`Parser stack is not empty after parsing`);return this.linkCstNode(n),n}linkCstNode(t){isAstNode(t)&&t.$cstNode&&(t.$cstNode.astNode=t)}startImplementation(t,n,i){return a=>{let o=!this.isRecording()&&t!==void 0;if(o){let i={$type:t};this.stack.push(i),t===Ye?i.value=``:n!==void 0&&(i.$infixName=n)}return i(a),o?this.construct():void 0}}extractHiddenTokens(t){let n=this.lexerResult.hidden;if(!n.length)return[];let i=t.startOffset;for(let t=0;t<n.length;t++)if(n[t].startOffset>i)return n.splice(0,t);return n.splice(0,n.length)}consume(t,n,i){let a=this.wrapper.wrapConsume(t,n);if(!this.isRecording()&&this.isValidToken(a)){let t=this.extractHiddenTokens(a);this.nodeBuilder.addHiddenNodes(t);let n=this.nodeBuilder.buildLeafNode(a,i),{assignment:o,crossRef:c}=this.getAssignment(i),l=this.current;if(o){let t=isKeyword(i)?a.image:this.converter.convert(a.image,n);this.assign(o.operator,o.feature,t,n,c)}else if(isDataTypeNode(l)){let t=a.image;isKeyword(i)||(t=this.converter.convert(t,n).toString()),l.value+=t}}}isValidToken(t){return!t.isInsertedInRecovery&&isValidTokenRange(t)}subrule(t,n,i,a,o){let c;!this.isRecording()&&!i&&(c=this.nodeBuilder.buildCompositeNode(a));let l;try{l=this.wrapper.wrapSubrule(t,n,o)}finally{this.isRecording()||(l===void 0&&!i&&(l=this.construct()),l!==void 0&&c&&c.length>0&&this.performSubruleAssignment(l,a,c))}}performSubruleAssignment(t,n,i){let{assignment:a,crossRef:o}=this.getAssignment(n);if(a)this.assign(a.operator,a.feature,t,i,o);else if(!a){let n=this.current;if(isDataTypeNode(n))n.value+=t.toString();else if(typeof t==`object`&&t){let i=this.assignWithoutOverride(t,n);this.stack.pop(),this.stack.push(i)}}}action(t,n){if(!this.isRecording()){let i=this.current;if(n.feature&&n.operator){i=this.construct(),this.nodeBuilder.removeNode(i.$cstNode);let a=this.nodeBuilder.buildCompositeNode(n);this.nodeBuilder.appendChild(a,i.$cstNode);let o={$type:t};this.stack.push(o),this.assign(n.operator,n.feature,i,i.$cstNode)}else i.$type=t}}construct(){if(this.isRecording())return;let t=this.stack.pop();return this.nodeBuilder.construct(t),`$infixName`in t?this.constructInfix(t,this.operatorPrecedence.get(t.$infixName)):isDataTypeNode(t)?this.converter.convert(t.value,t.$cstNode):(assignMandatoryProperties(this.astReflection,t),t)}constructInfix(t,n){let i=t.parts;if(!Array.isArray(i)||i.length===0)return;let a=t.operators;if(!Array.isArray(a)||i.length<2)return i[0];let o=0,c=-1;for(let t=0;t<a.length;t++){let i=a[t],l=n.get(i)??{precedence:1/0,rightAssoc:!1};l.precedence>c?(c=l.precedence,o=t):l.precedence===c&&(l.rightAssoc||(o=t))}let l=a.slice(0,o),f=a.slice(o+1),p=i.slice(0,o+1),h=i.slice(o+1),_={$infixName:t.$infixName,$type:t.$type,$cstNode:t.$cstNode,parts:p,operators:l},x={$infixName:t.$infixName,$type:t.$type,$cstNode:t.$cstNode,parts:h,operators:f},S=this.constructInfix(_,n),C=this.constructInfix(x,n);return{$type:t.$type,$cstNode:t.$cstNode,left:S,operator:a[o],right:C}}getAssignment(t){if(!this.assignmentMap.has(t)){let n=getContainerOfType(t,isAssignment);this.assignmentMap.set(t,{assignment:n,crossRef:n&&isCrossReference(n.terminal)?n.terminal.isMulti?`multi`:`single`:void 0})}return this.assignmentMap.get(t)}assign(t,n,i,a,o){let c=this.current,l;switch(l=o===`single`&&typeof i==`string`?this.linker.buildReference(c,n,a,i):o===`multi`&&typeof i==`string`?this.linker.buildMultiReference(c,n,a,i):i,this.linkCstNode(l),t){case`=`:c[n]=l;break;case`?=`:c[n]=!0;break;case`+=`:Array.isArray(c[n])||(c[n]=[]),c[n].push(l)}}assignWithoutOverride(t,n){for(let[i,a]of Object.entries(n)){let n=t[i];n===void 0?t[i]=a:Array.isArray(n)&&Array.isArray(a)&&(a.push(...n),t[i]=a)}return t.$cstNode=void 0,t}get definitionErrors(){return this.wrapper.definitionErrors}},AbstractParserErrorMessageProvider=class{buildMismatchTokenMessage(t){return f.buildMismatchTokenMessage(t)}buildNotAllInputParsedMessage(t){return f.buildNotAllInputParsedMessage(t)}buildNoViableAltMessage(t){return f.buildNoViableAltMessage(t)}buildEarlyExitMessage(t){return f.buildEarlyExitMessage(t)}},LangiumParserErrorMessageProvider=class extends AbstractParserErrorMessageProvider{buildMismatchTokenMessage({expected:t,actual:n}){return`Expecting ${t.LABEL?"`"+t.LABEL+"`":t.name.endsWith(`:KW`)?`keyword '${t.name.substring(0,t.name.length-3)}'`:`token of type '${t.name}'`} but found \`${n.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:t}){return`Expecting end of file but found \`${t.image}\`.`}},LangiumCompletionParser=class extends AbstractLangiumParser{constructor(t){super(t,!0),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(t){this.resetState();let n=this.lexer.tokenize(t,{mode:`partial`});return this.tokens=n.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(t,n){let i=this.wrapper.DEFINE_RULE(withRuleSuffix(t.name),this.startImplementation(n).bind(this));return this.allRules.set(t.name,i),t.entry&&(this.mainRule=i),i}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(t){return n=>{let i=this.keepStackSize();try{t(n)}finally{this.resetStackSize(i)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let t=this.elementStack.length;return this.stackSize=t,t}resetStackSize(t){this.removeUnexpectedElements(),this.stackSize=t}consume(t,n,i){this.wrapper.wrapConsume(t,n),this.isRecording()||(this.lastElementStack=[...this.elementStack,i],this.nextTokenIndex=this.currIdx+1)}subrule(t,n,i,a,o){this.before(a),this.wrapper.wrapSubrule(t,n,o),this.after(a)}before(t){this.isRecording()||this.elementStack.push(t)}after(t){if(!this.isRecording()){let n=this.elementStack.lastIndexOf(t);n>=0&&this.elementStack.splice(n)}}get currIdx(){return this.wrapper.currIdx}};const Xe={recoveryEnabled:!0,nodeLocationTracking:`full`,skipValidations:!0,errorMessageProvider:new LangiumParserErrorMessageProvider};var ChevrotainWrapper=class extends h{constructor(t,n,i){let a=n&&`maxLookahead`in n;super(t,{...Xe,lookaheadStrategy:a?new x({maxLookahead:n.maxLookahead}):new w({logging:n.skipValidations?()=>{}:void 0,incomplete:i}),...n})}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(t,n,i){return this.RULE(t,n,i)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(t,n){return this.consume(t,n,void 0)}wrapSubrule(t,n,i){return this.subrule(t,n,{ARGS:[i]})}wrapOr(t,n){this.or(t,n)}wrapOption(t,n){this.option(t,n)}wrapMany(t,n){this.many(t,n)}wrapAtLeastOne(t,n){this.atLeastOne(t,n)}rule(t){return t.call(this,{})}},ProfilerWrapper=class extends ChevrotainWrapper{constructor(t,n,i,a){super(t,n,i),this.task=a}rule(t){this.task.start(),this.task.startSubTask(this.ruleName(t));try{return super.rule(t)}finally{this.task.stopSubTask(this.ruleName(t)),this.task.stop()}}ruleName(t){return t.ruleName}subrule(t,n,i){this.task.startSubTask(this.ruleName(n));try{return super.subrule(t,n,i)}finally{this.task.stopSubTask(this.ruleName(n))}}};function createParser(t,n,i){return buildRules({parser:n,tokens:i,ruleNames:/* @__PURE__ */ new Map},t),n}function buildRules(t,n){let i=getAllReachableRules(n,!1),a=stream(n.rules).filter(isParserRule).filter(t=>i.has(t));for(let n of a){let i={...t,consume:1,optional:1,subrule:1,many:1,or:1};t.parser.rule(n,buildElement(i,n.definition))}let o=stream(n.rules).filter(isInfixRule).filter(t=>i.has(t));for(let n of o)t.parser.rule(n,buildInfixRule(t,n))}function buildInfixRule(t,n){let i=n.call.rule.ref;if(!i)throw Error(`Could not resolve reference to infix operator rule: `+n.call.rule.$refText);if(isTerminalRule(i))throw Error(`Cannot use terminal rule in infix expression`);let a=n.operators.precedences.flatMap(t=>t.operators),o={$type:`Group`,elements:[]},c={$container:o,$type:`Assignment`,feature:`parts`,operator:`+=`,terminal:n.call},l={$container:o,$type:`Group`,elements:[],cardinality:`*`};o.elements.push(c,l);let f={$container:l,$type:`Assignment`,feature:`operators`,operator:`+=`,terminal:{$type:`Alternatives`,elements:a}},p={...c,$container:l};l.elements.push(f,p);let h=a.map(n=>t.tokens[n.value]).map((n,i)=>({ALT:()=>t.parser.consume(i,n,f)})),_;return n=>{_??=getRule(t,i),t.parser.subrule(0,_,!1,c,n),t.parser.many(0,{DEF:()=>{t.parser.alternatives(0,h),t.parser.subrule(1,_,!1,p,n)}})}}function buildElement(t,n,i=!1){let method;if(isKeyword(n))method=buildKeyword(t,n);else if(isAction(n))method=buildAction(t,n);else if(isAssignment(n))method=buildElement(t,n.terminal);else if(isCrossReference(n))method=buildCrossReference(t,n);else if(isRuleCall(n))method=buildRuleCall(t,n);else if(isAlternatives(n))method=buildAlternatives(t,n);else if(isUnorderedGroup(n))method=buildUnorderedGroup(t,n);else if(isGroup(n))method=buildGroup(t,n);else if(isEndOfFile(n)){let i=t.consume++;method=()=>t.parser.consume(i,_,n)}else throw new ErrorWithLocation(n.$cstNode,`Unexpected element type: ${n.$type}`);return wrap(t,i?void 0:getGuardCondition(n),method,n.cardinality)}function buildAction(t,n){let i=getTypeName(n);return()=>t.parser.action(i,n)}function buildRuleCall(t,n){let i=n.rule.ref;if(isAbstractParserRule(i)){let a=t.subrule++,o=isParserRule(i)&&i.fragment,c=n.arguments.length>0?buildRuleCallPredicate(i,n.arguments):()=>({}),l;return f=>{l??=getRule(t,i),t.parser.subrule(a,l,o,n,c(f))}}if(isTerminalRule(i)){let a=t.consume++,o=getToken(t,i.name);return()=>t.parser.consume(a,o,n)}if(i)assertUnreachable(i);else throw new ErrorWithLocation(n.$cstNode,`Undefined rule: ${n.rule.$refText}`)}function buildRuleCallPredicate(t,n){if(n.some(t=>t.calledByName)){let t=n.map(t=>({parameterName:t.parameter?.ref?.name,predicate:buildPredicate(t.value)}));return n=>{let i={};for(let{parameterName:a,predicate:o}of t)a&&(i[a]=o(n));return i}}{let i=n.map(t=>buildPredicate(t.value));return n=>{let a={};for(let o=0;o<i.length;o++)if(o<t.parameters.length){let c=t.parameters[o].name,l=i[o];a[c]=l(n)}return a}}}function buildPredicate(t){if(isDisjunction(t)){let n=buildPredicate(t.left),i=buildPredicate(t.right);return t=>n(t)||i(t)}if(isConjunction(t)){let n=buildPredicate(t.left),i=buildPredicate(t.right);return t=>n(t)&&i(t)}if(isNegation(t)){let n=buildPredicate(t.value);return t=>!n(t)}if(isParameterReference(t)){let n=t.parameter.ref.name;return t=>t!==void 0&&t[n]===!0}if(isBooleanLiteral(t)){let n=!!t.true;return()=>n}assertUnreachable(t)}function buildAlternatives(t,n){if(n.elements.length===1)return buildElement(t,n.elements[0]);{let i=[];for(let a of n.elements){let n={ALT:buildElement(t,a,!0)},o=getGuardCondition(a);o&&(n.GATE=buildPredicate(o)),i.push(n)}let a=t.or++;return n=>t.parser.alternatives(a,i.map(t=>{let i={ALT:()=>t.ALT(n)},a=t.GATE;return a&&(i.GATE=()=>a(n)),i}))}}function buildUnorderedGroup(t,n){if(n.elements.length===1)return buildElement(t,n.elements[0]);let i=[];for(let a of n.elements){let n={ALT:buildElement(t,a,!0)},o=getGuardCondition(a);o&&(n.GATE=buildPredicate(o)),i.push(n)}let a=t.or++,idFunc=(t,n)=>`uGroup_${t}_${n.getRuleStack().join(`-`)}`,alternatives=n=>t.parser.alternatives(a,i.map((i,o)=>{let c={ALT:()=>!0},l=t.parser;c.ALT=()=>{if(i.ALT(n),!l.isRecording()){let t=idFunc(a,l);l.unorderedGroups.get(t)||l.unorderedGroups.set(t,[]);let n=l.unorderedGroups.get(t);n?.[o]===void 0&&(n[o]=!0)}};let f=i.GATE;return c.GATE=f?()=>f(n):()=>!l.unorderedGroups.get(idFunc(a,l))?.[o],c})),o=wrap(t,getGuardCondition(n),alternatives,`*`);return n=>{o(n),t.parser.isRecording()||t.parser.unorderedGroups.delete(idFunc(a,t.parser))}}function buildGroup(t,n){let i=n.elements.map(n=>buildElement(t,n));return t=>i.forEach(n=>n(t))}function getGuardCondition(t){if(isGroup(t))return t.guardCondition}function buildCrossReference(t,n,i=n.terminal){if(!i){if(!n.type.ref)throw Error(`Could not resolve reference to type: `+n.type.$refText);let i=findNameAssignment(n.type.ref)?.terminal;if(!i)throw Error(`Could not find name assignment for type: `+getTypeName(n.type.ref));return buildCrossReference(t,n,i)}if(isRuleCall(i)&&isParserRule(i.rule.ref)){let a=i.rule.ref,o=t.subrule++,c;return i=>{c??=getRule(t,a),t.parser.subrule(o,c,!1,n,i)}}if(isRuleCall(i)&&isTerminalRule(i.rule.ref)){let a=t.consume++,o=getToken(t,i.rule.ref.name);return()=>t.parser.consume(a,o,n)}if(isKeyword(i)){let a=t.consume++,o=getToken(t,i.value);return()=>t.parser.consume(a,o,n)}throw Error(`Could not build cross reference parser`)}function buildKeyword(t,n){let i=t.consume++,a=t.tokens[n.value];if(!a)throw Error(`Could not find token for keyword: `+n.value);return()=>t.parser.consume(i,a,n)}function wrap(t,n,i,a){let o=n&&buildPredicate(n);if(!a){if(o){let n=t.or++;return a=>t.parser.alternatives(n,[{ALT:()=>i(a),GATE:()=>o(a)},{ALT:S(),GATE:()=>!o(a)}])}return i}if(a===`*`){let n=t.many++;return a=>t.parser.many(n,{DEF:()=>i(a),GATE:o?()=>o(a):void 0})}if(a===`+`){let n=t.many++;if(o){let a=t.or++;return c=>t.parser.alternatives(a,[{ALT:()=>t.parser.atLeastOne(n,{DEF:()=>i(c)}),GATE:()=>o(c)},{ALT:S(),GATE:()=>!o(c)}])}return a=>t.parser.atLeastOne(n,{DEF:()=>i(a)})}if(a===`?`){let n=t.optional++;return a=>t.parser.optional(n,{DEF:()=>i(a),GATE:o?()=>o(a):void 0})}assertUnreachable(a)}function getRule(t,n){let i=getRuleName(t,n),a=t.parser.getRule(i);if(!a)throw Error(`Rule "${i}" not found."`);return a}function getRuleName(t,n){if(isAbstractParserRule(n))return n.name;if(t.ruleNames.has(n))return t.ruleNames.get(n);{let i=n,a=i.$container,o=n.$type;for(;!isParserRule(a);)(isGroup(a)||isAlternatives(a)||isUnorderedGroup(a))&&(o=a.elements.indexOf(i).toString()+`:`+o),i=a,a=a.$container;return o=a.name+`:`+o,t.ruleNames.set(n,o),o}}function getToken(t,n){let i=t.tokens[n];if(!i)throw Error(`Token "${n}" not found."`);return i}function createCompletionParser(t){let n=t.Grammar,i=t.parser.Lexer,a=new LangiumCompletionParser(t);return createParser(n,a,i.definition),a.finalize(),a}function createLangiumParser(t){let n=prepareLangiumParser(t);return n.finalize(),n}function prepareLangiumParser(t){let n=t.Grammar,i=t.parser.Lexer;return createParser(n,new LangiumParser(t),i.definition)}var DefaultTokenBuilder=class{constructor(){this.diagnostics=[]}buildTokens(t,n){let i=stream(getAllReachableRules(t,!1)),a=this.buildTerminalTokens(i),o=this.buildKeywordTokens(i,a,n);return o.push(...a),o}flushLexingReport(t){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let t=[...this.diagnostics];return this.diagnostics=[],t}buildTerminalTokens(t){return t.filter(isTerminalRule).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(t){let n=terminalRegex(t),i=this.requiresCustomPattern(n)?this.regexPatternFunction(n):n,a={name:t.name,PATTERN:i};return typeof i==`function`&&(a.LINE_BREAKS=!0),t.hidden&&(a.GROUP=isWhitespace(n)?p.SKIPPED:`hidden`),a}requiresCustomPattern(t){return!!(t.flags.includes(`u`)||t.flags.includes(`s`))}regexPatternFunction(t){let n=new RegExp(t,t.flags+`y`);return(t,i)=>(n.lastIndex=i,n.exec(t))}buildKeywordTokens(t,n,i){return t.filter(isAbstractParserRule).flatMap(t=>streamAllContents(t).filter(isKeyword)).distinct(t=>t.value).toArray().sort((t,n)=>n.value.length-t.value.length).map(t=>this.buildKeywordToken(t,n,!!i?.caseInsensitive))}buildKeywordToken(t,n,i){let a=this.buildKeywordPattern(t,i),o={name:t.value,PATTERN:a,LONGER_ALT:this.findLongerAlt(t,n)};return typeof a==`function`&&(o.LINE_BREAKS=!0),o}buildKeywordPattern(t,n){return n?new RegExp(escapeRegExp(t.value),`i`):t.value}findLongerAlt(t,n){return n.reduce((n,i)=>{let a=i?.PATTERN;return a?.source&&partialMatches(`^`+a.source+`$`,t.value)&&n.push(i),n},[])}},DefaultValueConverter=class{convert(t,n){let i=n.grammarSource;if(isCrossReference(i)&&(i=getCrossReferenceTerminal(i)),isRuleCall(i)){let a=i.rule.ref;if(!a)throw Error(`This cst node was not parsed by a rule.`);return this.runConverter(a,t,n)}return t}runConverter(t,n,i){switch(t.name.toUpperCase()){case`INT`:return Ze.convertInt(n);case`STRING`:return Ze.convertString(n);case`ID`:return Ze.convertID(n)}switch(getRuleType(t)?.toLowerCase()){case`number`:return Ze.convertNumber(n);case`boolean`:return Ze.convertBoolean(n);case`bigint`:return Ze.convertBigint(n);case`date`:return Ze.convertDate(n);default:return n}}},Ze;(function(t){function convertString(t){let n=``;for(let i=1;i<t.length-1;i++){let a=t.charAt(i);if(a===`\\`){let a=t.charAt(++i);n+=convertEscapeCharacter(a)}else n+=a}return n}t.convertString=convertString;function convertEscapeCharacter(t){switch(t){case`b`:return`\b`;case`f`:return`\f`;case`n`:return`
5
+ `;case`r`:return`\r`;case`t`:return` `;case`v`:return`\v`;case`0`:return`\0`;default:return t}}function convertID(t){return t.charAt(0)===`^`?t.substring(1):t}t.convertID=convertID;function convertInt(t){return parseInt(t)}t.convertInt=convertInt;function convertBigint(t){return BigInt(t)}t.convertBigint=convertBigint;function convertDate(t){return new Date(t)}t.convertDate=convertDate;function convertNumber(t){return Number(t)}t.convertNumber=convertNumber;function convertBoolean(t){return t.toLowerCase()===`true`}t.convertBoolean=convertBoolean})(Ze||={});var Qe=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolean=boolean,t.string=string,t.number=number,t.error=error,t.func=func,t.array=array,t.stringArray=stringArray;function boolean(t){return t===!0||t===!1}function string(t){return typeof t==`string`||t instanceof String}function number(t){return typeof t==`number`||t instanceof Number}function error(t){return t instanceof Error}function func(t){return typeof t==`function`}function array(t){return Array.isArray(t)}function stringArray(t){return array(t)&&t.every(t=>string(t))}})),$e=/* @__PURE__ */ o((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,a){a===void 0&&(a=i);var o=Object.getOwnPropertyDescriptor(n,i);(!o||(`get`in o?!n.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,a,o)}):(function(t,n,i,a){a===void 0&&(a=i),t[a]=n[i]})),i=t&&t.__setModuleDefault||(Object.create?(function(t,n){Object.defineProperty(t,"default",{enumerable:!0,value:n})}):function(t,n){t.default=n}),a=t&&t.__importStar||(function(){var ownKeys=function(t){return ownKeys=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},ownKeys(t)};return function(t){if(t&&t.__esModule)return t;var a={};if(t!=null)for(var o=ownKeys(t),c=0;c<o.length;c++)o[c]!=="default"&&n(a,t,o[c]);return i(a,t),a}})();Object.defineProperty(t,"__esModule",{value:!0}),t.Message=t.NotificationType9=t.NotificationType8=t.NotificationType7=t.NotificationType6=t.NotificationType5=t.NotificationType4=t.NotificationType3=t.NotificationType2=t.NotificationType1=t.NotificationType0=t.NotificationType=t.RequestType9=t.RequestType8=t.RequestType7=t.RequestType6=t.RequestType5=t.RequestType4=t.RequestType3=t.RequestType2=t.RequestType1=t.RequestType=t.RequestType0=t.AbstractMessageSignature=t.ParameterStructures=t.ResponseError=t.ErrorCodes=void 0;let o=a(Qe());var c;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(c||(t.ErrorCodes=c={})),t.ResponseError=class ResponseError extends Error{code;data;constructor(t,n,i){super(n),this.code=o.number(t)?t:c.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,ResponseError.prototype)}toJson(){let t={code:this.code,message:this.message};return this.data!==void 0&&(t.data=this.data),t}};var l=class ParameterStructures{kind;static auto=new ParameterStructures(`auto`);static byPosition=new ParameterStructures(`byPosition`);static byName=new ParameterStructures(`byName`);constructor(t){this.kind=t}static is(t){return t===ParameterStructures.auto||t===ParameterStructures.byName||t===ParameterStructures.byPosition}toString(){return this.kind}};t.ParameterStructures=l;var AbstractMessageSignature=class{method;numberOfParams;constructor(t,n){this.method=t,this.numberOfParams=n}get parameterStructures(){return l.auto}};t.AbstractMessageSignature=AbstractMessageSignature;var RequestType0=class extends AbstractMessageSignature{_;constructor(t){super(t,0)}};t.RequestType0=RequestType0;var RequestType=class extends AbstractMessageSignature{_parameterStructures;_;constructor(t,n=l.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};t.RequestType=RequestType;var RequestType1=class extends AbstractMessageSignature{_parameterStructures;_;constructor(t,n=l.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};t.RequestType1=RequestType1;var RequestType2=class extends AbstractMessageSignature{_;constructor(t){super(t,2)}};t.RequestType2=RequestType2;var RequestType3=class extends AbstractMessageSignature{_;constructor(t){super(t,3)}};t.RequestType3=RequestType3;var RequestType4=class extends AbstractMessageSignature{_;constructor(t){super(t,4)}};t.RequestType4=RequestType4;var RequestType5=class extends AbstractMessageSignature{_;constructor(t){super(t,5)}};t.RequestType5=RequestType5;var RequestType6=class extends AbstractMessageSignature{_;constructor(t){super(t,6)}};t.RequestType6=RequestType6;var RequestType7=class extends AbstractMessageSignature{_;constructor(t){super(t,7)}};t.RequestType7=RequestType7;var RequestType8=class extends AbstractMessageSignature{_;constructor(t){super(t,8)}};t.RequestType8=RequestType8;var RequestType9=class extends AbstractMessageSignature{_;constructor(t){super(t,9)}};t.RequestType9=RequestType9;var NotificationType=class extends AbstractMessageSignature{_parameterStructures;_;constructor(t,n=l.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};t.NotificationType=NotificationType;var NotificationType0=class extends AbstractMessageSignature{_;constructor(t){super(t,0)}};t.NotificationType0=NotificationType0;var NotificationType1=class extends AbstractMessageSignature{_parameterStructures;_;constructor(t,n=l.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};t.NotificationType1=NotificationType1;var NotificationType2=class extends AbstractMessageSignature{_;constructor(t){super(t,2)}};t.NotificationType2=NotificationType2;var NotificationType3=class extends AbstractMessageSignature{_;constructor(t){super(t,3)}};t.NotificationType3=NotificationType3;var NotificationType4=class extends AbstractMessageSignature{_;constructor(t){super(t,4)}};t.NotificationType4=NotificationType4;var NotificationType5=class extends AbstractMessageSignature{_;constructor(t){super(t,5)}};t.NotificationType5=NotificationType5;var NotificationType6=class extends AbstractMessageSignature{_;constructor(t){super(t,6)}};t.NotificationType6=NotificationType6;var NotificationType7=class extends AbstractMessageSignature{_;constructor(t){super(t,7)}};t.NotificationType7=NotificationType7;var NotificationType8=class extends AbstractMessageSignature{_;constructor(t){super(t,8)}};t.NotificationType8=NotificationType8;var NotificationType9=class extends AbstractMessageSignature{_;constructor(t){super(t,9)}};t.NotificationType9=NotificationType9;var f;(function(t){function isRequest(t){let n=t;return n&&o.string(n.method)&&(o.string(n.id)||o.number(n.id))}t.isRequest=isRequest;function isNotification(t){let n=t;return n&&o.string(n.method)&&t.id===void 0}t.isNotification=isNotification;function isResponse(t){let n=t;return n&&(n.result!==void 0||!!n.error)&&(o.string(n.id)||o.number(n.id)||n.id===null)}t.isResponse=isResponse})(f||(t.Message=f={}))})),et=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LRUCache=t.LinkedMap=t.Touch=void 0;var n;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(n||(t.Touch=n={}));var LinkedMap=class{[Symbol.toStringTag]=`LinkedMap`;_map;_head;_tail;_size;_state;constructor(){this._map=/* @__PURE__ */ new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}before(t){let n=this._map.get(t);return n?n.previous?.value:void 0}after(t){let n=this._map.get(t);return n?n.next?.value:void 0}has(t){return this._map.has(t)}get(t,i=n.None){let a=this._map.get(t);if(a)return i!==n.None&&this.touch(a,i),a.value}set(t,i,a=n.None){let o=this._map.get(t);if(o)o.value=i,a!==n.None&&this.touch(o,a);else{switch(o={key:t,value:i,next:void 0,previous:void 0},a){case n.None:this.addItemLast(o);break;case n.First:this.addItemFirst(o);break;case n.Last:this.addItemLast(o);break;default:this.addItemLast(o)}this._map.set(t,o),this._size++}return this}delete(t){return!!this.remove(t)}remove(t){let n=this._map.get(t);if(n)return this._map.delete(t),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw Error(`Invalid list`);let t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,n){let i=this._state,a=this._head;for(;a;){if(n?t.bind(n)(a.value,a.key,this):t(a.value,a.key,this),this._state!==i)throw Error(`LinkedMap got modified during iteration.`);a=a.next}}keys(){let t=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==t)throw Error(`LinkedMap got modified during iteration.`);if(n){let t={value:n.key,done:!1};return n=n.next,t}return{value:void 0,done:!0}}};return i}values(){let t=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==t)throw Error(`LinkedMap got modified during iteration.`);if(n){let t={value:n.value,done:!1};return n=n.next,t}return{value:void 0,done:!0}}};return i}entries(){let t=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==t)throw Error(`LinkedMap got modified during iteration.`);if(n){let t={value:[n.key,n.value],done:!1};return n=n.next,t}return{value:void 0,done:!0}}};return i}[Symbol.iterator](){return this.entries()}trimOld(t){if(t>=this.size)return;if(t===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>t;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(t){if(!this._head&&!this._tail)this._tail=t;else if(this._head)t.next=this._head,this._head.previous=t;else throw Error(`Invalid list`);this._head=t,this._state++}addItemLast(t){if(!this._head&&!this._tail)this._head=t;else if(this._tail)t.previous=this._tail,this._tail.next=t;else throw Error(`Invalid list`);this._tail=t,this._state++}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head){if(!t.next)throw Error(`Invalid list`);t.next.previous=void 0,this._head=t.next}else if(t===this._tail){if(!t.previous)throw Error(`Invalid list`);t.previous.next=void 0,this._tail=t.previous}else{let n=t.next,i=t.previous;if(!n||!i)throw Error(`Invalid list`);n.previous=i,i.next=n}t.next=void 0,t.previous=void 0,this._state++}touch(t,i){if(!this._head||!this._tail)throw Error(`Invalid list`);if(i===n.First||i===n.Last){if(i===n.First){if(t===this._head)return;let n=t.next,i=t.previous;t===this._tail?(i.next=void 0,this._tail=i):(n.previous=i,i.next=n),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t,this._state++}else if(i===n.Last){if(t===this._tail)return;let n=t.next,i=t.previous;t===this._head?(n.previous=void 0,this._head=n):(n.previous=i,i.next=n),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t,this._state++}}}toJSON(){let t=[];return this.forEach((n,i)=>{t.push([i,n])}),t}fromJSON(t){this.clear();for(let[n,i]of t)this.set(n,i)}};t.LinkedMap=LinkedMap;var LRUCache=class extends LinkedMap{_limit;_ratio;constructor(t,n=1){super(),this._limit=t,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(t){this._limit=t,this.checkTrim()}get ratio(){return this._ratio}set ratio(t){this._ratio=Math.min(Math.max(0,t),1),this.checkTrim()}get(t,i=n.AsNew){return super.get(t,i)}peek(t){return super.get(t,n.None)}set(t,i){return super.set(t,i,n.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};t.LRUCache=LRUCache})),tt=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Disposable=void 0;var n;(function(t){function create(t){return{dispose:t}}t.create=create})(n||(t.Disposable=n={}))})),nt=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0});let n;function RAL(){if(n===void 0)throw Error(`No runtime abstraction layer installed`);return n}(function(t){function install(t){if(t===void 0)throw Error(`No runtime abstraction layer provided`);n=t}t.install=install})(RAL||={}),t.default=RAL})),rt=/* @__PURE__ */ o((t=>{var n=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t,"__esModule",{value:!0}),t.Emitter=t.Event=void 0;let i=n(nt());var a;(function(t){let n={dispose(){}};t.None=function(){return n}})(a||(t.Event=a={}));var CallbackList=class{_callbacks;_contexts;add(t,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(t),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(t,n)})}remove(t,n=null){if(!this._callbacks)return;let i=!1;for(let a=0,o=this._callbacks.length;a<o;a++)if(this._callbacks[a]===t){if(this._contexts[a]===n){this._callbacks.splice(a,1),this._contexts.splice(a,1);return}i=!0}if(i)throw Error(`When adding a listener with a context, you should remove it with the same context`)}invoke(...t){if(!this._callbacks)return[];let n=[],a=this._callbacks.slice(0),o=this._contexts.slice(0);for(let c=0,l=a.length;c<l;c++)try{n.push(a[c].apply(o[c],t))}catch(t){(0,i.default)().console.error(t)}return n}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}};t.Emitter=class Emitter{_options;static _noop=function(){};_event;_callbacks;constructor(t){this._options=t}get event(){return this._event||=(t,n,i)=>{this._callbacks||=new CallbackList,this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,n);let a={dispose:()=>{this._callbacks&&(this._callbacks.remove(t,n),a.dispose=Emitter._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(a),a},this._event}fire(t){this._callbacks&&this._callbacks.invoke.call(this._callbacks,t)}dispose(){this._callbacks&&=(this._callbacks.dispose(),void 0)}}})),it=/* @__PURE__ */ o((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,a){a===void 0&&(a=i);var o=Object.getOwnPropertyDescriptor(n,i);(!o||(`get`in o?!n.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,a,o)}):(function(t,n,i,a){a===void 0&&(a=i),t[a]=n[i]})),i=t&&t.__setModuleDefault||(Object.create?(function(t,n){Object.defineProperty(t,"default",{enumerable:!0,value:n})}):function(t,n){t.default=n}),a=t&&t.__importStar||(function(){var ownKeys=function(t){return ownKeys=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},ownKeys(t)};return function(t){if(t&&t.__esModule)return t;var a={};if(t!=null)for(var o=ownKeys(t),c=0;c<o.length;c++)o[c]!=="default"&&n(a,t,o[c]);return i(a,t),a}})(),o=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t,"__esModule",{value:!0}),t.CancellationTokenSource=t.CancellationToken=void 0;let c=o(nt()),l=a(Qe()),f=rt();var p;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:f.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:f.Event.None});function is(n){let i=n;return i&&(i===t.None||i===t.Cancelled||l.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=is})(p||(t.CancellationToken=p={}));let h=Object.freeze(function(t,n){let i=(0,c.default)().timer.setTimeout(t.bind(n),0);return{dispose(){i.dispose()}}});var MutableToken=class{_isCancelled=!1;_emitter;cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?h:(this._emitter||=new f.Emitter,this._emitter.event)}dispose(){this._emitter&&=(this._emitter.dispose(),void 0)}},CancellationTokenSource=class{_token;get token(){return this._token||=new MutableToken,this._token}cancel(){this._token?this._token.cancel():this._token=p.Cancelled}dispose(){this._token?this._token instanceof MutableToken&&this._token.dispose():this._token=p.None}};t.CancellationTokenSource=CancellationTokenSource})),at=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SharedArrayReceiverStrategy=t.SharedArraySenderStrategy=void 0;let n=it();var i;(function(t){t.Continue=0,t.Cancelled=1})(i||={});var SharedArraySenderStrategy=class{buffers;constructor(){this.buffers=/* @__PURE__ */ new Map}enableCancellation(t){if(t.id===null)return;let n=new SharedArrayBuffer(4),a=new Int32Array(n,0,1);a[0]=i.Continue,this.buffers.set(t.id,n),t.$cancellationData=n}async sendCancellation(t,n){let a=this.buffers.get(n);if(a===void 0)return;let o=new Int32Array(a,0,1);Atomics.store(o,0,i.Cancelled)}cleanup(t){this.buffers.delete(t)}dispose(){this.buffers.clear()}};t.SharedArraySenderStrategy=SharedArraySenderStrategy;var SharedArrayBufferCancellationToken=class{data;constructor(t){this.data=new Int32Array(t,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===i.Cancelled}get onCancellationRequested(){throw Error(`Cancellation over SharedArrayBuffer doesn't support cancellation events`)}},SharedArrayBufferCancellationTokenSource=class{token;constructor(t){this.token=new SharedArrayBufferCancellationToken(t)}cancel(){}dispose(){}},SharedArrayReceiverStrategy=class{kind=`request`;createCancellationTokenSource(t){let i=t.$cancellationData;return i===void 0?new n.CancellationTokenSource:new SharedArrayBufferCancellationTokenSource(i)}};t.SharedArrayReceiverStrategy=SharedArrayReceiverStrategy})),ot=/* @__PURE__ */ o((t=>{var n=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t,"__esModule",{value:!0}),t.Semaphore=void 0;let i=n(nt());var Semaphore=class{_capacity;_active;_waiting;constructor(t=1){if(t<=0)throw Error(`Capacity must be greater than 0`);this._capacity=t,this._active=0,this._waiting=[]}lock(t){return new Promise((n,i)=>{this._waiting.push({thunk:t,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length!==0&&this._active!==this._capacity&&(0,i.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let t=this._waiting.shift();if(this._active++,this._active>this._capacity)throw Error(`Too many thunks active`);try{let n=t.thunk();n instanceof Promise?n.then(n=>{this._active--,t.resolve(n),this.runNext()},n=>{this._active--,t.reject(n),this.runNext()}):(this._active--,t.resolve(n),this.runNext())}catch(n){this._active--,t.reject(n),this.runNext()}}};t.Semaphore=Semaphore})),st=/* @__PURE__ */ o((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,a){a===void 0&&(a=i);var o=Object.getOwnPropertyDescriptor(n,i);(!o||(`get`in o?!n.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,a,o)}):(function(t,n,i,a){a===void 0&&(a=i),t[a]=n[i]})),i=t&&t.__setModuleDefault||(Object.create?(function(t,n){Object.defineProperty(t,"default",{enumerable:!0,value:n})}):function(t,n){t.default=n}),a=t&&t.__importStar||(function(){var ownKeys=function(t){return ownKeys=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},ownKeys(t)};return function(t){if(t&&t.__esModule)return t;var a={};if(t!=null)for(var o=ownKeys(t),c=0;c<o.length;c++)o[c]!=="default"&&n(a,t,o[c]);return i(a,t),a}})(),o=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReadableStreamMessageReader=t.AbstractMessageReader=t.MessageReader=void 0;let c=o(nt()),l=a(Qe()),f=rt(),p=ot();var h;(function(t){function is(t){let n=t;return n&&l.func(n.listen)&&l.func(n.dispose)&&l.func(n.onError)&&l.func(n.onClose)&&l.func(n.onPartialMessage)}t.is=is})(h||(t.MessageReader=h={}));var AbstractMessageReader=class{errorEmitter;closeEmitter;partialMessageEmitter;constructor(){this.errorEmitter=new f.Emitter,this.closeEmitter=new f.Emitter,this.partialMessageEmitter=new f.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose(),this.partialMessageEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(t){this.errorEmitter.fire(this.asError(t))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(t){this.partialMessageEmitter.fire(t)}asError(t){return t instanceof Error?t:/* @__PURE__ */ Error(`Reader received error. Reason: ${l.string(t.message)?t.message:`unknown`}`)}};t.AbstractMessageReader=AbstractMessageReader;var _;(function(t){function fromOptions(t){let n,i,a=/* @__PURE__ */ new Map,o,l=/* @__PURE__ */ new Map;if(t===void 0||typeof t==`string`)n=t??`utf-8`;else{if(n=t.charset??`utf-8`,t.contentDecoder!==void 0&&(i=t.contentDecoder,a.set(i.name,i)),t.contentDecoders!==void 0)for(let n of t.contentDecoders)a.set(n.name,n);if(t.contentTypeDecoder!==void 0&&(o=t.contentTypeDecoder,l.set(o.name,o)),t.contentTypeDecoders!==void 0)for(let n of t.contentTypeDecoders)l.set(n.name,n)}return o===void 0&&(o=(0,c.default)().applicationJson.decoder,l.set(o.name,o)),{charset:n,contentDecoder:i,contentDecoders:a,contentTypeDecoder:o,contentTypeDecoders:l}}t.fromOptions=fromOptions})(_||={});var ReadableStreamMessageReader=class extends AbstractMessageReader{readable;options;callback;nextMessageLength;messageToken;buffer;partialMessageTimer;_partialMessageTimeout;readSemaphore;constructor(t,n){super(),this.readable=t,this.options=_.fromOptions(n),this.buffer=(0,c.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new p.Semaphore(1)}set partialMessageTimeout(t){this._partialMessageTimeout=t}get partialMessageTimeout(){return this._partialMessageTimeout}listen(t){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=t;let n=this.readable.onData(t=>{this.onData(t)});return this.readable.onError(t=>this.fireError(t)),this.readable.onClose(()=>this.fireClose()),n}onData(t){try{for(this.buffer.append(t);;){if(this.nextMessageLength===-1){let t=this.buffer.tryReadHeaders(!0);if(!t)return;let n=t.get(`content-length`);if(!n){this.fireError(/* @__PURE__ */ Error(`Header must provide a Content-Length property.\n${JSON.stringify(Object.fromEntries(t))}`));return}let i=parseInt(n);if(isNaN(i)){this.fireError(/* @__PURE__ */ Error(`Content-Length value must be a number. Got ${n}`));return}this.nextMessageLength=i}let t=this.buffer.tryReadBody(this.nextMessageLength);if(t===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let n=this.options.contentDecoder===void 0?t:await this.options.contentDecoder.decode(t),i=await this.options.contentTypeDecoder.decode(n,this.options);this.callback(i)}).catch(t=>{this.fireError(t)})}}catch(t){this.fireError(t)}}clearPartialMessageTimer(){this.partialMessageTimer&&=(this.partialMessageTimer.dispose(),void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,c.default)().timer.setTimeout((t,n)=>{this.partialMessageTimer=void 0,t===this.messageToken&&(this.firePartialMessage({messageToken:t,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};t.ReadableStreamMessageReader=ReadableStreamMessageReader})),ct=/* @__PURE__ */ o((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,a){a===void 0&&(a=i);var o=Object.getOwnPropertyDescriptor(n,i);(!o||(`get`in o?!n.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,a,o)}):(function(t,n,i,a){a===void 0&&(a=i),t[a]=n[i]})),i=t&&t.__setModuleDefault||(Object.create?(function(t,n){Object.defineProperty(t,"default",{enumerable:!0,value:n})}):function(t,n){t.default=n}),a=t&&t.__importStar||(function(){var ownKeys=function(t){return ownKeys=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},ownKeys(t)};return function(t){if(t&&t.__esModule)return t;var a={};if(t!=null)for(var o=ownKeys(t),c=0;c<o.length;c++)o[c]!=="default"&&n(a,t,o[c]);return i(a,t),a}})(),o=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t,"__esModule",{value:!0}),t.WriteableStreamMessageWriter=t.AbstractMessageWriter=t.MessageWriter=void 0;let c=o(nt()),l=a(Qe()),f=ot(),p=rt();var h;(function(t){function is(t){let n=t;return n&&l.func(n.dispose)&&l.func(n.onClose)&&l.func(n.onError)&&l.func(n.write)}t.is=is})(h||(t.MessageWriter=h={}));var AbstractMessageWriter=class{errorEmitter;closeEmitter;constructor(){this.errorEmitter=new p.Emitter,this.closeEmitter=new p.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(t,n,i){this.errorEmitter.fire([this.asError(t),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(t){return t instanceof Error?t:/* @__PURE__ */ Error(`Writer received error. Reason: ${l.string(t.message)?t.message:`unknown`}`)}};t.AbstractMessageWriter=AbstractMessageWriter;var _;(function(t){function fromOptions(t){return t===void 0||typeof t==`string`?{charset:t??`utf-8`,contentTypeEncoder:(0,c.default)().applicationJson.encoder}:{charset:t.charset??`utf-8`,contentEncoder:t.contentEncoder,contentTypeEncoder:t.contentTypeEncoder??(0,c.default)().applicationJson.encoder}}t.fromOptions=fromOptions})(_||={});var WriteableStreamMessageWriter=class extends AbstractMessageWriter{writable;options;errorCount;writeSemaphore;constructor(t,n){super(),this.writable=t,this.options=_.fromOptions(n),this.errorCount=0,this.writeSemaphore=new f.Semaphore(1),this.writable.onError(t=>this.fireError(t)),this.writable.onClose(()=>this.fireClose())}async write(t){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(t,this.options).then(t=>this.options.contentEncoder===void 0?t:this.options.contentEncoder.encode(t)).then(n=>{let i=[];return i.push(`Content-Length: `,n.byteLength.toString(),`\r
6
+ `),i.push(`\r
7
+ `),this.doWrite(t,i,n)},t=>{throw this.fireError(t),t}))}async doWrite(t,n,i){try{return await this.writable.write(n.join(``),`ascii`),this.writable.write(i)}catch(n){return this.handleError(n,t),Promise.reject(n)}}handleError(t,n){this.errorCount++,this.fireError(t,n,this.errorCount)}end(){this.writable.end()}};t.WriteableStreamMessageWriter=WriteableStreamMessageWriter})),lt=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractMessageBuffer=void 0;var AbstractMessageBuffer=class{_encoding;_chunks;_totalLength;constructor(t=`utf-8`){this._encoding=t,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(t){let n=typeof t==`string`?this.fromString(t,this._encoding):t;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(t=!1){if(this._chunks.length===0)return;let n=0,i=0,a=0,o=0;row:for(;i<this._chunks.length;){let t=this._chunks[i];for(a=0;a<t.length;){switch(t[a]){case 13:switch(n){case 0:n=1;break;case 2:n=3;break;default:n=0}break;case 10:switch(n){case 1:n=2;break;case 3:n=4,a++;break row;default:n=0}break;default:n=0}a++}o+=t.byteLength,i++}if(n!==4)return;let c=this._read(o+a),l=/* @__PURE__ */ new Map,f=this.toString(c,`ascii`).split(`\r
8
+ `);if(f.length<2)return l;for(let n=0;n<f.length-2;n++){let i=f[n],a=i.indexOf(`:`);if(a===-1)throw Error(`Message header must separate key and value using ':'\n${i}`);let o=i.substr(0,a),c=i.substr(a+1).trim();l.set(t?o.toLowerCase():o,c)}return l}tryReadBody(t){if(!(this._totalLength<t))return this._read(t)}get numberOfBytes(){return this._totalLength}_read(t){if(t===0)return this.emptyBuffer();if(t>this._totalLength)throw Error(`Cannot read so many bytes!`);if(this._chunks[0].byteLength===t){let n=this._chunks[0];return this._chunks.shift(),this._totalLength-=t,this.asNative(n)}if(this._chunks[0].byteLength>t){let n=this._chunks[0],i=this.asNative(n,t);return this._chunks[0]=n.slice(t),this._totalLength-=t,i}let n=this.allocNative(t),i=0;for(;t>0;){let a=this._chunks[0];if(a.byteLength>t){let o=a.slice(0,t);n.set(o,i),i+=t,this._chunks[0]=a.slice(t),this._totalLength-=t,t-=t}else n.set(a,i),i+=a.byteLength,this._chunks.shift(),this._totalLength-=a.byteLength,t-=a.byteLength}return n}};t.AbstractMessageBuffer=AbstractMessageBuffer})),ut=/* @__PURE__ */ o((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,a){a===void 0&&(a=i);var o=Object.getOwnPropertyDescriptor(n,i);(!o||(`get`in o?!n.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,a,o)}):(function(t,n,i,a){a===void 0&&(a=i),t[a]=n[i]})),i=t&&t.__setModuleDefault||(Object.create?(function(t,n){Object.defineProperty(t,"default",{enumerable:!0,value:n})}):function(t,n){t.default=n}),a=t&&t.__importStar||(function(){var ownKeys=function(t){return ownKeys=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},ownKeys(t)};return function(t){if(t&&t.__esModule)return t;var a={};if(t!=null)for(var o=ownKeys(t),c=0;c<o.length;c++)o[c]!=="default"&&n(a,t,o[c]);return i(a,t),a}})(),o=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConnectionOptions=t.MessageStrategy=t.CancellationStrategy=t.CancellationSenderStrategy=t.CancellationReceiverStrategy=t.RequestCancellationReceiverStrategy=t.IdCancellationReceiverStrategy=t.ConnectionStrategy=t.ConnectionError=t.ConnectionErrors=t.LogTraceNotification=t.SetTraceNotification=t.TraceFormat=t.TraceValues=t.TraceValue=t.Trace=t.NullLogger=t.ProgressType=t.ProgressToken=void 0,t.createMessageConnection=createMessageConnection;let c=o(nt()),l=a(Qe()),f=$e(),p=et(),h=rt(),_=it();var x;(function(t){t.type=new f.NotificationType(`$/cancelRequest`)})(x||={});var S;(function(t){function is(t){return typeof t==`string`||typeof t==`number`}t.is=is})(S||(t.ProgressToken=S={}));var C;(function(t){t.type=new f.NotificationType(`$/progress`)})(C||={});var ProgressType=class{__;_pr;constructor(){}};t.ProgressType=ProgressType;var w;(function(t){function is(t){return l.func(t)}t.is=is})(w||={}),t.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var T;(function(t){t[t.Off=0]=`Off`,t[t.Messages=1]=`Messages`,t[t.Compact=2]=`Compact`,t[t.Verbose=3]=`Verbose`})(T||(t.Trace=T={}));var E;(function(t){t.Off=`off`,t.Messages=`messages`,t.Compact=`compact`,t.Verbose=`verbose`})(E||(t.TraceValue=E={})),t.TraceValues=E,(function(t){function fromString(n){if(!l.string(n))return t.Off;switch(n=n.toLowerCase(),n){case`off`:return t.Off;case`messages`:return t.Messages;case`compact`:return t.Compact;case`verbose`:return t.Verbose;default:return t.Off}}t.fromString=fromString;function toString(n){switch(n){case t.Off:return`off`;case t.Messages:return`messages`;case t.Compact:return`compact`;case t.Verbose:return`verbose`;default:return`off`}}t.toString=toString})(T||(t.Trace=T={}));var D;(function(t){t.Text=`text`,t.JSON=`json`})(D||(t.TraceFormat=D={})),(function(t){function fromString(n){return l.string(n)?(n=n.toLowerCase(),n===`json`?t.JSON:t.Text):t.Text}t.fromString=fromString})(D||(t.TraceFormat=D={}));var O;(function(t){t.type=new f.NotificationType(`$/setTrace`)})(O||(t.SetTraceNotification=O={}));var k;(function(t){t.type=new f.NotificationType(`$/logTrace`)})(k||(t.LogTraceNotification=k={}));var ee;(function(t){t[t.Closed=1]=`Closed`,t[t.Disposed=2]=`Disposed`,t[t.AlreadyListening=3]=`AlreadyListening`})(ee||(t.ConnectionErrors=ee={}));var A=class ConnectionError extends Error{code;constructor(t,n){super(n),this.code=t,Object.setPrototypeOf(this,ConnectionError.prototype)}};t.ConnectionError=A;var te;(function(t){function is(t){let n=t;return n&&l.func(n.cancelUndispatched)}t.is=is})(te||(t.ConnectionStrategy=te={}));var ne;(function(t){function is(t){let n=t;return n&&(n.kind===void 0||n.kind===`id`)&&l.func(n.createCancellationTokenSource)&&(n.dispose===void 0||l.func(n.dispose))}t.is=is})(ne||(t.IdCancellationReceiverStrategy=ne={}));var j;(function(t){function is(t){let n=t;return n&&n.kind===`request`&&l.func(n.createCancellationTokenSource)&&(n.dispose===void 0||l.func(n.dispose))}t.is=is})(j||(t.RequestCancellationReceiverStrategy=j={}));var M;(function(t){t.Message=Object.freeze({createCancellationTokenSource(t){return new _.CancellationTokenSource}});function is(t){return ne.is(t)||j.is(t)}t.is=is})(M||(t.CancellationReceiverStrategy=M={}));var N;(function(t){t.Message=Object.freeze({sendCancellation(t,n){return t.sendNotification(x.type,{id:n})},cleanup(t){}});function is(t){let n=t;return n&&l.func(n.sendCancellation)&&l.func(n.cleanup)}t.is=is})(N||(t.CancellationSenderStrategy=N={}));var P;(function(t){t.Message=Object.freeze({receiver:M.Message,sender:N.Message});function is(t){let n=t;return n&&M.is(n.receiver)&&N.is(n.sender)}t.is=is})(P||(t.CancellationStrategy=P={}));var re;(function(t){function is(t){let n=t;return n&&l.func(n.handleMessage)}t.is=is})(re||(t.MessageStrategy=re={}));var F;(function(t){function is(t){let n=t;return n&&(P.is(n.cancellationStrategy)||te.is(n.connectionStrategy)||re.is(n.messageStrategy)||l.number(n.maxParallelism))}t.is=is})(F||(t.ConnectionOptions=F={}));var I;(function(t){t[t.New=1]=`New`,t[t.Listening=2]=`Listening`,t[t.Closed=3]=`Closed`,t[t.Disposed=4]=`Disposed`})(I||={});function createMessageConnection(n,i,a,o){let E=a===void 0?t.NullLogger:a,te=0,j=0,M=0,N=o?.maxParallelism??-1,F=0,L,ie=/* @__PURE__ */ new Map,ae,oe=/* @__PURE__ */ new Map,se=/* @__PURE__ */ new Map,ce,R=new p.LinkedMap,le=/* @__PURE__ */ new Map,ue=/* @__PURE__ */ new Set,de=/* @__PURE__ */ new Map,z=T.Off,fe=D.Text,B,V=I.New,pe=new h.Emitter,me=new h.Emitter,he=new h.Emitter,ge=new h.Emitter,_e=new h.Emitter,ve=o&&o.cancellationStrategy?o.cancellationStrategy:P.Message;function cancelUndispatched(t){}function isListening(){return V===I.Listening}function isClosed(){return V===I.Closed}function isDisposed(){return V===I.Disposed}function closeHandler(){(V===I.New||V===I.Listening)&&(V=I.Closed,me.fire(void 0))}function readErrorHandler(t){pe.fire([t,void 0,void 0])}function writeErrorHandler(t){pe.fire(t)}n.onClose(closeHandler),n.onError(readErrorHandler),i.onClose(closeHandler),i.onError(writeErrorHandler);function createRequestQueueKey(t){if(t===null)throw Error(`Can't send requests with id null since the response can't be correlated.`);return`req-`+t.toString()}function createResponseQueueKey(t){return t===null?`res-unknown-`+(++M).toString():`res-`+t.toString()}function createNotificationQueueKey(){return`not-`+(++j).toString()}function addMessageToQueue(t,n){f.Message.isRequest(n)?t.set(createRequestQueueKey(n.id),n):f.Message.isResponse(n)?N===-1?t.set(createResponseQueueKey(n.id),n):handleResponse(n):t.set(createNotificationQueueKey(),n)}function triggerMessageQueue(){ce||R.size===0||N!==-1&&F>=N||(ce=(0,c.default)().timer.setImmediate(async()=>{if(ce=void 0,R.size===0||N!==-1&&F>=N)return;let t=R.shift(),n;try{F++;let i=o?.messageStrategy;n=re.is(i)?i.handleMessage(t,handleMessage):handleMessage(t)}catch(t){E.error(`Processing message queue failed: ${t.toString()}`)}finally{n instanceof Promise?n.then(()=>{F--,triggerMessageQueue()}).catch(t=>{E.error(`Processing message queue failed: ${t.toString()}`)}):F--,triggerMessageQueue()}}))}async function handleMessage(t){return f.Message.isRequest(t)?handleRequest(t):f.Message.isNotification(t)?handleNotification(t):f.Message.isResponse(t)?handleResponse(t):handleInvalidMessage(t)}let callback=t=>{try{if(f.Message.isNotification(t)&&t.method===x.type.method){let n=t.params.id,a=createRequestQueueKey(n),c=R.get(a);if(f.Message.isRequest(c)){let l=o?.connectionStrategy,f=l&&l.cancelUndispatched?l.cancelUndispatched(c,cancelUndispatched):void 0;if(f&&(f.error!==void 0||f.result!==void 0)){R.delete(a),de.delete(n),f.id=c.id,traceSendingResponse(f,t.method,Date.now()),i.write(f).catch(()=>E.error(`Sending response for canceled message failed.`));return}}let l=de.get(n);if(l!==void 0){l.cancel(),traceReceivedNotification(t);return}ue.add(n)}addMessageToQueue(R,t)}finally{triggerMessageQueue()}};async function handleRequest(t){if(isDisposed())return Promise.resolve();function reply(n,a,o){let c={jsonrpc:`2.0`,id:t.id};return n instanceof f.ResponseError?c.error=n.toJson():c.result=n===void 0?null:n,traceSendingResponse(c,a,o),i.write(c)}function replyError(n,a,o){let c={jsonrpc:`2.0`,id:t.id,error:n.toJson()};return traceSendingResponse(c,a,o),i.write(c)}traceReceivedRequest(t);let n=ie.get(t.method),a,o;n&&(a=n.type,o=n.handler);let c=Date.now();if(o||L){let n=t.id??String(Date.now()),i=ne.is(ve.receiver)?ve.receiver.createCancellationTokenSource(n):ve.receiver.createCancellationTokenSource(t);t.id!==null&&ue.has(t.id)&&i.cancel(),t.id!==null&&de.set(n,i);try{let n;if(o){if(t.params===void 0){if(a!==void 0&&a.numberOfParams!==0)return replyError(new f.ResponseError(f.ErrorCodes.InvalidParams,`Request ${t.method} defines ${a.numberOfParams} params but received none.`),t.method,c);n=o(i.token)}else if(Array.isArray(t.params)){if(a!==void 0&&a.parameterStructures===f.ParameterStructures.byName)return replyError(new f.ResponseError(f.ErrorCodes.InvalidParams,`Request ${t.method} defines parameters by name but received parameters by position`),t.method,c);n=o(...t.params,i.token)}else{if(a!==void 0&&a.parameterStructures===f.ParameterStructures.byPosition)return replyError(new f.ResponseError(f.ErrorCodes.InvalidParams,`Request ${t.method} defines parameters by position but received parameters by name`),t.method,c);n=o(t.params,i.token)}}else L&&(n=L(t.method,t.params,i.token));await reply(await n,t.method,c)}catch(n){n instanceof f.ResponseError?await reply(n,t.method,c):n&&l.string(n.message)?await replyError(new f.ResponseError(f.ErrorCodes.InternalError,`Request ${t.method} failed with message: ${n.message}`),t.method,c):await replyError(new f.ResponseError(f.ErrorCodes.InternalError,`Request ${t.method} failed unexpectedly without providing any details.`),t.method,c)}finally{de.delete(n)}}else await replyError(new f.ResponseError(f.ErrorCodes.MethodNotFound,`Unhandled method ${t.method}`),t.method,c)}function handleResponse(t){if(!isDisposed()){if(t.id===null)t.error?E.error(`Received response message without id: Error is: \n${JSON.stringify(t.error,void 0,4)}`):E.error(`Received response message without id. No further error information provided.`);else{let n=t.id,i=le.get(n);if(traceReceivedResponse(t,i),i!==void 0){le.delete(n);try{if(t.error){let n=t.error;i.reject(new f.ResponseError(n.code,n.message,n.data))}else if(t.result!==void 0)i.resolve(t.result);else throw Error(`Should never happen.`)}catch(t){t.message?E.error(`Response handler '${i.method}' failed with message: ${t.message}`):E.error(`Response handler '${i.method}' failed unexpectedly.`)}}}}}async function handleNotification(t){if(isDisposed())return;let n,i;if(t.method===x.type.method){let n=t.params.id;ue.delete(n),traceReceivedNotification(t)}else{{let a=oe.get(t.method);a&&(i=a.handler,n=a.type)}if(i||ae)try{if(traceReceivedNotification(t),i){if(t.params===void 0)n!==void 0&&n.numberOfParams!==0&&n.parameterStructures!==f.ParameterStructures.byName&&E.error(`Notification ${t.method} defines ${n.numberOfParams} params but received none.`),await i();else if(Array.isArray(t.params)){let a=t.params;t.method===C.type.method&&a.length===2&&S.is(a[0])?await i({token:a[0],value:a[1]}):(n!==void 0&&(n.parameterStructures===f.ParameterStructures.byName&&E.error(`Notification ${t.method} defines parameters by name but received parameters by position`),n.numberOfParams!==t.params.length&&E.error(`Notification ${t.method} defines ${n.numberOfParams} params but received ${a.length} arguments`)),await i(...a))}else n!==void 0&&n.parameterStructures===f.ParameterStructures.byPosition&&E.error(`Notification ${t.method} defines parameters by position but received parameters by name`),await i(t.params)}else ae&&await ae(t.method,t.params)}catch(n){n.message?E.error(`Notification handler '${t.method}' failed with message: ${n.message}`):E.error(`Notification handler '${t.method}' failed unexpectedly.`)}else he.fire(t)}}function handleInvalidMessage(t){if(!t){E.error(`Received empty message.`);return}E.error(`Received message which is neither a response nor a notification message:\n${JSON.stringify(t,null,4)}`);let n=t;if(l.string(n.id)||l.number(n.id)){let t=n.id,i=le.get(t);i&&i.reject(/* @__PURE__ */ Error(`The received response has neither a result nor an error property.`))}}function stringifyTrace(t){if(t!=null)switch(z){case T.Verbose:return JSON.stringify(t,null,4);case T.Compact:return JSON.stringify(t);default:return}}function traceSendingRequest(t){if(z!==T.Off&&B){if(fe===D.Text){let n;(z===T.Verbose||z===T.Compact)&&t.params&&(n=`Params: ${stringifyTrace(t.params)}`),B.log(`Sending request '${t.method} - (${t.id})'.`,n)}else logLSPMessage(`send-request`,t)}}function traceSendingNotification(t){if(z!==T.Off&&B){if(fe===D.Text){let n;(z===T.Verbose||z===T.Compact)&&(n=t.params?`Params: ${stringifyTrace(t.params)}`:`No parameters provided.`),B.log(`Sending notification '${t.method}'.`,n)}else logLSPMessage(`send-notification`,t)}}function traceSendingResponse(t,n,i){if(z!==T.Off&&B){if(fe===D.Text){let a;(z===T.Verbose||z===T.Compact)&&(t.error&&t.error.data?a=`Error data: ${stringifyTrace(t.error.data)}`:t.result?a=`Result: ${stringifyTrace(t.result)}`:t.error===void 0&&(a=`No result returned.`));let o=t.error?` Request failed: ${t.error.message} (${t.error.code}).`:``;B.log(`Sending response '${n} - (${t.id})'. Processing request took ${Date.now()-i}ms.${o}`,a)}else logLSPMessage(`send-response`,t)}}function traceReceivedRequest(t){if(z!==T.Off&&B){if(fe===D.Text){let n;(z===T.Verbose||z===T.Compact)&&t.params&&(n=`Params: ${stringifyTrace(t.params)}`),B.log(`Received request '${t.method} - (${t.id})'.`,n)}else logLSPMessage(`receive-request`,t)}}function traceReceivedNotification(t){if(z!==T.Off&&B&&t.method!==k.type.method){if(fe===D.Text){let n;(z===T.Verbose||z===T.Compact)&&(n=t.params?`Params: ${stringifyTrace(t.params)}`:`No parameters provided.`),B.log(`Received notification '${t.method}'.`,n)}else logLSPMessage(`receive-notification`,t)}}function traceReceivedResponse(t,n){if(z!==T.Off&&B){if(fe===D.Text){let i;if((z===T.Verbose||z===T.Compact)&&(t.error&&t.error.data?i=`Error data: ${stringifyTrace(t.error.data)}`:t.result?i=`Result: ${stringifyTrace(t.result)}`:t.error===void 0&&(i=`No result returned.`)),n){let a=t.error?` Request failed: ${t.error.message} (${t.error.code}).`:``;B.log(`Received response '${n.method} - (${t.id})' in ${Date.now()-n.timerStart}ms.${a}`,i)}else B.log(`Received response ${t.id} without active response promise.`,i)}else logLSPMessage(`receive-response`,t)}}function logLSPMessage(t,n){if(!B||z===T.Off)return;let i={isLSPMessage:!0,type:t,message:n,timestamp:Date.now()};B.log(i)}function throwIfClosedOrDisposed(){if(isClosed())throw new A(ee.Closed,`Connection is closed.`);if(isDisposed())throw new A(ee.Disposed,`Connection is disposed.`)}function throwIfListening(){if(isListening())throw new A(ee.AlreadyListening,`Connection is already listening`)}function throwIfNotListening(){if(!isListening())throw Error(`Call listen() first.`)}function undefinedToNull(t){return t===void 0?null:t}function nullToUndefined(t){if(t!==null)return t}function isNamedParam(t){return t!=null&&!Array.isArray(t)&&typeof t==`object`}function computeSingleParam(t,n){switch(t){case f.ParameterStructures.auto:return isNamedParam(n)?nullToUndefined(n):[undefinedToNull(n)];case f.ParameterStructures.byName:if(!isNamedParam(n))throw Error(`Received parameters by name but param is not an object literal.`);return nullToUndefined(n);case f.ParameterStructures.byPosition:return[undefinedToNull(n)];default:throw Error(`Unknown parameter structure ${t.toString()}`)}}function computeMessageParams(t,n){let i,a=t.numberOfParams;switch(a){case 0:i=void 0;break;case 1:i=computeSingleParam(t.parameterStructures,n[0]);break;default:i=[];for(let t=0;t<n.length&&t<a;t++)i.push(undefinedToNull(n[t]));if(n.length<a)for(let t=n.length;t<a;t++)i.push(null)}return i}let ye={sendNotification:(t,...n)=>{throwIfClosedOrDisposed();let a,o;if(l.string(t)){a=t;let i=n[0],c=0,l=f.ParameterStructures.auto;f.ParameterStructures.is(i)&&(c=1,l=i);let p=n.length,h=p-c;switch(h){case 0:o=void 0;break;case 1:o=computeSingleParam(l,n[c]);break;default:if(l===f.ParameterStructures.byName)throw Error(`Received ${h} parameters for 'by Name' notification parameter structure.`);o=n.slice(c,p).map(t=>undefinedToNull(t))}}else{let i=n;a=t.method,o=computeMessageParams(t,i)}let c={jsonrpc:`2.0`,method:a,params:o};return traceSendingNotification(c),i.write(c).catch(t=>{throw E.error(`Sending notification failed.`),t})},onNotification:(t,n)=>{throwIfClosedOrDisposed();let i;return l.func(t)?ae=t:n&&(l.string(t)?(i=t,oe.set(t,{type:void 0,handler:n})):(i=t.method,oe.set(t.method,{type:t,handler:n}))),{dispose:()=>{i===void 0?ae===t&&(ae=void 0):oe.get(i)?.handler===n&&oe.delete(i)}}},onProgress:(t,n,i)=>{if(se.has(n))throw Error(`Progress handler for token ${n} already registered`);return se.set(n,i),{dispose:()=>{se.get(n)===i&&se.delete(n)}}},sendProgress:(t,n,i)=>ye.sendNotification(C.type,{token:n,value:i}),onUnhandledProgress:ge.event,sendRequest:(t,...n)=>{throwIfClosedOrDisposed(),throwIfNotListening();function sendCancellation(t,n){let i=ve.sender.sendCancellation(t,n);i===void 0?E.log(`Received no promise from cancellation strategy when cancelling id ${n}`):i.catch(()=>{E.log(`Sending cancellation messages for id ${n} failed.`)})}let a,o,c;if(l.string(t)){a=t;let i=n[0],l=n[n.length-1],p=0,h=f.ParameterStructures.auto;f.ParameterStructures.is(i)&&(p=1,h=i);let x=n.length;_.CancellationToken.is(l)&&(--x,c=l);let S=x-p;switch(S){case 0:o=void 0;break;case 1:o=computeSingleParam(h,n[p]);break;default:if(h===f.ParameterStructures.byName)throw Error(`Received ${S} parameters for 'by Name' request parameter structure.`);o=n.slice(p,x).map(t=>undefinedToNull(t))}}else{let i=n;a=t.method,o=computeMessageParams(t,i);let l=t.numberOfParams;c=_.CancellationToken.is(i[l])?i[l]:void 0}let p=te++,h,x=!1;c!==void 0&&(c.isCancellationRequested?x=!0:h=c.onCancellationRequested(()=>{sendCancellation(ye,p)}));let S={jsonrpc:`2.0`,id:p,method:a,params:o};return traceSendingRequest(S),typeof ve.sender.enableCancellation==`function`&&ve.sender.enableCancellation(S),new Promise(async(t,n)=>{let resolveWithCleanup=n=>{t(n),ve.sender.cleanup(p),h?.dispose()},rejectWithCleanup=t=>{n(t),ve.sender.cleanup(p),h?.dispose()},o={method:a,timerStart:Date.now(),resolve:resolveWithCleanup,reject:rejectWithCleanup};try{le.set(p,o),await i.write(S),x&&sendCancellation(ye,p)}catch(t){le.delete(p),o.reject(new f.ResponseError(f.ErrorCodes.MessageWriteError,t.message?t.message:`Unknown reason`)),E.error(`Sending request failed.`)}})},onRequest:(t,n)=>{throwIfClosedOrDisposed();let i=null;return w.is(t)?(i=void 0,L=t):l.string(t)?(i=null,n!==void 0&&(i=t,ie.set(t,{handler:n,type:void 0}))):n!==void 0&&(i=t.method,ie.set(t.method,{type:t,handler:n})),{dispose:()=>{i!==null&&(i===void 0?L===t&&(L=void 0):ie.get(i)?.handler===n&&ie.delete(i))}}},hasPendingResponse:()=>le.size>0,trace:async(t,n,i)=>{let a=!1,o=D.Text;i!==void 0&&(l.boolean(i)?a=i:(a=i.sendNotification||!1,o=i.traceFormat||D.Text)),z=t,fe=o,B=z===T.Off?void 0:n,a&&!isClosed()&&!isDisposed()&&await ye.sendNotification(O.type,{value:T.toString(t)})},onError:pe.event,onClose:me.event,onUnhandledNotification:he.event,onDispose:_e.event,end:()=>{i.end()},dispose:()=>{if(isDisposed())return;V=I.Disposed,_e.fire(void 0);let t=new f.ResponseError(f.ErrorCodes.PendingResponseRejected,`Pending response rejected since connection got disposed`);for(let n of le.values())n.reject(t);le=/* @__PURE__ */ new Map,de=/* @__PURE__ */ new Map,ue=/* @__PURE__ */ new Set,R=new p.LinkedMap,l.func(i.dispose)&&i.dispose(),l.func(n.dispose)&&n.dispose()},listen:()=>{throwIfClosedOrDisposed(),throwIfListening(),V=I.Listening,n.listen(callback)},inspect:()=>{(0,c.default)().console.log(`inspect`)}};return ye.onNotification(k.type,t=>{if(z===T.Off||!B)return;let n=z===T.Verbose||z===T.Compact;B.log(t.message,n?t.verbose:void 0)}),ye.onNotification(C.type,async t=>{let n=se.get(t.token);n?await n(t.value):ge.fire(t)}),ye}})),dt=/* @__PURE__ */ o((t=>{var n=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressType=t.ProgressToken=t.createMessageConnection=t.NullLogger=t.ConnectionOptions=t.ConnectionStrategy=t.AbstractMessageBuffer=t.WriteableStreamMessageWriter=t.AbstractMessageWriter=t.MessageWriter=t.ReadableStreamMessageReader=t.AbstractMessageReader=t.MessageReader=t.SharedArrayReceiverStrategy=t.SharedArraySenderStrategy=t.CancellationToken=t.CancellationTokenSource=t.Emitter=t.Event=t.Disposable=t.LRUCache=t.Touch=t.LinkedMap=t.ParameterStructures=t.NotificationType9=t.NotificationType8=t.NotificationType7=t.NotificationType6=t.NotificationType5=t.NotificationType4=t.NotificationType3=t.NotificationType2=t.NotificationType1=t.NotificationType0=t.NotificationType=t.ErrorCodes=t.ResponseError=t.RequestType9=t.RequestType8=t.RequestType7=t.RequestType6=t.RequestType5=t.RequestType4=t.RequestType3=t.RequestType2=t.RequestType1=t.RequestType0=t.RequestType=t.Message=t.RAL=void 0,t.MessageStrategy=t.CancellationStrategy=t.CancellationSenderStrategy=t.RequestCancellationReceiverStrategy=t.IdCancellationReceiverStrategy=t.CancellationReceiverStrategy=t.ConnectionError=t.ConnectionErrors=t.LogTraceNotification=t.SetTraceNotification=t.TraceFormat=t.TraceValues=t.TraceValue=t.Trace=void 0;let i=$e();Object.defineProperty(t,"Message",{enumerable:!0,get:function(){return i.Message}}),Object.defineProperty(t,"RequestType",{enumerable:!0,get:function(){return i.RequestType}}),Object.defineProperty(t,"RequestType0",{enumerable:!0,get:function(){return i.RequestType0}}),Object.defineProperty(t,"RequestType1",{enumerable:!0,get:function(){return i.RequestType1}}),Object.defineProperty(t,"RequestType2",{enumerable:!0,get:function(){return i.RequestType2}}),Object.defineProperty(t,"RequestType3",{enumerable:!0,get:function(){return i.RequestType3}}),Object.defineProperty(t,"RequestType4",{enumerable:!0,get:function(){return i.RequestType4}}),Object.defineProperty(t,"RequestType5",{enumerable:!0,get:function(){return i.RequestType5}}),Object.defineProperty(t,"RequestType6",{enumerable:!0,get:function(){return i.RequestType6}}),Object.defineProperty(t,"RequestType7",{enumerable:!0,get:function(){return i.RequestType7}}),Object.defineProperty(t,"RequestType8",{enumerable:!0,get:function(){return i.RequestType8}}),Object.defineProperty(t,"RequestType9",{enumerable:!0,get:function(){return i.RequestType9}}),Object.defineProperty(t,"ResponseError",{enumerable:!0,get:function(){return i.ResponseError}}),Object.defineProperty(t,"ErrorCodes",{enumerable:!0,get:function(){return i.ErrorCodes}}),Object.defineProperty(t,"NotificationType",{enumerable:!0,get:function(){return i.NotificationType}}),Object.defineProperty(t,"NotificationType0",{enumerable:!0,get:function(){return i.NotificationType0}}),Object.defineProperty(t,"NotificationType1",{enumerable:!0,get:function(){return i.NotificationType1}}),Object.defineProperty(t,"NotificationType2",{enumerable:!0,get:function(){return i.NotificationType2}}),Object.defineProperty(t,"NotificationType3",{enumerable:!0,get:function(){return i.NotificationType3}}),Object.defineProperty(t,"NotificationType4",{enumerable:!0,get:function(){return i.NotificationType4}}),Object.defineProperty(t,"NotificationType5",{enumerable:!0,get:function(){return i.NotificationType5}}),Object.defineProperty(t,"NotificationType6",{enumerable:!0,get:function(){return i.NotificationType6}}),Object.defineProperty(t,"NotificationType7",{enumerable:!0,get:function(){return i.NotificationType7}}),Object.defineProperty(t,"NotificationType8",{enumerable:!0,get:function(){return i.NotificationType8}}),Object.defineProperty(t,"NotificationType9",{enumerable:!0,get:function(){return i.NotificationType9}}),Object.defineProperty(t,"ParameterStructures",{enumerable:!0,get:function(){return i.ParameterStructures}});let a=et();Object.defineProperty(t,"LinkedMap",{enumerable:!0,get:function(){return a.LinkedMap}}),Object.defineProperty(t,"LRUCache",{enumerable:!0,get:function(){return a.LRUCache}}),Object.defineProperty(t,"Touch",{enumerable:!0,get:function(){return a.Touch}});let o=tt();Object.defineProperty(t,"Disposable",{enumerable:!0,get:function(){return o.Disposable}});let c=rt();Object.defineProperty(t,"Event",{enumerable:!0,get:function(){return c.Event}}),Object.defineProperty(t,"Emitter",{enumerable:!0,get:function(){return c.Emitter}});let l=it();Object.defineProperty(t,"CancellationTokenSource",{enumerable:!0,get:function(){return l.CancellationTokenSource}}),Object.defineProperty(t,"CancellationToken",{enumerable:!0,get:function(){return l.CancellationToken}});let f=at();Object.defineProperty(t,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return f.SharedArraySenderStrategy}}),Object.defineProperty(t,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return f.SharedArrayReceiverStrategy}});let p=st();Object.defineProperty(t,"MessageReader",{enumerable:!0,get:function(){return p.MessageReader}}),Object.defineProperty(t,"AbstractMessageReader",{enumerable:!0,get:function(){return p.AbstractMessageReader}}),Object.defineProperty(t,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return p.ReadableStreamMessageReader}});let h=ct();Object.defineProperty(t,"MessageWriter",{enumerable:!0,get:function(){return h.MessageWriter}}),Object.defineProperty(t,"AbstractMessageWriter",{enumerable:!0,get:function(){return h.AbstractMessageWriter}}),Object.defineProperty(t,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return h.WriteableStreamMessageWriter}});let _=lt();Object.defineProperty(t,"AbstractMessageBuffer",{enumerable:!0,get:function(){return _.AbstractMessageBuffer}});let x=ut();Object.defineProperty(t,"ConnectionStrategy",{enumerable:!0,get:function(){return x.ConnectionStrategy}}),Object.defineProperty(t,"ConnectionOptions",{enumerable:!0,get:function(){return x.ConnectionOptions}}),Object.defineProperty(t,"NullLogger",{enumerable:!0,get:function(){return x.NullLogger}}),Object.defineProperty(t,"createMessageConnection",{enumerable:!0,get:function(){return x.createMessageConnection}}),Object.defineProperty(t,"ProgressToken",{enumerable:!0,get:function(){return x.ProgressToken}}),Object.defineProperty(t,"ProgressType",{enumerable:!0,get:function(){return x.ProgressType}}),Object.defineProperty(t,"Trace",{enumerable:!0,get:function(){return x.Trace}}),Object.defineProperty(t,"TraceValue",{enumerable:!0,get:function(){return x.TraceValue}}),Object.defineProperty(t,"TraceFormat",{enumerable:!0,get:function(){return x.TraceFormat}}),Object.defineProperty(t,"SetTraceNotification",{enumerable:!0,get:function(){return x.SetTraceNotification}}),Object.defineProperty(t,"LogTraceNotification",{enumerable:!0,get:function(){return x.LogTraceNotification}}),Object.defineProperty(t,"ConnectionErrors",{enumerable:!0,get:function(){return x.ConnectionErrors}}),Object.defineProperty(t,"ConnectionError",{enumerable:!0,get:function(){return x.ConnectionError}}),Object.defineProperty(t,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return x.CancellationReceiverStrategy}}),Object.defineProperty(t,"IdCancellationReceiverStrategy",{enumerable:!0,get:function(){return x.IdCancellationReceiverStrategy}}),Object.defineProperty(t,"RequestCancellationReceiverStrategy",{enumerable:!0,get:function(){return x.RequestCancellationReceiverStrategy}}),Object.defineProperty(t,"CancellationSenderStrategy",{enumerable:!0,get:function(){return x.CancellationSenderStrategy}}),Object.defineProperty(t,"CancellationStrategy",{enumerable:!0,get:function(){return x.CancellationStrategy}}),Object.defineProperty(t,"MessageStrategy",{enumerable:!0,get:function(){return x.MessageStrategy}}),Object.defineProperty(t,"TraceValues",{enumerable:!0,get:function(){return x.TraceValues}}),t.RAL=n(nt()).default})),ft=/* @__PURE__ */ a({AnnotatedTextEdit:()=>Mt,ApplyKind:()=>Zt,ChangeAnnotation:()=>jt,ChangeAnnotationIdentifier:()=>G,CodeAction:()=>_n,CodeActionContext:()=>hn,CodeActionKind:()=>pn,CodeActionTag:()=>gn,CodeActionTriggerKind:()=>mn,CodeDescription:()=>Dt,CodeLens:()=>vn,Color:()=>yt,ColorInformation:()=>bt,ColorPresentation:()=>xt,Command:()=>kt,CompletionItem:()=>$t,CompletionItemKind:()=>Kt,CompletionItemLabelDetails:()=>Qt,CompletionItemTag:()=>Jt,CompletionList:()=>en,CreateFile:()=>Pt,DeleteFile:()=>It,Diagnostic:()=>Ot,DiagnosticRelatedInformation:()=>wt,DiagnosticSeverity:()=>Tt,DiagnosticTag:()=>Et,DocumentHighlight:()=>sn,DocumentHighlightKind:()=>on,DocumentLink:()=>bn,DocumentSymbol:()=>fn,DocumentUri:()=>pt,EOL:()=>zn,FoldingRange:()=>Ct,FoldingRangeKind:()=>St,FormattingOptions:()=>yn,Hover:()=>nn,InlayHint:()=>jn,InlayHintKind:()=>kn,InlayHintLabelPart:()=>An,InlineCompletionContext:()=>Ln,InlineCompletionItem:()=>Nn,InlineCompletionList:()=>Pn,InlineCompletionTriggerKind:()=>Fn,InlineValueContext:()=>On,InlineValueEvaluatableExpression:()=>Dn,InlineValueText:()=>Tn,InlineValueVariableLookup:()=>En,InsertReplaceEdit:()=>Yt,InsertTextFormat:()=>qt,InsertTextMode:()=>Xt,LanguageKind:()=>Ht,Location:()=>_t,LocationLink:()=>vt,MarkedString:()=>tn,MarkupContent:()=>Gt,MarkupKind:()=>Wt,OptionalVersionedTextDocumentIdentifier:()=>Vt,ParameterInformation:()=>rn,Position:()=>U,Range:()=>W,RenameFile:()=>Ft,SelectedCompletionInfo:()=>In,SelectionRange:()=>xn,SemanticTokenModifiers:()=>Cn,SemanticTokenTypes:()=>Sn,SemanticTokens:()=>wn,SignatureInformation:()=>an,SnippetTextEdit:()=>Rt,StringValue:()=>Mn,SymbolInformation:()=>un,SymbolKind:()=>cn,SymbolTag:()=>ln,TextDocument:()=>Bn,TextDocumentEdit:()=>Nt,TextDocumentIdentifier:()=>zt,TextDocumentItem:()=>Ut,TextEdit:()=>At,URI:()=>mt,VersionedTextDocumentIdentifier:()=>Bt,WorkspaceChange:()=>WorkspaceChange,WorkspaceEdit:()=>Lt,WorkspaceFolder:()=>Rn,WorkspaceSymbol:()=>dn,integer:()=>ht,uinteger:()=>gt}),pt,mt,ht,gt,U,W,_t,vt,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Ot,kt,At,jt,G,Mt,Nt,Pt,Ft,It,Lt,TextEditChangeImpl,Rt,ChangeAnnotations,WorkspaceChange,zt,Bt,Vt,Ht,Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on,sn,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,FullTextDocument$1,K,Vn=n((()=>{(function(t){function is(t){return typeof t==`string`}t.is=is})(pt||={}),(function(t){function is(t){return typeof t==`string`}t.is=is})(mt||={}),(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function is(n){return typeof n==`number`&&t.MIN_VALUE<=n&&n<=t.MAX_VALUE}t.is=is})(ht||={}),(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function is(n){return typeof n==`number`&&t.MIN_VALUE<=n&&n<=t.MAX_VALUE}t.is=is})(gt||={}),(function(t){function create(t,n){return t===Number.MAX_VALUE&&(t=gt.MAX_VALUE),n===Number.MAX_VALUE&&(n=gt.MAX_VALUE),{line:t,character:n}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&K.uinteger(n.line)&&K.uinteger(n.character)}t.is=is})(U||={}),(function(t){function create(t,n,i,a){if(K.uinteger(t)&&K.uinteger(n)&&K.uinteger(i)&&K.uinteger(a))return{start:U.create(t,n),end:U.create(i,a)};if(U.is(t)&&U.is(n))return{start:t,end:n};throw Error(`Range#create called with invalid arguments[${t}, ${n}, ${i}, ${a}]`)}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&U.is(n.start)&&U.is(n.end)}t.is=is})(W||={}),(function(t){function create(t,n){return{uri:t,range:n}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&W.is(n.range)&&(K.string(n.uri)||K.undefined(n.uri))}t.is=is})(_t||={}),(function(t){function create(t,n,i,a){return{targetUri:t,targetRange:n,targetSelectionRange:i,originSelectionRange:a}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&W.is(n.targetRange)&&K.string(n.targetUri)&&W.is(n.targetSelectionRange)&&(W.is(n.originSelectionRange)||K.undefined(n.originSelectionRange))}t.is=is})(vt||={}),(function(t){function create(t,n,i,a){return{red:t,green:n,blue:i,alpha:a}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&K.numberRange(n.red,0,1)&&K.numberRange(n.green,0,1)&&K.numberRange(n.blue,0,1)&&K.numberRange(n.alpha,0,1)}t.is=is})(yt||={}),(function(t){function create(t,n){return{range:t,color:n}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&W.is(n.range)&&yt.is(n.color)}t.is=is})(bt||={}),(function(t){function create(t,n,i){return{label:t,textEdit:n,additionalTextEdits:i}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&K.string(n.label)&&(K.undefined(n.textEdit)||At.is(n))&&(K.undefined(n.additionalTextEdits)||K.typedArray(n.additionalTextEdits,At.is))}t.is=is})(xt||={}),(function(t){t.Comment=`comment`,t.Imports=`imports`,t.Region=`region`})(St||={}),(function(t){function create(t,n,i,a,o,c){let l={startLine:t,endLine:n};return K.defined(i)&&(l.startCharacter=i),K.defined(a)&&(l.endCharacter=a),K.defined(o)&&(l.kind=o),K.defined(c)&&(l.collapsedText=c),l}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&K.uinteger(n.startLine)&&K.uinteger(n.startLine)&&(K.undefined(n.startCharacter)||K.uinteger(n.startCharacter))&&(K.undefined(n.endCharacter)||K.uinteger(n.endCharacter))&&(K.undefined(n.kind)||K.string(n.kind))}t.is=is})(Ct||={}),(function(t){function create(t,n){return{location:t,message:n}}t.create=create;function is(t){let n=t;return K.defined(n)&&_t.is(n.location)&&K.string(n.message)}t.is=is})(wt||={}),(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(Tt||={}),(function(t){t.Unnecessary=1,t.Deprecated=2})(Et||={}),(function(t){function is(t){let n=t;return K.objectLiteral(n)&&K.string(n.href)}t.is=is})(Dt||={}),(function(t){function create(t,n,i,a,o,c){let l={range:t,message:n};return K.defined(i)&&(l.severity=i),K.defined(a)&&(l.code=a),K.defined(o)&&(l.source=o),K.defined(c)&&(l.relatedInformation=c),l}t.create=create;function is(t){let n=t;return K.defined(n)&&W.is(n.range)&&(K.string(n.message)||Gt.is(n.message))&&(K.number(n.severity)||K.undefined(n.severity))&&(K.integer(n.code)||K.string(n.code)||K.undefined(n.code))&&(K.undefined(n.codeDescription)||K.string(n.codeDescription?.href))&&(K.string(n.source)||K.undefined(n.source))&&(K.undefined(n.relatedInformation)||K.typedArray(n.relatedInformation,wt.is))}t.is=is;function is3_17(t){return K.string(t.message)}t.is3_17=is3_17;function getMessageString(t){if(K.string(t.message))return t.message;if(Gt.is(t.message))return t.message.value;throw Error(`Unknown message type ${typeof t.message}`)}t.getMessageString=getMessageString})(Ot||={}),(function(t){function create(t,n,...i){let a={title:t,command:n};return K.defined(i)&&i.length>0&&(a.arguments=i),a}t.create=create;function is(t){let n=t;return K.defined(n)&&K.string(n.title)&&(n.tooltip===void 0||K.string(n.tooltip))&&K.string(n.command)}t.is=is})(kt||={}),(function(t){function replace(t,n){return{range:t,newText:n}}t.replace=replace;function insert(t,n){return{range:{start:t,end:t},newText:n}}t.insert=insert;function del(t){return{range:t,newText:``}}t.del=del;function is(t){let n=t;return K.objectLiteral(n)&&K.string(n.newText)&&W.is(n.range)}t.is=is})(At||={}),(function(t){function create(t,n,i){let a={label:t};return n!==void 0&&(a.needsConfirmation=n),i!==void 0&&(a.description=i),a}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&K.string(n.label)&&(K.boolean(n.needsConfirmation)||n.needsConfirmation===void 0)&&(K.string(n.description)||n.description===void 0)}t.is=is})(jt||={}),(function(t){function is(t){let n=t;return K.string(n)}t.is=is})(G||={}),(function(t){function replace(t,n,i){return{range:t,newText:n,annotationId:i}}t.replace=replace;function insert(t,n,i){return{range:{start:t,end:t},newText:n,annotationId:i}}t.insert=insert;function del(t,n){return{range:t,newText:``,annotationId:n}}t.del=del;function is(t){let n=t;return At.is(n)&&(jt.is(n.annotationId)||G.is(n.annotationId))}t.is=is})(Mt||={}),(function(t){function create(t,n){return{textDocument:t,edits:n}}t.create=create;function is(t){let n=t;return K.defined(n)&&Vt.is(n.textDocument)&&Array.isArray(n.edits)}t.is=is})(Nt||={}),(function(t){function create(t,n,i){let a={kind:`create`,uri:t};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(a.options=n),i!==void 0&&(a.annotationId=i),a}t.create=create;function is(t){let n=t;return n&&n.kind===`create`&&K.string(n.uri)&&(n.options===void 0||(n.options.overwrite===void 0||K.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||K.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||G.is(n.annotationId))}t.is=is})(Pt||={}),(function(t){function create(t,n,i,a){let o={kind:`rename`,oldUri:t,newUri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(o.options=i),a!==void 0&&(o.annotationId=a),o}t.create=create;function is(t){let n=t;return n&&n.kind===`rename`&&K.string(n.oldUri)&&K.string(n.newUri)&&(n.options===void 0||(n.options.overwrite===void 0||K.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||K.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||G.is(n.annotationId))}t.is=is})(Ft||={}),(function(t){function create(t,n,i){let a={kind:`delete`,uri:t};return n!==void 0&&(n.recursive!==void 0||n.ignoreIfNotExists!==void 0)&&(a.options=n),i!==void 0&&(a.annotationId=i),a}t.create=create;function is(t){let n=t;return n&&n.kind===`delete`&&K.string(n.uri)&&(n.options===void 0||(n.options.recursive===void 0||K.boolean(n.options.recursive))&&(n.options.ignoreIfNotExists===void 0||K.boolean(n.options.ignoreIfNotExists)))&&(n.annotationId===void 0||G.is(n.annotationId))}t.is=is})(It||={}),(function(t){function is(t){let n=t;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(t=>K.string(t.kind)?Pt.is(t)||Ft.is(t)||It.is(t):Nt.is(t)))}t.is=is})(Lt||={}),TextEditChangeImpl=class{constructor(t,n){this.edits=t,this.changeAnnotations=n}insert(t,n,i){let a,o;if(i===void 0?a=At.insert(t,n):G.is(i)?(o=i,a=Mt.insert(t,n,i)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(i),a=Mt.insert(t,n,o)),this.edits.push(a),o!==void 0)return o}replace(t,n,i){let a,o;if(i===void 0?a=At.replace(t,n):G.is(i)?(o=i,a=Mt.replace(t,n,i)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(i),a=Mt.replace(t,n,o)),this.edits.push(a),o!==void 0)return o}delete(t,n){let i,a;if(n===void 0?i=At.del(t):G.is(n)?(a=n,i=Mt.del(t,n)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(n),i=Mt.del(t,a)),this.edits.push(i),a!==void 0)return a}add(t){this.edits.push(t)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(t){if(t===void 0)throw Error(`Text edit change is not configured to manage change annotations.`)}},(function(t){function is(t){let n=t;return K.objectLiteral(n)&&W.is(n.range)&&Mn.isSnippet(n.snippet)&&(n.annotationId===void 0||jt.is(n.annotationId)||G.is(n.annotationId))}t.is=is})(Rt||={}),ChangeAnnotations=class{constructor(t){this._annotations=t===void 0?Object.create(null):t,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(t,n){let i;if(G.is(t)?i=t:(i=this.nextId(),n=t),this._annotations[i]!==void 0)throw Error(`Id ${i} is already in use.`);if(n===void 0)throw Error(`No annotation provided for id ${i}`);return this._annotations[i]=n,this._size++,i}nextId(){return this._counter++,this._counter.toString()}},WorkspaceChange=class{constructor(t){this._textEditChanges=Object.create(null),t===void 0?this._workspaceEdit={}:(this._workspaceEdit=t,t.documentChanges?(this._changeAnnotations=new ChangeAnnotations(t.changeAnnotations),t.changeAnnotations=this._changeAnnotations.all(),t.documentChanges.forEach(t=>{if(Nt.is(t)){let n=new TextEditChangeImpl(t.edits,this._changeAnnotations);this._textEditChanges[t.textDocument.uri]=n}})):t.changes&&Object.keys(t.changes).forEach(n=>{let i=new TextEditChangeImpl(t.changes[n]);this._textEditChanges[n]=i}))}get edit(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(t){if(Vt.is(t)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw Error(`Workspace edit is not configured for document changes.`);let n={uri:t.uri,version:t.version},i=this._textEditChanges[n.uri];if(!i){let t=[],a={textDocument:n,edits:t};this._workspaceEdit.documentChanges.push(a),i=new TextEditChangeImpl(t,this._changeAnnotations),this._textEditChanges[n.uri]=i}return i}{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw Error(`Workspace edit is not configured for normal text edit changes.`);let n=this._textEditChanges[t];if(!n){let i=[];this._workspaceEdit.changes[t]=i,n=new TextEditChangeImpl(i),this._textEditChanges[t]=n}return n}}initDocumentChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ChangeAnnotations,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))}createFile(t,n,i){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw Error(`Workspace edit is not configured for document changes.`);let a;jt.is(n)||G.is(n)?a=n:i=n;let o,c;if(a===void 0?o=Pt.create(t,i):(c=G.is(a)?a:this._changeAnnotations.manage(a),o=Pt.create(t,i,c)),this._workspaceEdit.documentChanges.push(o),c!==void 0)return c}renameFile(t,n,i,a){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw Error(`Workspace edit is not configured for document changes.`);let o;jt.is(i)||G.is(i)?o=i:a=i;let c,l;if(o===void 0?c=Ft.create(t,n,a):(l=G.is(o)?o:this._changeAnnotations.manage(o),c=Ft.create(t,n,a,l)),this._workspaceEdit.documentChanges.push(c),l!==void 0)return l}deleteFile(t,n,i){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw Error(`Workspace edit is not configured for document changes.`);let a;jt.is(n)||G.is(n)?a=n:i=n;let o,c;if(a===void 0?o=It.create(t,i):(c=G.is(a)?a:this._changeAnnotations.manage(a),o=It.create(t,i,c)),this._workspaceEdit.documentChanges.push(o),c!==void 0)return c}},(function(t){function create(t){return{uri:t}}t.create=create;function is(t){let n=t;return K.defined(n)&&K.string(n.uri)}t.is=is})(zt||={}),(function(t){function create(t,n){return{uri:t,version:n}}t.create=create;function is(t){let n=t;return K.defined(n)&&K.string(n.uri)&&K.integer(n.version)}t.is=is})(Bt||={}),(function(t){function create(t,n){return{uri:t,version:n}}t.create=create;function is(t){let n=t;return K.defined(n)&&K.string(n.uri)&&(n.version===null||K.integer(n.version))}t.is=is})(Vt||={}),(function(t){t.ABAP=`abap`,t.WindowsBat=`bat`,t.BibTeX=`bibtex`,t.Clojure=`clojure`,t.Coffeescript=`coffeescript`,t.C=`c`,t.CPP=`cpp`,t.CSharp=`csharp`,t.CSS=`css`,t.D=`d`,t.Delphi=`pascal`,t.Diff=`diff`,t.Dart=`dart`,t.Dockerfile=`dockerfile`,t.Elixir=`elixir`,t.Erlang=`erlang`,t.FSharp=`fsharp`,t.GitCommit=`git-commit`,t.GitRebase=`git-rebase`,t.Go=`go`,t.Groovy=`groovy`,t.Handlebars=`handlebars`,t.Haskell=`haskell`,t.HTML=`html`,t.Ini=`ini`,t.Java=`java`,t.JavaScript=`javascript`,t.JavaScriptReact=`javascriptreact`,t.JSON=`json`,t.LaTeX=`latex`,t.Less=`less`,t.Lua=`lua`,t.Makefile=`makefile`,t.Markdown=`markdown`,t.ObjectiveC=`objective-c`,t.ObjectiveCPP=`objective-cpp`,t.Pascal=`pascal`,t.Perl=`perl`,t.Perl6=`perl6`,t.PHP=`php`,t.Plaintext=`plaintext`,t.Powershell=`powershell`,t.Pug=`jade`,t.Python=`python`,t.R=`r`,t.Razor=`razor`,t.Ruby=`ruby`,t.Rust=`rust`,t.SCSS=`scss`,t.SASS=`sass`,t.Scala=`scala`,t.ShaderLab=`shaderlab`,t.ShellScript=`shellscript`,t.SQL=`sql`,t.Swift=`swift`,t.TypeScript=`typescript`,t.TypeScriptReact=`typescriptreact`,t.TeX=`tex`,t.VisualBasic=`vb`,t.XML=`xml`,t.XSL=`xsl`,t.YAML=`yaml`})(Ht||={}),(function(t){function create(t,n,i,a){return{uri:t,languageId:n,version:i,text:a}}t.create=create;function is(t){let n=t;return K.defined(n)&&K.string(n.uri)&&K.string(n.languageId)&&K.integer(n.version)&&K.string(n.text)}t.is=is})(Ut||={}),(function(t){t.PlainText=`plaintext`,t.Markdown=`markdown`;function is(n){let i=n;return i===t.PlainText||i===t.Markdown}t.is=is})(Wt||={}),(function(t){function is(t){let n=t;return K.objectLiteral(t)&&Wt.is(n.kind)&&K.string(n.value)}t.is=is})(Gt||={}),(function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25})(Kt||={}),(function(t){t.PlainText=1,t.Snippet=2})(qt||={}),(function(t){t.Deprecated=1})(Jt||={}),(function(t){function create(t,n,i){return{newText:t,insert:n,replace:i}}t.create=create;function is(t){let n=t;return n&&K.string(n.newText)&&W.is(n.insert)&&W.is(n.replace)}t.is=is})(Yt||={}),(function(t){t.asIs=1,t.adjustIndentation=2})(Xt||={}),(function(t){t.Replace=1,t.Merge=2})(Zt||={}),(function(t){function is(t){let n=t;return n&&(K.string(n.detail)||n.detail===void 0)&&(K.string(n.description)||n.description===void 0)}t.is=is})(Qt||={}),(function(t){function create(t){return{label:t}}t.create=create})($t||={}),(function(t){function create(t,n){return{items:t||[],isIncomplete:!!n}}t.create=create})(en||={}),(function(t){function fromPlainText(t){return t.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}t.fromPlainText=fromPlainText;function is(t){let n=t;return K.string(n)||K.objectLiteral(n)&&K.string(n.language)&&K.string(n.value)}t.is=is})(tn||={}),(function(t){function is(t){let n=t;return!!n&&K.objectLiteral(n)&&(Gt.is(n.contents)||tn.is(n.contents)||K.typedArray(n.contents,tn.is))&&(t.range===void 0||W.is(t.range))}t.is=is})(nn||={}),(function(t){function create(t,n){return n?{label:t,documentation:n}:{label:t}}t.create=create})(rn||={}),(function(t){function create(t,n,...i){let a={label:t};return K.defined(n)&&(a.documentation=n),a.parameters=K.defined(i)?i:[],a}t.create=create})(an||={}),(function(t){t.Text=1,t.Read=2,t.Write=3})(on||={}),(function(t){function create(t,n){let i={range:t};return K.number(n)&&(i.kind=n),i}t.create=create})(sn||={}),(function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26})(cn||={}),(function(t){t.Deprecated=1})(ln||={}),(function(t){function create(t,n,i,a,o){let c={name:t,kind:n,location:{uri:a,range:i}};return o&&(c.containerName=o),c}t.create=create})(un||={}),(function(t){function create(t,n,i,a){return a===void 0?{name:t,kind:n,location:{uri:i}}:{name:t,kind:n,location:{uri:i,range:a}}}t.create=create})(dn||={}),(function(t){function create(t,n,i,a,o,c){let l={name:t,detail:n,kind:i,range:a,selectionRange:o};return c!==void 0&&(l.children=c),l}t.create=create;function is(t){let n=t;return n&&K.string(n.name)&&K.number(n.kind)&&W.is(n.range)&&W.is(n.selectionRange)&&(n.detail===void 0||K.string(n.detail))&&(n.deprecated===void 0||K.boolean(n.deprecated))&&(n.children===void 0||Array.isArray(n.children))&&(n.tags===void 0||Array.isArray(n.tags))}t.is=is})(fn||={}),(function(t){t.Empty=``,t.QuickFix=`quickfix`,t.Refactor=`refactor`,t.RefactorExtract=`refactor.extract`,t.RefactorInline=`refactor.inline`,t.RefactorMove=`refactor.move`,t.RefactorRewrite=`refactor.rewrite`,t.Source=`source`,t.SourceOrganizeImports=`source.organizeImports`,t.SourceFixAll=`source.fixAll`,t.Notebook=`notebook`})(pn||={}),(function(t){t.Invoked=1,t.Automatic=2})(mn||={}),(function(t){function create(t,n,i){let a={diagnostics:t};return n!=null&&(a.only=n),i!=null&&(a.triggerKind=i),a}t.create=create;function is(t){let n=t;return K.defined(n)&&K.typedArray(n.diagnostics,Ot.is)&&(n.only===void 0||K.typedArray(n.only,K.string))&&(n.triggerKind===void 0||n.triggerKind===mn.Invoked||n.triggerKind===mn.Automatic)}t.is=is})(hn||={}),(function(t){t.LLMGenerated=1;function is(n){return K.defined(n)&&n===t.LLMGenerated}t.is=is})(gn||={}),(function(t){function create(t,n,i){let a={title:t},o=!0;return typeof n==`string`?(o=!1,a.kind=n):kt.is(n)?a.command=n:a.edit=n,o&&i!==void 0&&(a.kind=i),a}t.create=create;function is(t){let n=t;return n&&K.string(n.title)&&(n.diagnostics===void 0||K.typedArray(n.diagnostics,Ot.is))&&(n.kind===void 0||K.string(n.kind))&&(n.edit!==void 0||n.command!==void 0)&&(n.command===void 0||kt.is(n.command))&&(n.isPreferred===void 0||K.boolean(n.isPreferred))&&(n.edit===void 0||Lt.is(n.edit))&&(n.tags===void 0||K.typedArray(n.tags,gn.is))}t.is=is})(_n||={}),(function(t){function create(t,n){let i={range:t};return K.defined(n)&&(i.data=n),i}t.create=create;function is(t){let n=t;return K.defined(n)&&W.is(n.range)&&(K.undefined(n.command)||kt.is(n.command))}t.is=is})(vn||={}),(function(t){function create(t,n){return{tabSize:t,insertSpaces:n}}t.create=create;function is(t){let n=t;return K.defined(n)&&K.uinteger(n.tabSize)&&K.boolean(n.insertSpaces)}t.is=is})(yn||={}),(function(t){function create(t,n,i){return{range:t,target:n,data:i}}t.create=create;function is(t){let n=t;return K.defined(n)&&W.is(n.range)&&(K.undefined(n.target)||K.string(n.target))}t.is=is})(bn||={}),(function(t){function create(t,n){return{range:t,parent:n}}t.create=create;function is(n){let i=n;return K.objectLiteral(i)&&W.is(i.range)&&(i.parent===void 0||t.is(i.parent))}t.is=is})(xn||={}),(function(t){t.namespace=`namespace`,t.type=`type`,t.class=`class`,t.enum=`enum`,t.interface=`interface`,t.struct=`struct`,t.typeParameter=`typeParameter`,t.parameter=`parameter`,t.variable=`variable`,t.property=`property`,t.enumMember=`enumMember`,t.event=`event`,t.function=`function`,t.method=`method`,t.macro=`macro`,t.keyword=`keyword`,t.modifier=`modifier`,t.comment=`comment`,t.string=`string`,t.number=`number`,t.regexp=`regexp`,t.operator=`operator`,t.decorator=`decorator`,t.label=`label`})(Sn||={}),(function(t){t.declaration=`declaration`,t.definition=`definition`,t.readonly=`readonly`,t.static=`static`,t.deprecated=`deprecated`,t.abstract=`abstract`,t.async=`async`,t.modification=`modification`,t.documentation=`documentation`,t.defaultLibrary=`defaultLibrary`})(Cn||={}),(function(t){function is(t){let n=t;return K.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId==`string`)&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]==`number`)}t.is=is})(wn||={}),(function(t){function create(t,n){return{range:t,text:n}}t.create=create;function is(t){let n=t;return n!=null&&W.is(n.range)&&K.string(n.text)}t.is=is})(Tn||={}),(function(t){function create(t,n,i){return{range:t,variableName:n,caseSensitiveLookup:i}}t.create=create;function is(t){let n=t;return n!=null&&W.is(n.range)&&K.boolean(n.caseSensitiveLookup)&&(K.string(n.variableName)||n.variableName===void 0)}t.is=is})(En||={}),(function(t){function create(t,n){return{range:t,expression:n}}t.create=create;function is(t){let n=t;return n!=null&&W.is(n.range)&&(K.string(n.expression)||n.expression===void 0)}t.is=is})(Dn||={}),(function(t){function create(t,n){return{frameId:t,stoppedLocation:n}}t.create=create;function is(t){let n=t;return K.defined(n)&&W.is(t.stoppedLocation)}t.is=is})(On||={}),(function(t){t.Type=1,t.Parameter=2;function is(t){return t===1||t===2}t.is=is})(kn||={}),(function(t){function create(t){return{value:t}}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&(n.tooltip===void 0||K.string(n.tooltip)||Gt.is(n.tooltip))&&(n.location===void 0||_t.is(n.location))&&(n.command===void 0||kt.is(n.command))}t.is=is})(An||={}),(function(t){function create(t,n,i){let a={position:t,label:n};return i!==void 0&&(a.kind=i),a}t.create=create;function is(t){let n=t;return K.objectLiteral(n)&&U.is(n.position)&&(K.string(n.label)||K.typedArray(n.label,An.is))&&(n.kind===void 0||kn.is(n.kind))&&n.textEdits===void 0||K.typedArray(n.textEdits,At.is)&&(n.tooltip===void 0||K.string(n.tooltip)||Gt.is(n.tooltip))&&(n.paddingLeft===void 0||K.boolean(n.paddingLeft))&&(n.paddingRight===void 0||K.boolean(n.paddingRight))}t.is=is})(jn||={}),(function(t){function createSnippet(t){return{kind:`snippet`,value:t}}t.createSnippet=createSnippet;function isSnippet(t){let n=t;return K.objectLiteral(n)&&n.kind===`snippet`&&K.string(n.value)}t.isSnippet=isSnippet})(Mn||={}),(function(t){function create(t,n,i,a){return{insertText:t,filterText:n,range:i,command:a}}t.create=create})(Nn||={}),(function(t){function create(t){return{items:t}}t.create=create})(Pn||={}),(function(t){t.Invoked=1,t.Automatic=2})(Fn||={}),(function(t){function create(t,n){return{range:t,text:n}}t.create=create})(In||={}),(function(t){function create(t,n){return{triggerKind:t,selectedCompletionInfo:n}}t.create=create})(Ln||={}),(function(t){function is(t){let n=t;return K.objectLiteral(n)&&mt.is(n.uri)&&K.string(n.name)}t.is=is})(Rn||={}),zn=[`
5
9
  `,`\r
6
- `,`\r`],(function(t){function create(t,n,i,o){return new FullTextDocument$1(t,n,i,o)}t.create=create;function is(t){let n=t;return!!(K.defined(n)&&K.string(n.uri)&&(K.undefined(n.languageId)||K.string(n.languageId))&&K.uinteger(n.lineCount)&&K.func(n.getText)&&K.func(n.positionAt)&&K.func(n.offsetAt))}t.is=is;function applyEdits(t,n){let i=t.getText(),o=mergeSort(n,(t,n)=>{let i=t.range.start.line-n.range.start.line;return i===0?t.range.start.character-n.range.start.character:i}),s=i.length;for(let n=o.length-1;n>=0;n--){let c=o[n],u=t.offsetAt(c.range.start),f=t.offsetAt(c.range.end);if(f<=s)i=i.substring(0,u)+c.newText+i.substring(f,i.length);else throw Error(`Overlapping edit`);s=u}return i}t.applyEdits=applyEdits;function mergeSort(t,n){if(t.length<=1)return t;let i=t.length/2|0,o=t.slice(0,i),s=t.slice(i);mergeSort(o,n),mergeSort(s,n);let c=0,u=0,f=0;for(;c<o.length&&u<s.length;)n(o[c],s[u])<=0?t[f++]=o[c++]:t[f++]=s[u++];for(;c<o.length;)t[f++]=o[c++];for(;u<s.length;)t[f++]=s[u++];return t}})(_n||={}),FullTextDocument$1=class{static{i(this,`FullTextDocument`)}constructor(t,n,i,o){this._uri=t,this._languageId=n,this._version=i,this._content=o,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let n=this.offsetAt(t.start),i=this.offsetAt(t.end);return this._content.substring(n,i)}return this._content}update(t,n){this._content=t.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let t=[],n=this._content,i=!0;for(let o=0;o<n.length;o++){i&&=(t.push(o),!1);let s=n.charAt(o);i=s===`\r`||s===`
7
- `,s===`\r`&&o+1<n.length&&n.charAt(o+1)===`
8
- `&&o++}i&&n.length>0&&t.push(n.length),this._lineOffsets=t}return this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let n=this.getLineOffsets(),i=0,o=n.length;if(o===0)return U.create(0,t);for(;i<o;){let s=Math.floor((i+o)/2);n[s]>t?o=s:i=s+1}let s=i-1;return U.create(s,t-n[s])}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let i=n[t.line],o=t.line+1<n.length?n[t.line+1]:this._content.length;return Math.max(Math.min(i+t.character,o),i)}get lineCount(){return this.getLineOffsets().length}},(function(t){let n=Object.prototype.toString;function defined(t){return t!==void 0}t.defined=defined;function undefined(t){return t===void 0}t.undefined=undefined;function boolean(t){return t===!0||t===!1}t.boolean=boolean;function string(t){return n.call(t)===`[object String]`}t.string=string;function number(t){return n.call(t)===`[object Number]`}t.number=number;function numberRange(t,i,o){return n.call(t)===`[object Number]`&&i<=t&&t<=o}t.numberRange=numberRange;function integer(t){return n.call(t)===`[object Number]`&&-2147483648<=t&&t<=2147483647}t.integer=integer;function uinteger(t){return n.call(t)===`[object Number]`&&0<=t&&t<=2147483647}t.uinteger=uinteger;function func(t){return n.call(t)===`[object Function]`}t.func=func;function objectLiteral(t){return typeof t==`object`&&!!t}t.objectLiteral=objectLiteral;function typedArray(t,n){return Array.isArray(t)&&t.every(n)}t.typedArray=typedArray})(K||={})}));vn();var CstNodeBuilder=class{constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]??this.rootNode}buildRootNode(t){return this.rootNode=new RootCstNodeImpl(t),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(t){let n=new CompositeCstNodeImpl;return n.grammarSource=t,n.root=this.rootNode,this.current.content.push(n),this.nodeStack.push(n),n}buildLeafNode(t,n){let i=new LeafCstNodeImpl(t.startOffset,t.image.length,tokenToRange(t),t.tokenType,!n);return i.grammarSource=n,i.root=this.rootNode,this.current.content.push(i),i}removeNode(t){let n=t.container;if(n){let i=n.content.indexOf(t);i>=0&&n.content.splice(i,1)}}addHiddenNodes(t){let n=[];for(let i of t){let t=new LeafCstNodeImpl(i.startOffset,i.image.length,tokenToRange(i),i.tokenType,!0);t.root=this.rootNode,n.push(t)}let i=this.current,o=!1;if(i.content.length>0){i.content.push(...n);return}for(;i.container;){let t=i.container.content.indexOf(i);if(t>0){i.container.content.splice(t,0,...n),o=!0;break}i=i.container}o||this.rootNode.content.unshift(...n)}construct(t){let n=this.current;typeof t.$type==`string`&&(this.current.astNode=t),t.$cstNode=n;let i=this.nodeStack.pop();i?.content.length===0&&this.removeNode(i)}},AbstractCstNode=class{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){let t=typeof this._astNode?.$type==`string`?this._astNode:this.container?.astNode;if(!t)throw Error(`This node has no associated AST element`);return t}set astNode(t){this._astNode=t}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}},LeafCstNodeImpl=class extends AbstractCstNode{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(t,n,i,o,s=!1){super(),this._hidden=s,this._offset=t,this._tokenType=o,this._length=n,this._range=i}},CompositeCstNodeImpl=class extends AbstractCstNode{constructor(){super(...arguments),this.content=new yn(this)}get children(){return this.content}get offset(){return this.firstNonHiddenNode?.offset??0}get length(){return this.end-this.offset}get end(){return this.lastNonHiddenNode?.end??0}get range(){let t=this.firstNonHiddenNode,n=this.lastNonHiddenNode;if(t&&n){if(this._rangeCache===void 0){let{range:i}=t,{range:o}=n;this._rangeCache={start:i.start,end:o.end.line<i.start.line?i.start:o.end}}return this._rangeCache}return{start:U.create(0,0),end:U.create(0,0)}}get firstNonHiddenNode(){for(let t of this.content)if(!t.hidden)return t;return this.content[0]}get lastNonHiddenNode(){for(let t=this.content.length-1;t>=0;t--){let n=this.content[t];if(!n.hidden)return n}return this.content[this.content.length-1]}},yn=class CstNodeContainer extends Array{constructor(t){super(),this.parent=t,Object.setPrototypeOf(this,CstNodeContainer.prototype)}push(...t){return this.addParents(t),super.push(...t)}unshift(...t){return this.addParents(t),super.unshift(...t)}splice(t,n,...i){return this.addParents(i),super.splice(t,n,...i)}addParents(t){for(let n of t)n.container=this.parent}},RootCstNodeImpl=class extends CompositeCstNodeImpl{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(t){super(),this._text=``,this._text=t??``}};const bn=Symbol(`Datatype`);function isDataTypeNode(t){return t.$type===bn}const withRuleSuffix=t=>t.endsWith(`​`)?t:t+`​`;var AbstractLangiumParser=class{constructor(t){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=t.parser.Lexer;let n=this.lexer.definition,i=t.LanguageMetaData.mode===`production`;this.wrapper=new ChevrotainWrapper(n,Object.assign(Object.assign({},t.parser.ParserConfig),{skipValidations:i,errorMessageProvider:t.parser.ParserErrorMessageProvider}))}alternatives(t,n){this.wrapper.wrapOr(t,n)}optional(t,n){this.wrapper.wrapOption(t,n)}many(t,n){this.wrapper.wrapMany(t,n)}atLeastOne(t,n){this.wrapper.wrapAtLeastOne(t,n)}getRule(t){return this.allRules.get(t)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},LangiumParser=class extends AbstractLangiumParser{get current(){return this.stack[this.stack.length-1]}constructor(t){super(t),this.nodeBuilder=new CstNodeBuilder,this.stack=[],this.assignmentMap=new Map,this.linker=t.references.Linker,this.converter=t.parser.ValueConverter,this.astReflection=t.shared.AstReflection}rule(t,n){let i=this.computeRuleType(t),o=this.wrapper.DEFINE_RULE(withRuleSuffix(t.name),this.startImplementation(i,n).bind(this));return this.allRules.set(t.name,o),t.entry&&(this.mainRule=o),o}computeRuleType(t){if(!t.fragment)return isDataTypeRule(t)?bn:getExplicitRuleType(t)??t.name}parse(t,n={}){this.nodeBuilder.buildRootNode(t);let i=this.lexerResult=this.lexer.tokenize(t);this.wrapper.input=i.tokens;let o=n.rule?this.allRules.get(n.rule):this.mainRule;if(!o)throw Error(n.rule?`No rule found with name '${n.rule}'`:`No main rule available.`);let s=this.doParse(o);return this.nodeBuilder.addHiddenNodes(i.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:s,lexerErrors:i.errors,lexerReport:i.report,parserErrors:this.wrapper.errors}}doParse(t){let n=t.call(this.wrapper,{});if(this.stack.length>0&&(n=this.construct()),n===void 0)throw Error(`No result from parser`);if(this.stack.length>0)throw Error(`Parser stack is not empty after parsing`);return n}startImplementation(t,n){return i=>{let o=!this.isRecording()&&t!==void 0;if(o){let n={$type:t};this.stack.push(n),t===bn&&(n.value=``)}return n(i),o?this.construct():void 0}}extractHiddenTokens(t){let n=this.lexerResult.hidden;if(!n.length)return[];let i=t.startOffset;for(let t=0;t<n.length;t++)if(n[t].startOffset>i)return n.splice(0,t);return n.splice(0,n.length)}consume(t,n,i){let o=this.wrapper.wrapConsume(t,n);if(!this.isRecording()&&this.isValidToken(o)){let t=this.extractHiddenTokens(o);this.nodeBuilder.addHiddenNodes(t);let n=this.nodeBuilder.buildLeafNode(o,i),{assignment:s,isCrossRef:c}=this.getAssignment(i),u=this.current;if(s){let t=isKeyword(i)?o.image:this.converter.convert(o.image,n);this.assign(s.operator,s.feature,t,n,c)}else if(isDataTypeNode(u)){let t=o.image;isKeyword(i)||(t=this.converter.convert(t,n).toString()),u.value+=t}}}isValidToken(t){return!t.isInsertedInRecovery&&!isNaN(t.startOffset)&&typeof t.endOffset==`number`&&!isNaN(t.endOffset)}subrule(t,n,i,o,s){let c;!this.isRecording()&&!i&&(c=this.nodeBuilder.buildCompositeNode(o));let u;try{u=this.wrapper.wrapSubrule(t,n,s)}finally{this.isRecording()||(u===void 0&&!i&&(u=this.construct()),u!==void 0&&c&&c.length>0&&this.performSubruleAssignment(u,o,c))}}performSubruleAssignment(t,n,i){let{assignment:o,isCrossRef:s}=this.getAssignment(n);if(o)this.assign(o.operator,o.feature,t,i,s);else if(!o){let n=this.current;if(isDataTypeNode(n))n.value+=t.toString();else if(typeof t==`object`&&t){let i=this.assignWithoutOverride(t,n);this.stack.pop(),this.stack.push(i)}}}action(t,n){if(!this.isRecording()){let i=this.current;if(n.feature&&n.operator){i=this.construct(),this.nodeBuilder.removeNode(i.$cstNode),this.nodeBuilder.buildCompositeNode(n).content.push(i.$cstNode);let o={$type:t};this.stack.push(o),this.assign(n.operator,n.feature,i,i.$cstNode,!1)}else i.$type=t}}construct(){if(this.isRecording())return;let t=this.current;return linkContentToContainer(t),this.nodeBuilder.construct(t),this.stack.pop(),isDataTypeNode(t)?this.converter.convert(t.value,t.$cstNode):(assignMandatoryProperties(this.astReflection,t),t)}getAssignment(t){if(!this.assignmentMap.has(t)){let n=getContainerOfType(t,isAssignment);this.assignmentMap.set(t,{assignment:n,isCrossRef:n?isCrossReference(n.terminal):!1})}return this.assignmentMap.get(t)}assign(t,n,i,o,s){let c=this.current,u;switch(u=s&&typeof i==`string`?this.linker.buildReference(c,n,o,i):i,t){case`=`:c[n]=u;break;case`?=`:c[n]=!0;break;case`+=`:Array.isArray(c[n])||(c[n]=[]),c[n].push(u)}}assignWithoutOverride(t,n){for(let[i,o]of Object.entries(n)){let n=t[i];n===void 0?t[i]=o:Array.isArray(n)&&Array.isArray(o)&&(o.push(...n),t[i]=o)}let i=t.$cstNode;return i&&(i.astNode=void 0,t.$cstNode=void 0),t}get definitionErrors(){return this.wrapper.definitionErrors}},AbstractParserErrorMessageProvider=class{buildMismatchTokenMessage(t){return g.buildMismatchTokenMessage(t)}buildNotAllInputParsedMessage(t){return g.buildNotAllInputParsedMessage(t)}buildNoViableAltMessage(t){return g.buildNoViableAltMessage(t)}buildEarlyExitMessage(t){return g.buildEarlyExitMessage(t)}},LangiumParserErrorMessageProvider=class extends AbstractParserErrorMessageProvider{buildMismatchTokenMessage({expected:t,actual:n}){return`Expecting ${t.LABEL?"`"+t.LABEL+"`":t.name.endsWith(`:KW`)?`keyword '${t.name.substring(0,t.name.length-3)}'`:`token of type '${t.name}'`} but found \`${n.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:t}){return`Expecting end of file but found \`${t.image}\`.`}},LangiumCompletionParser=class extends AbstractLangiumParser{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(t){this.resetState();let n=this.lexer.tokenize(t,{mode:`partial`});return this.tokens=n.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(t,n){let i=this.wrapper.DEFINE_RULE(withRuleSuffix(t.name),this.startImplementation(n).bind(this));return this.allRules.set(t.name,i),t.entry&&(this.mainRule=i),i}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(t){return n=>{let i=this.keepStackSize();try{t(n)}finally{this.resetStackSize(i)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let t=this.elementStack.length;return this.stackSize=t,t}resetStackSize(t){this.removeUnexpectedElements(),this.stackSize=t}consume(t,n,i){this.wrapper.wrapConsume(t,n),this.isRecording()||(this.lastElementStack=[...this.elementStack,i],this.nextTokenIndex=this.currIdx+1)}subrule(t,n,i,o,s){this.before(o),this.wrapper.wrapSubrule(t,n,s),this.after(o)}before(t){this.isRecording()||this.elementStack.push(t)}after(t){if(!this.isRecording()){let n=this.elementStack.lastIndexOf(t);n>=0&&this.elementStack.splice(n)}}get currIdx(){return this.wrapper.currIdx}};const xn={recoveryEnabled:!0,nodeLocationTracking:`full`,skipValidations:!0,errorMessageProvider:new LangiumParserErrorMessageProvider};var ChevrotainWrapper=class extends x{constructor(t,n){let i=n&&`maxLookahead`in n;super(t,Object.assign(Object.assign(Object.assign({},xn),{lookaheadStrategy:i?new T({maxLookahead:n.maxLookahead}):new ee({logging:n.skipValidations?()=>{}:void 0})}),n))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(t,n,i){return this.RULE(t,n,i)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(t,n){return this.consume(t,n,void 0)}wrapSubrule(t,n,i){return this.subrule(t,n,{ARGS:[i]})}wrapOr(t,n){this.or(t,n)}wrapOption(t,n){this.option(t,n)}wrapMany(t,n){this.many(t,n)}wrapAtLeastOne(t,n){this.atLeastOne(t,n)}};function createParser(t,n,i){return buildRules({parser:n,tokens:i,ruleNames:new Map},t),n}function buildRules(t,n){let i=getAllReachableRules(n,!1),o=stream(n.rules).filter(isParserRule).filter(t=>i.has(t));for(let n of o){let i=Object.assign(Object.assign({},t),{consume:1,optional:1,subrule:1,many:1,or:1});t.parser.rule(n,buildElement(i,n.definition))}}function buildElement(t,n,i=!1){let method;if(isKeyword(n))method=buildKeyword(t,n);else if(isAction(n))method=buildAction(t,n);else if(isAssignment(n))method=buildElement(t,n.terminal);else if(isCrossReference(n))method=buildCrossReference(t,n);else if(isRuleCall(n))method=buildRuleCall(t,n);else if(isAlternatives(n))method=buildAlternatives(t,n);else if(isUnorderedGroup(n))method=buildUnorderedGroup(t,n);else if(isGroup(n))method=buildGroup(t,n);else if(isEndOfFile(n)){let i=t.consume++;method=()=>t.parser.consume(i,S,n)}else throw new ErrorWithLocation(n.$cstNode,`Unexpected element type: ${n.$type}`);return wrap(t,i?void 0:getGuardCondition(n),method,n.cardinality)}function buildAction(t,n){let i=getTypeName(n);return()=>t.parser.action(i,n)}function buildRuleCall(t,n){let i=n.rule.ref;if(isParserRule(i)){let o=t.subrule++,s=i.fragment,c=n.arguments.length>0?buildRuleCallPredicate(i,n.arguments):()=>({});return u=>t.parser.subrule(o,getRule(t,i),s,n,c(u))}if(isTerminalRule(i)){let o=t.consume++,s=getToken(t,i.name);return()=>t.parser.consume(o,s,n)}if(i)assertUnreachable(i);else throw new ErrorWithLocation(n.$cstNode,`Undefined rule: ${n.rule.$refText}`)}function buildRuleCallPredicate(t,n){let i=n.map(t=>buildPredicate(t.value));return n=>{let o={};for(let s=0;s<i.length;s++){let c=t.parameters[s],u=i[s];o[c.name]=u(n)}return o}}function buildPredicate(t){if(isDisjunction(t)){let n=buildPredicate(t.left),i=buildPredicate(t.right);return t=>n(t)||i(t)}if(isConjunction(t)){let n=buildPredicate(t.left),i=buildPredicate(t.right);return t=>n(t)&&i(t)}if(isNegation(t)){let n=buildPredicate(t.value);return t=>!n(t)}if(isParameterReference(t)){let n=t.parameter.ref.name;return t=>t!==void 0&&t[n]===!0}if(isBooleanLiteral(t)){let n=!!t.true;return()=>n}assertUnreachable(t)}function buildAlternatives(t,n){if(n.elements.length===1)return buildElement(t,n.elements[0]);{let i=[];for(let o of n.elements){let n={ALT:buildElement(t,o,!0)},s=getGuardCondition(o);s&&(n.GATE=buildPredicate(s)),i.push(n)}let o=t.or++;return n=>t.parser.alternatives(o,i.map(t=>{let i={ALT:()=>t.ALT(n)},o=t.GATE;return o&&(i.GATE=()=>o(n)),i}))}}function buildUnorderedGroup(t,n){if(n.elements.length===1)return buildElement(t,n.elements[0]);let i=[];for(let o of n.elements){let n={ALT:buildElement(t,o,!0)},s=getGuardCondition(o);s&&(n.GATE=buildPredicate(s)),i.push(n)}let o=t.or++,idFunc=(t,n)=>`uGroup_${t}_${n.getRuleStack().join(`-`)}`,alternatives=n=>t.parser.alternatives(o,i.map((i,s)=>{let c={ALT:()=>!0},u=t.parser;c.ALT=()=>{if(i.ALT(n),!u.isRecording()){let t=idFunc(o,u);u.unorderedGroups.get(t)||u.unorderedGroups.set(t,[]);let n=u.unorderedGroups.get(t);n?.[s]===void 0&&(n[s]=!0)}};let f=i.GATE;return c.GATE=f?()=>f(n):()=>!u.unorderedGroups.get(idFunc(o,u))?.[s],c})),s=wrap(t,getGuardCondition(n),alternatives,`*`);return n=>{s(n),t.parser.isRecording()||t.parser.unorderedGroups.delete(idFunc(o,t.parser))}}function buildGroup(t,n){let i=n.elements.map(n=>buildElement(t,n));return t=>i.forEach(n=>n(t))}function getGuardCondition(t){if(isGroup(t))return t.guardCondition}function buildCrossReference(t,n,i=n.terminal){if(!i){if(!n.type.ref)throw Error(`Could not resolve reference to type: `+n.type.$refText);let i=findNameAssignment(n.type.ref)?.terminal;if(!i)throw Error(`Could not find name assignment for type: `+getTypeName(n.type.ref));return buildCrossReference(t,n,i)}if(isRuleCall(i)&&isParserRule(i.rule.ref)){let o=i.rule.ref,s=t.subrule++;return i=>t.parser.subrule(s,getRule(t,o),!1,n,i)}if(isRuleCall(i)&&isTerminalRule(i.rule.ref)){let o=t.consume++,s=getToken(t,i.rule.ref.name);return()=>t.parser.consume(o,s,n)}if(isKeyword(i)){let o=t.consume++,s=getToken(t,i.value);return()=>t.parser.consume(o,s,n)}throw Error(`Could not build cross reference parser`)}function buildKeyword(t,n){let i=t.consume++,o=t.tokens[n.value];if(!o)throw Error(`Could not find token for keyword: `+n.value);return()=>t.parser.consume(i,o,n)}function wrap(t,n,i,o){let s=n&&buildPredicate(n);if(!o){if(s){let n=t.or++;return o=>t.parser.alternatives(n,[{ALT:()=>i(o),GATE:()=>s(o)},{ALT:E(),GATE:()=>!s(o)}])}return i}if(o===`*`){let n=t.many++;return o=>t.parser.many(n,{DEF:()=>i(o),GATE:s?()=>s(o):void 0})}if(o===`+`){let n=t.many++;if(s){let o=t.or++;return c=>t.parser.alternatives(o,[{ALT:()=>t.parser.atLeastOne(n,{DEF:()=>i(c)}),GATE:()=>s(c)},{ALT:E(),GATE:()=>!s(c)}])}return o=>t.parser.atLeastOne(n,{DEF:()=>i(o)})}if(o===`?`){let n=t.optional++;return o=>t.parser.optional(n,{DEF:()=>i(o),GATE:s?()=>s(o):void 0})}assertUnreachable(o)}function getRule(t,n){let i=getRuleName(t,n),o=t.parser.getRule(i);if(!o)throw Error(`Rule "${i}" not found."`);return o}function getRuleName(t,n){if(isParserRule(n))return n.name;if(t.ruleNames.has(n))return t.ruleNames.get(n);{let i=n,o=i.$container,s=n.$type;for(;!isParserRule(o);)(isGroup(o)||isAlternatives(o)||isUnorderedGroup(o))&&(s=o.elements.indexOf(i).toString()+`:`+s),i=o,o=o.$container;return s=o.name+`:`+s,t.ruleNames.set(n,s),s}}function getToken(t,n){let i=t.tokens[n];if(!i)throw Error(`Token "${n}" not found."`);return i}function createCompletionParser(t){let n=t.Grammar,i=t.parser.Lexer,o=new LangiumCompletionParser(t);return createParser(n,o,i.definition),o.finalize(),o}function createLangiumParser(t){let n=prepareLangiumParser(t);return n.finalize(),n}function prepareLangiumParser(t){let n=t.Grammar,i=t.parser.Lexer;return createParser(n,new LangiumParser(t),i.definition)}var DefaultTokenBuilder=class{constructor(){this.diagnostics=[]}buildTokens(t,n){let i=stream(getAllReachableRules(t,!1)),o=this.buildTerminalTokens(i),s=this.buildKeywordTokens(i,o,n);return s.push(...o),s}flushLexingReport(t){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let t=[...this.diagnostics];return this.diagnostics=[],t}buildTerminalTokens(t){return t.filter(isTerminalRule).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(t){let n=terminalRegex(t),i=this.requiresCustomPattern(n)?this.regexPatternFunction(n):n,o={name:t.name,PATTERN:i};return typeof i==`function`&&(o.LINE_BREAKS=!0),t.hidden&&(o.GROUP=isWhitespace(n)?_.SKIPPED:`hidden`),o}requiresCustomPattern(t){return t.flags.includes(`u`)||t.flags.includes(`s`)?!0:!!(t.source.includes(`?<=`)||t.source.includes(`?<!`))}regexPatternFunction(t){let n=new RegExp(t,t.flags+`y`);return(t,i)=>(n.lastIndex=i,n.exec(t))}buildKeywordTokens(t,n,i){return t.filter(isParserRule).flatMap(t=>streamAllContents(t).filter(isKeyword)).distinct(t=>t.value).toArray().sort((t,n)=>n.value.length-t.value.length).map(t=>this.buildKeywordToken(t,n,!!i?.caseInsensitive))}buildKeywordToken(t,n,i){let o=this.buildKeywordPattern(t,i),s={name:t.value,PATTERN:o,LONGER_ALT:this.findLongerAlt(t,n)};return typeof o==`function`&&(s.LINE_BREAKS=!0),s}buildKeywordPattern(t,n){return n?new RegExp(escapeRegExp(t.value),`i`):t.value}findLongerAlt(t,n){return n.reduce((n,i)=>{let o=i?.PATTERN;return o?.source&&partialMatches(`^`+o.source+`$`,t.value)&&n.push(i),n},[])}},DefaultValueConverter=class{convert(t,n){let i=n.grammarSource;if(isCrossReference(i)&&(i=getCrossReferenceTerminal(i)),isRuleCall(i)){let o=i.rule.ref;if(!o)throw Error(`This cst node was not parsed by a rule.`);return this.runConverter(o,t,n)}return t}runConverter(t,n,i){switch(t.name.toUpperCase()){case`INT`:return Sn.convertInt(n);case`STRING`:return Sn.convertString(n);case`ID`:return Sn.convertID(n)}switch(getRuleType(t)?.toLowerCase()){case`number`:return Sn.convertNumber(n);case`boolean`:return Sn.convertBoolean(n);case`bigint`:return Sn.convertBigint(n);case`date`:return Sn.convertDate(n);default:return n}}},Sn;(function(t){function convertString(t){let n=``;for(let i=1;i<t.length-1;i++){let o=t.charAt(i);if(o===`\\`){let o=t.charAt(++i);n+=convertEscapeCharacter(o)}else n+=o}return n}t.convertString=convertString;function convertEscapeCharacter(t){switch(t){case`b`:return`\b`;case`f`:return`\f`;case`n`:return`
9
- `;case`r`:return`\r`;case`t`:return` `;case`v`:return`\v`;case`0`:return`\0`;default:return t}}function convertID(t){return t.charAt(0)===`^`?t.substring(1):t}t.convertID=convertID;function convertInt(t){return parseInt(t)}t.convertInt=convertInt;function convertBigint(t){return BigInt(t)}t.convertBigint=convertBigint;function convertDate(t){return new Date(t)}t.convertDate=convertDate;function convertNumber(t){return Number(t)}t.convertNumber=convertNumber;function convertBoolean(t){return t.toLowerCase()===`true`}t.convertBoolean=convertBoolean})(Sn||={});var Cn=f((t=>{Object.defineProperty(t,"__esModule",{value:!0});let n;function RAL(){if(n===void 0)throw Error(`No runtime abstraction layer installed`);return n}(function(t){function install(t){if(t===void 0)throw Error(`No runtime abstraction layer provided`);n=t}t.install=install})(RAL||={}),t.default=RAL})),wn=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.stringArray=t.array=t.func=t.error=t.number=t.string=t.boolean=void 0;function boolean(t){return t===!0||t===!1}t.boolean=boolean;function string(t){return typeof t==`string`||t instanceof String}t.string=string;function number(t){return typeof t==`number`||t instanceof Number}t.number=number;function error(t){return t instanceof Error}t.error=error;function func(t){return typeof t==`function`}t.func=func;function array(t){return Array.isArray(t)}t.array=array;function stringArray(t){return array(t)&&t.every(t=>string(t))}t.stringArray=stringArray})),Tn=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Emitter=t.Event=void 0;let n=Cn();var i;(function(t){let n={dispose(){}};t.None=function(){return n}})(i||(t.Event=i={}));var CallbackList=class{add(t,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(t),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(t,n)})}remove(t,n=null){if(!this._callbacks)return;let i=!1;for(let o=0,s=this._callbacks.length;o<s;o++)if(this._callbacks[o]===t){if(this._contexts[o]===n){this._callbacks.splice(o,1),this._contexts.splice(o,1);return}i=!0}if(i)throw Error(`When adding a listener with a context, you should remove it with the same context`)}invoke(...t){if(!this._callbacks)return[];let i=[],o=this._callbacks.slice(0),s=this._contexts.slice(0);for(let c=0,u=o.length;c<u;c++)try{i.push(o[c].apply(s[c],t))}catch(t){(0,n.default)().console.error(t)}return i}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},o=class Emitter{constructor(t){this._options=t}get event(){return this._event||=(t,n,i)=>{this._callbacks||=new CallbackList,this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,n);let o={dispose:()=>{this._callbacks&&(this._callbacks.remove(t,n),o.dispose=Emitter._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(o),o},this._event}fire(t){this._callbacks&&this._callbacks.invoke.call(this._callbacks,t)}dispose(){this._callbacks&&=(this._callbacks.dispose(),void 0)}};t.Emitter=o,o._noop=function(){}})),En=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CancellationTokenSource=t.CancellationToken=void 0;let n=Cn(),i=wn(),o=Tn();var s;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:o.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:o.Event.None});function is(n){let o=n;return o&&(o===t.None||o===t.Cancelled||i.boolean(o.isCancellationRequested)&&!!o.onCancellationRequested)}t.is=is})(s||(t.CancellationToken=s={}));let c=Object.freeze(function(t,i){let o=(0,n.default)().timer.setTimeout(t.bind(i),0);return{dispose(){o.dispose()}}});var MutableToken=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?c:(this._emitter||=new o.Emitter,this._emitter.event)}dispose(){this._emitter&&=(this._emitter.dispose(),void 0)}},CancellationTokenSource=class{get token(){return this._token||=new MutableToken,this._token}cancel(){this._token?this._token.cancel():this._token=s.Cancelled}dispose(){this._token?this._token instanceof MutableToken&&this._token.dispose():this._token=s.None}};t.CancellationTokenSource=CancellationTokenSource})),q=c({});t(q,n(En(),1));function delayNextTick(){return new Promise(t=>{typeof setImmediate>`u`?setTimeout(t,0):setImmediate(t)})}let Dn=0;function startCancelableOperation(){return Dn=performance.now(),new q.CancellationTokenSource}const On=Symbol(`OperationCancelled`);function isOperationCancelled(t){return t===On}async function interruptAndCheck(t){if(t===q.CancellationToken.None)return;let n=performance.now();if(n-Dn>=10&&(Dn=n,await delayNextTick(),Dn=performance.now()),t.isCancellationRequested)throw On}var Deferred=class{constructor(){this.promise=new Promise((t,n)=>{this.resolve=n=>(t(n),this),this.reject=t=>(n(t),this)})}},kn=class FullTextDocument{constructor(t,n,i,o){this._uri=t,this._languageId=n,this._version=i,this._content=o,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let n=this.offsetAt(t.start),i=this.offsetAt(t.end);return this._content.substring(n,i)}return this._content}update(t,n){for(let n of t)if(FullTextDocument.isIncremental(n)){let t=getWellformedRange(n.range),i=this.offsetAt(t.start),o=this.offsetAt(t.end);this._content=this._content.substring(0,i)+n.text+this._content.substring(o,this._content.length);let s=Math.max(t.start.line,0),c=Math.max(t.end.line,0),u=this._lineOffsets,f=computeLineOffsets(n.text,!1,i);if(c-s===f.length)for(let t=0,n=f.length;t<n;t++)u[t+s+1]=f[t];else f.length<1e4?u.splice(s+1,c-s,...f):this._lineOffsets=u=u.slice(0,s+1).concat(f,u.slice(c+1));let p=n.text.length-(o-i);if(p!==0)for(let t=s+1+f.length,n=u.length;t<n;t++)u[t]=u[t]+p}else if(FullTextDocument.isFull(n))this._content=n.text,this._lineOffsets=void 0;else throw Error(`Unknown change event received`);this._version=n}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=computeLineOffsets(this._content,!0)),this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let n=this.getLineOffsets(),i=0,o=n.length;if(o===0)return{line:0,character:t};for(;i<o;){let s=Math.floor((i+o)/2);n[s]>t?o=s:i=s+1}let s=i-1;return{line:s,character:t-n[s]}}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let i=n[t.line],o=t.line+1<n.length?n[t.line+1]:this._content.length;return Math.max(Math.min(i+t.character,o),i)}get lineCount(){return this.getLineOffsets().length}static isIncremental(t){let n=t;return n!=null&&typeof n.text==`string`&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength==`number`)}static isFull(t){let n=t;return n!=null&&typeof n.text==`string`&&n.range===void 0&&n.rangeLength===void 0}},An;(function(t){function create(t,n,i,o){return new kn(t,n,i,o)}t.create=create;function update(t,n,i){if(t instanceof kn)return t.update(n,i),t;throw Error(`TextDocument.update: document must be created by TextDocument.create`)}t.update=update;function applyEdits(t,n){let i=t.getText(),o=mergeSort(n.map(getWellformedEdit),(t,n)=>{let i=t.range.start.line-n.range.start.line;return i===0?t.range.start.character-n.range.start.character:i}),s=0,c=[];for(let n of o){let o=t.offsetAt(n.range.start);if(o<s)throw Error(`Overlapping edit`);o>s&&c.push(i.substring(s,o)),n.newText.length&&c.push(n.newText),s=t.offsetAt(n.range.end)}return c.push(i.substr(s)),c.join(``)}t.applyEdits=applyEdits})(An||={});function mergeSort(t,n){if(t.length<=1)return t;let i=t.length/2|0,o=t.slice(0,i),s=t.slice(i);mergeSort(o,n),mergeSort(s,n);let c=0,u=0,f=0;for(;c<o.length&&u<s.length;)n(o[c],s[u])<=0?t[f++]=o[c++]:t[f++]=s[u++];for(;c<o.length;)t[f++]=o[c++];for(;u<s.length;)t[f++]=s[u++];return t}function computeLineOffsets(t,n,i=0){let o=n?[i]:[];for(let n=0;n<t.length;n++){let s=t.charCodeAt(n);(s===13||s===10)&&(s===13&&n+1<t.length&&t.charCodeAt(n+1)===10&&n++,o.push(i+n+1))}return o}function getWellformedRange(t){let n=t.start,i=t.end;return n.line>i.line||n.line===i.line&&n.character>i.character?{start:i,end:n}:t}function getWellformedEdit(t){let n=getWellformedRange(t.range);return n===t.range?t:{newText:t.newText,range:n}}var jn;(()=>{var t={975:t=>{function e(t){if(typeof t!=`string`)throw TypeError(`Path must be a string. Received `+JSON.stringify(t))}function r(t,n){for(var i,o=``,s=0,c=-1,u=0,f=0;f<=t.length;++f){if(f<t.length)i=t.charCodeAt(f);else{if(i===47)break;i=47}if(i===47){if(c!==f-1&&u!==1){if(c!==f-1&&u===2){if(o.length<2||s!==2||o.charCodeAt(o.length-1)!==46||o.charCodeAt(o.length-2)!==46){if(o.length>2){var p=o.lastIndexOf(`/`);if(p!==o.length-1){p===-1?(o=``,s=0):s=(o=o.slice(0,p)).length-1-o.lastIndexOf(`/`),c=f,u=0;continue}}else if(o.length===2||o.length===1){o=``,s=0,c=f,u=0;continue}}n&&(o.length>0?o+=`/..`:o=`..`,s=2)}else o.length>0?o+=`/`+t.slice(c+1,f):o=t.slice(c+1,f),s=f-c-1}c=f,u=0}else i===46&&u!==-1?++u:u=-1}return o}var n={resolve:function(){for(var t,n=``,i=!1,o=arguments.length-1;o>=-1&&!i;o--){var s;o>=0?s=arguments[o]:(t===void 0&&(t=process.cwd()),s=t),e(s),s.length!==0&&(n=s+`/`+n,i=s.charCodeAt(0)===47)}return n=r(n,!i),i?n.length>0?`/`+n:`/`:n.length>0?n:`.`},normalize:function(t){if(e(t),t.length===0)return`.`;var n=t.charCodeAt(0)===47,i=t.charCodeAt(t.length-1)===47;return(t=r(t,!n)).length!==0||n||(t=`.`),t.length>0&&i&&(t+=`/`),n?`/`+t:t},isAbsolute:function(t){return e(t),t.length>0&&t.charCodeAt(0)===47},join:function(){if(arguments.length===0)return`.`;for(var t,i=0;i<arguments.length;++i){var o=arguments[i];e(o),o.length>0&&(t===void 0?t=o:t+=`/`+o)}return t===void 0?`.`:n.normalize(t)},relative:function(t,i){if(e(t),e(i),t===i||(t=n.resolve(t))===(i=n.resolve(i)))return``;for(var o=1;o<t.length&&t.charCodeAt(o)===47;++o);for(var s=t.length,c=s-o,u=1;u<i.length&&i.charCodeAt(u)===47;++u);for(var f=i.length-u,p=c<f?c:f,h=-1,g=0;g<=p;++g){if(g===p){if(f>p){if(i.charCodeAt(u+g)===47)return i.slice(u+g+1);if(g===0)return i.slice(u+g)}else c>p&&(t.charCodeAt(o+g)===47?h=g:g===0&&(h=0));break}var _=t.charCodeAt(o+g);if(_!==i.charCodeAt(u+g))break;_===47&&(h=g)}var x=``;for(g=o+h+1;g<=s;++g)g!==s&&t.charCodeAt(g)!==47||(x.length===0?x+=`..`:x+=`/..`);return x.length>0?x+i.slice(u+h):(u+=h,i.charCodeAt(u)===47&&++u,i.slice(u))},_makeLong:function(t){return t},dirname:function(t){if(e(t),t.length===0)return`.`;for(var n=t.charCodeAt(0),i=n===47,o=-1,s=!0,c=t.length-1;c>=1;--c)if((n=t.charCodeAt(c))===47){if(!s){o=c;break}}else s=!1;return o===-1?i?`/`:`.`:i&&o===1?`//`:t.slice(0,o)},basename:function(t,n){if(n!==void 0&&typeof n!=`string`)throw TypeError(`"ext" argument must be a string`);e(t);var i,o=0,s=-1,c=!0;if(n!==void 0&&n.length>0&&n.length<=t.length){if(n.length===t.length&&n===t)return``;var u=n.length-1,f=-1;for(i=t.length-1;i>=0;--i){var p=t.charCodeAt(i);if(p===47){if(!c){o=i+1;break}}else f===-1&&(c=!1,f=i+1),u>=0&&(p===n.charCodeAt(u)?--u==-1&&(s=i):(u=-1,s=f))}return o===s?s=f:s===-1&&(s=t.length),t.slice(o,s)}for(i=t.length-1;i>=0;--i)if(t.charCodeAt(i)===47){if(!c){o=i+1;break}}else s===-1&&(c=!1,s=i+1);return s===-1?``:t.slice(o,s)},extname:function(t){e(t);for(var n=-1,i=0,o=-1,s=!0,c=0,u=t.length-1;u>=0;--u){var f=t.charCodeAt(u);if(f!==47)o===-1&&(s=!1,o=u+1),f===46?n===-1?n=u:c!==1&&(c=1):n!==-1&&(c=-1);else if(!s){i=u+1;break}}return n===-1||o===-1||c===0||c===1&&n===o-1&&n===i+1?``:t.slice(n,o)},format:function(t){if(typeof t!=`object`||!t)throw TypeError(`The "pathObject" argument must be of type Object. Received type `+typeof t);return function(t,n){var i=n.dir||n.root,o=n.base||(n.name||``)+(n.ext||``);return i?i===n.root?i+o:i+`/`+o:o}(0,t)},parse:function(t){e(t);var n={root:``,dir:``,base:``,ext:``,name:``};if(t.length===0)return n;var i,o=t.charCodeAt(0),s=o===47;s?(n.root=`/`,i=1):i=0;for(var c=-1,u=0,f=-1,p=!0,h=t.length-1,g=0;h>=i;--h)if((o=t.charCodeAt(h))!==47)f===-1&&(p=!1,f=h+1),o===46?c===-1?c=h:g!==1&&(g=1):c!==-1&&(g=-1);else if(!p){u=h+1;break}return c===-1||f===-1||g===0||g===1&&c===f-1&&c===u+1?f!==-1&&(n.base=n.name=u===0&&s?t.slice(1,f):t.slice(u,f)):(u===0&&s?(n.name=t.slice(1,c),n.base=t.slice(1,f)):(n.name=t.slice(u,c),n.base=t.slice(u,f)),n.ext=t.slice(c,f)),u>0?n.dir=t.slice(0,u-1):s&&(n.dir=`/`),n},sep:`/`,delimiter:`:`,win32:null,posix:null};n.posix=n,t.exports=n}},n={};function r(i){var o=n[i];if(o!==void 0)return o.exports;var s=n[i]={exports:{}};return t[i](s,s.exports,r),s.exports}r.d=(t,n)=>{for(var i in n)r.o(n,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},r.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),r.r=t=>{typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};let o;r.r(i),r.d(i,{URI:()=>l,Utils:()=>S}),typeof process==`object`?o=process.platform===`win32`:typeof navigator==`object`&&(o=navigator.userAgent.indexOf(`Windows`)>=0);let s=/^\w[\w\d+.-]*$/,c=/^\//,u=/^\/\//;function a(t,n){if(!t.scheme&&n)throw Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${t.authority}", path: "${t.path}", query: "${t.query}", fragment: "${t.fragment}"}`);if(t.scheme&&!s.test(t.scheme))throw Error(`[UriError]: Scheme contains illegal characters.`);if(t.path){if(t.authority){if(!c.test(t.path))throw Error(`[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character`)}else if(u.test(t.path))throw Error(`[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")`)}}let f=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class l{static isUri(t){return t instanceof l||!!t&&typeof t.authority==`string`&&typeof t.fragment==`string`&&typeof t.path==`string`&&typeof t.query==`string`&&typeof t.scheme==`string`&&typeof t.fsPath==`string`&&typeof t.with==`function`&&typeof t.toString==`function`}scheme;authority;path;query;fragment;constructor(t,n,i,o,s,c=!1){typeof t==`object`?(this.scheme=t.scheme||``,this.authority=t.authority||``,this.path=t.path||``,this.query=t.query||``,this.fragment=t.fragment||``):(this.scheme=function(t,n){return t||n?t:`file`}(t,c),this.authority=n||``,this.path=function(t,n){switch(t){case`https`:case`http`:case`file`:n?n[0]!==`/`&&(n=`/`+n):n=`/`}return n}(this.scheme,i||``),this.query=o||``,this.fragment=s||``,a(this,c))}get fsPath(){return v(this,!1)}with(t){if(!t)return this;let{scheme:n,authority:i,path:o,query:s,fragment:c}=t;return n===void 0?n=this.scheme:n===null&&(n=``),i===void 0?i=this.authority:i===null&&(i=``),o===void 0?o=this.path:o===null&&(o=``),s===void 0?s=this.query:s===null&&(s=``),c===void 0?c=this.fragment:c===null&&(c=``),n===this.scheme&&i===this.authority&&o===this.path&&s===this.query&&c===this.fragment?this:new d(n,i,o,s,c)}static parse(t,n=!1){let i=f.exec(t);return i?new d(i[2]||``,w(i[4]||``),w(i[5]||``),w(i[7]||``),w(i[9]||``),n):new d(``,``,``,``,``)}static file(t){let n=``;if(o&&(t=t.replace(/\\/g,`/`)),t[0]===`/`&&t[1]===`/`){let i=t.indexOf(`/`,2);i===-1?(n=t.substring(2),t=`/`):(n=t.substring(2,i),t=t.substring(i)||`/`)}return new d(`file`,n,t,``,``)}static from(t){let n=new d(t.scheme,t.authority,t.path,t.query,t.fragment);return a(n,!0),n}toString(t=!1){return b(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof l)return t;{let n=new d(t);return n._formatted=t.external,n._fsPath=t._sep===p?t.fsPath:null,n}}return t}}let p=o?1:void 0;class d extends l{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||=v(this,!1),this._fsPath}toString(t=!1){return t?b(this,!0):(this._formatted||=b(this,!1),this._formatted)}toJSON(){let t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=p),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t}}let h={58:`%3A`,47:`%2F`,63:`%3F`,35:`%23`,91:`%5B`,93:`%5D`,64:`%40`,33:`%21`,36:`%24`,38:`%26`,39:`%27`,40:`%28`,41:`%29`,42:`%2A`,43:`%2B`,44:`%2C`,59:`%3B`,61:`%3D`,32:`%20`};function m(t,n,i){let o,s=-1;for(let c=0;c<t.length;c++){let u=t.charCodeAt(c);if(u>=97&&u<=122||u>=65&&u<=90||u>=48&&u<=57||u===45||u===46||u===95||u===126||n&&u===47||i&&u===91||i&&u===93||i&&u===58)s!==-1&&(o+=encodeURIComponent(t.substring(s,c)),s=-1),o!==void 0&&(o+=t.charAt(c));else{o===void 0&&(o=t.substr(0,c));let n=h[u];n===void 0?s===-1&&(s=c):(s!==-1&&(o+=encodeURIComponent(t.substring(s,c)),s=-1),o+=n)}}return s!==-1&&(o+=encodeURIComponent(t.substring(s))),o===void 0?t:o}function y(t){let n;for(let i=0;i<t.length;i++){let o=t.charCodeAt(i);o===35||o===63?(n===void 0&&(n=t.substr(0,i)),n+=h[o]):n!==void 0&&(n+=t[i])}return n===void 0?t:n}function v(t,n){let i;return i=t.authority&&t.path.length>1&&t.scheme===`file`?`//${t.authority}${t.path}`:t.path.charCodeAt(0)===47&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&t.path.charCodeAt(2)===58?n?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,o&&(i=i.replace(/\//g,`\\`)),i}function b(t,n){let i=n?y:m,o=``,{scheme:s,authority:c,path:u,query:f,fragment:p}=t;if(s&&(o+=s,o+=`:`),(c||s===`file`)&&(o+=`/`,o+=`/`),c){let t=c.indexOf(`@`);if(t!==-1){let n=c.substr(0,t);c=c.substr(t+1),t=n.lastIndexOf(`:`),t===-1?o+=i(n,!1,!1):(o+=i(n.substr(0,t),!1,!1),o+=`:`,o+=i(n.substr(t+1),!1,!0)),o+=`@`}c=c.toLowerCase(),t=c.lastIndexOf(`:`),t===-1?o+=i(c,!1,!0):(o+=i(c.substr(0,t),!1,!0),o+=c.substr(t))}if(u){if(u.length>=3&&u.charCodeAt(0)===47&&u.charCodeAt(2)===58){let t=u.charCodeAt(1);t>=65&&t<=90&&(u=`/${String.fromCharCode(t+32)}:${u.substr(3)}`)}else if(u.length>=2&&u.charCodeAt(1)===58){let t=u.charCodeAt(0);t>=65&&t<=90&&(u=`${String.fromCharCode(t+32)}:${u.substr(2)}`)}o+=i(u,!0,!1)}return f&&(o+=`?`,o+=i(f,!1,!1)),p&&(o+=`#`,o+=n?p:m(p,!1,!1)),o}function C(t){try{return decodeURIComponent(t)}catch{return t.length>3?t.substr(0,3)+C(t.substr(3)):t}}let g=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function w(t){return t.match(g)?t.replace(g,(t=>C(t))):t}var _=r(975);let x=_.posix||_;var S;(function(t){t.joinPath=function(t,...n){return t.with({path:x.join(t.path,...n)})},t.resolvePath=function(t,...n){let i=t.path,o=!1;i[0]!==`/`&&(i=`/`+i,o=!0);let s=x.resolve(i,...n);return o&&s[0]===`/`&&!t.authority&&(s=s.substring(1)),t.with({path:s})},t.dirname=function(t){if(t.path.length===0||t.path===`/`)return t;let n=x.dirname(t.path);return n.length===1&&n.charCodeAt(0)===46&&(n=``),t.with({path:n})},t.basename=function(t){return x.basename(t.path)},t.extname=function(t){return x.extname(t.path)}})(S||={}),jn=i})();const{URI:J,Utils:Mn}=jn;var Y;(function(t){t.basename=Mn.basename,t.dirname=Mn.dirname,t.extname=Mn.extname,t.joinPath=Mn.joinPath,t.resolvePath=Mn.resolvePath;let n=typeof process==`object`&&(process==null?void 0:process.platform)===`win32`;function equals(t,n){return t?.toString()===n?.toString()}t.equals=equals;function relative(t,i){let o=typeof t==`string`?J.parse(t).path:t.path,s=typeof i==`string`?J.parse(i).path:i.path,c=o.split(`/`).filter(t=>t.length>0),u=s.split(`/`).filter(t=>t.length>0);if(n){let t=/^[A-Z]:$/;if(c[0]&&t.test(c[0])&&(c[0]=c[0].toLowerCase()),u[0]&&t.test(u[0])&&(u[0]=u[0].toLowerCase()),c[0]!==u[0])return s.substring(1)}let f=0;for(;f<c.length&&c[f]===u[f];f++);return`../`.repeat(c.length-f)+u.slice(f).join(`/`)}t.relative=relative;function normalize(t){return J.parse(t.toString()).toString()}t.normalize=normalize})(Y||={});var X;(function(t){t[t.Changed=0]=`Changed`,t[t.Parsed=1]=`Parsed`,t[t.IndexedContent=2]=`IndexedContent`,t[t.ComputedScopes=3]=`ComputedScopes`,t[t.Linked=4]=`Linked`,t[t.IndexedReferences=5]=`IndexedReferences`,t[t.Validated=6]=`Validated`})(X||={});var DefaultLangiumDocumentFactory=class{constructor(t){this.serviceRegistry=t.ServiceRegistry,this.textDocuments=t.workspace.TextDocuments,this.fileSystemProvider=t.workspace.FileSystemProvider}async fromUri(t,n=q.CancellationToken.None){let i=await this.fileSystemProvider.readFile(t);return this.createAsync(t,i,n)}fromTextDocument(t,n,i){return n??=J.parse(t.uri),q.CancellationToken.is(i)?this.createAsync(n,t,i):this.create(n,t,i)}fromString(t,n,i){return q.CancellationToken.is(i)?this.createAsync(n,t,i):this.create(n,t,i)}fromModel(t,n){return this.create(n,{$model:t})}create(t,n,i){if(typeof n==`string`){let o=this.parse(t,n,i);return this.createLangiumDocument(o,t,void 0,n)}if(`$model`in n){let i={value:n.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,t)}{let o=this.parse(t,n.getText(),i);return this.createLangiumDocument(o,t,n)}}async createAsync(t,n,i){if(typeof n==`string`){let o=await this.parseAsync(t,n,i);return this.createLangiumDocument(o,t,void 0,n)}{let o=await this.parseAsync(t,n.getText(),i);return this.createLangiumDocument(o,t,n)}}createLangiumDocument(t,n,i,o){let s;if(i)s={parseResult:t,uri:n,state:X.Parsed,references:[],textDocument:i};else{let i=this.createTextDocumentGetter(n,o);s={parseResult:t,uri:n,state:X.Parsed,references:[],get textDocument(){return i()}}}return t.value.$document=s,s}async update(t,n){let i=t.parseResult.value.$cstNode?.root.fullText,o=this.textDocuments?.get(t.uri.toString()),s=o?o.getText():await this.fileSystemProvider.readFile(t.uri);if(o)Object.defineProperty(t,"textDocument",{value:o});else{let n=this.createTextDocumentGetter(t.uri,s);Object.defineProperty(t,"textDocument",{get:n})}return i!==s&&(t.parseResult=await this.parseAsync(t.uri,s,n),t.parseResult.value.$document=t),t.state=X.Parsed,t}parse(t,n,i){return this.serviceRegistry.getServices(t).parser.LangiumParser.parse(n,i)}parseAsync(t,n,i){return this.serviceRegistry.getServices(t).parser.AsyncParser.parse(n,i)}createTextDocumentGetter(t,n){let i=this.serviceRegistry,o;return()=>o??=An.create(t.toString(),i.getServices(t).LanguageMetaData.languageId,0,n??``)}},DefaultLangiumDocuments=class{constructor(t){this.documentMap=new Map,this.langiumDocumentFactory=t.workspace.LangiumDocumentFactory,this.serviceRegistry=t.ServiceRegistry}get all(){return stream(this.documentMap.values())}addDocument(t){let n=t.uri.toString();if(this.documentMap.has(n))throw Error(`A document with the URI '${n}' is already present.`);this.documentMap.set(n,t)}getDocument(t){let n=t.toString();return this.documentMap.get(n)}async getOrCreateDocument(t,n){let i=this.getDocument(t);return i||(i=await this.langiumDocumentFactory.fromUri(t,n),this.addDocument(i),i)}createDocument(t,n,i){if(i)return this.langiumDocumentFactory.fromString(n,t,i).then(t=>(this.addDocument(t),t));{let i=this.langiumDocumentFactory.fromString(n,t);return this.addDocument(i),i}}hasDocument(t){return this.documentMap.has(t.toString())}invalidateDocument(t){let n=t.toString(),i=this.documentMap.get(n);return i&&(this.serviceRegistry.getServices(t).references.Linker.unlink(i),i.state=X.Changed,i.precomputedScopes=void 0,i.diagnostics=void 0),i}deleteDocument(t){let n=t.toString(),i=this.documentMap.get(n);return i&&(i.state=X.Changed,this.documentMap.delete(n)),i}};const Nn=Symbol(`ref_resolving`);var DefaultLinker=class{constructor(t){this.reflection=t.shared.AstReflection,this.langiumDocuments=()=>t.shared.workspace.LangiumDocuments,this.scopeProvider=t.references.ScopeProvider,this.astNodeLocator=t.workspace.AstNodeLocator}async link(t,n=q.CancellationToken.None){for(let i of streamAst(t.parseResult.value))await interruptAndCheck(n),streamReferences(i).forEach(n=>this.doLink(n,t))}doLink(t,n){let i=t.reference;if(i._ref===void 0){i._ref=Nn;try{let n=this.getCandidate(t);isLinkingError(n)?i._ref=n:(i._nodeDescription=n,i._ref=this.langiumDocuments().hasDocument(n.documentUri)?this.loadAstNode(n)??this.createLinkingError(t,n):void 0)}catch(n){console.error(`An error occurred while resolving reference to '${i.$refText}':`,n);let o=n.message??String(n);i._ref=Object.assign(Object.assign({},t),{message:`An error occurred while resolving reference to '${i.$refText}': ${o}`})}n.references.push(i)}}unlink(t){for(let n of t.references)delete n._ref,delete n._nodeDescription;t.references=[]}getCandidate(t){return this.scopeProvider.getScope(t).getElement(t.reference.$refText)??this.createLinkingError(t)}buildReference(t,n,i,o){let s=this,c={$refNode:i,$refText:o,get ref(){if(isAstNode(this._ref))return this._ref;if(isAstNodeDescription(this._nodeDescription)){let i=s.loadAstNode(this._nodeDescription);this._ref=i??s.createLinkingError({reference:c,container:t,property:n},this._nodeDescription)}else if(this._ref===void 0){this._ref=Nn;let i=findRootNode(t).$document,o=s.getLinkedNode({reference:c,container:t,property:n});if(o.error&&i&&i.state<X.ComputedScopes){this._ref=void 0;return}this._ref=o.node??o.error,this._nodeDescription=o.descr,i?.references.push(this)}else if(this._ref===Nn)throw Error(`Cyclic reference resolution detected: ${s.astNodeLocator.getAstNodePath(t)}/${n} (symbol '${o}')`);return isAstNode(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return isLinkingError(this._ref)?this._ref:void 0}};return c}getLinkedNode(t){try{let n=this.getCandidate(t);if(isLinkingError(n))return{error:n};let i=this.loadAstNode(n);return i?{node:i,descr:n}:{descr:n,error:this.createLinkingError(t,n)}}catch(n){console.error(`An error occurred while resolving reference to '${t.reference.$refText}':`,n);let i=n.message??String(n);return{error:Object.assign(Object.assign({},t),{message:`An error occurred while resolving reference to '${t.reference.$refText}': ${i}`})}}}loadAstNode(t){if(t.node)return t.node;let n=this.langiumDocuments().getDocument(t.documentUri);if(n)return this.astNodeLocator.getAstNode(n.parseResult.value,t.path)}createLinkingError(t,n){let i=findRootNode(t.container).$document;i&&i.state<X.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${i.uri}).`);let o=this.reflection.getReferenceType(t);return Object.assign(Object.assign({},t),{message:`Could not resolve reference to ${o} named '${t.reference.$refText}'.`,targetDescription:n})}};function isNamed(t){return typeof t.name==`string`}var DefaultNameProvider=class{getName(t){if(isNamed(t))return t.name}getNameNode(t){return findNodeForProperty(t.$cstNode,`name`)}},DefaultReferences=class{constructor(t){this.nameProvider=t.references.NameProvider,this.index=t.shared.workspace.IndexManager,this.nodeLocator=t.workspace.AstNodeLocator}findDeclaration(t){if(t){let n=findAssignment(t),i=t.astNode;if(n&&i){let o=i[n.feature];if(isReference(o))return o.ref;if(Array.isArray(o)){for(let n of o)if(isReference(n)&&n.$refNode&&n.$refNode.offset<=t.offset&&n.$refNode.end>=t.end)return n.ref}}if(i){let n=this.nameProvider.getNameNode(i);if(n&&(n===t||isChildNode(t,n)))return i}}}findDeclarationNode(t){let n=this.findDeclaration(t);if(n?.$cstNode)return this.nameProvider.getNameNode(n)??n.$cstNode}findReferences(t,n){let i=[];if(n.includeDeclaration){let n=this.getReferenceToSelf(t);n&&i.push(n)}let o=this.index.findAllReferences(t,this.nodeLocator.getAstNodePath(t));return n.documentUri&&(o=o.filter(t=>Y.equals(t.sourceUri,n.documentUri))),i.push(...o),stream(i)}getReferenceToSelf(t){let n=this.nameProvider.getNameNode(t);if(n){let i=getDocument(t),o=this.nodeLocator.getAstNodePath(t);return{sourceUri:i.uri,sourcePath:o,targetUri:i.uri,targetPath:o,segment:toDocumentSegment(n),local:!0}}}},MultiMap=class{constructor(t){if(this.map=new Map,t)for(let[n,i]of t)this.add(n,i)}get size(){return M.sum(stream(this.map.values()).map(t=>t.length))}clear(){this.map.clear()}delete(t,n){if(n===void 0)return this.map.delete(t);{let i=this.map.get(t);if(i){let o=i.indexOf(n);if(o>=0)return i.length===1?this.map.delete(t):i.splice(o,1),!0}return!1}}get(t){return this.map.get(t)??[]}has(t,n){if(n===void 0)return this.map.has(t);{let i=this.map.get(t);return i?i.indexOf(n)>=0:!1}}add(t,n){return this.map.has(t)?this.map.get(t).push(n):this.map.set(t,[n]),this}addAll(t,n){return this.map.has(t)?this.map.get(t).push(...n):this.map.set(t,Array.from(n)),this}forEach(t){this.map.forEach((n,i)=>n.forEach(n=>t(n,i,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return stream(this.map.entries()).flatMap(([t,n])=>n.map(n=>[t,n]))}keys(){return stream(this.map.keys())}values(){return stream(this.map.values()).flat()}entriesGroupedByKey(){return stream(this.map.entries())}},BiMap=class{get size(){return this.map.size}constructor(t){if(this.map=new Map,this.inverse=new Map,t)for(let[n,i]of t)this.set(n,i)}clear(){this.map.clear(),this.inverse.clear()}set(t,n){return this.map.set(t,n),this.inverse.set(n,t),this}get(t){return this.map.get(t)}getKey(t){return this.inverse.get(t)}delete(t){let n=this.map.get(t);return n!==void 0&&(this.map.delete(t),this.inverse.delete(n),!0)}},DefaultScopeComputation=class{constructor(t){this.nameProvider=t.references.NameProvider,this.descriptions=t.workspace.AstNodeDescriptionProvider}async computeExports(t,n=q.CancellationToken.None){return this.computeExportsForNode(t.parseResult.value,t,void 0,n)}async computeExportsForNode(t,n,i=streamContents,o=q.CancellationToken.None){let s=[];this.exportNode(t,s,n);for(let c of i(t))await interruptAndCheck(o),this.exportNode(c,s,n);return s}exportNode(t,n,i){let o=this.nameProvider.getName(t);o&&n.push(this.descriptions.createDescription(t,o,i))}async computeLocalScopes(t,n=q.CancellationToken.None){let i=t.parseResult.value,o=new MultiMap;for(let s of streamAllContents(i))await interruptAndCheck(n),this.processNode(s,t,o);return o}processNode(t,n,i){let o=t.$container;if(o){let s=this.nameProvider.getName(t);s&&i.add(o,this.descriptions.createDescription(t,s,n))}}},StreamScope=class{constructor(t,n,i){this.elements=t,this.outerScope=n,this.caseInsensitive=i?.caseInsensitive??!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(t){let n=this.caseInsensitive?this.elements.find(n=>n.name.toLowerCase()===t.toLowerCase()):this.elements.find(n=>n.name===t);if(n)return n;if(this.outerScope)return this.outerScope.getElement(t)}},MapScope=class{constructor(t,n,i){this.elements=new Map,this.caseInsensitive=i?.caseInsensitive??!1;for(let n of t){let t=this.caseInsensitive?n.name.toLowerCase():n.name;this.elements.set(t,n)}this.outerScope=n}getElement(t){let n=this.caseInsensitive?t.toLowerCase():t,i=this.elements.get(n);if(i)return i;if(this.outerScope)return this.outerScope.getElement(t)}getAllElements(){let t=stream(this.elements.values());return this.outerScope&&(t=t.concat(this.outerScope.getAllElements())),t}};const Pn={getElement(){},getAllElements(){return A}};var DisposableCache=class{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(t){this.toDispose.push(t)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(t=>t.dispose())}throwIfDisposed(){if(this.isDisposed)throw Error(`This cache has already been disposed`)}},SimpleCache=class extends DisposableCache{constructor(){super(...arguments),this.cache=new Map}has(t){return this.throwIfDisposed(),this.cache.has(t)}set(t,n){this.throwIfDisposed(),this.cache.set(t,n)}get(t,n){if(this.throwIfDisposed(),this.cache.has(t))return this.cache.get(t);if(n){let i=n();return this.cache.set(t,i),i}}delete(t){return this.throwIfDisposed(),this.cache.delete(t)}clear(){this.throwIfDisposed(),this.cache.clear()}},ContextCache=class extends DisposableCache{constructor(t){super(),this.cache=new Map,this.converter=t??(t=>t)}has(t,n){return this.throwIfDisposed(),this.cacheForContext(t).has(n)}set(t,n,i){this.throwIfDisposed(),this.cacheForContext(t).set(n,i)}get(t,n,i){this.throwIfDisposed();let o=this.cacheForContext(t);if(o.has(n))return o.get(n);if(i){let t=i();return o.set(n,t),t}}delete(t,n){return this.throwIfDisposed(),this.cacheForContext(t).delete(n)}clear(t){if(this.throwIfDisposed(),t){let n=this.converter(t);this.cache.delete(n)}else this.cache.clear()}cacheForContext(t){let n=this.converter(t),i=this.cache.get(n);return i||(i=new Map,this.cache.set(n,i)),i}},WorkspaceCache=class extends SimpleCache{constructor(t,n){super(),n?(this.toDispose.push(t.workspace.DocumentBuilder.onBuildPhase(n,()=>{this.clear()})),this.toDispose.push(t.workspace.DocumentBuilder.onUpdate((t,n)=>{n.length>0&&this.clear()}))):this.toDispose.push(t.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}},DefaultScopeProvider=class{constructor(t){this.reflection=t.shared.AstReflection,this.nameProvider=t.references.NameProvider,this.descriptions=t.workspace.AstNodeDescriptionProvider,this.indexManager=t.shared.workspace.IndexManager,this.globalScopeCache=new WorkspaceCache(t.shared)}getScope(t){let n=[],i=this.reflection.getReferenceType(t),o=getDocument(t.container).precomputedScopes;if(o){let s=t.container;do{let t=o.get(s);t.length>0&&n.push(stream(t).filter(t=>this.reflection.isSubtype(t.type,i))),s=s.$container}while(s)}let s=this.getGlobalScope(i,t);for(let t=n.length-1;t>=0;t--)s=this.createScope(n[t],s);return s}createScope(t,n,i){return new StreamScope(stream(t),n,i)}createScopeForNodes(t,n,i){return new StreamScope(stream(t).map(t=>{let n=this.nameProvider.getName(t);if(n)return this.descriptions.createDescription(t,n)}).nonNullable(),n,i)}getGlobalScope(t,n){return this.globalScopeCache.get(t,()=>new MapScope(this.indexManager.allElements(t)))}};function isAstNodeWithComment(t){return typeof t.$comment==`string`}function isIntermediateReference(t){return typeof t==`object`&&!!t&&(`$ref`in t||`$error`in t)}var DefaultJsonSerializer=class{constructor(t){this.ignoreProperties=new Set([`$container`,`$containerProperty`,`$containerIndex`,`$document`,`$cstNode`]),this.langiumDocuments=t.shared.workspace.LangiumDocuments,this.astNodeLocator=t.workspace.AstNodeLocator,this.nameProvider=t.references.NameProvider,this.commentProvider=t.documentation.CommentProvider}serialize(t,n){let i=n??{},o=n?.replacer,defaultReplacer=(t,n)=>this.replacer(t,n,i),s=o?(t,n)=>o(t,n,defaultReplacer):defaultReplacer;try{return this.currentDocument=getDocument(t),JSON.stringify(t,s,n?.space)}finally{this.currentDocument=void 0}}deserialize(t,n){let i=n??{},o=JSON.parse(t);return this.linkNode(o,o,i),o}replacer(t,n,{refText:i,sourceText:o,textRegions:s,comments:c,uriConverter:u}){if(!this.ignoreProperties.has(t)){if(isReference(n)){let t=n.ref,o=i?n.$refText:void 0;if(t){let i=getDocument(t),s=``;this.currentDocument&&this.currentDocument!==i&&(s=u?u(i.uri,n):i.uri.toString());let c=this.astNodeLocator.getAstNodePath(t);return{$ref:`${s}#${c}`,$refText:o}}return{$error:n.error?.message??`Could not resolve reference`,$refText:o}}if(isAstNode(n)){let i;if(s&&(i=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},n)),(!t||n.$document)&&i?.$textRegion&&(i.$textRegion.documentURI=this.currentDocument?.uri.toString())),o&&!t&&(i??=Object.assign({},n),i.$sourceText=n.$cstNode?.text),c){i??=Object.assign({},n);let t=this.commentProvider.getComment(n);t&&(i.$comment=t.replace(/\r/g,``))}return i??n}return n}}addAstNodeRegionWithAssignmentsTo(t){let createDocumentSegment=t=>({offset:t.offset,end:t.end,length:t.length,range:t.range});if(t.$cstNode){let n=t.$textRegion=createDocumentSegment(t.$cstNode),i=n.assignments={};return Object.keys(t).filter(t=>!t.startsWith(`$`)).forEach(n=>{let o=findNodesForProperty(t.$cstNode,n).map(createDocumentSegment);o.length!==0&&(i[n]=o)}),t}}linkNode(t,n,i,o,s,c){for(let[o,s]of Object.entries(t))if(Array.isArray(s))for(let c=0;c<s.length;c++){let u=s[c];isIntermediateReference(u)?s[c]=this.reviveReference(t,o,n,u,i):isAstNode(u)&&this.linkNode(u,n,i,t,o,c)}else isIntermediateReference(s)?t[o]=this.reviveReference(t,o,n,s,i):isAstNode(s)&&this.linkNode(s,n,i,t,o);let u=t;u.$container=o,u.$containerProperty=s,u.$containerIndex=c}reviveReference(t,n,i,o,s){let c=o.$refText,u=o.$error;if(o.$ref){let t=this.getRefNode(i,o.$ref,s.uriConverter);if(isAstNode(t))return c||=this.nameProvider.getName(t),{$refText:c??``,ref:t};u=t}if(u){let i={$refText:c??``};return i.error={container:t,property:n,message:u,reference:i},i}}getRefNode(t,n,i){try{let o=n.indexOf(`#`);if(o===0)return this.astNodeLocator.getAstNode(t,n.substring(1))||`Could not resolve path: `+n;if(o<0){let t=i?i(n):J.parse(n),o=this.langiumDocuments.getDocument(t);return o?o.parseResult.value:`Could not find document for URI: `+n}let s=i?i(n.substring(0,o)):J.parse(n.substring(0,o)),c=this.langiumDocuments.getDocument(s);return c?o===n.length-1?c.parseResult.value:this.astNodeLocator.getAstNode(c.parseResult.value,n.substring(o+1))||`Could not resolve URI: `+n:`Could not find document for URI: `+n}catch(t){return String(t)}}},DefaultServiceRegistry=class{get map(){return this.fileExtensionMap}constructor(t){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.fileNameMap=new Map,this.textDocuments=t?.workspace.TextDocuments}register(t){let n=t.LanguageMetaData;for(let i of n.fileExtensions)this.fileExtensionMap.has(i)&&console.warn(`The file extension ${i} is used by multiple languages. It is now assigned to '${n.languageId}'.`),this.fileExtensionMap.set(i,t);if(n.fileNames)for(let i of n.fileNames)this.fileNameMap.has(i)&&console.warn(`The file name ${i} is used by multiple languages. It is now assigned to '${n.languageId}'.`),this.fileNameMap.set(i,t);this.languageIdMap.set(n.languageId,t),this.singleton=this.languageIdMap.size===1?t:void 0}getServices(t){if(this.singleton!==void 0)return this.singleton;if(this.languageIdMap.size===0)throw Error("The service registry is empty. Use `register` to register the services of a language.");let n=this.textDocuments?.get(t)?.languageId;if(n!==void 0){let t=this.languageIdMap.get(n);if(t)return t}let i=Y.extname(t),o=Y.basename(t),s=this.fileNameMap.get(o)??this.fileExtensionMap.get(i);if(!s)throw Error(n?`The service registry contains no services for the extension '${i}' for language '${n}'.`:`The service registry contains no services for the extension '${i}'.`);return s}hasServices(t){try{return this.getServices(t),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}};function diagnosticData(t){return{code:t}}var Fn;(function(t){t.all=[`fast`,`slow`,`built-in`]})(Fn||={});var ValidationRegistry=class{constructor(t){this.entries=new MultiMap,this.entriesBefore=[],this.entriesAfter=[],this.reflection=t.shared.AstReflection}register(t,n=this,i=`fast`){if(i===`built-in`)throw Error(`The 'built-in' category is reserved for lexer, parser, and linker errors.`);for(let[o,s]of Object.entries(t)){let t=s;if(Array.isArray(t))for(let s of t){let t={check:this.wrapValidationException(s,n),category:i};this.addEntry(o,t)}else if(typeof t==`function`){let s={check:this.wrapValidationException(t,n),category:i};this.addEntry(o,s)}else assertUnreachable(t)}}wrapValidationException(t,n){return async(i,o,s)=>{await this.handleException(()=>t.call(n,i,o,s),`An error occurred during validation`,o,i)}}async handleException(t,n,i,o){try{await t()}catch(t){if(isOperationCancelled(t))throw t;console.error(`${n}:`,t),t instanceof Error&&t.stack&&console.error(t.stack),i(`error`,`${n}: ${t instanceof Error?t.message:String(t)}`,{node:o})}}addEntry(t,n){if(t===`AstNode`){this.entries.add(`AstNode`,n);return}for(let i of this.reflection.getAllSubTypes(t))this.entries.add(i,n)}getChecks(t,n){let i=stream(this.entries.get(t)).concat(this.entries.get(`AstNode`));return n&&(i=i.filter(t=>n.includes(t.category))),i.map(t=>t.check)}registerBeforeDocument(t,n=this){this.entriesBefore.push(this.wrapPreparationException(t,`An error occurred during set-up of the validation`,n))}registerAfterDocument(t,n=this){this.entriesAfter.push(this.wrapPreparationException(t,`An error occurred during tear-down of the validation`,n))}wrapPreparationException(t,n,i){return async(o,s,c,u)=>{await this.handleException(()=>t.call(i,o,s,c,u),n,s,o)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}},DefaultDocumentValidator=class{constructor(t){this.validationRegistry=t.validation.ValidationRegistry,this.metadata=t.LanguageMetaData}async validateDocument(t,n={},i=q.CancellationToken.None){let o=t.parseResult,s=[];if(await interruptAndCheck(i),(!n.categories||n.categories.includes(`built-in`))&&(this.processLexingErrors(o,s,n),n.stopAfterLexingErrors&&s.some(t=>t.data?.code===In.LexingError)||(this.processParsingErrors(o,s,n),n.stopAfterParsingErrors&&s.some(t=>t.data?.code===In.ParsingError))||(this.processLinkingErrors(t,s,n),n.stopAfterLinkingErrors&&s.some(t=>t.data?.code===In.LinkingError))))return s;try{s.push(...await this.validateAst(o.value,n,i))}catch(t){if(isOperationCancelled(t))throw t;console.error(`An error occurred during validation:`,t)}return await interruptAndCheck(i),s}processLexingErrors(t,n,i){let o=[...t.lexerErrors,...t.lexerReport?.diagnostics??[]];for(let t of o){let i=t.severity??`error`,o={severity:toDiagnosticSeverity(i),range:{start:{line:t.line-1,character:t.column-1},end:{line:t.line-1,character:t.column+t.length-1}},message:t.message,data:toDiagnosticData(i),source:this.getSource()};n.push(o)}}processParsingErrors(t,n,i){for(let i of t.parserErrors){let t;if(isNaN(i.token.startOffset)){if(`previousToken`in i){let n=i.previousToken;if(isNaN(n.startOffset)){let n={line:0,character:0};t={start:n,end:n}}else{let i={line:n.endLine-1,character:n.endColumn};t={start:i,end:i}}}}else t=tokenToRange(i.token);if(t){let o={severity:toDiagnosticSeverity(`error`),range:t,message:i.message,data:diagnosticData(In.ParsingError),source:this.getSource()};n.push(o)}}}processLinkingErrors(t,n,i){for(let i of t.references){let t=i.error;if(t){let i={node:t.container,property:t.property,index:t.index,data:{code:In.LinkingError,containerType:t.container.$type,property:t.property,refText:t.reference.$refText}};n.push(this.toDiagnostic(`error`,t.message,i))}}}async validateAst(t,n,i=q.CancellationToken.None){let o=[],acceptor=(t,n,i)=>{o.push(this.toDiagnostic(t,n,i))};return await this.validateAstBefore(t,n,acceptor,i),await this.validateAstNodes(t,n,acceptor,i),await this.validateAstAfter(t,n,acceptor,i),o}async validateAstBefore(t,n,i,o=q.CancellationToken.None){let s=this.validationRegistry.checksBefore;for(let c of s)await interruptAndCheck(o),await c(t,i,n.categories??[],o)}async validateAstNodes(t,n,i,o=q.CancellationToken.None){await Promise.all(streamAst(t).map(async t=>{await interruptAndCheck(o);let s=this.validationRegistry.getChecks(t.$type,n.categories);for(let n of s)await n(t,i,o)}))}async validateAstAfter(t,n,i,o=q.CancellationToken.None){let s=this.validationRegistry.checksAfter;for(let c of s)await interruptAndCheck(o),await c(t,i,n.categories??[],o)}toDiagnostic(t,n,i){return{message:n,range:getDiagnosticRange(i),severity:toDiagnosticSeverity(t),code:i.code,codeDescription:i.codeDescription,tags:i.tags,relatedInformation:i.relatedInformation,data:i.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};function getDiagnosticRange(t){if(t.range)return t.range;let n;return typeof t.property==`string`?n=findNodeForProperty(t.node.$cstNode,t.property,t.index):typeof t.keyword==`string`&&(n=findNodeForKeyword(t.node.$cstNode,t.keyword,t.index)),n??=t.node.$cstNode,n?n.range:{start:{line:0,character:0},end:{line:0,character:0}}}function toDiagnosticSeverity(t){switch(t){case`error`:return 1;case`warning`:return 2;case`info`:return 3;case`hint`:return 4;default:throw Error(`Invalid diagnostic severity: `+t)}}function toDiagnosticData(t){switch(t){case`error`:return diagnosticData(In.LexingError);case`warning`:return diagnosticData(In.LexingWarning);case`info`:return diagnosticData(In.LexingInfo);case`hint`:return diagnosticData(In.LexingHint);default:throw Error(`Invalid diagnostic severity: `+t)}}var In;(function(t){t.LexingError=`lexing-error`,t.LexingWarning=`lexing-warning`,t.LexingInfo=`lexing-info`,t.LexingHint=`lexing-hint`,t.ParsingError=`parsing-error`,t.LinkingError=`linking-error`})(In||={});var DefaultAstNodeDescriptionProvider=class{constructor(t){this.astNodeLocator=t.workspace.AstNodeLocator,this.nameProvider=t.references.NameProvider}createDescription(t,n,i){let o=i??getDocument(t);n??=this.nameProvider.getName(t);let s=this.astNodeLocator.getAstNodePath(t);if(!n)throw Error(`Node at path ${s} has no name.`);let c,nameSegmentGetter=()=>c??=toDocumentSegment(this.nameProvider.getNameNode(t)??t.$cstNode);return{node:t,name:n,get nameSegment(){return nameSegmentGetter()},selectionSegment:toDocumentSegment(t.$cstNode),type:t.$type,documentUri:o.uri,path:s}}},DefaultReferenceDescriptionProvider=class{constructor(t){this.nodeLocator=t.workspace.AstNodeLocator}async createDescriptions(t,n=q.CancellationToken.None){let i=[],o=t.parseResult.value;for(let t of streamAst(o))await interruptAndCheck(n),streamReferences(t).filter(t=>!isLinkingError(t)).forEach(t=>{let n=this.createDescription(t);n&&i.push(n)});return i}createDescription(t){let n=t.reference.$nodeDescription,i=t.reference.$refNode;if(!n||!i)return;let o=getDocument(t.container).uri;return{sourceUri:o,sourcePath:this.nodeLocator.getAstNodePath(t.container),targetUri:n.documentUri,targetPath:n.path,segment:toDocumentSegment(i),local:Y.equals(n.documentUri,o)}}},DefaultAstNodeLocator=class{constructor(){this.segmentSeparator=`/`,this.indexSeparator=`@`}getAstNodePath(t){if(t.$container){let n=this.getAstNodePath(t.$container),i=this.getPathSegment(t);return n+this.segmentSeparator+i}return``}getPathSegment({$containerProperty:t,$containerIndex:n}){if(!t)throw Error(`Missing '$containerProperty' in AST node.`);return n===void 0?t:t+this.indexSeparator+n}getAstNode(t,n){return n.split(this.segmentSeparator).reduce((t,n)=>{if(!t||n.length===0)return t;let i=n.indexOf(this.indexSeparator);if(i>0){let o=n.substring(0,i),s=parseInt(n.substring(i+1));return t[o]?.[s]}return t[n]},t)}},Ln=c({});t(Ln,n(Tn(),1));var DefaultConfigurationProvider=class{constructor(t){this._ready=new Deferred,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new Ln.Emitter,this.serviceRegistry=t.ServiceRegistry}get ready(){return this._ready.promise}initialize(t){this.workspaceConfig=t.capabilities.workspace?.configuration??!1}async initialized(t){if(this.workspaceConfig){if(t.register){let n=this.serviceRegistry.all;t.register({section:n.map(t=>this.toSectionName(t.LanguageMetaData.languageId))})}if(t.fetchConfiguration){let n=this.serviceRegistry.all.map(t=>({section:this.toSectionName(t.LanguageMetaData.languageId)})),i=await t.fetchConfiguration(n);n.forEach((t,n)=>{this.updateSectionConfiguration(t.section,i[n])})}}this._ready.resolve()}updateConfiguration(t){t.settings&&Object.keys(t.settings).forEach(n=>{let i=t.settings[n];this.updateSectionConfiguration(n,i),this.onConfigurationSectionUpdateEmitter.fire({section:n,configuration:i})})}updateSectionConfiguration(t,n){this.settings[t]=n}async getConfiguration(t,n){await this.ready;let i=this.toSectionName(t);if(this.settings[i])return this.settings[i][n]}toSectionName(t){return`${t}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}},Rn;(function(t){function create(t){return{dispose:async()=>await t()}}t.create=create})(Rn||={});var DefaultDocumentBuilder=class{constructor(t){this.updateBuildOptions={validation:{categories:[`built-in`,`fast`]}},this.updateListeners=[],this.buildPhaseListeners=new MultiMap,this.documentPhaseListeners=new MultiMap,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=X.Changed,this.langiumDocuments=t.workspace.LangiumDocuments,this.langiumDocumentFactory=t.workspace.LangiumDocumentFactory,this.textDocuments=t.workspace.TextDocuments,this.indexManager=t.workspace.IndexManager,this.serviceRegistry=t.ServiceRegistry}async build(t,n={},i=q.CancellationToken.None){for(let i of t){let t=i.uri.toString();if(i.state===X.Validated){if(typeof n.validation==`boolean`&&n.validation)i.state=X.IndexedReferences,i.diagnostics=void 0,this.buildState.delete(t);else if(typeof n.validation==`object`){let o=this.buildState.get(t),s=o?.result?.validationChecks;if(s){let c=(n.validation.categories??Fn.all).filter(t=>!s.includes(t));c.length>0&&(this.buildState.set(t,{completed:!1,options:{validation:Object.assign(Object.assign({},n.validation),{categories:c})},result:o.result}),i.state=X.IndexedReferences)}}}else this.buildState.delete(t)}this.currentState=X.Changed,await this.emitUpdate(t.map(t=>t.uri),[]),await this.buildDocuments(t,n,i)}async update(t,n,i=q.CancellationToken.None){this.currentState=X.Changed;for(let t of n)this.langiumDocuments.deleteDocument(t),this.buildState.delete(t.toString()),this.indexManager.remove(t);for(let n of t){if(!this.langiumDocuments.invalidateDocument(n)){let t=this.langiumDocumentFactory.fromModel({$type:`INVALID`},n);t.state=X.Changed,this.langiumDocuments.addDocument(t)}this.buildState.delete(n.toString())}let o=stream(t).concat(n).map(t=>t.toString()).toSet();this.langiumDocuments.all.filter(t=>!o.has(t.uri.toString())&&this.shouldRelink(t,o)).forEach(t=>{this.serviceRegistry.getServices(t.uri).references.Linker.unlink(t),t.state=Math.min(t.state,X.ComputedScopes),t.diagnostics=void 0}),await this.emitUpdate(t,n),await interruptAndCheck(i);let s=this.sortDocuments(this.langiumDocuments.all.filter(t=>t.state<X.Linked||!this.buildState.get(t.uri.toString())?.completed).toArray());await this.buildDocuments(s,this.updateBuildOptions,i)}async emitUpdate(t,n){await Promise.all(this.updateListeners.map(i=>i(t,n)))}sortDocuments(t){let n=0,i=t.length-1;for(;n<i;){for(;n<t.length&&this.hasTextDocument(t[n]);)n++;for(;i>=0&&!this.hasTextDocument(t[i]);)i--;n<i&&([t[n],t[i]]=[t[i],t[n]])}return t}hasTextDocument(t){return!!this.textDocuments?.get(t.uri)}shouldRelink(t,n){return t.references.some(t=>t.error!==void 0)?!0:this.indexManager.isAffected(t,n)}onUpdate(t){return this.updateListeners.push(t),Rn.create(()=>{let n=this.updateListeners.indexOf(t);n>=0&&this.updateListeners.splice(n,1)})}async buildDocuments(t,n,i){this.prepareBuild(t,n),await this.runCancelable(t,X.Parsed,i,t=>this.langiumDocumentFactory.update(t,i)),await this.runCancelable(t,X.IndexedContent,i,t=>this.indexManager.updateContent(t,i)),await this.runCancelable(t,X.ComputedScopes,i,async t=>{t.precomputedScopes=await this.serviceRegistry.getServices(t.uri).references.ScopeComputation.computeLocalScopes(t,i)});let o=t.filter(t=>this.shouldLink(t));await this.runCancelable(o,X.Linked,i,t=>this.serviceRegistry.getServices(t.uri).references.Linker.link(t,i)),await this.runCancelable(o,X.IndexedReferences,i,t=>this.indexManager.updateReferences(t,i));let s=t.filter(t=>this.shouldValidate(t));await this.runCancelable(s,X.Validated,i,t=>this.validate(t,i));for(let n of t){let t=this.buildState.get(n.uri.toString());t&&(t.completed=!0)}}prepareBuild(t,n){for(let i of t){let t=i.uri.toString(),o=this.buildState.get(t);(!o||o.completed)&&this.buildState.set(t,{completed:!1,options:n,result:o?.result})}}async runCancelable(t,n,i,o){let s=t.filter(t=>t.state<n);for(let t of s)await interruptAndCheck(i),await o(t),t.state=n,await this.notifyDocumentPhase(t,n,i);let c=t.filter(t=>t.state===n);await this.notifyBuildPhase(c,n,i),this.currentState=n}onBuildPhase(t,n){return this.buildPhaseListeners.add(t,n),Rn.create(()=>{this.buildPhaseListeners.delete(t,n)})}onDocumentPhase(t,n){return this.documentPhaseListeners.add(t,n),Rn.create(()=>{this.documentPhaseListeners.delete(t,n)})}waitUntil(t,n,i){let o;if(n&&`path`in n?o=n:i=n,i??=q.CancellationToken.None,o){let n=this.langiumDocuments.getDocument(o);if(n&&n.state>=t)return Promise.resolve(o)}return this.currentState>=t?Promise.resolve(void 0):i.isCancellationRequested?Promise.reject(On):new Promise((n,s)=>{let c=this.onBuildPhase(t,()=>{c.dispose(),u.dispose(),n(o?this.langiumDocuments.getDocument(o)?.uri:void 0)}),u=i.onCancellationRequested(()=>{c.dispose(),u.dispose(),s(On)})})}async notifyDocumentPhase(t,n,i){let o=this.documentPhaseListeners.get(n).slice();for(let n of o)try{await n(t,i)}catch(t){if(!isOperationCancelled(t))throw t}}async notifyBuildPhase(t,n,i){if(t.length===0)return;let o=this.buildPhaseListeners.get(n).slice();for(let n of o)await interruptAndCheck(i),await n(t,i)}shouldLink(t){return this.getBuildOptions(t).eagerLinking??!0}shouldValidate(t){return!!this.getBuildOptions(t).validation}async validate(t,n){let i=this.serviceRegistry.getServices(t.uri).validation.DocumentValidator,o=this.getBuildOptions(t).validation,s=typeof o==`object`?o:void 0,c=await i.validateDocument(t,s,n);t.diagnostics?t.diagnostics.push(...c):t.diagnostics=c;let u=this.buildState.get(t.uri.toString());if(u){u.result??={};let t=s?.categories??Fn.all;u.result.validationChecks?u.result.validationChecks.push(...t):u.result.validationChecks=[...t]}}getBuildOptions(t){return this.buildState.get(t.uri.toString())?.options??{}}},DefaultIndexManager=class{constructor(t){this.symbolIndex=new Map,this.symbolByTypeIndex=new ContextCache,this.referenceIndex=new Map,this.documents=t.workspace.LangiumDocuments,this.serviceRegistry=t.ServiceRegistry,this.astReflection=t.AstReflection}findAllReferences(t,n){let i=getDocument(t).uri,o=[];return this.referenceIndex.forEach(t=>{t.forEach(t=>{Y.equals(t.targetUri,i)&&t.targetPath===n&&o.push(t)})}),stream(o)}allElements(t,n){let i=stream(this.symbolIndex.keys());return n&&(i=i.filter(t=>!n||n.has(t))),i.map(n=>this.getFileDescriptions(n,t)).flat()}getFileDescriptions(t,n){return n?this.symbolByTypeIndex.get(t,n,()=>(this.symbolIndex.get(t)??[]).filter(t=>this.astReflection.isSubtype(t.type,n))):this.symbolIndex.get(t)??[]}remove(t){let n=t.toString();this.symbolIndex.delete(n),this.symbolByTypeIndex.clear(n),this.referenceIndex.delete(n)}async updateContent(t,n=q.CancellationToken.None){let i=await this.serviceRegistry.getServices(t.uri).references.ScopeComputation.computeExports(t,n),o=t.uri.toString();this.symbolIndex.set(o,i),this.symbolByTypeIndex.clear(o)}async updateReferences(t,n=q.CancellationToken.None){let i=await this.serviceRegistry.getServices(t.uri).workspace.ReferenceDescriptionProvider.createDescriptions(t,n);this.referenceIndex.set(t.uri.toString(),i)}isAffected(t,n){let i=this.referenceIndex.get(t.uri.toString());return i?i.some(t=>!t.local&&n.has(t.targetUri.toString())):!1}},DefaultWorkspaceManager=class{constructor(t){this.initialBuildOptions={},this._ready=new Deferred,this.serviceRegistry=t.ServiceRegistry,this.langiumDocuments=t.workspace.LangiumDocuments,this.documentBuilder=t.workspace.DocumentBuilder,this.fileSystemProvider=t.workspace.FileSystemProvider,this.mutex=t.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(t){this.folders=t.workspaceFolders??void 0}initialized(t){return this.mutex.write(t=>this.initializeWorkspace(this.folders??[],t))}async initializeWorkspace(t,n=q.CancellationToken.None){let i=await this.performStartup(t);await interruptAndCheck(n),await this.documentBuilder.build(i,this.initialBuildOptions,n)}async performStartup(t){let n=this.serviceRegistry.all.flatMap(t=>t.LanguageMetaData.fileExtensions),i=this.serviceRegistry.all.flatMap(t=>t.LanguageMetaData.fileNames??[]),o=[],collector=t=>{o.push(t),this.langiumDocuments.hasDocument(t.uri)||this.langiumDocuments.addDocument(t)};return await this.loadAdditionalDocuments(t,collector),await Promise.all(t.map(t=>[t,this.getRootFolder(t)]).map(async t=>this.traverseFolder(...t,{fileExtensions:n,fileNames:i},collector))),this._ready.resolve(),o}loadAdditionalDocuments(t,n){return Promise.resolve()}getRootFolder(t){return J.parse(t.uri)}async traverseFolder(t,n,i,o){let s=await this.fileSystemProvider.readDirectory(n);await Promise.all(s.map(async n=>{this.includeEntry(t,n,i)&&(n.isDirectory?await this.traverseFolder(t,n.uri,i,o):n.isFile&&o(await this.langiumDocuments.getOrCreateDocument(n.uri)))}))}includeEntry(t,n,i){let o=Y.basename(n.uri);return o.startsWith(`.`)?!1:n.isDirectory?o!==`node_modules`&&o!==`out`:n.isFile?i.fileExtensions.includes(Y.extname(n.uri))||i.fileNames.includes(Y.basename(n.uri)):!1}},DefaultLexerErrorMessageProvider=class{buildUnexpectedCharactersMessage(t,n,i,o,s){return D.buildUnexpectedCharactersMessage(t,n,i,o,s)}buildUnableToPopLexerModeMessage(t){return D.buildUnableToPopLexerModeMessage(t)}};const zn={mode:`full`};var DefaultLexer=class{constructor(t){this.errorMessageProvider=t.parser.LexerErrorMessageProvider,this.tokenBuilder=t.parser.TokenBuilder;let n=this.tokenBuilder.buildTokens(t.Grammar,{caseInsensitive:t.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(n);let i=isTokenTypeDictionary(n)?Object.values(n):n,o=t.LanguageMetaData.mode===`production`;this.chevrotainLexer=new _(i,{positionTracking:`full`,skipValidations:o,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(t,n=zn){var i;let o=this.chevrotainLexer.tokenize(t);return{tokens:o.tokens,errors:o.errors,hidden:o.groups.hidden??[],report:(i=this.tokenBuilder).flushLexingReport?.call(i,t)}}toTokenTypeDictionary(t){if(isTokenTypeDictionary(t))return t;let n=isIMultiModeLexerDefinition(t)?Object.values(t.modes).flat():t,i={};return n.forEach(t=>i[t.name]=t),i}};function isTokenTypeArray(t){return Array.isArray(t)&&(t.length===0||`name`in t[0])}function isIMultiModeLexerDefinition(t){return t&&`modes`in t&&`defaultMode`in t}function isTokenTypeDictionary(t){return!isTokenTypeArray(t)&&!isIMultiModeLexerDefinition(t)}vn();function parseJSDoc(t,n,i){let o,s;typeof t==`string`?(s=n,o=i):(s=t.range.start,o=n),s||=U.create(0,0);let c=getLines(t),u=normalizeOptions(o);return parseJSDocComment({index:0,tokens:tokenize({lines:c,position:s,options:u}),position:s})}function isJSDoc(t,n){let i=normalizeOptions(n),o=getLines(t);if(o.length===0)return!1;let s=o[0],c=o[o.length-1],u=i.start,f=i.end;return!!u?.exec(s)&&!!f?.exec(c)}function getLines(t){let n=``;return n=typeof t==`string`?t:t.text,n.split(Ve)}const Bn=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Vn=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function tokenize(t){let n=[],i=t.position.line,o=t.position.character;for(let s=0;s<t.lines.length;s++){let c=s===0,u=s===t.lines.length-1,f=t.lines[s],p=0;if(c&&t.options.start){let n=t.options.start?.exec(f);n&&(p=n.index+n[0].length)}else{let n=t.options.line?.exec(f);n&&(p=n.index+n[0].length)}if(u){let n=t.options.end?.exec(f);n&&(f=f.substring(0,n.index))}if(f=f.substring(0,lastCharacter(f)),skipWhitespace(f,p)>=f.length){if(n.length>0){let t=U.create(i,o);n.push({type:`break`,content:``,range:W.create(t,t)})}}else{Bn.lastIndex=p;let t=Bn.exec(f);if(t){let s=t[0],c=t[1],u=U.create(i,o+p),h=U.create(i,o+p+s.length);n.push({type:`tag`,content:c,range:W.create(u,h)}),p+=s.length,p=skipWhitespace(f,p)}if(p<f.length){let t=f.substring(p),s=Array.from(t.matchAll(Vn));n.push(...buildInlineTokens(s,t,i,o+p))}}i++,o=0}return n.length>0&&n[n.length-1].type===`break`?n.slice(0,-1):n}function buildInlineTokens(t,n,i,o){let s=[];if(t.length===0){let t=U.create(i,o),c=U.create(i,o+n.length);s.push({type:`text`,content:n,range:W.create(t,c)})}else{let c=0;for(let u of t){let t=u.index,f=n.substring(c,t);f.length>0&&s.push({type:`text`,content:n.substring(c,t),range:W.create(U.create(i,c+o),U.create(i,t+o))});let p=f.length+1,h=u[1];if(s.push({type:`inline-tag`,content:h,range:W.create(U.create(i,c+p+o),U.create(i,c+p+h.length+o))}),p+=h.length,u.length===4){p+=u[2].length;let t=u[3];s.push({type:`text`,content:t,range:W.create(U.create(i,c+p+o),U.create(i,c+p+t.length+o))})}else s.push({type:`text`,content:``,range:W.create(U.create(i,c+p+o),U.create(i,c+p+o))});c=t+u[0].length}let u=n.substring(c);u.length>0&&s.push({type:`text`,content:u,range:W.create(U.create(i,c+o),U.create(i,c+o+u.length))})}return s}const Hn=/\S/,Un=/\s*$/;function skipWhitespace(t,n){let i=t.substring(n).match(Hn);return i?n+i.index:t.length}function lastCharacter(t){let n=t.match(Un);if(n&&typeof n.index==`number`)return n.index}function parseJSDocComment(t){let n=U.create(t.position.line,t.position.character);if(t.tokens.length===0)return new JSDocCommentImpl([],W.create(n,n));let i=[];for(;t.index<t.tokens.length;){let n=parseJSDocElement(t,i[i.length-1]);n&&i.push(n)}let o=i[0]?.range.start??n,s=i[i.length-1]?.range.end??n;return new JSDocCommentImpl(i,W.create(o,s))}function parseJSDocElement(t,n){let i=t.tokens[t.index];if(i.type===`tag`)return parseJSDocTag(t,!1);if(i.type===`text`||i.type===`inline-tag`)return parseJSDocText(t);appendEmptyLine(i,n),t.index++}function appendEmptyLine(t,n){if(n){let i=new JSDocLineImpl(``,t.range);`inlines`in n?n.inlines.push(i):n.content.inlines.push(i)}}function parseJSDocText(t){let n=t.tokens[t.index],i=n,o=n,s=[];for(;n&&n.type!==`break`&&n.type!==`tag`;)s.push(parseJSDocInline(t)),o=n,n=t.tokens[t.index];return new JSDocTextImpl(s,W.create(i.range.start,o.range.end))}function parseJSDocInline(t){return t.tokens[t.index].type===`inline-tag`?parseJSDocTag(t,!0):parseJSDocLine(t)}function parseJSDocTag(t,n){let i=t.tokens[t.index++],o=i.content.substring(1);if(t.tokens[t.index]?.type===`text`){if(n){let s=parseJSDocLine(t);return new JSDocTagImpl(o,new JSDocTextImpl([s],s.range),n,W.create(i.range.start,s.range.end))}{let s=parseJSDocText(t);return new JSDocTagImpl(o,s,n,W.create(i.range.start,s.range.end))}}{let t=i.range;return new JSDocTagImpl(o,new JSDocTextImpl([],t),n,t)}}function parseJSDocLine(t){let n=t.tokens[t.index++];return new JSDocLineImpl(n.content,n.range)}function normalizeOptions(t){if(!t)return normalizeOptions({start:`/**`,end:`*/`,line:`*`});let{start:n,end:i,line:o}=t;return{start:normalizeOption(n,!0),end:normalizeOption(i,!1),line:normalizeOption(o,!0)}}function normalizeOption(t,n){if(typeof t==`string`||typeof t==`object`){let i=typeof t==`string`?escapeRegExp(t):t.source;return RegExp(n?`^\\s*${i}`:`\\s*${i}\\s*$`)}return t}var JSDocCommentImpl=class{constructor(t,n){this.elements=t,this.range=n}getTag(t){return this.getAllTags().find(n=>n.name===t)}getTags(t){return this.getAllTags().filter(n=>n.name===t)}getAllTags(){return this.elements.filter(t=>`name`in t)}toString(){let t=``;for(let n of this.elements)if(t.length===0)t=n.toString();else{let i=n.toString();t+=fillNewlines(t)+i}return t.trim()}toMarkdown(t){let n=``;for(let i of this.elements)if(n.length===0)n=i.toMarkdown(t);else{let o=i.toMarkdown(t);n+=fillNewlines(n)+o}return n.trim()}},JSDocTagImpl=class{constructor(t,n,i,o){this.name=t,this.content=n,this.inline=i,this.range=o}toString(){let t=`@${this.name}`,n=this.content.toString();return this.content.inlines.length===1?t=`${t} ${n}`:this.content.inlines.length>1&&(t=`${t}\n${n}`),this.inline?`{${t}}`:t}toMarkdown(t){return(t?.renderTag)?.call(t,this)??this.toMarkdownDefault(t)}toMarkdownDefault(t){let n=this.content.toMarkdown(t);if(this.inline){let i=renderInlineTag(this.name,n,t??{});if(typeof i==`string`)return i}let i=``;t?.tag===`italic`||t?.tag===void 0?i=`*`:t?.tag===`bold`?i=`**`:t?.tag===`bold-italic`&&(i=`***`);let o=`${i}@${this.name}${i}`;return this.content.inlines.length===1?o=`${o} — ${n}`:this.content.inlines.length>1&&(o=`${o}\n${n}`),this.inline?`{${o}}`:o}};function renderInlineTag(t,n,i){if(t===`linkplain`||t===`linkcode`||t===`link`){let o=n.indexOf(` `),s=n;if(o>0){let t=skipWhitespace(n,o);s=n.substring(t),n=n.substring(0,o)}return(t===`linkcode`||t===`link`&&i.link===`code`)&&(s=`\`${s}\``),i.renderLink?.call(i,n,s)??renderLinkDefault(n,s)}}function renderLinkDefault(t,n){try{return J.parse(t,!0),`[${n}](${t})`}catch{return t}}var JSDocTextImpl=class{constructor(t,n){this.inlines=t,this.range=n}toString(){let t=``;for(let n=0;n<this.inlines.length;n++){let i=this.inlines[n],o=this.inlines[n+1];t+=i.toString(),o&&o.range.start.line>i.range.start.line&&(t+=`
10
- `)}return t}toMarkdown(t){let n=``;for(let i=0;i<this.inlines.length;i++){let o=this.inlines[i],s=this.inlines[i+1];n+=o.toMarkdown(t),s&&s.range.start.line>o.range.start.line&&(n+=`
10
+ `,`\r`],(function(t){function create(t,n,i,a){return new FullTextDocument$1(t,n,i,a)}t.create=create;function is(t){let n=t;return!!(K.defined(n)&&K.string(n.uri)&&(K.undefined(n.languageId)||K.string(n.languageId))&&K.uinteger(n.lineCount)&&K.func(n.getText)&&K.func(n.positionAt)&&K.func(n.offsetAt))}t.is=is;function applyEdits(t,n){let i=t.getText(),a=mergeSort(n,(t,n)=>{let i=t.range.start.line-n.range.start.line;return i===0?t.range.start.character-n.range.start.character:i}),o=i.length;for(let n=a.length-1;n>=0;n--){let c=a[n],l=t.offsetAt(c.range.start),f=t.offsetAt(c.range.end);if(f<=o)i=i.substring(0,l)+c.newText+i.substring(f,i.length);else throw Error(`Overlapping edit`);o=l}return i}t.applyEdits=applyEdits;function mergeSort(t,n){if(t.length<=1)return t;let i=t.length/2|0,a=t.slice(0,i),o=t.slice(i);mergeSort(a,n),mergeSort(o,n);let c=0,l=0,f=0;for(;c<a.length&&l<o.length;)n(a[c],o[l])<=0?t[f++]=a[c++]:t[f++]=o[l++];for(;c<a.length;)t[f++]=a[c++];for(;l<o.length;)t[f++]=o[l++];return t}})(Bn||={}),FullTextDocument$1=class{static{t(this,`FullTextDocument`)}constructor(t,n,i,a){this._uri=t,this._languageId=n,this._version=i,this._content=a,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let n=this.offsetAt(t.start),i=this.offsetAt(t.end);return this._content.substring(n,i)}return this._content}update(t,n){this._content=t.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let t=[],n=this._content,i=!0;for(let a=0;a<n.length;a++){i&&=(t.push(a),!1);let o=n.charAt(a);i=o===`\r`||o===`
11
+ `,o===`\r`&&a+1<n.length&&n.charAt(a+1)===`
12
+ `&&a++}i&&n.length>0&&t.push(n.length),this._lineOffsets=t}return this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let n=this.getLineOffsets(),i=0,a=n.length;if(a===0)return U.create(0,t);for(;i<a;){let o=Math.floor((i+a)/2);n[o]>t?a=o:i=o+1}let o=i-1;return U.create(o,t-n[o])}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let i=n[t.line],a=t.line+1<n.length?n[t.line+1]:this._content.length;return Math.max(Math.min(i+t.character,a),i)}get lineCount(){return this.getLineOffsets().length}},(function(t){let n=Object.prototype.toString;function defined(t){return t!==void 0}t.defined=defined;function undefined(t){return t===void 0}t.undefined=undefined;function boolean(t){return t===!0||t===!1}t.boolean=boolean;function string(t){return n.call(t)===`[object String]`}t.string=string;function number(t){return n.call(t)===`[object Number]`}t.number=number;function numberRange(t,i,a){return n.call(t)===`[object Number]`&&i<=t&&t<=a}t.numberRange=numberRange;function integer(t){return n.call(t)===`[object Number]`&&-2147483648<=t&&t<=2147483647}t.integer=integer;function uinteger(t){return n.call(t)===`[object Number]`&&0<=t&&t<=2147483647}t.uinteger=uinteger;function func(t){return n.call(t)===`[object Function]`}t.func=func;function objectLiteral(t){return typeof t==`object`&&!!t}t.objectLiteral=objectLiteral;function typedArray(t,n){return Array.isArray(t)&&t.every(n)}t.typedArray=typedArray})(K||={})})),q=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CM=t.ProtocolNotificationType=t.ProtocolNotificationType0=t.ProtocolRequestType=t.ProtocolRequestType0=t.RegistrationType=t.MessageDirection=void 0;let n=dt();var i;(function(t){t.clientToServer=`clientToServer`,t.serverToClient=`serverToClient`,t.both=`both`})(i||(t.MessageDirection=i={}));var RegistrationType=class{____;method;constructor(t){this.method=t}};t.RegistrationType=RegistrationType;var ProtocolRequestType0=class extends n.RequestType0{__;___;____;_pr;constructor(t){super(t)}};t.ProtocolRequestType0=ProtocolRequestType0;var ProtocolRequestType=class extends n.RequestType{__;___;____;_pr;constructor(t){super(t,n.ParameterStructures.byName)}};t.ProtocolRequestType=ProtocolRequestType;var ProtocolNotificationType0=class extends n.NotificationType0{___;____;constructor(t){super(t)}};t.ProtocolNotificationType0=ProtocolNotificationType0;var ProtocolNotificationType=class extends n.NotificationType{___;____;constructor(t){super(t,n.ParameterStructures.byName)}};t.ProtocolNotificationType=ProtocolNotificationType;var a;(function(t){function create(t,n){return{client:t,server:n}}t.create=create})(a||(t.CM=a={}))})),Hn=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolean=boolean,t.string=string,t.number=number,t.error=error,t.func=func,t.array=array,t.stringArray=stringArray,t.typedArray=typedArray,t.objectLiteral=objectLiteral;function boolean(t){return t===!0||t===!1}function string(t){return typeof t==`string`||t instanceof String}function number(t){return typeof t==`number`||t instanceof Number}function error(t){return t instanceof Error}function func(t){return typeof t==`function`}function array(t){return Array.isArray(t)}function stringArray(t){return array(t)&&t.every(t=>string(t))}function typedArray(t,n){return Array.isArray(t)&&t.every(n)}function objectLiteral(t){return typeof t==`object`&&!!t}})),Un=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ImplementationRequest=void 0;let n=q();var i;(function(t){t.method=`textDocument/implementation`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.implementation`,`implementationProvider`)})(i||(t.ImplementationRequest=i={}))})),Wn=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TypeDefinitionRequest=void 0;let n=q();var i;(function(t){t.method=`textDocument/typeDefinition`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.typeDefinition`,`typeDefinitionProvider`)})(i||(t.TypeDefinitionRequest=i={}))})),Gn=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DidChangeWorkspaceFoldersNotification=t.WorkspaceFoldersRequest=void 0;let n=q();var i;(function(t){t.method=`workspace/workspaceFolders`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType0(t.method),t.capabilities=n.CM.create(`workspace.workspaceFolders`,`workspace.workspaceFolders`)})(i||(t.WorkspaceFoldersRequest=i={}));var a;(function(t){t.method=`workspace/didChangeWorkspaceFolders`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method),t.capabilities=n.CM.create(void 0,`workspace.workspaceFolders.changeNotifications`)})(a||(t.DidChangeWorkspaceFoldersNotification=a={}))})),Kn=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ConfigurationRequest=void 0;let n=q();var i;(function(t){t.method=`workspace/configuration`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`workspace.configuration`,void 0)})(i||(t.ConfigurationRequest=i={}))})),qn=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorPresentationRequest=t.DocumentColorRequest=void 0;let n=q();var i;(function(t){t.method=`textDocument/documentColor`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.colorProvider`,`colorProvider`)})(i||(t.DocumentColorRequest=i={}));var a;(function(t){t.method=`textDocument/colorPresentation`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.colorProvider`,`colorProvider`)})(a||(t.ColorPresentationRequest=a={}))})),Jn=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FoldingRangeRefreshRequest=t.FoldingRangeRequest=void 0;let n=q();var i;(function(t){t.method=`textDocument/foldingRange`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.foldingRange`,`foldingRangeProvider`)})(i||(t.FoldingRangeRequest=i={}));var a;(function(t){t.method=`workspace/foldingRange/refresh`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType0(t.method),t.capabilities=n.CM.create(`workspace.foldingRange.refreshSupport`,void 0)})(a||(t.FoldingRangeRefreshRequest=a={}))})),Yn=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DeclarationRequest=void 0;let n=q();var i;(function(t){t.method=`textDocument/declaration`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.declaration`,`declarationProvider`)})(i||(t.DeclarationRequest=i={}))})),Xn=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionRangeRequest=void 0;let n=q();var i;(function(t){t.method=`textDocument/selectionRange`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.selectionRange`,`selectionRangeProvider`)})(i||(t.SelectionRangeRequest=i={}))})),Zn=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WorkDoneProgressCancelNotification=t.WorkDoneProgressCreateRequest=t.WorkDoneProgress=void 0;let n=dt(),i=q();var a;(function(t){t.type=new n.ProgressType;function is(n){return n===t.type}t.is=is})(a||(t.WorkDoneProgress=a={}));var o;(function(t){t.method=`window/workDoneProgress/create`,t.messageDirection=i.MessageDirection.serverToClient,t.type=new i.ProtocolRequestType(t.method),t.capabilities=i.CM.create(`window.workDoneProgress`,void 0)})(o||(t.WorkDoneProgressCreateRequest=o={}));var c;(function(t){t.method=`window/workDoneProgress/cancel`,t.messageDirection=i.MessageDirection.clientToServer,t.type=new i.ProtocolNotificationType(t.method)})(c||(t.WorkDoneProgressCancelNotification=c={}))})),Qn=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CallHierarchyOutgoingCallsRequest=t.CallHierarchyIncomingCallsRequest=t.CallHierarchyPrepareRequest=void 0;let n=q();var i;(function(t){t.method=`textDocument/prepareCallHierarchy`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.callHierarchy`,`callHierarchyProvider`)})(i||(t.CallHierarchyPrepareRequest=i={}));var a;(function(t){t.method=`callHierarchy/incomingCalls`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.callHierarchy`,`callHierarchyProvider`)})(a||(t.CallHierarchyIncomingCallsRequest=a={}));var o;(function(t){t.method=`callHierarchy/outgoingCalls`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.callHierarchy`,`callHierarchyProvider`)})(o||(t.CallHierarchyOutgoingCallsRequest=o={}))})),$n=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SemanticTokensRefreshRequest=t.SemanticTokensRangeRequest=t.SemanticTokensDeltaRequest=t.SemanticTokensRequest=t.SemanticTokensRegistrationType=t.TokenFormat=void 0;let n=q();var i;(function(t){t.Relative=`relative`})(i||(t.TokenFormat=i={}));var a;(function(t){t.method=`textDocument/semanticTokens`,t.type=new n.RegistrationType(t.method)})(a||(t.SemanticTokensRegistrationType=a={}));var o;(function(t){t.method=`textDocument/semanticTokens/full`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.registrationMethod=a.method,t.capabilities=n.CM.create(`textDocument.semanticTokens`,`semanticTokensProvider`)})(o||(t.SemanticTokensRequest=o={}));var c;(function(t){t.method=`textDocument/semanticTokens/full/delta`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.registrationMethod=a.method,t.capabilities=n.CM.create(`textDocument.semanticTokens.requests.full.delta`,`semanticTokensProvider.full.delta`)})(c||(t.SemanticTokensDeltaRequest=c={}));var l;(function(t){t.method=`textDocument/semanticTokens/range`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.registrationMethod=a.method,t.capabilities=n.CM.create(`textDocument.semanticTokens.requests.range`,`semanticTokensProvider.range`)})(l||(t.SemanticTokensRangeRequest=l={}));var f;(function(t){t.method=`workspace/semanticTokens/refresh`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType0(t.method),t.capabilities=n.CM.create(`workspace.semanticTokens.refreshSupport`,void 0)})(f||(t.SemanticTokensRefreshRequest=f={}))})),er=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ShowDocumentRequest=void 0;let n=q();var i;(function(t){t.method=`window/showDocument`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`window.showDocument.support`,void 0)})(i||(t.ShowDocumentRequest=i={}))})),tr=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkedEditingRangeRequest=void 0;let n=q();var i;(function(t){t.method=`textDocument/linkedEditingRange`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.linkedEditingRange`,`linkedEditingRangeProvider`)})(i||(t.LinkedEditingRangeRequest=i={}))})),nr=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WillDeleteFilesRequest=t.DidDeleteFilesNotification=t.DidRenameFilesNotification=t.WillRenameFilesRequest=t.DidCreateFilesNotification=t.WillCreateFilesRequest=t.FileOperationPatternKind=void 0;let n=q();var i;(function(t){t.file=`file`,t.folder=`folder`})(i||(t.FileOperationPatternKind=i={}));var a;(function(t){t.method=`workspace/willCreateFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`workspace.fileOperations.willCreate`,`workspace.fileOperations.willCreate`)})(a||(t.WillCreateFilesRequest=a={}));var o;(function(t){t.method=`workspace/didCreateFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method),t.capabilities=n.CM.create(`workspace.fileOperations.didCreate`,`workspace.fileOperations.didCreate`)})(o||(t.DidCreateFilesNotification=o={}));var c;(function(t){t.method=`workspace/willRenameFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`workspace.fileOperations.willRename`,`workspace.fileOperations.willRename`)})(c||(t.WillRenameFilesRequest=c={}));var l;(function(t){t.method=`workspace/didRenameFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method),t.capabilities=n.CM.create(`workspace.fileOperations.didRename`,`workspace.fileOperations.didRename`)})(l||(t.DidRenameFilesNotification=l={}));var f;(function(t){t.method=`workspace/didDeleteFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method),t.capabilities=n.CM.create(`workspace.fileOperations.didDelete`,`workspace.fileOperations.didDelete`)})(f||(t.DidDeleteFilesNotification=f={}));var p;(function(t){t.method=`workspace/willDeleteFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`workspace.fileOperations.willDelete`,`workspace.fileOperations.willDelete`)})(p||(t.WillDeleteFilesRequest=p={}))})),rr=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MonikerRequest=t.MonikerKind=t.UniquenessLevel=void 0;let n=q();var i;(function(t){t.document=`document`,t.project=`project`,t.group=`group`,t.scheme=`scheme`,t.global=`global`})(i||(t.UniquenessLevel=i={}));var a;(function(t){t.$import=`import`,t.$export=`export`,t.local=`local`})(a||(t.MonikerKind=a={}));var o;(function(t){t.method=`textDocument/moniker`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.moniker`,`monikerProvider`)})(o||(t.MonikerRequest=o={}))})),ir=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TypeHierarchySubtypesRequest=t.TypeHierarchySupertypesRequest=t.TypeHierarchyPrepareRequest=void 0;let n=q();var i;(function(t){t.method=`textDocument/prepareTypeHierarchy`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.typeHierarchy`,`typeHierarchyProvider`)})(i||(t.TypeHierarchyPrepareRequest=i={}));var a;(function(t){t.method=`typeHierarchy/supertypes`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(a||(t.TypeHierarchySupertypesRequest=a={}));var o;(function(t){t.method=`typeHierarchy/subtypes`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(o||(t.TypeHierarchySubtypesRequest=o={}))})),ar=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InlineValueRefreshRequest=t.InlineValueRequest=void 0;let n=q();var i;(function(t){t.method=`textDocument/inlineValue`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.inlineValue`,`inlineValueProvider`)})(i||(t.InlineValueRequest=i={}));var a;(function(t){t.method=`workspace/inlineValue/refresh`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType0(t.method),t.capabilities=n.CM.create(`workspace.inlineValue.refreshSupport`,void 0)})(a||(t.InlineValueRefreshRequest=a={}))})),or=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InlayHintRefreshRequest=t.InlayHintResolveRequest=t.InlayHintRequest=void 0;let n=q();var i;(function(t){t.method=`textDocument/inlayHint`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.inlayHint`,`inlayHintProvider`)})(i||(t.InlayHintRequest=i={}));var a;(function(t){t.method=`inlayHint/resolve`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.inlayHint.resolveSupport`,`inlayHintProvider.resolveProvider`)})(a||(t.InlayHintResolveRequest=a={}));var o;(function(t){t.method=`workspace/inlayHint/refresh`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType0(t.method),t.capabilities=n.CM.create(`workspace.inlayHint.refreshSupport`,void 0)})(o||(t.InlayHintRefreshRequest=o={}))})),sr=/* @__PURE__ */ o((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,a){a===void 0&&(a=i);var o=Object.getOwnPropertyDescriptor(n,i);(!o||(`get`in o?!n.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,a,o)}):(function(t,n,i,a){a===void 0&&(a=i),t[a]=n[i]})),i=t&&t.__setModuleDefault||(Object.create?(function(t,n){Object.defineProperty(t,"default",{enumerable:!0,value:n})}):function(t,n){t.default=n}),a=t&&t.__importStar||(function(){var ownKeys=function(t){return ownKeys=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},ownKeys(t)};return function(t){if(t&&t.__esModule)return t;var a={};if(t!=null)for(var o=ownKeys(t),c=0;c<o.length;c++)o[c]!=="default"&&n(a,t,o[c]);return i(a,t),a}})();Object.defineProperty(t,"__esModule",{value:!0}),t.DiagnosticRefreshRequest=t.WorkspaceDiagnosticRequest=t.DocumentDiagnosticRequest=t.DocumentDiagnosticReportKind=t.DiagnosticServerCancellationData=void 0;let o=dt(),c=a(Hn()),l=q();var f;(function(t){function is(t){let n=t;return n&&c.boolean(n.retriggerRequest)}t.is=is})(f||(t.DiagnosticServerCancellationData=f={}));var p;(function(t){t.Full=`full`,t.Unchanged=`unchanged`})(p||(t.DocumentDiagnosticReportKind=p={}));var h;(function(t){t.method=`textDocument/diagnostic`,t.messageDirection=l.MessageDirection.clientToServer,t.type=new l.ProtocolRequestType(t.method),t.partialResult=new o.ProgressType,t.capabilities=l.CM.create(`textDocument.diagnostic`,`diagnosticProvider`)})(h||(t.DocumentDiagnosticRequest=h={}));var _;(function(t){t.method=`workspace/diagnostic`,t.messageDirection=l.MessageDirection.clientToServer,t.type=new l.ProtocolRequestType(t.method),t.partialResult=new o.ProgressType,t.capabilities=l.CM.create(`workspace.diagnostics`,`diagnosticProvider.workspaceDiagnostics`)})(_||(t.WorkspaceDiagnosticRequest=_={}));var x;(function(t){t.method=`workspace/diagnostic/refresh`,t.messageDirection=l.MessageDirection.serverToClient,t.type=new l.ProtocolRequestType0(t.method),t.capabilities=l.CM.create(`workspace.diagnostics.refreshSupport`,void 0)})(x||(t.DiagnosticRefreshRequest=x={}))})),cr=/* @__PURE__ */ o((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,a){a===void 0&&(a=i);var o=Object.getOwnPropertyDescriptor(n,i);(!o||(`get`in o?!n.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,a,o)}):(function(t,n,i,a){a===void 0&&(a=i),t[a]=n[i]})),a=t&&t.__setModuleDefault||(Object.create?(function(t,n){Object.defineProperty(t,"default",{enumerable:!0,value:n})}):function(t,n){t.default=n}),o=t&&t.__importStar||(function(){var ownKeys=function(t){return ownKeys=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},ownKeys(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(t!=null)for(var o=ownKeys(t),c=0;c<o.length;c++)o[c]!=="default"&&n(i,t,o[c]);return a(i,t),i}})();Object.defineProperty(t,"__esModule",{value:!0}),t.DidCloseNotebookDocumentNotification=t.DidSaveNotebookDocumentNotification=t.DidChangeNotebookDocumentNotification=t.NotebookCellArrayChange=t.DidOpenNotebookDocumentNotification=t.NotebookDocumentSyncRegistrationType=t.NotebookDocument=t.NotebookCell=t.ExecutionSummary=t.NotebookCellKind=void 0;let c=(Vn(),i(ft)),l=o(Hn()),f=q();var p;(function(t){t.Markup=1,t.Code=2;function is(t){return t===1||t===2}t.is=is})(p||(t.NotebookCellKind=p={}));var h;(function(t){function create(t,n){let i={executionOrder:t};return(n===!0||n===!1)&&(i.success=n),i}t.create=create;function is(t){let n=t;return l.objectLiteral(n)&&c.uinteger.is(n.executionOrder)&&(n.success===void 0||l.boolean(n.success))}t.is=is;function equals(t,n){return t===n?!0:t==null||n==null?!1:t.executionOrder===n.executionOrder&&t.success===n.success}t.equals=equals})(h||(t.ExecutionSummary=h={}));var _;(function(t){function create(t,n){return{kind:t,document:n}}t.create=create;function is(t){let n=t;return l.objectLiteral(n)&&p.is(n.kind)&&c.DocumentUri.is(n.document)&&(n.metadata===void 0||l.objectLiteral(n.metadata))}t.is=is;function diff(t,n){let i=/* @__PURE__ */ new Set;return t.document!==n.document&&i.add(`document`),t.kind!==n.kind&&i.add(`kind`),t.executionSummary!==n.executionSummary&&i.add(`executionSummary`),(t.metadata!==void 0||n.metadata!==void 0)&&!equalsMetadata(t.metadata,n.metadata)&&i.add(`metadata`),(t.executionSummary!==void 0||n.executionSummary!==void 0)&&!h.equals(t.executionSummary,n.executionSummary)&&i.add(`executionSummary`),i}t.diff=diff;function equalsMetadata(t,n){if(t===n)return!0;if(t==null||n==null||typeof t!=typeof n||typeof t!=`object`)return!1;let i=Array.isArray(t),a=Array.isArray(n);if(i!==a)return!1;if(i&&a){if(t.length!==n.length)return!1;for(let i=0;i<t.length;i++)if(!equalsMetadata(t[i],n[i]))return!1}if(l.objectLiteral(t)&&l.objectLiteral(n)){let i=Object.keys(t),a=Object.keys(n);if(i.length!==a.length||(i.sort(),a.sort(),!equalsMetadata(i,a)))return!1;for(let a=0;a<i.length;a++){let o=i[a];if(!equalsMetadata(t[o],n[o]))return!1}}return!0}})(_||(t.NotebookCell=_={}));var x;(function(t){function create(t,n,i,a){return{uri:t,notebookType:n,version:i,cells:a}}t.create=create;function is(t){let n=t;return l.objectLiteral(n)&&l.string(n.uri)&&c.integer.is(n.version)&&l.typedArray(n.cells,_.is)}t.is=is})(x||(t.NotebookDocument=x={}));var S;(function(t){t.method=`notebookDocument/sync`,t.messageDirection=f.MessageDirection.clientToServer,t.type=new f.RegistrationType(t.method)})(S||(t.NotebookDocumentSyncRegistrationType=S={}));var C;(function(t){t.method=`notebookDocument/didOpen`,t.messageDirection=f.MessageDirection.clientToServer,t.type=new f.ProtocolNotificationType(t.method),t.registrationMethod=S.method})(C||(t.DidOpenNotebookDocumentNotification=C={}));var w;(function(t){function is(t){let n=t;return l.objectLiteral(n)&&c.uinteger.is(n.start)&&c.uinteger.is(n.deleteCount)&&(n.cells===void 0||l.typedArray(n.cells,_.is))}t.is=is;function create(t,n,i){let a={start:t,deleteCount:n};return i!==void 0&&(a.cells=i),a}t.create=create})(w||(t.NotebookCellArrayChange=w={}));var T;(function(t){t.method=`notebookDocument/didChange`,t.messageDirection=f.MessageDirection.clientToServer,t.type=new f.ProtocolNotificationType(t.method),t.registrationMethod=S.method})(T||(t.DidChangeNotebookDocumentNotification=T={}));var E;(function(t){t.method=`notebookDocument/didSave`,t.messageDirection=f.MessageDirection.clientToServer,t.type=new f.ProtocolNotificationType(t.method),t.registrationMethod=S.method})(E||(t.DidSaveNotebookDocumentNotification=E={}));var D;(function(t){t.method=`notebookDocument/didClose`,t.messageDirection=f.MessageDirection.clientToServer,t.type=new f.ProtocolNotificationType(t.method),t.registrationMethod=S.method})(D||(t.DidCloseNotebookDocumentNotification=D={}))})),lr=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InlineCompletionRequest=void 0;let n=q();var i;(function(t){t.method=`textDocument/inlineCompletion`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`textDocument.inlineCompletion`,`inlineCompletionProvider`)})(i||(t.InlineCompletionRequest=i={}))})),ur=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextDocumentContentRefreshRequest=t.TextDocumentContentRequest=void 0;let n=q();var i;(function(t){t.method=`workspace/textDocumentContent`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.capabilities=n.CM.create(`workspace.textDocumentContent`,`workspace.textDocumentContent`)})(i||(t.TextDocumentContentRequest=i={}));var a;(function(t){t.method=`workspace/textDocumentContent/refresh`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(t.method)})(a||(t.TextDocumentContentRefreshRequest=a={}))})),dr=/* @__PURE__ */ o((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,a){a===void 0&&(a=i);var o=Object.getOwnPropertyDescriptor(n,i);(!o||(`get`in o?!n.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,a,o)}):(function(t,n,i,a){a===void 0&&(a=i),t[a]=n[i]})),a=t&&t.__setModuleDefault||(Object.create?(function(t,n){Object.defineProperty(t,"default",{enumerable:!0,value:n})}):function(t,n){t.default=n}),o=t&&t.__importStar||(function(){var ownKeys=function(t){return ownKeys=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},ownKeys(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(t!=null)for(var o=ownKeys(t),c=0;c<o.length;c++)o[c]!=="default"&&n(i,t,o[c]);return a(i,t),i}})();Object.defineProperty(t,"__esModule",{value:!0}),t.CodeActionRequest=t.DocumentSymbolRequest=t.DocumentHighlightRequest=t.ReferencesRequest=t.DefinitionRequest=t.SignatureHelpRequest=t.SignatureHelpTriggerKind=t.HoverRequest=t.CompletionResolveRequest=t.CompletionRequest=t.CompletionTriggerKind=t.PublishDiagnosticsNotification=t.WatchKind=t.GlobPattern=t.RelativePattern=t.FileChangeType=t.DidChangeWatchedFilesNotification=t.WillSaveTextDocumentWaitUntilRequest=t.WillSaveTextDocumentNotification=t.TextDocumentSaveReason=t.DidSaveTextDocumentNotification=t.DidCloseTextDocumentNotification=t.DidChangeTextDocumentNotification=t.TextDocumentContentChangeEvent=t.DidOpenTextDocumentNotification=t.TextDocumentSyncKind=t.TelemetryEventNotification=t.LogMessageNotification=t.ShowMessageRequest=t.ShowMessageNotification=t.MessageType=t.DidChangeConfigurationNotification=t.ExitNotification=t.ShutdownRequest=t.InitializedNotification=t.InitializeErrorCodes=t.InitializeRequest=t.WorkDoneProgressOptions=t.TextDocumentRegistrationOptions=t.StaticRegistrationOptions=t.PositionEncodingKind=t.RegularExpressionEngineKind=t.FailureHandlingKind=t.ResourceOperationKind=t.UnregistrationRequest=t.RegistrationRequest=t.DocumentSelector=t.NotebookCellTextDocumentFilter=t.NotebookDocumentFilter=t.TextDocumentFilter=void 0,t.UniquenessLevel=t.WillDeleteFilesRequest=t.DidDeleteFilesNotification=t.WillRenameFilesRequest=t.DidRenameFilesNotification=t.WillCreateFilesRequest=t.DidCreateFilesNotification=t.FileOperationPatternKind=t.LinkedEditingRangeRequest=t.ShowDocumentRequest=t.SemanticTokensRegistrationType=t.SemanticTokensRefreshRequest=t.SemanticTokensRangeRequest=t.SemanticTokensDeltaRequest=t.SemanticTokensRequest=t.TokenFormat=t.CallHierarchyPrepareRequest=t.CallHierarchyOutgoingCallsRequest=t.CallHierarchyIncomingCallsRequest=t.WorkDoneProgressCancelNotification=t.WorkDoneProgressCreateRequest=t.WorkDoneProgress=t.SelectionRangeRequest=t.DeclarationRequest=t.FoldingRangeRefreshRequest=t.FoldingRangeRequest=t.ColorPresentationRequest=t.DocumentColorRequest=t.ConfigurationRequest=t.DidChangeWorkspaceFoldersNotification=t.WorkspaceFoldersRequest=t.TypeDefinitionRequest=t.ImplementationRequest=t.ApplyWorkspaceEditRequest=t.ExecuteCommandRequest=t.PrepareRenameRequest=t.RenameRequest=t.PrepareSupportDefaultBehavior=t.DocumentOnTypeFormattingRequest=t.DocumentRangesFormattingRequest=t.DocumentRangeFormattingRequest=t.DocumentFormattingRequest=t.DocumentLinkResolveRequest=t.DocumentLinkRequest=t.CodeLensRefreshRequest=t.CodeLensResolveRequest=t.CodeLensRequest=t.WorkspaceSymbolResolveRequest=t.WorkspaceSymbolRequest=t.CodeActionResolveRequest=void 0,t.TextDocumentContentRefreshRequest=t.TextDocumentContentRequest=t.InlineCompletionRequest=t.DidCloseNotebookDocumentNotification=t.DidSaveNotebookDocumentNotification=t.DidChangeNotebookDocumentNotification=t.NotebookCellArrayChange=t.DidOpenNotebookDocumentNotification=t.NotebookDocumentSyncRegistrationType=t.NotebookDocument=t.NotebookCell=t.ExecutionSummary=t.NotebookCellKind=t.DiagnosticRefreshRequest=t.WorkspaceDiagnosticRequest=t.DocumentDiagnosticRequest=t.DocumentDiagnosticReportKind=t.DiagnosticServerCancellationData=t.InlayHintRefreshRequest=t.InlayHintResolveRequest=t.InlayHintRequest=t.InlineValueRefreshRequest=t.InlineValueRequest=t.TypeHierarchySupertypesRequest=t.TypeHierarchySubtypesRequest=t.TypeHierarchyPrepareRequest=t.MonikerRequest=t.MonikerKind=void 0;let c=q(),l=(Vn(),i(ft)),f=o(Hn()),p=Un();Object.defineProperty(t,"ImplementationRequest",{enumerable:!0,get:function(){return p.ImplementationRequest}});let h=Wn();Object.defineProperty(t,"TypeDefinitionRequest",{enumerable:!0,get:function(){return h.TypeDefinitionRequest}});let _=Gn();Object.defineProperty(t,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return _.WorkspaceFoldersRequest}}),Object.defineProperty(t,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return _.DidChangeWorkspaceFoldersNotification}});let x=Kn();Object.defineProperty(t,"ConfigurationRequest",{enumerable:!0,get:function(){return x.ConfigurationRequest}});let S=qn();Object.defineProperty(t,"DocumentColorRequest",{enumerable:!0,get:function(){return S.DocumentColorRequest}}),Object.defineProperty(t,"ColorPresentationRequest",{enumerable:!0,get:function(){return S.ColorPresentationRequest}});let C=Jn();Object.defineProperty(t,"FoldingRangeRequest",{enumerable:!0,get:function(){return C.FoldingRangeRequest}}),Object.defineProperty(t,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return C.FoldingRangeRefreshRequest}});let w=Yn();Object.defineProperty(t,"DeclarationRequest",{enumerable:!0,get:function(){return w.DeclarationRequest}});let T=Xn();Object.defineProperty(t,"SelectionRangeRequest",{enumerable:!0,get:function(){return T.SelectionRangeRequest}});let E=Zn();Object.defineProperty(t,"WorkDoneProgress",{enumerable:!0,get:function(){return E.WorkDoneProgress}}),Object.defineProperty(t,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return E.WorkDoneProgressCreateRequest}}),Object.defineProperty(t,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return E.WorkDoneProgressCancelNotification}});let D=Qn();Object.defineProperty(t,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return D.CallHierarchyIncomingCallsRequest}}),Object.defineProperty(t,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return D.CallHierarchyOutgoingCallsRequest}}),Object.defineProperty(t,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return D.CallHierarchyPrepareRequest}});let O=$n();Object.defineProperty(t,"TokenFormat",{enumerable:!0,get:function(){return O.TokenFormat}}),Object.defineProperty(t,"SemanticTokensRequest",{enumerable:!0,get:function(){return O.SemanticTokensRequest}}),Object.defineProperty(t,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return O.SemanticTokensDeltaRequest}}),Object.defineProperty(t,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return O.SemanticTokensRangeRequest}}),Object.defineProperty(t,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return O.SemanticTokensRefreshRequest}}),Object.defineProperty(t,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return O.SemanticTokensRegistrationType}});let k=er();Object.defineProperty(t,"ShowDocumentRequest",{enumerable:!0,get:function(){return k.ShowDocumentRequest}});let ee=tr();Object.defineProperty(t,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return ee.LinkedEditingRangeRequest}});let A=nr();Object.defineProperty(t,"FileOperationPatternKind",{enumerable:!0,get:function(){return A.FileOperationPatternKind}}),Object.defineProperty(t,"DidCreateFilesNotification",{enumerable:!0,get:function(){return A.DidCreateFilesNotification}}),Object.defineProperty(t,"WillCreateFilesRequest",{enumerable:!0,get:function(){return A.WillCreateFilesRequest}}),Object.defineProperty(t,"DidRenameFilesNotification",{enumerable:!0,get:function(){return A.DidRenameFilesNotification}}),Object.defineProperty(t,"WillRenameFilesRequest",{enumerable:!0,get:function(){return A.WillRenameFilesRequest}}),Object.defineProperty(t,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return A.DidDeleteFilesNotification}}),Object.defineProperty(t,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return A.WillDeleteFilesRequest}});let te=rr();Object.defineProperty(t,"UniquenessLevel",{enumerable:!0,get:function(){return te.UniquenessLevel}}),Object.defineProperty(t,"MonikerKind",{enumerable:!0,get:function(){return te.MonikerKind}}),Object.defineProperty(t,"MonikerRequest",{enumerable:!0,get:function(){return te.MonikerRequest}});let ne=ir();Object.defineProperty(t,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return ne.TypeHierarchyPrepareRequest}}),Object.defineProperty(t,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return ne.TypeHierarchySubtypesRequest}}),Object.defineProperty(t,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return ne.TypeHierarchySupertypesRequest}});let j=ar();Object.defineProperty(t,"InlineValueRequest",{enumerable:!0,get:function(){return j.InlineValueRequest}}),Object.defineProperty(t,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return j.InlineValueRefreshRequest}});let M=or();Object.defineProperty(t,"InlayHintRequest",{enumerable:!0,get:function(){return M.InlayHintRequest}}),Object.defineProperty(t,"InlayHintResolveRequest",{enumerable:!0,get:function(){return M.InlayHintResolveRequest}}),Object.defineProperty(t,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return M.InlayHintRefreshRequest}});let N=sr();Object.defineProperty(t,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return N.DiagnosticServerCancellationData}}),Object.defineProperty(t,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return N.DocumentDiagnosticReportKind}}),Object.defineProperty(t,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return N.DocumentDiagnosticRequest}}),Object.defineProperty(t,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return N.WorkspaceDiagnosticRequest}}),Object.defineProperty(t,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return N.DiagnosticRefreshRequest}});let P=cr();Object.defineProperty(t,"NotebookCellKind",{enumerable:!0,get:function(){return P.NotebookCellKind}}),Object.defineProperty(t,"ExecutionSummary",{enumerable:!0,get:function(){return P.ExecutionSummary}}),Object.defineProperty(t,"NotebookCell",{enumerable:!0,get:function(){return P.NotebookCell}}),Object.defineProperty(t,"NotebookDocument",{enumerable:!0,get:function(){return P.NotebookDocument}}),Object.defineProperty(t,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return P.NotebookDocumentSyncRegistrationType}}),Object.defineProperty(t,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return P.DidOpenNotebookDocumentNotification}}),Object.defineProperty(t,"NotebookCellArrayChange",{enumerable:!0,get:function(){return P.NotebookCellArrayChange}}),Object.defineProperty(t,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return P.DidChangeNotebookDocumentNotification}}),Object.defineProperty(t,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return P.DidSaveNotebookDocumentNotification}}),Object.defineProperty(t,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return P.DidCloseNotebookDocumentNotification}});let re=lr();Object.defineProperty(t,"InlineCompletionRequest",{enumerable:!0,get:function(){return re.InlineCompletionRequest}});let F=ur();Object.defineProperty(t,"TextDocumentContentRequest",{enumerable:!0,get:function(){return F.TextDocumentContentRequest}}),Object.defineProperty(t,"TextDocumentContentRefreshRequest",{enumerable:!0,get:function(){return F.TextDocumentContentRefreshRequest}});var I;(function(t){function is(t){let n=t;return f.string(n)||f.string(n.language)||f.string(n.scheme)||Pe.is(n.pattern)}t.is=is})(I||(t.TextDocumentFilter=I={}));var L;(function(t){function is(t){let n=t;return f.objectLiteral(n)&&(f.string(n.notebookType)||f.string(n.scheme)||f.string(n.pattern))}t.is=is})(L||(t.NotebookDocumentFilter=L={}));var ie;(function(t){function is(t){let n=t;return f.objectLiteral(n)&&(f.string(n.notebook)||L.is(n.notebook))&&(n.language===void 0||f.string(n.language))}t.is=is})(ie||(t.NotebookCellTextDocumentFilter=ie={}));var ae;(function(t){function is(t){if(!Array.isArray(t))return!1;for(let n of t)if(!f.string(n)&&!I.is(n)&&!ie.is(n))return!1;return!0}t.is=is})(ae||(t.DocumentSelector=ae={}));var oe;(function(t){t.method=`client/registerCapability`,t.messageDirection=c.MessageDirection.serverToClient,t.type=new c.ProtocolRequestType(t.method)})(oe||(t.RegistrationRequest=oe={}));var se;(function(t){t.method=`client/unregisterCapability`,t.messageDirection=c.MessageDirection.serverToClient,t.type=new c.ProtocolRequestType(t.method)})(se||(t.UnregistrationRequest=se={}));var ce;(function(t){t.Create=`create`,t.Rename=`rename`,t.Delete=`delete`})(ce||(t.ResourceOperationKind=ce={}));var R;(function(t){t.Abort=`abort`,t.Transactional=`transactional`,t.TextOnlyTransactional=`textOnlyTransactional`,t.Undo=`undo`})(R||(t.FailureHandlingKind=R={}));var le;(function(t){t.ES2020=`ES2020`})(le||(t.RegularExpressionEngineKind=le={}));var ue;(function(t){t.UTF8=`utf-8`,t.UTF16=`utf-16`,t.UTF32=`utf-32`})(ue||(t.PositionEncodingKind=ue={}));var de;(function(t){function hasId(t){let n=t;return n&&f.string(n.id)&&n.id.length>0}t.hasId=hasId})(de||(t.StaticRegistrationOptions=de={}));var z;(function(t){function is(t){let n=t;return n&&(n.documentSelector===null||ae.is(n.documentSelector))}t.is=is})(z||(t.TextDocumentRegistrationOptions=z={}));var fe;(function(t){function is(t){let n=t;return f.objectLiteral(n)&&(n.workDoneProgress===void 0||f.boolean(n.workDoneProgress))}t.is=is;function hasWorkDoneProgress(t){let n=t;return n&&f.boolean(n.workDoneProgress)}t.hasWorkDoneProgress=hasWorkDoneProgress})(fe||(t.WorkDoneProgressOptions=fe={}));var B;(function(t){t.method=`initialize`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method)})(B||(t.InitializeRequest=B={}));var V;(function(t){t.unknownProtocolVersion=1})(V||(t.InitializeErrorCodes=V={}));var pe;(function(t){t.method=`initialized`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolNotificationType(t.method)})(pe||(t.InitializedNotification=pe={}));var me;(function(t){t.method=`shutdown`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType0(t.method)})(me||(t.ShutdownRequest=me={}));var he;(function(t){t.method=`exit`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolNotificationType0(t.method)})(he||(t.ExitNotification=he={}));var ge;(function(t){t.method=`workspace/didChangeConfiguration`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolNotificationType(t.method),t.capabilities=c.CM.create(`workspace.didChangeConfiguration`,void 0)})(ge||(t.DidChangeConfigurationNotification=ge={}));var _e;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(_e||(t.MessageType=_e={}));var ve;(function(t){t.method=`window/showMessage`,t.messageDirection=c.MessageDirection.serverToClient,t.type=new c.ProtocolNotificationType(t.method),t.capabilities=c.CM.create(`window.showMessage`,void 0)})(ve||(t.ShowMessageNotification=ve={}));var ye;(function(t){t.method=`window/showMessageRequest`,t.messageDirection=c.MessageDirection.serverToClient,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`window.showMessage`,void 0)})(ye||(t.ShowMessageRequest=ye={}));var be;(function(t){t.method=`window/logMessage`,t.messageDirection=c.MessageDirection.serverToClient,t.type=new c.ProtocolNotificationType(t.method)})(be||(t.LogMessageNotification=be={}));var xe;(function(t){t.method=`telemetry/event`,t.messageDirection=c.MessageDirection.serverToClient,t.type=new c.ProtocolNotificationType(t.method)})(xe||(t.TelemetryEventNotification=xe={}));var Se;(function(t){t.None=0,t.Full=1,t.Incremental=2})(Se||(t.TextDocumentSyncKind=Se={}));var Ce;(function(t){t.method=`textDocument/didOpen`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolNotificationType(t.method),t.capabilities=c.CM.create(`textDocument.synchronization`,`textDocumentSync.openClose`)})(Ce||(t.DidOpenTextDocumentNotification=Ce={}));var we;(function(t){function isIncremental(t){let n=t;return n!=null&&typeof n.text==`string`&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength==`number`)}t.isIncremental=isIncremental;function isFull(t){let n=t;return n!=null&&typeof n.text==`string`&&n.range===void 0&&n.rangeLength===void 0}t.isFull=isFull})(we||(t.TextDocumentContentChangeEvent=we={}));var Te;(function(t){t.method=`textDocument/didChange`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolNotificationType(t.method),t.capabilities=c.CM.create(`textDocument.synchronization`,`textDocumentSync`)})(Te||(t.DidChangeTextDocumentNotification=Te={}));var Ee;(function(t){t.method=`textDocument/didClose`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolNotificationType(t.method),t.capabilities=c.CM.create(`textDocument.synchronization`,`textDocumentSync.openClose`)})(Ee||(t.DidCloseTextDocumentNotification=Ee={}));var De;(function(t){t.method=`textDocument/didSave`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolNotificationType(t.method),t.capabilities=c.CM.create(`textDocument.synchronization.didSave`,`textDocumentSync.save`)})(De||(t.DidSaveTextDocumentNotification=De={}));var Oe;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(Oe||(t.TextDocumentSaveReason=Oe={}));var ke;(function(t){t.method=`textDocument/willSave`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolNotificationType(t.method),t.capabilities=c.CM.create(`textDocument.synchronization.willSave`,`textDocumentSync.willSave`)})(ke||(t.WillSaveTextDocumentNotification=ke={}));var Ae;(function(t){t.method=`textDocument/willSaveWaitUntil`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.synchronization.willSaveWaitUntil`,`textDocumentSync.willSaveWaitUntil`)})(Ae||(t.WillSaveTextDocumentWaitUntilRequest=Ae={}));var je;(function(t){t.method=`workspace/didChangeWatchedFiles`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolNotificationType(t.method),t.capabilities=c.CM.create(`workspace.didChangeWatchedFiles`,void 0)})(je||(t.DidChangeWatchedFilesNotification=je={}));var Me;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Me||(t.FileChangeType=Me={}));var Ne;(function(t){function is(t){let n=t;return f.objectLiteral(n)&&(l.URI.is(n.baseUri)||l.WorkspaceFolder.is(n.baseUri))&&f.string(n.pattern)}t.is=is})(Ne||(t.RelativePattern=Ne={}));var Pe;(function(t){function is(t){let n=t;return f.string(n)||Ne.is(n)}t.is=is})(Pe||(t.GlobPattern=Pe={}));var Fe;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Fe||(t.WatchKind=Fe={}));var Ie;(function(t){t.method=`textDocument/publishDiagnostics`,t.messageDirection=c.MessageDirection.serverToClient,t.type=new c.ProtocolNotificationType(t.method),t.capabilities=c.CM.create(`textDocument.publishDiagnostics`,void 0)})(Ie||(t.PublishDiagnosticsNotification=Ie={}));var Le;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(Le||(t.CompletionTriggerKind=Le={}));var Re;(function(t){t.method=`textDocument/completion`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.completion`,`completionProvider`)})(Re||(t.CompletionRequest=Re={}));var ze;(function(t){t.method=`completionItem/resolve`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.completion.completionItem.resolveSupport`,`completionProvider.resolveProvider`)})(ze||(t.CompletionResolveRequest=ze={}));var H;(function(t){t.method=`textDocument/hover`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.hover`,`hoverProvider`)})(H||(t.HoverRequest=H={}));var Be;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(Be||(t.SignatureHelpTriggerKind=Be={}));var Ve;(function(t){t.method=`textDocument/signatureHelp`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.signatureHelp`,`signatureHelpProvider`)})(Ve||(t.SignatureHelpRequest=Ve={}));var He;(function(t){t.method=`textDocument/definition`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.definition`,`definitionProvider`)})(He||(t.DefinitionRequest=He={}));var Ue;(function(t){t.method=`textDocument/references`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.references`,`referencesProvider`)})(Ue||(t.ReferencesRequest=Ue={}));var We;(function(t){t.method=`textDocument/documentHighlight`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.documentHighlight`,`documentHighlightProvider`)})(We||(t.DocumentHighlightRequest=We={}));var Ge;(function(t){t.method=`textDocument/documentSymbol`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.documentSymbol`,`documentSymbolProvider`)})(Ge||(t.DocumentSymbolRequest=Ge={}));var Ke;(function(t){t.method=`textDocument/codeAction`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.codeAction`,`codeActionProvider`)})(Ke||(t.CodeActionRequest=Ke={}));var qe;(function(t){t.method=`codeAction/resolve`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.codeAction.resolveSupport`,`codeActionProvider.resolveProvider`)})(qe||(t.CodeActionResolveRequest=qe={}));var Je;(function(t){t.method=`workspace/symbol`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`workspace.symbol`,`workspaceSymbolProvider`)})(Je||(t.WorkspaceSymbolRequest=Je={}));var Ye;(function(t){t.method=`workspaceSymbol/resolve`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`workspace.symbol.resolveSupport`,`workspaceSymbolProvider.resolveProvider`)})(Ye||(t.WorkspaceSymbolResolveRequest=Ye={}));var Xe;(function(t){t.method=`textDocument/codeLens`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.codeLens`,`codeLensProvider`)})(Xe||(t.CodeLensRequest=Xe={}));var Ze;(function(t){t.method=`codeLens/resolve`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.codeLens.resolveSupport`,`codeLensProvider.resolveProvider`)})(Ze||(t.CodeLensResolveRequest=Ze={}));var Qe;(function(t){t.method=`workspace/codeLens/refresh`,t.messageDirection=c.MessageDirection.serverToClient,t.type=new c.ProtocolRequestType0(t.method),t.capabilities=c.CM.create(`workspace.codeLens`,void 0)})(Qe||(t.CodeLensRefreshRequest=Qe={}));var $e;(function(t){t.method=`textDocument/documentLink`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.documentLink`,`documentLinkProvider`)})($e||(t.DocumentLinkRequest=$e={}));var et;(function(t){t.method=`documentLink/resolve`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.documentLink`,`documentLinkProvider.resolveProvider`)})(et||(t.DocumentLinkResolveRequest=et={}));var tt;(function(t){t.method=`textDocument/formatting`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.formatting`,`documentFormattingProvider`)})(tt||(t.DocumentFormattingRequest=tt={}));var nt;(function(t){t.method=`textDocument/rangeFormatting`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.rangeFormatting`,`documentRangeFormattingProvider`)})(nt||(t.DocumentRangeFormattingRequest=nt={}));var rt;(function(t){t.method=`textDocument/rangesFormatting`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.rangeFormatting.rangesSupport`,`documentRangeFormattingProvider.rangesSupport`)})(rt||(t.DocumentRangesFormattingRequest=rt={}));var it;(function(t){t.method=`textDocument/onTypeFormatting`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.onTypeFormatting`,`documentOnTypeFormattingProvider`)})(it||(t.DocumentOnTypeFormattingRequest=it={}));var at;(function(t){t.Identifier=1})(at||(t.PrepareSupportDefaultBehavior=at={}));var ot;(function(t){t.method=`textDocument/rename`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.rename`,`renameProvider`)})(ot||(t.RenameRequest=ot={}));var st;(function(t){t.method=`textDocument/prepareRename`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`textDocument.rename.prepareSupport`,`renameProvider.prepareProvider`)})(st||(t.PrepareRenameRequest=st={}));var ct;(function(t){t.method=`workspace/executeCommand`,t.messageDirection=c.MessageDirection.clientToServer,t.type=new c.ProtocolRequestType(t.method),t.capabilities=c.CM.create(`workspace.executeCommand`,`executeCommandProvider`)})(ct||(t.ExecuteCommandRequest=ct={}));var lt;(function(t){t.method=`workspace/applyEdit`,t.messageDirection=c.MessageDirection.serverToClient,t.type=new c.ProtocolRequestType(`workspace/applyEdit`),t.capabilities=c.CM.create(`workspace.applyEdit`,void 0)})(lt||(t.ApplyWorkspaceEditRequest=lt={}))})),fr=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createProtocolConnection=createProtocolConnection;let n=dt();function createProtocolConnection(t,i,a,o){return n.ConnectionStrategy.is(o)&&(o={connectionStrategy:o}),(0,n.createMessageConnection)(t,i,a,o)}})),J=/* @__PURE__ */ o((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,a){a===void 0&&(a=i);var o=Object.getOwnPropertyDescriptor(n,i);(!o||(`get`in o?!n.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,a,o)}):(function(t,n,i,a){a===void 0&&(a=i),t[a]=n[i]})),a=t&&t.__exportStar||function(t,i){for(var a in t)a!=="default"&&!Object.prototype.hasOwnProperty.call(i,a)&&n(i,t,a)};Object.defineProperty(t,"__esModule",{value:!0}),t.LSPErrorCodes=t.createProtocolConnection=void 0,a(dt(),t),a((Vn(),i(ft)),t),a(q(),t),a(dr(),t);var o=fr();Object.defineProperty(t,"createProtocolConnection",{enumerable:!0,get:function(){return o.createProtocolConnection}});var c;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(c||(t.LSPErrorCodes=c={}))})),Y=J();function delayNextTick(){return new Promise(t=>{typeof setImmediate>`u`?setTimeout(t,0):setImmediate(t)})}let pr=0;function startCancelableOperation(){return pr=performance.now(),new Y.CancellationTokenSource}const mr=Symbol(`OperationCancelled`);function isOperationCancelled(t){return t===mr}async function interruptAndCheck(t){if(t===Y.CancellationToken.None)return;let n=performance.now();if(n-pr>=10&&(pr=n,await delayNextTick(),pr=performance.now()),t.isCancellationRequested)throw mr}var Deferred=class{constructor(){this.promise=new Promise((t,n)=>{this.resolve=n=>(t(n),this),this.reject=t=>(n(t),this)})}},hr=class FullTextDocument{constructor(t,n,i,a){this._uri=t,this._languageId=n,this._version=i,this._content=a,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let n=this.offsetAt(t.start),i=this.offsetAt(t.end);return this._content.substring(n,i)}return this._content}update(t,n){for(let n of t)if(FullTextDocument.isIncremental(n)){let t=getWellformedRange(n.range),i=this.offsetAt(t.start),a=this.offsetAt(t.end);this._content=this._content.substring(0,i)+n.text+this._content.substring(a,this._content.length);let o=Math.max(t.start.line,0),c=Math.max(t.end.line,0),l=this._lineOffsets,f=computeLineOffsets(n.text,!1,i);if(c-o===f.length)for(let t=0,n=f.length;t<n;t++)l[t+o+1]=f[t];else f.length<1e4?l.splice(o+1,c-o,...f):this._lineOffsets=l=l.slice(0,o+1).concat(f,l.slice(c+1));let p=n.text.length-(a-i);if(p!==0)for(let t=o+1+f.length,n=l.length;t<n;t++)l[t]=l[t]+p}else if(FullTextDocument.isFull(n))this._content=n.text,this._lineOffsets=void 0;else throw Error(`Unknown change event received`);this._version=n}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=computeLineOffsets(this._content,!0)),this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let n=this.getLineOffsets(),i=0,a=n.length;if(a===0)return{line:0,character:t};for(;i<a;){let o=Math.floor((i+a)/2);n[o]>t?a=o:i=o+1}let o=i-1;return t=this.ensureBeforeEOL(t,n[o]),{line:o,character:t-n[o]}}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let i=n[t.line];if(t.character<=0)return i;let a=t.line+1<n.length?n[t.line+1]:this._content.length,o=Math.min(i+t.character,a);return this.ensureBeforeEOL(o,i)}getLineRange(t){let n=this.getLineOffsets();if(t>=n.length){let t=n.length-1;return{start:{line:t,character:0},end:{line:t,character:this._content.length-n[t]}}}if(t<0)return{start:{line:0,character:0},end:{line:0,character:0}};let i=n[t],a=t+1<n.length?n[t+1]:this._content.length,o=this.ensureBeforeEOL(a,i);return{start:{line:t,character:0},end:{line:t,character:o-i}}}getEOLCharacters(t){let n=this.getLineOffsets();if(t>=n.length||t<0)return``;let i=t+1<n.length?n[t+1]:this._content.length,a=this.ensureBeforeEOL(i,n[t]);return this._content.substring(a,i)}ensureBeforeEOL(t,n){for(;t>n&&isEOL(this._content.charCodeAt(t-1));)t--;return t}get lineCount(){return this.getLineOffsets().length}static isIncremental(t){let n=t;return n!=null&&typeof n.text==`string`&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength==`number`)}static isFull(t){let n=t;return n!=null&&typeof n.text==`string`&&n.range===void 0&&n.rangeLength===void 0}},gr;(function(t){function create(t,n,i,a){return new hr(t,n,i,a)}t.create=create;function update(t,n,i){if(t instanceof hr)return t.update(n,i),t;throw Error(`TextDocument.update: document must be created by TextDocument.create`)}t.update=update;function applyEdits(t,n){let i=t.getText(),a=mergeSort(n.map(getWellformedEdit),(t,n)=>{let i=t.range.start.line-n.range.start.line;return i===0?t.range.start.character-n.range.start.character:i}),o=0,c=[];for(let n of a){let a=t.offsetAt(n.range.start);if(a<o)throw Error(`Overlapping edit`);a>o&&c.push(i.substring(o,a)),n.newText.length&&c.push(n.newText),o=t.offsetAt(n.range.end)}return c.push(i.substr(o)),c.join(``)}t.applyEdits=applyEdits})(gr||={});function mergeSort(t,n){if(t.length<=1)return t;let i=t.length/2|0,a=t.slice(0,i),o=t.slice(i);mergeSort(a,n),mergeSort(o,n);let c=0,l=0,f=0;for(;c<a.length&&l<o.length;)n(a[c],o[l])<=0?t[f++]=a[c++]:t[f++]=o[l++];for(;c<a.length;)t[f++]=a[c++];for(;l<o.length;)t[f++]=o[l++];return t}function computeLineOffsets(t,n,i=0){let a=n?[i]:[];for(let n=0;n<t.length;n++){let o=t.charCodeAt(n);isEOL(o)&&(o===13&&n+1<t.length&&t.charCodeAt(n+1)===10&&n++,a.push(i+n+1))}return a}function isEOL(t){return t===13||t===10}function getWellformedRange(t){let n=t.start,i=t.end;return n.line>i.line||n.line===i.line&&n.character>i.character?{start:i,end:n}:t}function getWellformedEdit(t){let n=getWellformedRange(t.range);return n===t.range?t:{newText:t.newText,range:n}}var _r={975(t){function e(t){if(typeof t!=`string`)throw TypeError(`Path must be a string. Received `+JSON.stringify(t))}function r(t,n){for(var i,a=``,o=0,c=-1,l=0,f=0;f<=t.length;++f){if(f<t.length)i=t.charCodeAt(f);else{if(i===47)break;i=47}if(i===47){if(c!==f-1&&l!==1){if(c!==f-1&&l===2){if(a.length<2||o!==2||a.charCodeAt(a.length-1)!==46||a.charCodeAt(a.length-2)!==46){if(a.length>2){var p=a.lastIndexOf(`/`);if(p!==a.length-1){p===-1?(a=``,o=0):o=(a=a.slice(0,p)).length-1-a.lastIndexOf(`/`),c=f,l=0;continue}}else if(a.length===2||a.length===1){a=``,o=0,c=f,l=0;continue}}n&&(a.length>0?a+=`/..`:a=`..`,o=2)}else a.length>0?a+=`/`+t.slice(c+1,f):a=t.slice(c+1,f),o=f-c-1}c=f,l=0}else i===46&&l!==-1?++l:l=-1}return a}var n={resolve:function(){for(var t,n=``,i=!1,a=arguments.length-1;a>=-1&&!i;a--){var o;a>=0?o=arguments[a]:(t===void 0&&(t=process.cwd()),o=t),e(o),o.length!==0&&(n=o+`/`+n,i=o.charCodeAt(0)===47)}return n=r(n,!i),i?n.length>0?`/`+n:`/`:n.length>0?n:`.`},normalize:function(t){if(e(t),t.length===0)return`.`;var n=t.charCodeAt(0)===47,i=t.charCodeAt(t.length-1)===47;return(t=r(t,!n)).length!==0||n||(t=`.`),t.length>0&&i&&(t+=`/`),n?`/`+t:t},isAbsolute:function(t){return e(t),t.length>0&&t.charCodeAt(0)===47},join:function(){if(arguments.length===0)return`.`;for(var t,i=0;i<arguments.length;++i){var a=arguments[i];e(a),a.length>0&&(t===void 0?t=a:t+=`/`+a)}return t===void 0?`.`:n.normalize(t)},relative:function(t,i){if(e(t),e(i),t===i||(t=n.resolve(t))===(i=n.resolve(i)))return``;for(var a=1;a<t.length&&t.charCodeAt(a)===47;++a);for(var o=t.length,c=o-a,l=1;l<i.length&&i.charCodeAt(l)===47;++l);for(var f=i.length-l,p=c<f?c:f,h=-1,_=0;_<=p;++_){if(_===p){if(f>p){if(i.charCodeAt(l+_)===47)return i.slice(l+_+1);if(_===0)return i.slice(l+_)}else c>p&&(t.charCodeAt(a+_)===47?h=_:_===0&&(h=0));break}var x=t.charCodeAt(a+_);if(x!==i.charCodeAt(l+_))break;x===47&&(h=_)}var S=``;for(_=a+h+1;_<=o;++_)_!==o&&t.charCodeAt(_)!==47||(S.length===0?S+=`..`:S+=`/..`);return S.length>0?S+i.slice(l+h):(l+=h,i.charCodeAt(l)===47&&++l,i.slice(l))},_makeLong:function(t){return t},dirname:function(t){if(e(t),t.length===0)return`.`;for(var n=t.charCodeAt(0),i=n===47,a=-1,o=!0,c=t.length-1;c>=1;--c)if((n=t.charCodeAt(c))===47){if(!o){a=c;break}}else o=!1;return a===-1?i?`/`:`.`:i&&a===1?`//`:t.slice(0,a)},basename:function(t,n){if(n!==void 0&&typeof n!=`string`)throw TypeError(`"ext" argument must be a string`);e(t);var i,a=0,o=-1,c=!0;if(n!==void 0&&n.length>0&&n.length<=t.length){if(n.length===t.length&&n===t)return``;var l=n.length-1,f=-1;for(i=t.length-1;i>=0;--i){var p=t.charCodeAt(i);if(p===47){if(!c){a=i+1;break}}else f===-1&&(c=!1,f=i+1),l>=0&&(p===n.charCodeAt(l)?--l===-1&&(o=i):(l=-1,o=f))}return a===o?o=f:o===-1&&(o=t.length),t.slice(a,o)}for(i=t.length-1;i>=0;--i)if(t.charCodeAt(i)===47){if(!c){a=i+1;break}}else o===-1&&(c=!1,o=i+1);return o===-1?``:t.slice(a,o)},extname:function(t){e(t);for(var n=-1,i=0,a=-1,o=!0,c=0,l=t.length-1;l>=0;--l){var f=t.charCodeAt(l);if(f!==47)a===-1&&(o=!1,a=l+1),f===46?n===-1?n=l:c!==1&&(c=1):n!==-1&&(c=-1);else if(!o){i=l+1;break}}return n===-1||a===-1||c===0||c===1&&n===a-1&&n===i+1?``:t.slice(n,a)},format:function(t){if(typeof t!=`object`||!t)throw TypeError(`The "pathObject" argument must be of type Object. Received type `+typeof t);return function(t,n){var i=n.dir||n.root,a=n.base||(n.name||``)+(n.ext||``);return i?i===n.root?i+a:i+`/`+a:a}(0,t)},parse:function(t){e(t);var n={root:``,dir:``,base:``,ext:``,name:``};if(t.length===0)return n;var i,a=t.charCodeAt(0),o=a===47;o?(n.root=`/`,i=1):i=0;for(var c=-1,l=0,f=-1,p=!0,h=t.length-1,_=0;h>=i;--h)if((a=t.charCodeAt(h))!==47)f===-1&&(p=!1,f=h+1),a===46?c===-1?c=h:_!==1&&(_=1):c!==-1&&(_=-1);else if(!p){l=h+1;break}return c===-1||f===-1||_===0||_===1&&c===f-1&&c===l+1?f!==-1&&(n.base=n.name=l===0&&o?t.slice(1,f):t.slice(l,f)):(l===0&&o?(n.name=t.slice(1,c),n.base=t.slice(1,f)):(n.name=t.slice(l,c),n.base=t.slice(l,f)),n.ext=t.slice(c,f)),l>0?n.dir=t.slice(0,l-1):o&&(n.dir=`/`),n},sep:`/`,delimiter:`:`,win32:null,posix:null};n.posix=n,t.exports=n}},vr={};function r(t){var n=vr[t];if(n!==void 0)return n.exports;var i=vr[t]={exports:{}};return _r[t](i,i.exports,r),i.exports}let yr;r.d=(t,n)=>{for(var i in n)r.o(n,i)&&!r.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},r.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),typeof process==`object`?yr=process.platform===`win32`:typeof navigator==`object`&&(yr=navigator.userAgent.indexOf(`Windows`)>=0);const br=/^\w[\w\d+.-]*$/,xr=/^\//,Sr=/^\/\//;function s(t,n){if(!t.scheme&&n)throw Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${t.authority}", path: "${t.path}", query: "${t.query}", fragment: "${t.fragment}"}`);if(t.scheme&&!br.test(t.scheme))throw Error(`[UriError]: Scheme contains illegal characters.`);if(t.path){if(t.authority){if(!xr.test(t.path))throw Error(`[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character`)}else if(Sr.test(t.path))throw Error(`[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")`)}}const Cr=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;var X=class u{static isUri(t){return t instanceof u||!!t&&typeof t.authority==`string`&&typeof t.fragment==`string`&&typeof t.path==`string`&&typeof t.query==`string`&&typeof t.scheme==`string`&&typeof t.fsPath==`string`&&typeof t.with==`function`&&typeof t.toString==`function`}scheme;authority;path;query;fragment;constructor(t,n,i,a,o,c=!1){typeof t==`object`?(this.scheme=t.scheme||``,this.authority=t.authority||``,this.path=t.path||``,this.query=t.query||``,this.fragment=t.fragment||``):(this.scheme=function(t,n){return t||n?t:`file`}(t,c),this.authority=n||``,this.path=function(t,n){switch(t){case`https`:case`http`:case`file`:n?n[0]!==`/`&&(n=`/`+n):n=`/`}return n}(this.scheme,i||``),this.query=a||``,this.fragment=o||``,s(this,c))}get fsPath(){return y(this,!1)}with(t){if(!t)return this;let{scheme:n,authority:i,path:a,query:o,fragment:c}=t;return n===void 0?n=this.scheme:n===null&&(n=``),i===void 0?i=this.authority:i===null&&(i=``),a===void 0?a=this.path:a===null&&(a=``),o===void 0?o=this.query:o===null&&(o=``),c===void 0?c=this.fragment:c===null&&(c=``),n===this.scheme&&i===this.authority&&a===this.path&&o===this.query&&c===this.fragment?this:new g(n,i,a,o,c)}static parse(t,n=!1){let i=Cr.exec(t);return i?new g(i[2]||``,A$1(i[4]||``),A$1(i[5]||``),A$1(i[7]||``),A$1(i[9]||``),n):new g(``,``,``,``,``)}static file(t){let n=``;if(yr&&(t=t.replace(/\\/g,`/`)),t[0]===`/`&&t[1]===`/`){let i=t.indexOf(`/`,2);i===-1?(n=t.substring(2),t=`/`):(n=t.substring(2,i),t=t.substring(i)||`/`)}return new g(`file`,n,t,``,``)}static from(t){let n=new g(t.scheme,t.authority,t.path,t.query,t.fragment);return s(n,!0),n}toString(t=!1){return v(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof u)return t;{let n=new g(t);return n._formatted=t.external,n._fsPath=t._sep===wr?t.fsPath:null,n}}return t}};const wr=yr?1:void 0;var g=class extends X{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||=y(this,!1),this._fsPath}toString(t=!1){return t?v(this,!0):(this._formatted||=v(this,!1),this._formatted)}toJSON(){let t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=wr),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t}};const Tr={58:`%3A`,47:`%2F`,63:`%3F`,35:`%23`,91:`%5B`,93:`%5D`,64:`%40`,33:`%21`,36:`%24`,38:`%26`,39:`%27`,40:`%28`,41:`%29`,42:`%2A`,43:`%2B`,44:`%2C`,59:`%3B`,61:`%3D`,32:`%20`};function d(t,n,i){let a,o=-1;for(let c=0;c<t.length;c++){let l=t.charCodeAt(c);if(l>=97&&l<=122||l>=65&&l<=90||l>=48&&l<=57||l===45||l===46||l===95||l===126||n&&l===47||i&&l===91||i&&l===93||i&&l===58)o!==-1&&(a+=encodeURIComponent(t.substring(o,c)),o=-1),a!==void 0&&(a+=t.charAt(c));else{a===void 0&&(a=t.substr(0,c));let n=Tr[l];n===void 0?o===-1&&(o=c):(o!==-1&&(a+=encodeURIComponent(t.substring(o,c)),o=-1),a+=n)}}return o!==-1&&(a+=encodeURIComponent(t.substring(o))),a===void 0?t:a}function m(t){let n;for(let i=0;i<t.length;i++){let a=t.charCodeAt(i);a===35||a===63?(n===void 0&&(n=t.substr(0,i)),n+=Tr[a]):n!==void 0&&(n+=t[i])}return n===void 0?t:n}function y(t,n){let i;return i=t.authority&&t.path.length>1&&t.scheme===`file`?`//${t.authority}${t.path}`:t.path.charCodeAt(0)===47&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&t.path.charCodeAt(2)===58?n?t.path.substr(1):t.path[1].toLowerCase()+t.path.substr(2):t.path,yr&&(i=i.replace(/\//g,`\\`)),i}function v(t,n){let i=n?m:d,a=``,{scheme:o,authority:c,path:l,query:f,fragment:p}=t;if(o&&(a+=o,a+=`:`),(c||o===`file`)&&(a+=`/`,a+=`/`),c){let t=c.indexOf(`@`);if(t!==-1){let n=c.substr(0,t);c=c.substr(t+1),t=n.lastIndexOf(`:`),t===-1?a+=i(n,!1,!1):(a+=i(n.substr(0,t),!1,!1),a+=`:`,a+=i(n.substr(t+1),!1,!0)),a+=`@`}c=c.toLowerCase(),t=c.lastIndexOf(`:`),t===-1?a+=i(c,!1,!0):(a+=i(c.substr(0,t),!1,!0),a+=c.substr(t))}if(l){if(l.length>=3&&l.charCodeAt(0)===47&&l.charCodeAt(2)===58){let t=l.charCodeAt(1);t>=65&&t<=90&&(l=`/${String.fromCharCode(t+32)}:${l.substr(3)}`)}else if(l.length>=2&&l.charCodeAt(1)===58){let t=l.charCodeAt(0);t>=65&&t<=90&&(l=`${String.fromCharCode(t+32)}:${l.substr(2)}`)}a+=i(l,!0,!1)}return f&&(a+=`?`,a+=i(f,!1,!1)),p&&(a+=`#`,a+=n?p:d(p,!1,!1)),a}function b(t){try{return decodeURIComponent(t)}catch{return t.length>3?t.substr(0,3)+b(t.substr(3)):t}}const Er=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function A$1(t){return t.match(Er)?t.replace(Er,t=>b(t)):t}t(A$1,`A`);var Dr=r(975);const Or=Dr.posix||Dr;var kr;(function(t){t.joinPath=function(t,...n){return t.with({path:Or.join(t.path,...n)})},t.resolvePath=function(t,...n){let i=t.path,a=!1;i[0]!==`/`&&(i=`/`+i,a=!0);let o=Or.resolve(i,...n);return a&&o[0]===`/`&&!t.authority&&(o=o.substring(1)),t.with({path:o})},t.dirname=function(t){if(t.path.length===0||t.path===`/`)return t;let n=Or.dirname(t.path);return n.length===1&&n.charCodeAt(0)===46&&(n=``),t.with({path:n})},t.basename=function(t){return Or.basename(t.path)},t.extname=function(t){return Or.extname(t.path)}})(kr||={});var Z;(function(t){t.basename=kr.basename,t.dirname=kr.dirname,t.extname=kr.extname,t.joinPath=kr.joinPath,t.resolvePath=kr.resolvePath;let n=typeof process==`object`&&process?.platform===`win32`;function equals(t,n){return t?.toString()===n?.toString()}t.equals=equals;function relative(t,i){let a=typeof t==`string`?X.parse(t).path:t.path,o=typeof i==`string`?X.parse(i).path:i.path,c=a.split(`/`).filter(t=>t.length>0),l=o.split(`/`).filter(t=>t.length>0);if(n){let t=/^[A-Z]:$/;if(c[0]&&t.test(c[0])&&(c[0]=c[0].toLowerCase()),l[0]&&t.test(l[0])&&(l[0]=l[0].toLowerCase()),c[0]!==l[0])return o.substring(1)}let f=0;for(;f<c.length&&c[f]===l[f];f++);return`../`.repeat(c.length-f)+l.slice(f).join(`/`)}t.relative=relative;function normalize(t){return X.parse(t.toString()).toString()}t.normalize=normalize;function contains(t,n){let i=typeof t==`string`?X.parse(t):t,a=typeof n==`string`?X.parse(n):n;if(i.scheme!==a.scheme)return!1;let o=i.path,c=a.path;return c.charAt(c.length-1)===`/`&&(c=c.slice(0,-1)),o.charAt(o.length-1)===`/`&&(o=o.slice(0,-1)),c===o?!0:c.length<o.length||c.charAt(o.length)!==`/`?!1:c.startsWith(o)}t.contains=contains})(Z||={});var UriTrie=class{constructor(){this.root={name:``,children:/* @__PURE__ */ new Map}}normalizeUri(t){return Z.normalize(t)}clear(){this.root.children.clear()}insert(t,n){let i=this.getNode(this.normalizeUri(t),!0);i.element=n}delete(t){let n=this.getNode(this.normalizeUri(t),!1);n?.parent&&n.parent.children.delete(n.name)}has(t){return this.getNode(this.normalizeUri(t),!1)?.element!==void 0}hasNode(t){return this.getNode(this.normalizeUri(t),!1)!==void 0}find(t){return this.getNode(this.normalizeUri(t),!1)?.element}findNode(t){let n=this.normalizeUri(t),i=this.getNode(n,!1);if(i)return{name:i.name,uri:Z.joinPath(X.parse(n),i.name).toString(),element:i.element}}findChildren(t){let n=this.normalizeUri(t),i=this.getNode(n,!1);return i?Array.from(i.children.values()).map(t=>({name:t.name,uri:Z.joinPath(X.parse(n),t.name).toString(),element:t.element})):[]}all(){return this.collectValues(this.root)}findAll(t){let n=this.getNode(this.normalizeUri(t),!1);return n?this.collectValues(n):[]}getNode(t,n){let i=t.split(`/`);t.charAt(t.length-1)===`/`&&i.pop();let a=this.root;for(let t of i){let i=a.children.get(t);if(!i){if(n)i={name:t,children:/* @__PURE__ */ new Map,parent:a},a.children.set(t,i);else return}a=i}return a}collectValues(t){let n=[];t.element&&n.push(t.element);for(let i of t.children.values())n.push(...this.collectValues(i));return n}},Q;(function(t){t[t.Changed=0]=`Changed`,t[t.Parsed=1]=`Parsed`,t[t.IndexedContent=2]=`IndexedContent`,t[t.ComputedScopes=3]=`ComputedScopes`,t[t.Linked=4]=`Linked`,t[t.IndexedReferences=5]=`IndexedReferences`,t[t.Validated=6]=`Validated`})(Q||={});var DefaultLangiumDocumentFactory=class{constructor(t){this.serviceRegistry=t.ServiceRegistry,this.textDocuments=t.workspace.TextDocuments,this.fileSystemProvider=t.workspace.FileSystemProvider}async fromUri(t,n=Y.CancellationToken.None){let i=await this.getInitialText(t,n);return this.createAsync(t,i,n)}async getInitialText(t,n){return this.fileSystemProvider.readFile(t)}fromTextDocument(t,n,i){return n??=X.parse(t.uri),Y.CancellationToken.is(i)?this.createAsync(n,t,i):this.create(n,t,i)}fromString(t,n,i){return Y.CancellationToken.is(i)?this.createAsync(n,t,i):this.create(n,t,i)}fromModel(t,n){return this.create(n,{$model:t})}create(t,n,i){if(typeof n==`string`){let a=this.parse(t,n,i);return this.createLangiumDocument(a,t,void 0,n)}if(`$model`in n){let i={value:n.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,t)}{let a=this.parse(t,n.getText(),i);return this.createLangiumDocument(a,t,n)}}async createAsync(t,n,i){if(typeof n==`string`){let a=await this.parseAsync(t,n,i);return this.createLangiumDocument(a,t,void 0,n)}{let a=await this.parseAsync(t,n.getText(),i);return this.createLangiumDocument(a,t,n)}}createLangiumDocument(t,n,i,a){let o;if(i)o={parseResult:t,uri:n,state:Q.Parsed,references:[],textDocument:i};else{let i=this.createTextDocumentGetter(n,a);o={parseResult:t,uri:n,state:Q.Parsed,references:[],get textDocument(){return i()}}}return t.value.$document=o,o}async update(t,n){let i=t.parseResult.value.$cstNode?.root.fullText,a=this.textDocuments?.get(t.uri.toString()),o=await this.getUpdatedText(t,a,n);if(a)Object.defineProperty(t,"textDocument",{value:a});else{let n=this.createTextDocumentGetter(t.uri,o);Object.defineProperty(t,"textDocument",{get:n})}return i!==o&&(t.parseResult=await this.parseAsync(t.uri,o,n),t.parseResult.value.$document=t),t.state=Q.Parsed,t}async getUpdatedText(t,n,i){return n?n.getText():await this.fileSystemProvider.readFile(t.uri)}parse(t,n,i){return this.serviceRegistry.getServices(t).parser.LangiumParser.parse(n,i)}parseAsync(t,n,i){return this.serviceRegistry.getServices(t).parser.AsyncParser.parse(n,i)}createTextDocumentGetter(t,n){let i=this.serviceRegistry,a;return()=>a??=gr.create(t.toString(),i.getServices(t).LanguageMetaData.languageId,0,n??``)}},DefaultLangiumDocuments=class{constructor(t){this.documentTrie=new UriTrie,this.services=t,this.langiumDocumentFactory=t.workspace.LangiumDocumentFactory,this.documentBuilder=()=>t.workspace.DocumentBuilder}get all(){return stream(this.documentTrie.all())}addDocument(t){let n=t.uri.toString();if(this.documentTrie.has(n))throw Error(`A document with the URI '${n}' is already present.`);this.documentTrie.insert(n,t)}getDocument(t){let n=t.toString();return this.documentTrie.find(n)}getDocuments(t){let n=t.toString();return this.documentTrie.findAll(n)}async getOrCreateDocument(t,n){let i=this.getDocument(t);return i||(i=await this.langiumDocumentFactory.fromUri(t,n),this.addDocument(i),i)}createDocument(t,n,i){if(i)return this.langiumDocumentFactory.fromString(n,t,i).then(t=>(this.addDocument(t),t));{let i=this.langiumDocumentFactory.fromString(n,t);return this.addDocument(i),i}}hasDocument(t){return this.documentTrie.has(t.toString())}invalidateDocument(t){let n=t.toString(),i=this.documentTrie.find(n);return i&&this.documentBuilder().resetToState(i,Q.Changed),i}deleteDocument(t){let n=t.toString(),i=this.documentTrie.find(n);return i&&(i.state=Q.Changed,this.documentTrie.delete(n)),i}deleteDocuments(t){let n=t.toString(),i=this.documentTrie.findAll(n);for(let t of i)t.state=Q.Changed;return this.documentTrie.delete(n),i}};const Ar=Symbol(`RefResolving`);var DefaultReferenceImpl=class{constructor(t,n,i,a,o){this.resolver=t,this.node=n,this.property=i,this._ref=void 0,this.$refNode=a,this.$refText=o}get ref(){return this.resolver.resolveReference(this,this.node,this.property)}get $nodeDescription(){return this._nodeDescription}get error(){return isLinkingError(this._ref)?this._ref:void 0}},DefaultMultiReferenceImpl=class{constructor(t,n,i,a,o){this.resolver=t,this.node=n,this.property=i,this._items=void 0,this.$refNode=a,this.$refText=o}get items(){return this.resolver.resolveMultiReference(this,this.node,this.property)}get error(){return this._linkingError}},DefaultLinker=class{constructor(t){this.reflection=t.shared.AstReflection,this.langiumDocuments=()=>t.shared.workspace.LangiumDocuments,this.scopeProvider=t.references.ScopeProvider,this.astNodeLocator=t.workspace.AstNodeLocator,this.profiler=t.shared.profilers.LangiumProfiler,this.languageId=t.LanguageMetaData.languageId,this.referenceResolver={resolveReference:this.resolveReference.bind(this),resolveMultiReference:this.resolveMultiReference.bind(this)}}async link(t,n=Y.CancellationToken.None){if(this.profiler?.isActive(`linking`)){let i=this.profiler.createTask(`linking`,this.languageId);i.start();try{for(let a of streamAst(t.parseResult.value))await interruptAndCheck(n),streamReferences(a).forEach(n=>{let o=`${a.$type}:${n.property}`;i.startSubTask(o);try{this.doLink(n,t)}finally{i.stopSubTask(o)}})}finally{i.stop()}}else for(let i of streamAst(t.parseResult.value))await interruptAndCheck(n),streamReferences(i).forEach(n=>this.doLink(n,t))}doLink(t,n){let i=t.reference;if(`_ref`in i&&i._ref===void 0){i._ref=Ar;try{let n=this.getCandidate(t);isLinkingError(n)?i._ref=n:(i._nodeDescription=n,i._ref=this.loadAstNode(n)??this.createLinkingError(t,n))}catch(n){console.error(`An error occurred while resolving reference to '${i.$refText}':`,n);let a=n.message??String(n);i._ref={info:t,message:`An error occurred while resolving reference to '${i.$refText}': ${a}`}}n.references.push(i)}else if(`_items`in i&&i._items===void 0){i._items=Ar;try{let n=this.getCandidates(t),a=[];if(isLinkingError(n))i._linkingError=n;else for(let t of n){let n=this.loadAstNode(t);n&&a.push({ref:n,$nodeDescription:t})}i._items=a}catch(n){i._linkingError={info:t,message:`An error occurred while resolving reference to '${i.$refText}': ${n}`},i._items=[]}n.references.push(i)}}unlink(t){for(let n of t.references)`_ref`in n?(n._ref=void 0,delete n._nodeDescription):`_items`in n&&(n._items=void 0,delete n._linkingError);t.references=[]}getCandidate(t){return this.scopeProvider.getScope(t).getElement(t.reference.$refText)??this.createLinkingError(t)}getCandidates(t){let n=this.scopeProvider.getScope(t).getElements(t.reference.$refText).distinct(t=>`${t.documentUri}#${t.path}`).toArray();return n.length>0?n:this.createLinkingError(t)}buildReference(t,n,i,a){return new DefaultReferenceImpl(this.referenceResolver,t,n,i,a)}buildMultiReference(t,n,i,a){return new DefaultMultiReferenceImpl(this.referenceResolver,t,n,i,a)}resolveReference(t,n,i){if(isAstNode(t._ref))return t._ref;if(isAstNodeDescription(t._nodeDescription))t._ref=this.loadAstNode(t._nodeDescription)??this.createLinkingError({reference:t,container:n,property:i},t._nodeDescription);else if(t._ref===void 0){t._ref=Ar;let a=findRootNode(n).$document,o=this.getLinkedNode({reference:t,container:n,property:i});if(o.error&&a&&a.state<Q.ComputedScopes){t._ref=void 0;return}t._ref=o.node??o.error,t._nodeDescription=o.descr,a?.references.push(t)}else t._ref===Ar&&this.throwCyclicReferenceError(n,i,t.$refText);return isAstNode(t._ref)?t._ref:void 0}resolveMultiReference(t,n,i){if(Array.isArray(t._items))return t._items;if(t._items===void 0){t._items=Ar;let a=findRootNode(n).$document,o=this.getCandidates({reference:t,container:n,property:i}),c=[];if(isLinkingError(o))t._linkingError=o;else{for(let t of o){let n=this.loadAstNode(t);n&&c.push({ref:n,$nodeDescription:t})}c.length===0&&(t._linkingError=this.createLinkingError({reference:t,container:n,property:i}))}t._items=c,a?.references.push(t)}else t._items===Ar&&this.throwCyclicReferenceError(n,i,t.$refText);return Array.isArray(t._items)?t._items:[]}throwCyclicReferenceError(t,n,i){throw Error(`Cyclic reference resolution detected: ${this.astNodeLocator.getAstNodePath(t)}/${n} (symbol '${i}')`)}getLinkedNode(t){try{let n=this.getCandidate(t);if(isLinkingError(n))return{error:n};let i=this.loadAstNode(n);return i?{node:i,descr:n}:{descr:n,error:this.createLinkingError(t,n)}}catch(n){console.error(`An error occurred while resolving reference to '${t.reference.$refText}':`,n);let i=n.message??String(n);return{error:{info:t,message:`An error occurred while resolving reference to '${t.reference.$refText}': ${i}`}}}}loadAstNode(t){if(t.node)return t.node;let n=this.langiumDocuments().getDocument(t.documentUri);if(n)return this.astNodeLocator.getAstNode(n.parseResult.value,t.path)}createLinkingError(t,n){let i=findRootNode(t.container).$document;return i&&i.state<Q.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${i.uri}).`),{info:t,message:`Could not resolve reference to ${this.reflection.getReferenceType(t)} named '${t.reference.$refText}'.`,targetDescription:n}}};function isNamed(t){return typeof t.name==`string`}var DefaultNameProvider=class{getName(t){if(isNamed(t))return t.name}getNameNode(t){return findNodeForProperty(t.$cstNode,`name`)}},DefaultReferences=class{constructor(t){this.nameProvider=t.references.NameProvider,this.index=t.shared.workspace.IndexManager,this.nodeLocator=t.workspace.AstNodeLocator,this.documents=t.shared.workspace.LangiumDocuments,this.hasMultiReference=streamAst(t.Grammar).some(t=>isCrossReference(t)&&t.isMulti)}findDeclarations(t){if(t){let n=findAssignment(t),i=t.astNode;if(n&&i){let a=i[n.feature];if(isReference(a)||isMultiReference(a))return getReferenceNodes(a);if(Array.isArray(a)){for(let n of a)if((isReference(n)||isMultiReference(n))&&n.$refNode&&n.$refNode.offset<=t.offset&&n.$refNode.end>=t.end)return getReferenceNodes(n)}}if(i){let n=this.nameProvider.getNameNode(i);if(n&&(n===t||isChildNode(t,n)))return this.getSelfNodes(i)}}return[]}getSelfNodes(t){if(this.hasMultiReference){let n=this.index.findAllReferences(t,this.nodeLocator.getAstNodePath(t)),i=this.getNodeFromReferenceDescription(n.head());if(i){for(let n of streamReferences(i))if(isMultiReference(n.reference)&&n.reference.items.some(n=>n.ref===t))return n.reference.items.map(t=>t.ref)}return[t]}return[t]}getNodeFromReferenceDescription(t){if(!t)return;let n=this.documents.getDocument(t.sourceUri);if(n)return this.nodeLocator.getAstNode(n.parseResult.value,t.sourcePath)}findDeclarationNodes(t){let n=this.findDeclarations(t),i=[];for(let t of n){let n=this.nameProvider.getNameNode(t)??t.$cstNode;n&&i.push(n)}return i}findReferences(t,n){let i=[];n.includeDeclaration&&i.push(...this.getSelfReferences(t));let a=this.index.findAllReferences(t,this.nodeLocator.getAstNodePath(t));return n.documentUri&&(a=a.filter(t=>Z.equals(t.sourceUri,n.documentUri))),i.push(...a),stream(i)}getSelfReferences(t){let n=this.getSelfNodes(t),i=[];for(let t of n){let n=this.nameProvider.getNameNode(t);if(n){let a=getDocument(t),o=this.nodeLocator.getAstNodePath(t);i.push({sourceUri:a.uri,sourcePath:o,targetUri:a.uri,targetPath:o,segment:toDocumentSegment(n),local:!0})}}return i}},MultiMap=class{constructor(t){if(this.map=/* @__PURE__ */ new Map,t)for(let[n,i]of t)this.add(n,i)}get size(){return k.sum(stream(this.map.values()).map(t=>t.length))}clear(){this.map.clear()}delete(t,n){if(n===void 0)return this.map.delete(t);{let i=this.map.get(t);if(i){let a=i.indexOf(n);if(a>=0)return i.length===1?this.map.delete(t):i.splice(a,1),!0}return!1}}get(t){return this.map.get(t)??[]}getStream(t){let n=this.map.get(t);return n?stream(n):D}has(t,n){if(n===void 0)return this.map.has(t);{let i=this.map.get(t);return i?i.indexOf(n)>=0:!1}}add(t,n){return this.map.has(t)?this.map.get(t).push(n):this.map.set(t,[n]),this}addAll(t,n){return this.map.has(t)?this.map.get(t).push(...n):this.map.set(t,Array.from(n)),this}forEach(t){this.map.forEach((n,i)=>n.forEach(n=>t(n,i,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return stream(this.map.entries()).flatMap(([t,n])=>n.map(n=>[t,n]))}keys(){return stream(this.map.keys())}values(){return stream(this.map.values()).flat()}entriesGroupedByKey(){return stream(this.map.entries())}},BiMap=class{get size(){return this.map.size}constructor(t){if(this.map=/* @__PURE__ */ new Map,this.inverse=/* @__PURE__ */ new Map,t)for(let[n,i]of t)this.set(n,i)}clear(){this.map.clear(),this.inverse.clear()}set(t,n){return this.map.set(t,n),this.inverse.set(n,t),this}get(t){return this.map.get(t)}getKey(t){return this.inverse.get(t)}delete(t){let n=this.map.get(t);return n!==void 0&&(this.map.delete(t),this.inverse.delete(n),!0)}},DefaultScopeComputation=class{constructor(t){this.nameProvider=t.references.NameProvider,this.descriptions=t.workspace.AstNodeDescriptionProvider}async collectExportedSymbols(t,n=Y.CancellationToken.None){return this.collectExportedSymbolsForNode(t.parseResult.value,t,void 0,n)}async collectExportedSymbolsForNode(t,n,i=streamContents,a=Y.CancellationToken.None){let o=[];this.addExportedSymbol(t,o,n);for(let c of i(t))await interruptAndCheck(a),this.addExportedSymbol(c,o,n);return o}addExportedSymbol(t,n,i){let a=this.nameProvider.getName(t);a&&n.push(this.descriptions.createDescription(t,a,i))}async collectLocalSymbols(t,n=Y.CancellationToken.None){let i=t.parseResult.value,a=new MultiMap;for(let o of streamAllContents(i))await interruptAndCheck(n),this.addLocalSymbol(o,t,a);return a}addLocalSymbol(t,n,i){let a=t.$container;if(a){let o=this.nameProvider.getName(t);o&&i.add(a,this.descriptions.createDescription(t,o,n))}}},StreamScope=class{constructor(t,n,i){this.elements=t,this.outerScope=n,this.caseInsensitive=i?.caseInsensitive??!1,this.concatOuterScope=i?.concatOuterScope??!0}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(t){let n=this.caseInsensitive?t.toLowerCase():t,i=this.caseInsensitive?this.elements.find(t=>t.name.toLowerCase()===n):this.elements.find(n=>n.name===t);if(i)return i;if(this.outerScope)return this.outerScope.getElement(t)}getElements(t){let n=this.caseInsensitive?t.toLowerCase():t,i=this.caseInsensitive?this.elements.filter(t=>t.name.toLowerCase()===n):this.elements.filter(n=>n.name===t);return(this.concatOuterScope||i.isEmpty())&&this.outerScope?i.concat(this.outerScope.getElements(t)):i}},MapScope=class{constructor(t,n,i){this.elements=/* @__PURE__ */ new Map,this.caseInsensitive=i?.caseInsensitive??!1,this.concatOuterScope=i?.concatOuterScope??!0;for(let n of t){let t=this.caseInsensitive?n.name.toLowerCase():n.name;this.elements.set(t,n)}this.outerScope=n}getElement(t){let n=this.caseInsensitive?t.toLowerCase():t,i=this.elements.get(n);if(i)return i;if(this.outerScope)return this.outerScope.getElement(t)}getElements(t){let n=this.caseInsensitive?t.toLowerCase():t,i=this.elements.get(n),a=i?[i]:[];return(this.concatOuterScope||a.length===0)&&this.outerScope?stream(a).concat(this.outerScope.getElements(t)):stream(a)}getAllElements(){let t=stream(this.elements.values());return this.outerScope&&(t=t.concat(this.outerScope.getAllElements())),t}},MultiMapScope=class{constructor(t,n,i){this.elements=new MultiMap,this.caseInsensitive=i?.caseInsensitive??!1,this.concatOuterScope=i?.concatOuterScope??!0;for(let n of t){let t=this.caseInsensitive?n.name.toLowerCase():n.name;this.elements.add(t,n)}this.outerScope=n}getElement(t){let n=this.caseInsensitive?t.toLowerCase():t,i=this.elements.get(n)[0];if(i)return i;if(this.outerScope)return this.outerScope.getElement(t)}getElements(t){let n=this.caseInsensitive?t.toLowerCase():t,i=this.elements.get(n);return(this.concatOuterScope||i.length===0)&&this.outerScope?stream(i).concat(this.outerScope.getElements(t)):stream(i)}getAllElements(){let t=stream(this.elements.values());return this.outerScope&&(t=t.concat(this.outerScope.getAllElements())),t}};const jr={getElement(){},getElements(){return D},getAllElements(){return D}};var DisposableCache=class{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(t){this.toDispose.push(t)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(t=>t.dispose())}throwIfDisposed(){if(this.isDisposed)throw Error(`This cache has already been disposed`)}},SimpleCache=class extends DisposableCache{constructor(){super(...arguments),this.cache=/* @__PURE__ */ new Map}has(t){return this.throwIfDisposed(),this.cache.has(t)}set(t,n){this.throwIfDisposed(),this.cache.set(t,n)}get(t,n){if(this.throwIfDisposed(),this.cache.has(t))return this.cache.get(t);if(n){let i=n();return this.cache.set(t,i),i}}delete(t){return this.throwIfDisposed(),this.cache.delete(t)}clear(){this.throwIfDisposed(),this.cache.clear()}},ContextCache=class extends DisposableCache{constructor(t){super(),this.cache=/* @__PURE__ */ new Map,this.converter=t??(t=>t)}has(t,n){return this.throwIfDisposed(),this.cacheForContext(t).has(n)}set(t,n,i){this.throwIfDisposed(),this.cacheForContext(t).set(n,i)}get(t,n,i){this.throwIfDisposed();let a=this.cacheForContext(t);if(a.has(n))return a.get(n);if(i){let t=i();return a.set(n,t),t}}delete(t,n){return this.throwIfDisposed(),this.cacheForContext(t).delete(n)}clear(t){if(this.throwIfDisposed(),t){let n=this.converter(t);this.cache.delete(n)}else this.cache.clear()}cacheForContext(t){let n=this.converter(t),i=this.cache.get(n);return i||(i=/* @__PURE__ */ new Map,this.cache.set(n,i)),i}},WorkspaceCache=class extends SimpleCache{constructor(t,n){super(),n?(this.toDispose.push(t.workspace.DocumentBuilder.onBuildPhase(n,()=>{this.clear()})),this.toDispose.push(t.workspace.DocumentBuilder.onUpdate((t,n)=>{n.length>0&&this.clear()}))):this.toDispose.push(t.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}},DefaultScopeProvider=class{constructor(t){this.reflection=t.shared.AstReflection,this.nameProvider=t.references.NameProvider,this.descriptions=t.workspace.AstNodeDescriptionProvider,this.indexManager=t.shared.workspace.IndexManager,this.globalScopeCache=new WorkspaceCache(t.shared)}getScope(t){let n=[],i=this.reflection.getReferenceType(t),a=getDocument(t.container).localSymbols;if(a){let o=t.container;do a.has(o)&&n.push(a.getStream(o).filter(t=>this.reflection.isSubtype(t.type,i))),o=o.$container;while(o)}let o=this.getGlobalScope(i,t);for(let t=n.length-1;t>=0;t--)o=this.createScope(n[t],o);return o}createScope(t,n,i){return new StreamScope(stream(t),n,i)}createScopeForNodes(t,n,i){return new StreamScope(stream(t).map(t=>{let n=this.nameProvider.getName(t);if(n)return this.descriptions.createDescription(t,n)}).nonNullable(),n,i)}getGlobalScope(t,n){return this.globalScopeCache.get(t,()=>new MultiMapScope(this.indexManager.allElements(t)))}};function isAstNodeWithComment(t){return typeof t.$comment==`string`}function isIntermediateReference(t){return typeof t==`object`&&!!t&&(`$ref`in t||`$refs`in t||`$error`in t)}var DefaultJsonSerializer=class{constructor(t){this.ignoreProperties=/* @__PURE__ */ new Set([`$container`,`$containerProperty`,`$containerIndex`,`$document`,`$cstNode`]),this.langiumDocuments=t.shared.workspace.LangiumDocuments,this.astNodeLocator=t.workspace.AstNodeLocator,this.nameProvider=t.references.NameProvider,this.commentProvider=t.documentation.CommentProvider}serialize(t,n){let i=n??{},a=n?.replacer,defaultReplacer=(t,n)=>this.replacer(t,n,i),o=a?(t,n)=>a(t,n,defaultReplacer):defaultReplacer;try{return this.currentDocument=getDocument(t),JSON.stringify(t,o,n?.space)}finally{this.currentDocument=void 0}}deserialize(t,n){let i=n??{},a=JSON.parse(t);return this.linkNode(a,a,i),a}replacer(t,n,{refText:i,sourceText:a,textRegions:o,comments:c,uriConverter:l}){if(!this.ignoreProperties.has(t)){if(isReference(n)){let t=n.ref,a=i?n.$refText:void 0;if(t){let n=getDocument(t),i=``;this.currentDocument&&this.currentDocument!==n&&(i=l?l(n.uri,t):n.uri.toString());let o=this.astNodeLocator.getAstNodePath(t);return{$ref:`${i}#${o}`,$refText:a}}return{$error:n.error?.message??`Could not resolve reference`,$refText:a}}if(isMultiReference(n)){let t=i?n.$refText:void 0,a=[];for(let t of n.items){let n=t.ref,i=getDocument(t.ref),o=``;this.currentDocument&&this.currentDocument!==i&&(o=l?l(i.uri,n):i.uri.toString());let c=this.astNodeLocator.getAstNodePath(n);a.push(`${o}#${c}`)}return{$refs:a,$refText:t}}if(isAstNode(n)){let i;if(o&&(i=this.addAstNodeRegionWithAssignmentsTo({...n}),(!t||n.$document)&&i?.$textRegion&&(i.$textRegion.documentURI=this.currentDocument?.uri.toString())),a&&!t&&(i??={...n},i.$sourceText=n.$cstNode?.text),c){i??={...n};let t=this.commentProvider.getComment(n);t&&(i.$comment=t.replace(/\r/g,``))}return i??n}return n}}addAstNodeRegionWithAssignmentsTo(t){let createDocumentSegment=t=>({offset:t.offset,end:t.end,length:t.length,range:t.range});if(t.$cstNode){let n=t.$textRegion=createDocumentSegment(t.$cstNode),i=n.assignments={};return Object.keys(t).filter(t=>!t.startsWith(`$`)).forEach(n=>{let a=findNodesForProperty(t.$cstNode,n).map(createDocumentSegment);a.length!==0&&(i[n]=a)}),t}}linkNode(t,n,i,a,o,c){for(let[a,o]of Object.entries(t))if(Array.isArray(o))for(let c=0;c<o.length;c++){let l=o[c];isIntermediateReference(l)?o[c]=this.reviveReference(t,a,n,l,i):isAstNode(l)&&this.linkNode(l,n,i,t,a,c)}else isIntermediateReference(o)?t[a]=this.reviveReference(t,a,n,o,i):isAstNode(o)&&this.linkNode(o,n,i,t,a);let l=t;l.$container=a,l.$containerProperty=o,l.$containerIndex=c}reviveReference(t,n,i,a,o){let c=a.$refText,l=a.$error,f;if(a.$ref){let t=this.getRefNode(i,a.$ref,o.uriConverter);if(isAstNode(t))return c||=this.nameProvider.getName(t),{$refText:c??``,ref:t};l=t}else if(a.$refs){let t=[];for(let n of a.$refs){let a=this.getRefNode(i,n,o.uriConverter);isAstNode(a)&&t.push({ref:a})}if(t.length===0)f={$refText:c??``,items:t},l??=`Could not resolve multi-reference`;else return{$refText:c??``,items:t}}if(l)return f??={$refText:c??``,ref:void 0},f.error={info:{container:t,property:n,reference:f},message:l},f}getRefNode(t,n,i){try{let a=n.indexOf(`#`);if(a===0)return this.astNodeLocator.getAstNode(t,n.substring(1))||`Could not resolve path: `+n;if(a<0){let t=i?i(n):X.parse(n),a=this.langiumDocuments.getDocument(t);return a?a.parseResult.value:`Could not find document for URI: `+n}let o=i?i(n.substring(0,a)):X.parse(n.substring(0,a)),c=this.langiumDocuments.getDocument(o);return c?a===n.length-1?c.parseResult.value:this.astNodeLocator.getAstNode(c.parseResult.value,n.substring(a+1))||`Could not resolve URI: `+n:`Could not find document for URI: `+n}catch(t){return String(t)}}},DefaultServiceRegistry=class{get map(){return this.fileExtensionMap}constructor(t){this.languageIdMap=/* @__PURE__ */ new Map,this.fileExtensionMap=/* @__PURE__ */ new Map,this.fileNameMap=/* @__PURE__ */ new Map,this.textDocuments=t?.workspace.TextDocuments}register(t){let n=t.LanguageMetaData;for(let i of n.fileExtensions)this.fileExtensionMap.has(i)&&console.warn(`The file extension ${i} is used by multiple languages. It is now assigned to '${n.languageId}'.`),this.fileExtensionMap.set(i,t);if(n.fileNames)for(let i of n.fileNames)this.fileNameMap.has(i)&&console.warn(`The file name ${i} is used by multiple languages. It is now assigned to '${n.languageId}'.`),this.fileNameMap.set(i,t);this.languageIdMap.set(n.languageId,t)}getServices(t){if(this.languageIdMap.size===0)throw Error("The service registry is empty. Use `register` to register the services of a language.");let n=this.textDocuments?.get(t)?.languageId;if(n!==void 0){let t=this.languageIdMap.get(n);if(t)return t}let i=Z.extname(t),a=Z.basename(t),o=this.fileNameMap.get(a)??this.fileExtensionMap.get(i);if(!o)throw Error(n?`The service registry contains no services for the extension '${i}' for language '${n}'.`:`The service registry contains no services for the extension '${i}'.`);return o}hasServices(t){try{return this.getServices(t),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}};function diagnosticData(t){return{code:t}}var Mr;(function(t){t.defaults=[`fast`,`slow`,`built-in`],t.all=t.defaults})(Mr||={});var ValidationRegistry=class{constructor(t){this.entries=new MultiMap,this.knownCategories=new Set(Mr.defaults),this.entriesBefore=[],this.entriesAfter=[],this.reflection=t.shared.AstReflection}register(t,n=this,i=`fast`){if(i===`built-in`)throw Error(`The 'built-in' category is reserved for lexer, parser, and linker errors.`);this.knownCategories.add(i);for(let[a,o]of Object.entries(t)){let t=o;if(Array.isArray(t))for(let o of t){let t={check:this.wrapValidationException(o,n),category:i};this.addEntry(a,t)}else if(typeof t==`function`){let o={check:this.wrapValidationException(t,n),category:i};this.addEntry(a,o)}else assertUnreachable(t)}}wrapValidationException(t,n){return async(i,a,o)=>{await this.handleException(()=>t.call(n,i,a,o),`An error occurred during validation`,a,i)}}async handleException(t,n,i,a){try{await t()}catch(t){if(isOperationCancelled(t))throw t;console.error(`${n}:`,t),t instanceof Error&&t.stack&&console.error(t.stack),i(`error`,`${n}: ${t instanceof Error?t.message:String(t)}`,{node:a})}}addEntry(t,n){if(t===`AstNode`)this.entries.add(`AstNode`,n);else for(let i of this.reflection.getAllSubTypes(t))this.entries.add(i,n)}getChecks(t,n){let i=stream(this.entries.get(t)).concat(this.entries.get(`AstNode`));return n&&(i=i.filter(t=>n.includes(t.category))),i.map(t=>t.check)}registerBeforeDocument(t,n=this){this.entriesBefore.push(this.wrapPreparationException(t,`An error occurred during set-up of the validation`,n))}registerAfterDocument(t,n=this){this.entriesAfter.push(this.wrapPreparationException(t,`An error occurred during tear-down of the validation`,n))}wrapPreparationException(t,n,i){return async(a,o,c,l)=>{await this.handleException(()=>t.call(i,a,o,c,l),n,o,a)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}getAllValidationCategories(t){return this.knownCategories}};const Nr=Object.freeze({validateNode:!0,validateChildren:!0});var DefaultDocumentValidator=class{constructor(t){this.validationRegistry=t.validation.ValidationRegistry,this.metadata=t.LanguageMetaData,this.profiler=t.shared.profilers.LangiumProfiler,this.languageId=t.LanguageMetaData.languageId}async validateDocument(t,n={},i=Y.CancellationToken.None){let a=t.parseResult,o=[];if(await interruptAndCheck(i),(!n.categories||n.categories.includes(`built-in`))&&(this.processLexingErrors(a,o,n),n.stopAfterLexingErrors&&o.some(t=>t.data?.code===Pr.LexingError)||(this.processParsingErrors(a,o,n),n.stopAfterParsingErrors&&o.some(t=>t.data?.code===Pr.ParsingError))||(this.processLinkingErrors(t,o,n),n.stopAfterLinkingErrors&&o.some(t=>t.data?.code===Pr.LinkingError))))return o;try{o.push(...await this.validateAst(a.value,n,i))}catch(t){if(isOperationCancelled(t))throw t;console.error(`An error occurred during validation:`,t)}return await interruptAndCheck(i),o}processLexingErrors(t,n,i){let a=[...t.lexerErrors,...t.lexerReport?.diagnostics??[]];for(let t of a){let i=t.severity??`error`,a={severity:toDiagnosticSeverity(i),range:{start:{line:t.line-1,character:t.column-1},end:{line:t.line-1,character:t.column+t.length-1}},message:t.message,data:toDiagnosticData(i),source:this.getSource()};n.push(a)}}processParsingErrors(t,n,i){for(let i of t.parserErrors){let t;if(isValidTokenRange(i.token))t=tokenToRange(i.token);else if(`previousToken`in i){let n=i.previousToken;if(isValidTokenRange(n)){let i={line:n.endLine-1,character:n.endColumn};t={start:i,end:i}}else{let n={line:0,character:0};t={start:n,end:n}}}if(t){let a={severity:toDiagnosticSeverity(`error`),range:t,message:i.message,data:diagnosticData(Pr.ParsingError),source:this.getSource()};n.push(a)}}}processLinkingErrors(t,n,i){for(let i of t.references){let t=i.error;if(t){let a={node:t.info.container,range:i.$refNode?.range,property:t.info.property,index:t.info.index,data:{code:Pr.LinkingError,containerType:t.info.container.$type,property:t.info.property,refText:t.info.reference.$refText}};n.push(this.toDiagnostic(`error`,t.message,a))}}}async validateAst(t,n,i=Y.CancellationToken.None){let a=[],acceptor=(t,n,i)=>{a.push(this.toDiagnostic(t,n,i))};return await this.validateAstBefore(t,n,acceptor,i),await this.validateAstNodes(t,n,acceptor,i),await this.validateAstAfter(t,n,acceptor,i),a}async validateAstBefore(t,n,i,a=Y.CancellationToken.None){let o=this.validationRegistry.checksBefore;for(let c of o)await interruptAndCheck(a),await c(t,i,n.categories??[],a)}async validateAstNodes(t,n,i,a=Y.CancellationToken.None){if(this.profiler?.isActive(`validating`)){let o=this.profiler.createTask(`validating`,this.languageId);o.start();try{let c=streamAst(t).iterator();for(let t of c){o.startSubTask(t.$type);let l=this.validateSingleNodeOptions(t,n);if(l.validateNode)try{let o=this.validationRegistry.getChecks(t.$type,n.categories);for(let n of o)await n(t,i,a)}finally{o.stopSubTask(t.$type)}l.validateChildren||c.prune()}}finally{o.stop()}}else{let o=streamAst(t).iterator();for(let t of o){await interruptAndCheck(a);let c=this.validateSingleNodeOptions(t,n);if(c.validateNode){let o=this.validationRegistry.getChecks(t.$type,n.categories);for(let n of o)await n(t,i,a)}c.validateChildren||o.prune()}}}validateSingleNodeOptions(t,n){return Nr}async validateAstAfter(t,n,i,a=Y.CancellationToken.None){let o=this.validationRegistry.checksAfter;for(let c of o)await interruptAndCheck(a),await c(t,i,n.categories??[],a)}toDiagnostic(t,n,i){return{message:n,range:getDiagnosticRange(i),severity:toDiagnosticSeverity(t),code:i.code,codeDescription:i.codeDescription,tags:i.tags,relatedInformation:i.relatedInformation,data:i.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};function getDiagnosticRange(t){if(t.range)return t.range;let n;return typeof t.property==`string`?n=findNodeForProperty(t.node.$cstNode,t.property,t.index):typeof t.keyword==`string`&&(n=findNodeForKeyword(t.node.$cstNode,t.keyword,t.index)),n??=t.node.$cstNode,n?n.range:{start:{line:0,character:0},end:{line:0,character:0}}}function toDiagnosticSeverity(t){switch(t){case`error`:return 1;case`warning`:return 2;case`info`:return 3;case`hint`:return 4;default:throw Error(`Invalid diagnostic severity: `+t)}}function toDiagnosticData(t){switch(t){case`error`:return diagnosticData(Pr.LexingError);case`warning`:return diagnosticData(Pr.LexingWarning);case`info`:return diagnosticData(Pr.LexingInfo);case`hint`:return diagnosticData(Pr.LexingHint);default:throw Error(`Invalid diagnostic severity: `+t)}}var Pr;(function(t){t.LexingError=`lexing-error`,t.LexingWarning=`lexing-warning`,t.LexingInfo=`lexing-info`,t.LexingHint=`lexing-hint`,t.ParsingError=`parsing-error`,t.LinkingError=`linking-error`})(Pr||={});var DefaultAstNodeDescriptionProvider=class{constructor(t){this.astNodeLocator=t.workspace.AstNodeLocator,this.nameProvider=t.references.NameProvider}createDescription(t,n,i){let a=i??getDocument(t);n??=this.nameProvider.getName(t);let o=this.astNodeLocator.getAstNodePath(t);if(!n)throw Error(`Node at path ${o} has no name.`);let c,nameSegmentGetter=()=>c??=toDocumentSegment(this.nameProvider.getNameNode(t)??t.$cstNode);return{node:t,name:n,get nameSegment(){return nameSegmentGetter()},selectionSegment:toDocumentSegment(t.$cstNode),type:t.$type,documentUri:a.uri,path:o}}},DefaultReferenceDescriptionProvider=class{constructor(t){this.nodeLocator=t.workspace.AstNodeLocator}async createDescriptions(t,n=Y.CancellationToken.None){let i=[],a=t.parseResult.value;for(let t of streamAst(a))await interruptAndCheck(n),streamReferences(t).forEach(t=>{t.reference.error||i.push(...this.createInfoDescriptions(t))});return i}createInfoDescriptions(t){let n=t.reference;if(n.error||!n.$refNode)return[];let i=[];isReference(n)&&n.$nodeDescription?i=[n.$nodeDescription]:isMultiReference(n)&&(i=n.items.map(t=>t.$nodeDescription).filter(t=>t!==void 0));let a=getDocument(t.container).uri,o=this.nodeLocator.getAstNodePath(t.container),c=[],l=toDocumentSegment(n.$refNode);for(let t of i)c.push({sourceUri:a,sourcePath:o,targetUri:t.documentUri,targetPath:t.path,segment:l,local:Z.equals(t.documentUri,a)});return c}},DefaultAstNodeLocator=class{constructor(){this.segmentSeparator=`/`,this.indexSeparator=`@`}getAstNodePath(t){if(t.$container){let n=this.getAstNodePath(t.$container),i=this.getPathSegment(t);return n+this.segmentSeparator+i}return``}getPathSegment({$containerProperty:t,$containerIndex:n}){if(!t)throw Error(`Missing '$containerProperty' in AST node.`);return n===void 0?t:t+this.indexSeparator+n}getAstNode(t,n){return n.split(this.segmentSeparator).reduce((t,n)=>{if(!t||n.length===0)return t;let i=n.indexOf(this.indexSeparator);if(i>0){let a=n.substring(0,i),o=parseInt(n.substring(i+1));return t[a]?.[o]}return t[n]},t)}},DefaultConfigurationProvider=class{constructor(t){this._ready=new Deferred,this.onConfigurationSectionUpdateEmitter=new Y.Emitter,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=t.ServiceRegistry}get ready(){return this._ready.promise}initialize(t){this.workspaceConfig=t.capabilities.workspace?.configuration??!1}async initialized(t){if(this.workspaceConfig){if(t.register){let n=this.serviceRegistry.all;t.register({section:n.map(t=>this.toSectionName(t.LanguageMetaData.languageId))})}if(t.fetchConfiguration){let n=this.serviceRegistry.all.map(t=>({section:this.toSectionName(t.LanguageMetaData.languageId)})),i=await t.fetchConfiguration(n);n.forEach((t,n)=>{this.updateSectionConfiguration(t.section,i[n])})}}this._ready.resolve()}updateConfiguration(t){typeof t.settings==`object`&&t.settings!==null&&Object.entries(t.settings).forEach(([t,n])=>{this.updateSectionConfiguration(t,n),this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:n})})}updateSectionConfiguration(t,n){this.settings[t]=n}async getConfiguration(t,n){await this.ready;let i=this.toSectionName(t);if(this.settings[i])return this.settings[i][n]}toSectionName(t){return`${t}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}},Fr;(function(t){function create(t){return{dispose:async()=>await t()}}t.create=create})(Fr||={});var DefaultDocumentBuilder=class{constructor(t){this.updateBuildOptions={validation:{categories:[`built-in`,`fast`]}},this.updateListeners=[],this.buildPhaseListeners=new MultiMap,this.documentPhaseListeners=new MultiMap,this.buildState=/* @__PURE__ */ new Map,this.documentBuildWaiters=/* @__PURE__ */ new Map,this.currentState=Q.Changed,this.langiumDocuments=t.workspace.LangiumDocuments,this.langiumDocumentFactory=t.workspace.LangiumDocumentFactory,this.textDocuments=t.workspace.TextDocuments,this.indexManager=t.workspace.IndexManager,this.fileSystemProvider=t.workspace.FileSystemProvider,this.workspaceManager=()=>t.workspace.WorkspaceManager,this.serviceRegistry=t.ServiceRegistry}async build(t,n={},i=Y.CancellationToken.None){for(let i of t){let t=i.uri.toString();if(i.state===Q.Validated){if(typeof n.validation==`boolean`&&n.validation)this.resetToState(i,Q.IndexedReferences);else if(typeof n.validation==`object`){let a=this.findMissingValidationCategories(i,n);a.length>0&&(this.buildState.set(t,{completed:!1,options:{validation:{categories:a}},result:this.buildState.get(t)?.result}),i.state=Q.IndexedReferences)}}else this.buildState.delete(t)}this.currentState=Q.Changed,await this.emitUpdate(t.map(t=>t.uri),[]),await this.buildDocuments(t,n,i)}async update(t,n,i=Y.CancellationToken.None){this.currentState=Q.Changed;let a=[];for(let t of n){let n=this.langiumDocuments.deleteDocuments(t);for(let t of n)a.push(t.uri),this.cleanUpDeleted(t)}let o=(await Promise.all(t.map(t=>this.findChangedUris(t)))).flat();for(let t of o){let n=this.langiumDocuments.getDocument(t);n===void 0&&(n=this.langiumDocumentFactory.fromModel({$type:`INVALID`},t),n.state=Q.Changed,this.langiumDocuments.addDocument(n)),this.resetToState(n,Q.Changed)}let c=stream(o).concat(a).map(t=>t.toString()).toSet();this.langiumDocuments.all.filter(t=>!c.has(t.uri.toString())&&this.shouldRelink(t,c)).forEach(t=>this.resetToState(t,Q.ComputedScopes)),await this.emitUpdate(o,a),await interruptAndCheck(i);let l=this.sortDocuments(this.langiumDocuments.all.filter(t=>t.state<Q.Validated||!this.buildState.get(t.uri.toString())?.completed||this.resultsAreIncomplete(t,this.updateBuildOptions)).toArray());await this.buildDocuments(l,this.updateBuildOptions,i)}resultsAreIncomplete(t,n){return this.findMissingValidationCategories(t,n).length>=1}findMissingValidationCategories(t,n){let i=this.buildState.get(t.uri.toString()),a=this.serviceRegistry.getServices(t.uri).validation.ValidationRegistry.getAllValidationCategories(t),o=i?.result?.validationChecks?new Set(i?.result?.validationChecks):i?.completed?a:/* @__PURE__ */ new Set;return stream(n===void 0||n.validation===!0?a:typeof n.validation==`object`?n.validation.categories??a:[]).filter(t=>!o.has(t)).toArray()}async findChangedUris(t){if(this.langiumDocuments.getDocument(t)??this.textDocuments?.get(t))return[t];try{let n=await this.fileSystemProvider.stat(t);if(n.isDirectory)return await this.workspaceManager().searchFolder(t);if(this.workspaceManager().shouldIncludeEntry(n))return[t]}catch{}return[]}async emitUpdate(t,n){await Promise.all(this.updateListeners.map(i=>i(t,n)))}sortDocuments(t){let n=0,i=t.length-1;for(;n<i;){for(;n<t.length&&this.hasTextDocument(t[n]);)n++;for(;i>=0&&!this.hasTextDocument(t[i]);)i--;n<i&&([t[n],t[i]]=[t[i],t[n]])}return t}hasTextDocument(t){return!!this.textDocuments?.get(t.uri)}shouldRelink(t,n){return t.references.some(t=>t.error!==void 0)?!0:this.indexManager.isAffected(t,n)}onUpdate(t){return this.updateListeners.push(t),Fr.create(()=>{let n=this.updateListeners.indexOf(t);n>=0&&this.updateListeners.splice(n,1)})}resetToState(t,n){switch(n){case Q.Changed:case Q.Parsed:this.indexManager.removeContent(t.uri);case Q.IndexedContent:t.localSymbols=void 0;case Q.ComputedScopes:this.serviceRegistry.getServices(t.uri).references.Linker.unlink(t);case Q.Linked:this.indexManager.removeReferences(t.uri);case Q.IndexedReferences:t.diagnostics=void 0,this.buildState.delete(t.uri.toString());case Q.Validated:}t.state>n&&(t.state=n)}cleanUpDeleted(t){this.buildState.delete(t.uri.toString()),this.indexManager.remove(t.uri),t.state=Q.Changed}async buildDocuments(t,n,i){this.prepareBuild(t,n),await this.runCancelable(t,Q.Parsed,i,t=>this.langiumDocumentFactory.update(t,i)),await this.runCancelable(t,Q.IndexedContent,i,t=>this.indexManager.updateContent(t,i)),await this.runCancelable(t,Q.ComputedScopes,i,async t=>{t.localSymbols=await this.serviceRegistry.getServices(t.uri).references.ScopeComputation.collectLocalSymbols(t,i)});let a=t.filter(t=>this.shouldLink(t));await this.runCancelable(a,Q.Linked,i,t=>this.serviceRegistry.getServices(t.uri).references.Linker.link(t,i)),await this.runCancelable(a,Q.IndexedReferences,i,t=>this.indexManager.updateReferences(t,i));let o=t.filter(t=>this.shouldValidate(t)?!0:(this.markAsCompleted(t),!1));await this.runCancelable(o,Q.Validated,i,async t=>{await this.validate(t,i),this.markAsCompleted(t)})}markAsCompleted(t){let n=this.buildState.get(t.uri.toString());n&&(n.completed=!0)}prepareBuild(t,n){for(let i of t){let t=i.uri.toString(),a=this.buildState.get(t);(!a||a.completed)&&this.buildState.set(t,{completed:!1,options:n,result:a?.result})}}async runCancelable(t,n,i,a){for(let o of t)o.state<n&&(await interruptAndCheck(i),await a(o),o.state=n,await this.notifyDocumentPhase(o,n,i));let o=t.filter(t=>t.state===n);await this.notifyBuildPhase(o,n,i),this.currentState=n}onBuildPhase(t,n){return this.buildPhaseListeners.add(t,n),Fr.create(()=>{this.buildPhaseListeners.delete(t,n)})}onDocumentPhase(t,n){return this.documentPhaseListeners.add(t,n),Fr.create(()=>{this.documentPhaseListeners.delete(t,n)})}waitUntil(t,n,i){let a;return n&&`path`in n?a=n:i=n,i??=Y.CancellationToken.None,a?this.awaitDocumentState(t,a,i):this.awaitBuilderState(t,i)}awaitDocumentState(t,n,i){let a=this.langiumDocuments.getDocument(n);return a?a.state>=t?Promise.resolve(n):i.isCancellationRequested?Promise.reject(mr):this.currentState>=t&&t>a.state?Promise.reject(new Y.ResponseError(Y.LSPErrorCodes.RequestFailed,`Document state of ${n.toString()} is ${Q[a.state]}, requiring ${Q[t]}, but workspace state is already ${Q[this.currentState]}. Returning undefined.`)):new Promise((a,o)=>{let c=this.onDocumentPhase(t,t=>{Z.equals(t.uri,n)&&(c.dispose(),l.dispose(),a(t.uri))}),l=i.onCancellationRequested(()=>{c.dispose(),l.dispose(),o(mr)})}):Promise.reject(new Y.ResponseError(Y.LSPErrorCodes.ServerCancelled,`No document found for URI: ${n.toString()}`))}awaitBuilderState(t,n){return this.currentState>=t?Promise.resolve():n.isCancellationRequested?Promise.reject(mr):new Promise((i,a)=>{let o=this.onBuildPhase(t,()=>{o.dispose(),c.dispose(),i()}),c=n.onCancellationRequested(()=>{o.dispose(),c.dispose(),a(mr)})})}async notifyDocumentPhase(t,n,i){let a=this.documentPhaseListeners.get(n).slice();for(let n of a)try{await interruptAndCheck(i),await n(t,i)}catch(t){if(!isOperationCancelled(t))throw t}}async notifyBuildPhase(t,n,i){if(t.length===0)return;let a=this.buildPhaseListeners.get(n).slice();for(let n of a)await interruptAndCheck(i),await n(t,i)}shouldLink(t){return this.getBuildOptions(t).eagerLinking??!0}shouldValidate(t){return!!this.getBuildOptions(t).validation}async validate(t,n){let i=this.serviceRegistry.getServices(t.uri).validation.DocumentValidator,a=this.getBuildOptions(t),o=typeof a.validation==`object`?{...a.validation}:{};o.categories=this.findMissingValidationCategories(t,a);let c=await i.validateDocument(t,o,n);t.diagnostics?t.diagnostics.push(...c):t.diagnostics=c;let l=this.buildState.get(t.uri.toString());l&&(l.result??={},l.result.validationChecks?l.result.validationChecks=stream(l.result.validationChecks).concat(o.categories).distinct().toArray():l.result.validationChecks=[...o.categories])}getBuildOptions(t){return this.buildState.get(t.uri.toString())?.options??{}}},DefaultIndexManager=class{constructor(t){this.symbolIndex=/* @__PURE__ */ new Map,this.symbolByTypeIndex=new ContextCache,this.referenceIndex=/* @__PURE__ */ new Map,this.documents=t.workspace.LangiumDocuments,this.serviceRegistry=t.ServiceRegistry,this.astReflection=t.AstReflection}findAllReferences(t,n){let i=getDocument(t).uri,a=[];return this.referenceIndex.forEach(t=>{t.forEach(t=>{Z.equals(t.targetUri,i)&&t.targetPath===n&&a.push(t)})}),stream(a)}allElements(t,n){let i=stream(this.symbolIndex.keys());return n&&(i=i.filter(t=>!n||n.has(t))),i.map(n=>this.getFileDescriptions(n,t)).flat()}getFileDescriptions(t,n){return n?this.symbolByTypeIndex.get(t,n,()=>(this.symbolIndex.get(t)??[]).filter(t=>this.astReflection.isSubtype(t.type,n))):this.symbolIndex.get(t)??[]}remove(t){this.removeContent(t),this.removeReferences(t)}removeContent(t){let n=t.toString();this.symbolIndex.delete(n),this.symbolByTypeIndex.clear(n)}removeReferences(t){let n=t.toString();this.referenceIndex.delete(n)}async updateContent(t,n=Y.CancellationToken.None){let i=await this.serviceRegistry.getServices(t.uri).references.ScopeComputation.collectExportedSymbols(t,n),a=t.uri.toString();this.symbolIndex.set(a,i),this.symbolByTypeIndex.clear(a)}async updateReferences(t,n=Y.CancellationToken.None){let i=await this.serviceRegistry.getServices(t.uri).workspace.ReferenceDescriptionProvider.createDescriptions(t,n);this.referenceIndex.set(t.uri.toString(),i)}isAffected(t,n){let i=this.referenceIndex.get(t.uri.toString());return i?i.some(t=>!t.local&&n.has(t.targetUri.toString())):!1}},DefaultWorkspaceManager=class{constructor(t){this.initialBuildOptions={},this._ready=new Deferred,this.serviceRegistry=t.ServiceRegistry,this.langiumDocuments=t.workspace.LangiumDocuments,this.documentBuilder=t.workspace.DocumentBuilder,this.fileSystemProvider=t.workspace.FileSystemProvider,this.mutex=t.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(t){this.folders=t.workspaceFolders??void 0}initialized(t){return this.mutex.write(t=>this.initializeWorkspace(this.folders??[],t))}async initializeWorkspace(t,n=Y.CancellationToken.None){let i=await this.performStartup(t);await interruptAndCheck(n),await this.documentBuilder.build(i,this.initialBuildOptions,n)}async performStartup(t){let n=[],collector=t=>{n.push(t),this.langiumDocuments.hasDocument(t.uri)||this.langiumDocuments.addDocument(t)};await this.loadAdditionalDocuments(t,collector);let i=[];await Promise.all(t.map(t=>this.getRootFolder(t)).map(async t=>this.traverseFolder(t,i)));let a=stream(i).distinct(t=>t.toString()).filter(t=>!this.langiumDocuments.hasDocument(t));return await this.loadWorkspaceDocuments(a,collector),this._ready.resolve(),n}async loadWorkspaceDocuments(t,n){await Promise.all(t.map(async t=>{n(await this.langiumDocuments.getOrCreateDocument(t))}))}loadAdditionalDocuments(t,n){return Promise.resolve()}getRootFolder(t){return X.parse(t.uri)}async traverseFolder(t,n){try{let i=await this.fileSystemProvider.readDirectory(t);await Promise.all(i.map(async t=>{this.shouldIncludeEntry(t)&&(t.isDirectory?await this.traverseFolder(t.uri,n):t.isFile&&n.push(t.uri))}))}catch(n){console.error(`Failure to read directory content of `+t.toString(!0),n)}}async searchFolder(t){let n=[];return await this.traverseFolder(t,n),n}shouldIncludeEntry(t){let n=Z.basename(t.uri);return n.startsWith(`.`)?!1:t.isDirectory?n!==`node_modules`&&n!==`out`:t.isFile?this.serviceRegistry.hasServices(t.uri):!1}},DefaultLexerErrorMessageProvider=class{buildUnexpectedCharactersMessage(t,n,i,a,o){return C.buildUnexpectedCharactersMessage(t,n,i,a,o)}buildUnableToPopLexerModeMessage(t){return C.buildUnableToPopLexerModeMessage(t)}};const Ir={mode:`full`};var DefaultLexer=class{constructor(t){this.errorMessageProvider=t.parser.LexerErrorMessageProvider,this.tokenBuilder=t.parser.TokenBuilder;let n=this.tokenBuilder.buildTokens(t.Grammar,{caseInsensitive:t.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(n);let i=isTokenTypeDictionary(n)?Object.values(n):n,a=t.LanguageMetaData.mode===`production`;this.chevrotainLexer=new p(i,{positionTracking:`full`,skipValidations:a,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(t,n=Ir){let i=this.chevrotainLexer.tokenize(t);return{tokens:i.tokens,errors:i.errors,hidden:i.groups.hidden??[],report:this.tokenBuilder.flushLexingReport?.(t)}}toTokenTypeDictionary(t){if(isTokenTypeDictionary(t))return t;let n=isIMultiModeLexerDefinition(t)?Object.values(t.modes).flat():t,i={};return n.forEach(t=>i[t.name]=t),i}};function isTokenTypeArray(t){return Array.isArray(t)&&(t.length===0||`name`in t[0])}function isIMultiModeLexerDefinition(t){return t&&`modes`in t&&`defaultMode`in t}function isTokenTypeDictionary(t){return!isTokenTypeArray(t)&&!isIMultiModeLexerDefinition(t)}Vn();function parseJSDoc(t,n,i){let a,o;typeof t==`string`?(o=n,a=i):(o=t.range.start,a=n),o||=U.create(0,0);let c=getLines(t),l=normalizeOptions(a);return parseJSDocComment({index:0,tokens:tokenize({lines:c,position:o,options:l}),position:o})}function isJSDoc(t,n){let i=normalizeOptions(n),a=getLines(t);if(a.length===0)return!1;let o=a[0],c=a[a.length-1],l=i.start,f=i.end;return!!l?.exec(o)&&!!f?.exec(c)}function getLines(t){let n=``;return n=typeof t==`string`?t:t.text,n.split(Ue)}const Lr=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Rr=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function tokenize(t){let n=[],i=t.position.line,a=t.position.character;for(let o=0;o<t.lines.length;o++){let c=o===0,l=o===t.lines.length-1,f=t.lines[o],p=0;if(c&&t.options.start){let n=t.options.start?.exec(f);n&&(p=n.index+n[0].length)}else{let n=t.options.line?.exec(f);n&&(p=n.index+n[0].length)}if(l){let n=t.options.end?.exec(f);n&&(f=f.substring(0,n.index))}if(f=f.substring(0,lastCharacter(f)),skipWhitespace(f,p)>=f.length){if(n.length>0){let t=U.create(i,a);n.push({type:`break`,content:``,range:W.create(t,t)})}}else{Lr.lastIndex=p;let t=Lr.exec(f);if(t){let o=t[0],c=t[1],l=U.create(i,a+p),h=U.create(i,a+p+o.length);n.push({type:`tag`,content:c,range:W.create(l,h)}),p+=o.length,p=skipWhitespace(f,p)}if(p<f.length){let t=f.substring(p),o=Array.from(t.matchAll(Rr));n.push(...buildInlineTokens(o,t,i,a+p))}}i++,a=0}return n.length>0&&n[n.length-1].type===`break`?n.slice(0,-1):n}function buildInlineTokens(t,n,i,a){let o=[];if(t.length===0){let t=U.create(i,a),c=U.create(i,a+n.length);o.push({type:`text`,content:n,range:W.create(t,c)})}else{let c=0;for(let l of t){let t=l.index,f=n.substring(c,t);f.length>0&&o.push({type:`text`,content:n.substring(c,t),range:W.create(U.create(i,c+a),U.create(i,t+a))});let p=f.length+1,h=l[1];if(o.push({type:`inline-tag`,content:h,range:W.create(U.create(i,c+p+a),U.create(i,c+p+h.length+a))}),p+=h.length,l.length===4){p+=l[2].length;let t=l[3];o.push({type:`text`,content:t,range:W.create(U.create(i,c+p+a),U.create(i,c+p+t.length+a))})}else o.push({type:`text`,content:``,range:W.create(U.create(i,c+p+a),U.create(i,c+p+a))});c=t+l[0].length}let l=n.substring(c);l.length>0&&o.push({type:`text`,content:l,range:W.create(U.create(i,c+a),U.create(i,c+a+l.length))})}return o}const zr=/\S/,Br=/\s*$/;function skipWhitespace(t,n){let i=t.substring(n).match(zr);return i?n+i.index:t.length}function lastCharacter(t){let n=t.match(Br);if(n&&typeof n.index==`number`)return n.index}function parseJSDocComment(t){let n=U.create(t.position.line,t.position.character);if(t.tokens.length===0)return new JSDocCommentImpl([],W.create(n,n));let i=[];for(;t.index<t.tokens.length;){let n=parseJSDocElement(t,i[i.length-1]);n&&i.push(n)}let a=i[0]?.range.start??n,o=i[i.length-1]?.range.end??n;return new JSDocCommentImpl(i,W.create(a,o))}function parseJSDocElement(t,n){let i=t.tokens[t.index];if(i.type===`tag`)return parseJSDocTag(t,!1);if(i.type===`text`||i.type===`inline-tag`)return parseJSDocText(t);appendEmptyLine(i,n),t.index++}function appendEmptyLine(t,n){if(n){let i=new JSDocLineImpl(``,t.range);`inlines`in n?n.inlines.push(i):n.content.inlines.push(i)}}function parseJSDocText(t){let n=t.tokens[t.index],i=n,a=n,o=[];for(;n&&n.type!==`break`&&n.type!==`tag`;)o.push(parseJSDocInline(t)),a=n,n=t.tokens[t.index];return new JSDocTextImpl(o,W.create(i.range.start,a.range.end))}function parseJSDocInline(t){return t.tokens[t.index].type===`inline-tag`?parseJSDocTag(t,!0):parseJSDocLine(t)}function parseJSDocTag(t,n){let i=t.tokens[t.index++],a=i.content.substring(1);if(t.tokens[t.index]?.type===`text`){if(n){let o=parseJSDocLine(t);return new JSDocTagImpl(a,new JSDocTextImpl([o],o.range),n,W.create(i.range.start,o.range.end))}{let o=parseJSDocText(t);return new JSDocTagImpl(a,o,n,W.create(i.range.start,o.range.end))}}{let t=i.range;return new JSDocTagImpl(a,new JSDocTextImpl([],t),n,t)}}function parseJSDocLine(t){let n=t.tokens[t.index++];return new JSDocLineImpl(n.content,n.range)}function normalizeOptions(t){if(!t)return normalizeOptions({start:`/**`,end:`*/`,line:`*`});let{start:n,end:i,line:a}=t;return{start:normalizeOption(n,!0),end:normalizeOption(i,!1),line:normalizeOption(a,!0)}}function normalizeOption(t,n){if(typeof t==`string`||typeof t==`object`){let i=typeof t==`string`?escapeRegExp(t):t.source;return RegExp(n?`^\\s*${i}`:`\\s*${i}\\s*$`)}return t}var JSDocCommentImpl=class{constructor(t,n){this.elements=t,this.range=n}getTag(t){return this.getAllTags().find(n=>n.name===t)}getTags(t){return this.getAllTags().filter(n=>n.name===t)}getAllTags(){return this.elements.filter(t=>`name`in t)}toString(){let t=``;for(let n of this.elements)if(t.length===0)t=n.toString();else{let i=n.toString();t+=fillNewlines(t)+i}return t.trim()}toMarkdown(t){let n=``;for(let i of this.elements)if(n.length===0)n=i.toMarkdown(t);else{let a=i.toMarkdown(t);n+=fillNewlines(n)+a}return n.trim()}},JSDocTagImpl=class{constructor(t,n,i,a){this.name=t,this.content=n,this.inline=i,this.range=a}toString(){let t=`@${this.name}`,n=this.content.toString();return this.content.inlines.length===1?t=`${t} ${n}`:this.content.inlines.length>1&&(t=`${t}\n${n}`),this.inline?`{${t}}`:t}toMarkdown(t){return t?.renderTag?.(this)??this.toMarkdownDefault(t)}toMarkdownDefault(t){let n=this.content.toMarkdown(t);if(this.inline){let i=renderInlineTag(this.name,n,t??{});if(typeof i==`string`)return i}let i=``;t?.tag===`italic`||t?.tag===void 0?i=`*`:t?.tag===`bold`?i=`**`:t?.tag===`bold-italic`&&(i=`***`);let a=`${i}@${this.name}${i}`;return this.content.inlines.length===1?a=`${a} — ${n}`:this.content.inlines.length>1&&(a=`${a}\n${n}`),this.inline?`{${a}}`:a}};function renderInlineTag(t,n,i){if(t===`linkplain`||t===`linkcode`||t===`link`){let a=n.indexOf(` `),o=n;if(a>0){let t=skipWhitespace(n,a);o=n.substring(t),n=n.substring(0,a)}return(t===`linkcode`||t===`link`&&i.link===`code`)&&(o=`\`${o}\``),i.renderLink?.(n,o)??renderLinkDefault(n,o)}}function renderLinkDefault(t,n){try{return X.parse(t,!0),`[${n}](${t})`}catch{return t}}var JSDocTextImpl=class{constructor(t,n){this.inlines=t,this.range=n}toString(){let t=``;for(let n=0;n<this.inlines.length;n++){let i=this.inlines[n],a=this.inlines[n+1];t+=i.toString(),a&&a.range.start.line>i.range.start.line&&(t+=`
13
+ `)}return t}toMarkdown(t){let n=``;for(let i=0;i<this.inlines.length;i++){let a=this.inlines[i],o=this.inlines[i+1];n+=a.toMarkdown(t),o&&o.range.start.line>a.range.start.line&&(n+=`
11
14
  `)}return n}},JSDocLineImpl=class{constructor(t,n){this.text=t,this.range=n}toString(){return this.text}toMarkdown(){return this.text}};function fillNewlines(t){return t.endsWith(`
12
15
  `)?`
13
16
  `:`
14
17
 
15
- `}var JSDocDocumentationProvider=class{constructor(t){this.indexManager=t.shared.workspace.IndexManager,this.commentProvider=t.documentation.CommentProvider}getDocumentation(t){let n=this.commentProvider.getComment(t);if(n&&isJSDoc(n))return parseJSDoc(n).toMarkdown({renderLink:(n,i)=>this.documentationLinkRenderer(t,n,i),renderTag:n=>this.documentationTagRenderer(t,n)})}documentationLinkRenderer(t,n,i){let o=this.findNameInPrecomputedScopes(t,n)??this.findNameInGlobalScope(t,n);if(o&&o.nameSegment){let t=o.nameSegment.range.start.line+1,n=o.nameSegment.range.start.character+1;return`[${i}](${o.documentUri.with({fragment:`L${t},${n}`}).toString()})`}}documentationTagRenderer(t,n){}findNameInPrecomputedScopes(t,n){let i=getDocument(t).precomputedScopes;if(!i)return;let o=t;do{let t=i.get(o).find(t=>t.name===n);if(t)return t;o=o.$container}while(o)}findNameInGlobalScope(t,n){return this.indexManager.allElements().find(t=>t.name===n)}},DefaultCommentProvider=class{constructor(t){this.grammarConfig=()=>t.parser.GrammarConfig}getComment(t){return isAstNodeWithComment(t)?t.$comment:findCommentNode(t.$cstNode,this.grammarConfig().multilineCommentRules)?.text}},DefaultAsyncParser=class{constructor(t){this.syncParser=t.parser.LangiumParser}parse(t,n){return Promise.resolve(this.syncParser.parse(t))}},DefaultWorkspaceLock=class{constructor(){this.previousTokenSource=new q.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(t){this.cancelWrite();let n=startCancelableOperation();return this.previousTokenSource=n,this.enqueue(this.writeQueue,t,n.token)}read(t){return this.enqueue(this.readQueue,t)}enqueue(t,n,i=q.CancellationToken.None){let o=new Deferred,s={action:n,deferred:o,cancellationToken:i};return t.push(s),this.performNextOperation(),o.promise}async performNextOperation(){if(!this.done)return;let t=[];if(this.writeQueue.length>0)t.push(this.writeQueue.shift());else if(this.readQueue.length>0)t.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(t.map(async({action:t,deferred:n,cancellationToken:i})=>{try{let o=await Promise.resolve().then(()=>t(i));n.resolve(o)}catch(t){isOperationCancelled(t)?n.resolve(void 0):n.reject(t)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}},DefaultHydrator=class{constructor(t){this.grammarElementIdMap=new BiMap,this.tokenTypeIdMap=new BiMap,this.grammar=t.Grammar,this.lexer=t.parser.Lexer,this.linker=t.references.Linker}dehydrate(t){return{lexerErrors:t.lexerErrors,lexerReport:t.lexerReport?this.dehydrateLexerReport(t.lexerReport):void 0,parserErrors:t.parserErrors.map(t=>Object.assign(Object.assign({},t),{message:t.message})),value:this.dehydrateAstNode(t.value,this.createDehyrationContext(t.value))}}dehydrateLexerReport(t){return t}createDehyrationContext(t){let n=new Map,i=new Map;for(let i of streamAst(t))n.set(i,{});if(t.$cstNode)for(let n of streamCst(t.$cstNode))i.set(n,{});return{astNodes:n,cstNodes:i}}dehydrateAstNode(t,n){let i=n.astNodes.get(t);i.$type=t.$type,i.$containerIndex=t.$containerIndex,i.$containerProperty=t.$containerProperty,t.$cstNode!==void 0&&(i.$cstNode=this.dehydrateCstNode(t.$cstNode,n));for(let[o,s]of Object.entries(t))if(!o.startsWith(`$`)){if(Array.isArray(s)){let t=[];i[o]=t;for(let i of s)isAstNode(i)?t.push(this.dehydrateAstNode(i,n)):isReference(i)?t.push(this.dehydrateReference(i,n)):t.push(i)}else isAstNode(s)?i[o]=this.dehydrateAstNode(s,n):isReference(s)?i[o]=this.dehydrateReference(s,n):s!==void 0&&(i[o]=s)}return i}dehydrateReference(t,n){let i={};return i.$refText=t.$refText,t.$refNode&&(i.$refNode=n.cstNodes.get(t.$refNode)),i}dehydrateCstNode(t,n){let i=n.cstNodes.get(t);return isRootCstNode(t)?i.fullText=t.fullText:i.grammarSource=this.getGrammarElementId(t.grammarSource),i.hidden=t.hidden,i.astNode=n.astNodes.get(t.astNode),isCompositeCstNode(t)?i.content=t.content.map(t=>this.dehydrateCstNode(t,n)):isLeafCstNode(t)&&(i.tokenType=t.tokenType.name,i.offset=t.offset,i.length=t.length,i.startLine=t.range.start.line,i.startColumn=t.range.start.character,i.endLine=t.range.end.line,i.endColumn=t.range.end.character),i}hydrate(t){let n=t.value,i=this.createHydrationContext(n);return`$cstNode`in n&&this.hydrateCstNode(n.$cstNode,i),{lexerErrors:t.lexerErrors,lexerReport:t.lexerReport,parserErrors:t.parserErrors,value:this.hydrateAstNode(n,i)}}createHydrationContext(t){let n=new Map,i=new Map;for(let i of streamAst(t))n.set(i,{});let o;if(t.$cstNode)for(let n of streamCst(t.$cstNode)){let t;`fullText`in n?(t=new RootCstNodeImpl(n.fullText),o=t):`content`in n?t=new CompositeCstNodeImpl:`tokenType`in n&&(t=this.hydrateCstLeafNode(n)),t&&(i.set(n,t),t.root=o)}return{astNodes:n,cstNodes:i}}hydrateAstNode(t,n){let i=n.astNodes.get(t);i.$type=t.$type,i.$containerIndex=t.$containerIndex,i.$containerProperty=t.$containerProperty,t.$cstNode&&(i.$cstNode=n.cstNodes.get(t.$cstNode));for(let[o,s]of Object.entries(t))if(!o.startsWith(`$`)){if(Array.isArray(s)){let t=[];i[o]=t;for(let c of s)isAstNode(c)?t.push(this.setParent(this.hydrateAstNode(c,n),i)):isReference(c)?t.push(this.hydrateReference(c,i,o,n)):t.push(c)}else isAstNode(s)?i[o]=this.setParent(this.hydrateAstNode(s,n),i):isReference(s)?i[o]=this.hydrateReference(s,i,o,n):s!==void 0&&(i[o]=s)}return i}setParent(t,n){return t.$container=n,t}hydrateReference(t,n,i,o){return this.linker.buildReference(n,i,o.cstNodes.get(t.$refNode),t.$refText)}hydrateCstNode(t,n,i=0){let o=n.cstNodes.get(t);if(typeof t.grammarSource==`number`&&(o.grammarSource=this.getGrammarElement(t.grammarSource)),o.astNode=n.astNodes.get(t.astNode),isCompositeCstNode(o))for(let s of t.content){let t=this.hydrateCstNode(s,n,i++);o.content.push(t)}return o}hydrateCstLeafNode(t){let n=this.getTokenType(t.tokenType),i=t.offset,o=t.length,s=t.startLine,c=t.startColumn,u=t.endLine,f=t.endColumn,p=t.hidden;return new LeafCstNodeImpl(i,o,{start:{line:s,character:c},end:{line:u,character:f}},n,p)}getTokenType(t){return this.lexer.definition[t]}getGrammarElementId(t){if(t)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(t)}getGrammarElement(t){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(t)}createGrammarElementIdMap(){let t=0;for(let n of streamAst(this.grammar))isAbstractElement(n)&&this.grammarElementIdMap.set(n,t++)}};function createDefaultCoreModule(t){return{documentation:{CommentProvider:t=>new DefaultCommentProvider(t),DocumentationProvider:t=>new JSDocDocumentationProvider(t)},parser:{AsyncParser:t=>new DefaultAsyncParser(t),GrammarConfig:t=>createGrammarConfig(t),LangiumParser:t=>createLangiumParser(t),CompletionParser:t=>createCompletionParser(t),ValueConverter:()=>new DefaultValueConverter,TokenBuilder:()=>new DefaultTokenBuilder,Lexer:t=>new DefaultLexer(t),ParserErrorMessageProvider:()=>new LangiumParserErrorMessageProvider,LexerErrorMessageProvider:()=>new DefaultLexerErrorMessageProvider},workspace:{AstNodeLocator:()=>new DefaultAstNodeLocator,AstNodeDescriptionProvider:t=>new DefaultAstNodeDescriptionProvider(t),ReferenceDescriptionProvider:t=>new DefaultReferenceDescriptionProvider(t)},references:{Linker:t=>new DefaultLinker(t),NameProvider:()=>new DefaultNameProvider,ScopeProvider:t=>new DefaultScopeProvider(t),ScopeComputation:t=>new DefaultScopeComputation(t),References:t=>new DefaultReferences(t)},serializer:{Hydrator:t=>new DefaultHydrator(t),JsonSerializer:t=>new DefaultJsonSerializer(t)},validation:{DocumentValidator:t=>new DefaultDocumentValidator(t),ValidationRegistry:t=>new ValidationRegistry(t)},shared:()=>t.shared}}function createDefaultSharedCoreModule(t){return{ServiceRegistry:t=>new DefaultServiceRegistry(t),workspace:{LangiumDocuments:t=>new DefaultLangiumDocuments(t),LangiumDocumentFactory:t=>new DefaultLangiumDocumentFactory(t),DocumentBuilder:t=>new DefaultDocumentBuilder(t),IndexManager:t=>new DefaultIndexManager(t),WorkspaceManager:t=>new DefaultWorkspaceManager(t),FileSystemProvider:n=>t.fileSystemProvider(n),WorkspaceLock:()=>new DefaultWorkspaceLock,ConfigurationProvider:t=>new DefaultConfigurationProvider(t)}}}var Wn;(function(t){t.merge=(t,n)=>_merge(_merge({},t),n)})(Wn||={});function inject(t,n,i,o,s,c,u,f,p){return _inject([t,n,i,o,s,c,u,f,p].reduce(_merge,{}))}const Gn=Symbol(`isProxy`);function eagerLoad(t){if(t&&t[Gn])for(let n of Object.values(t))eagerLoad(n);return t}function _inject(t,n){let i=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw Error(`Cannot set property on injected service container`)},get:(o,s)=>s===Gn||_resolve(o,s,t,n||i),getOwnPropertyDescriptor:(o,s)=>(_resolve(o,s,t,n||i),Object.getOwnPropertyDescriptor(o,s)),has:(n,i)=>i in t,ownKeys:()=>[...Object.getOwnPropertyNames(t)]});return i}const Kn=Symbol();function _resolve(t,n,i,o){if(n in t){if(t[n]instanceof Error)throw Error(`Construction failure. Please make sure that your dependencies are constructable.`,{cause:t[n]});if(t[n]===Kn)throw Error(`Cycle detected. Please make "`+String(n)+`" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies`);return t[n]}if(n in i){let s=i[n];t[n]=Kn;try{t[n]=typeof s==`function`?s(o):_inject(s,o)}catch(i){throw t[n]=i instanceof Error?i:void 0,i}return t[n]}}function _merge(t,n){if(n){for(let[i,o]of Object.entries(n))if(o!==void 0){let n=t[i];t[i]=n!==null&&o!==null&&typeof n==`object`&&typeof o==`object`?_merge(n,o):o}}return t}var EmptyFileSystemProvider=class{readFile(){throw Error(`No file system is available.`)}async readDirectory(){return[]}};const qn={fileSystemProvider:()=>new EmptyFileSystemProvider},Jn={Grammar:()=>void 0,LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[`.langium`],languageId:`langium`})},Yn={AstReflection:()=>new LangiumGrammarAstReflection};function createMinimalGrammarServices(){let t=inject(createDefaultSharedCoreModule(qn),Yn),n=inject(createDefaultCoreModule({shared:t}),Jn);return t.ServiceRegistry.register(n),n}function loadGrammarFromJson(t){let n=createMinimalGrammarServices(),i=n.serializer.JsonSerializer.deserialize(t);return n.shared.workspace.LangiumDocumentFactory.fromModel(i,J.parse(`memory://${i.name??`grammar`}.langium`)),i}function getSourceRegion(t){if(t){if(`astNode`in t)return getSourceRegionOfAstNode(t);if(Array.isArray(t))return t.reduce(mergeDocumentSegment,void 0);{let n=t;return copyDocumentSegment(n,isCstNode(n)?getDocumentURIOrUndefined(n?.root?.astNode??n?.astNode):void 0)}}}function isCstNode(t){return t!==void 0&&`element`in t&&`text`in t}function getDocumentURIOrUndefined(t){try{return getDocument(t).uri.toString()}catch{return}}function getSourceRegionOfAstNode(t){let{astNode:n,property:i,index:o}=t??{},s=n?.$cstNode??n?.$textRegion;if(n!==void 0&&s!==void 0){if(i===void 0)return copyDocumentSegment(s,getDocumentURI(n));{let getSingleOrCompoundRegion=t=>o!==void 0&&o>-1&&Array.isArray(n[i])?o<t.length?t[o]:void 0:t.reduce(mergeDocumentSegment,void 0);if(s.assignments?.[i]){let t=getSingleOrCompoundRegion(s.assignments[i]);return t&&copyDocumentSegment(t,getDocumentURI(n))}if(n.$cstNode){let t=getSingleOrCompoundRegion(findNodesForProperty(n.$cstNode,i));return t&&copyDocumentSegment(t,getDocumentURI(n))}return}}}function getDocumentURI(t){if(t.$cstNode)return(getDocument(t)?.uri)?.toString();if(t.$textRegion)return t.$textRegion.documentURI||new TreeStreamImpl(t,t=>t.$container?[t.$container]:[]).find(t=>t.$textRegion?.documentURI)?.$textRegion?.documentURI}function copyDocumentSegment(t,n){let i={offset:t.offset,end:t.end??t.offset+t.length,length:t.length??t.end-t.offset};return t.range&&(i.range=t.range),n??=t.fileURI,n&&(i.fileURI=n),i}function mergeDocumentSegment(t,n){if(!t)return n&&copyDocumentSegment(n);if(!n)return t&&copyDocumentSegment(t);let i=t.end??t.offset+t.length,o=n.end??n.offset+n.length,s=Math.min(t.offset,n.offset),c=Math.max(i,o),u={offset:s,end:c,length:c-s};if(t.range&&n.range&&(u.range={start:n.range.start.line<t.range.start.line||n.range.start.line===t.range.start.line&&n.range.start.character<t.range.start.character?n.range.start:t.range.start,end:n.range.end.line>t.range.end.line||n.range.end.line===t.range.end.line&&n.range.end.character>t.range.end.character?n.range.end:t.range.end}),t.fileURI||n.fileURI){let i=t.fileURI,o=n.fileURI;u.fileURI=i&&o&&i!==o?`<unmergable text regions of ${i}, ${o}>`:i??o}return u}var Context=class{constructor(t){this.defaultIndentation=` `,this.pendingIndent=!0,this.currentIndents=[],this.recentNonImmediateIndents=[],this.traceData=[],this.lines=[[]],this.length=0,typeof t==`string`?this.defaultIndentation=t:typeof t==`number`&&(this.defaultIndentation=``.padStart(t))}get content(){return this.lines.map(t=>t.join(``)).join(``)}get contentLength(){return this.length}get currentLineNumber(){return this.lines.length-1}get currentLineContent(){return this.lines[this.currentLineNumber].join(``)}get currentPosition(){return{offset:this.contentLength,line:this.currentLineNumber,character:this.currentLineContent.length}}append(t,n){if(t.length>0){let i=n&&this.currentPosition;this.lines[this.currentLineNumber].push(t),this.length+=t.length,i&&this.indentPendingTraceRegions(i)}}indentPendingTraceRegions(t){for(let n=this.traceData.length-1;n>=0;n--){let i=this.traceData[n];i.targetStart&&i.targetStart.offset===t.offset&&(i.targetStart=this.currentPosition)}}increaseIndent(t){this.currentIndents.push(t),t.indentImmediately||this.recentNonImmediateIndents.push(t)}decreaseIndent(){this.currentIndents.pop()}get relevantIndents(){return this.currentIndents.filter(t=>!this.recentNonImmediateIndents.includes(t))}resetCurrentLine(){this.length-=this.lines[this.currentLineNumber].join(``).length,this.lines[this.currentLineNumber]=[],this.pendingIndent=!0,this.recentNonImmediateIndents.length=0}addNewLine(){this.lines.push([]),this.pendingIndent=!0,this.recentNonImmediateIndents.length=0}pushTraceRegion(t){let n=createTraceRegion(t,this.currentPosition,t=>(this.traceData[this.traceData.length-1]?.children)?.push(t));return this.traceData.push(n),n}popTraceRegion(t){let n=this.traceData.pop();return this.assertTrue(n===t,`Trace region mismatch!`),n}getParentTraceSourceFileURI(){for(let t=this.traceData.length-1;t>-1;t--){let n=this.traceData[t].sourceRegion?.fileURI;if(n)return n}}assertTrue(t,n){if(!t)throw Error(n)}};function createTraceRegion(t,n,i){let o={sourceRegion:t,targetRegion:void 0,children:[],targetStart:n,complete:t=>(o.targetRegion={offset:o.targetStart.offset,end:t.offset,length:t.offset-o.targetStart.offset,range:{start:{line:o.targetStart.line,character:o.targetStart.character},end:{line:t.line,character:t.character}}},delete o.targetStart,o.children?.length===0&&delete o.children,o.targetRegion?.length&&i(o),delete o.complete,o)};return o}function processGeneratorNode(t,n){let i=new Context(n),o=i.pushTraceRegion(void 0);processNodeInternal(t,i),i.popTraceRegion(o),o.complete&&o.complete(i.currentPosition);let s=o.children&&o.children.length===1?o.children[0]:void 0,c=s?.targetRegion,u=o.targetRegion;return c&&s.sourceRegion&&c.offset===u.offset&&c.length===u.length?{text:i.content,trace:s}:{text:i.content,trace:o}}function processNodeInternal(t,n){typeof t==`string`?processStringNode(t,n):t instanceof IndentNode?processIndentNode(t,n):t instanceof er?processCompositeNode(t,n):t instanceof NewLineNode&&processNewLineNode(t,n)}function hasContent(t,n){return typeof t==`string`?t.length!==0:t instanceof er?t.contents.some(t=>hasContent(t,n)):t instanceof NewLineNode&&!(t.ifNotEmpty&&n.currentLineContent.length===0)}function processStringNode(t,n){t&&(handlePendingIndent(n,!1),n.append(t))}function handlePendingIndent(t,n){if(t.pendingIndent){let i=``;for(let o of t.relevantIndents.filter(t=>t.indentEmptyLines||!n))i+=o.indentation??t.defaultIndentation;t.append(i,!0),t.pendingIndent=!1}}function processCompositeNode(t,n){let i,o=getSourceRegion(t.tracedSource);o&&(i=n.pushTraceRegion(o));for(let i of t.contents)processNodeInternal(i,n);if(i){n.popTraceRegion(i);let t=n.getParentTraceSourceFileURI();t&&o?.fileURI===t&&delete o.fileURI,i.complete&&i.complete(n.currentPosition)}}function processIndentNode(t,n){if(hasContent(t,n)){t.indentImmediately&&!n.pendingIndent&&n.append(t.indentation??n.defaultIndentation,!0);try{n.increaseIndent(t),processCompositeNode(t,n)}finally{n.decreaseIndent()}}}function processNewLineNode(t,n){t.ifNotEmpty&&!hasNonWhitespace(n.currentLineContent)?n.resetCurrentLine():(handlePendingIndent(n,!0),n.append(t.lineDelimiter),n.addNewLine())}function hasNonWhitespace(t){return t.trimStart()!==``}Object.freeze(`__«SKIP^NEW^LINE^IF^EMPTY»__`);const Xn=/\S|$/;function findIndentation(t){let n=t.filter(t=>t.length>0).map(t=>t.search(Xn)),i=n.length===0?0:Math.min(...n);return Math.max(0,i)}function expandToNode(t,...n){return composeFinalGeneratorNode(splitTemplateLinesAndMergeWithSubstitutions(t,n,findIndentationAndTemplateStructure(t)))}function expandTracedToNode(t,n,i){return(o,...s)=>traceToNode(t,n,i)(expandToNode(o,...s))}function findIndentationAndTemplateStructure(t){let n=t.join(`_`).split(Ve),i=n.length>1&&n[0].trim().length===0,o=i&&n.length>1&&n[n.length-1].trim().length===0;if(n.length===1||n.length!==0&&n[0].trim().length!==0||n.length===2&&n[1].trim().length===0)return{indentation:0,omitFirstLine:i,omitLastLine:o,trimLastLine:n.length!==1&&n[n.length-1].trim().length===0};{let t=i?n.slice(1):n;t=o?t.slice(0,t.length-1):t,t=t.filter(t=>t.length!==0);let s=findIndentation(t);return{indentation:s,omitFirstLine:i,omitLastLine:o&&(n[n.length-1].length<s||!n[n.length-1].startsWith(t[0].substring(0,s)))}}}function splitTemplateLinesAndMergeWithSubstitutions(t,n,{indentation:i,omitFirstLine:o,omitLastLine:s,trimLastLine:c}){let u=[];t.forEach((t,s)=>{u.push(...t.split(Ve).map((t,n)=>n===0||t.length<i?t:t.substring(i)).reduce(s===0?(t,n,i)=>i===0?o?[]:[n]:i===1&&t.length===0?[n]:t.concat(Zn,n):(t,n,i)=>i===0?[n]:t.concat(Zn,n),[]).filter(t=>typeof t!=`string`||t.length!==0).concat(isGeneratorNode(n[s])?n[s]:n[s]===void 0?s<n.length?Qn:[]:{content:String(n[s])}))});let f=u.length,p=f===0?void 0:u[f-1];return(s||c)&&typeof p==`string`&&p.trim().length===0?o&&f!==1&&u[f-2]===Zn?u.slice(0,f-2):u.slice(0,f-1):u}const Zn={isNewLine:!0},Qn={isUndefinedSegment:!0},isNewLineMarker=t=>t===Zn,isUndefinedSegmentMarker=t=>t===Qn,isSubstitutionWrapper=t=>t.content!==void 0;function composeFinalGeneratorNode(t){return t.reduce((n,i,o)=>isUndefinedSegmentMarker(i)?n:isNewLineMarker(i)?{node:o!==0&&(isUndefinedSegmentMarker(t[o-1])||isGeneratorNode(t[o-1]))||o>1&&typeof t[o-1]==`string`&&(isUndefinedSegmentMarker(t[o-2])||isGeneratorNode(t[o-2]))?n.node.appendNewLineIfNotEmpty():n.node.appendNewLine()}:(()=>{let s=(o===0||isNewLineMarker(t[o-1]))&&typeof i==`string`&&i.length!==0?``.padStart(i.length-i.trimStart().length):``,c=isSubstitutionWrapper(i)?i.content:i,u;return{node:n.indented?n.node:s.length===0?n.node.append(c):n.node.indent({indentation:s,indentImmediately:!1,indentedChildren:t=>u=t.append(c)}),indented:u??n.indented?.append(c)}})(),{node:new er}).node}const $n=typeof process>`u`?`
18
+ `}var JSDocDocumentationProvider=class{constructor(t){this.indexManager=t.shared.workspace.IndexManager,this.commentProvider=t.documentation.CommentProvider}getDocumentation(t){let n=this.commentProvider.getComment(t);if(n&&isJSDoc(n))return parseJSDoc(n).toMarkdown({renderLink:(n,i)=>this.documentationLinkRenderer(t,n,i),renderTag:n=>this.documentationTagRenderer(t,n)})}documentationLinkRenderer(t,n,i){let a=this.findNameInLocalSymbols(t,n)??this.findNameInGlobalScope(t,n);if(a&&a.nameSegment){let t=a.nameSegment.range.start.line+1,n=a.nameSegment.range.start.character+1;return`[${i}](${a.documentUri.with({fragment:`L${t},${n}`}).toString()})`}}documentationTagRenderer(t,n){}findNameInLocalSymbols(t,n){let i=getDocument(t).localSymbols;if(!i)return;let a=t;do{let t=i.getStream(a).find(t=>t.name===n);if(t)return t;a=a.$container}while(a)}findNameInGlobalScope(t,n){return this.indexManager.allElements().find(t=>t.name===n)}},DefaultCommentProvider=class{constructor(t){this.grammarConfig=()=>t.parser.GrammarConfig}getComment(t){return isAstNodeWithComment(t)?t.$comment:findCommentNode(t.$cstNode,this.grammarConfig().multilineCommentRules)?.text}},DefaultAsyncParser=class{constructor(t){this.syncParser=t.parser.LangiumParser}parse(t,n){return Promise.resolve(this.syncParser.parse(t))}},Vr;(function(t){t[t.Normal=0]=`Normal`,t[t.Immediate=1]=`Immediate`})(Vr||={});var DefaultWorkspaceLock=class{constructor(){this.previousTokenSource=new Y.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.immediateReads=[],this.done=!0}write(t){this.cancelWrite();let n=startCancelableOperation();return this.previousTokenSource=n,this.enqueue(this.writeQueue,t,n.token)}read(t,n=Vr.Normal){if(n===Vr.Immediate){let n=Promise.resolve().then(()=>t());this.immediateReads.push(n);let remove=()=>{this.immediateReads.splice(this.immediateReads.indexOf(n),1)};return n.then(remove,remove),n}return this.enqueue(this.readQueue,t)}enqueue(t,n,i=Y.CancellationToken.None){let a=new Deferred,o={action:n,deferred:a,cancellationToken:i};return t.push(o),this.performNextOperation(),a.promise}async performNextOperation(){if(!this.done)return;let t=[];if(this.writeQueue.length>0)for(t.push(this.writeQueue.shift()),this.done=!1;this.immediateReads.length>0;)await Promise.allSettled(this.immediateReads.slice());else if(this.readQueue.length>0)t.push(...this.readQueue.splice(0,this.readQueue.length)),this.done=!1;else return;await Promise.all(t.map(async({action:t,deferred:n,cancellationToken:i})=>{try{let a=await Promise.resolve().then(()=>t(i));n.resolve(a)}catch(t){isOperationCancelled(t)?n.resolve(void 0):n.reject(t)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}},DefaultHydrator=class{constructor(t){this.grammarElementIdMap=new BiMap,this.tokenTypeIdMap=new BiMap,this.cstNodeBuilder=new CstNodeBuilder,this.grammar=t.Grammar,this.lexer=t.parser.Lexer,this.linker=t.references.Linker}dehydrate(t){return{lexerErrors:t.lexerErrors,lexerReport:t.lexerReport?this.dehydrateLexerReport(t.lexerReport):void 0,parserErrors:t.parserErrors.map(t=>({...t,message:t.message})),value:this.dehydrateAstNode(t.value,this.createDehyrationContext(t.value))}}dehydrateLexerReport(t){return t}createDehyrationContext(t){let n=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map;for(let i of streamAst(t))n.set(i,{});if(t.$cstNode)for(let n of streamCst(t.$cstNode))i.set(n,{});return{astNodes:n,cstNodes:i}}dehydrateAstNode(t,n){let i=n.astNodes.get(t);i.$type=t.$type,i.$containerIndex=t.$containerIndex,i.$containerProperty=t.$containerProperty,t.$cstNode!==void 0&&(i.$cstNode=this.dehydrateCstNode(t.$cstNode,n));for(let[a,o]of Object.entries(t))if(!a.startsWith(`$`)){if(Array.isArray(o)){let t=[];i[a]=t;for(let i of o)isAstNode(i)?t.push(this.dehydrateAstNode(i,n)):isReference(i)?t.push(this.dehydrateReference(i,n)):t.push(i)}else isAstNode(o)?i[a]=this.dehydrateAstNode(o,n):isReference(o)?i[a]=this.dehydrateReference(o,n):o!==void 0&&(i[a]=o)}return i}dehydrateReference(t,n){let i={};return i.$refText=t.$refText,t.$refNode&&(i.$refNode=n.cstNodes.get(t.$refNode)),i}dehydrateCstNode(t,n){let i=n.cstNodes.get(t);if(isRootCstNode(t)?i.fullText=t.fullText:i.grammarSource=this.getGrammarElementId(t.grammarSource),i.hidden=t.hidden,isCompositeCstNode(t))i.content=t.content.map(t=>this.dehydrateCstNode(t,n));else if(isLeafCstNode(t)){i.tokenType=t.tokenType.name,i.offset=t.offset,i.length=t.length;let{start:n,end:a}=t.range;i.startLine=n.line,i.startColumn=n.character,i.endLine=a.line,i.endColumn=a.character}return i}hydrate(t){let n=t.value,i=this.createHydrationContext(n);return`$cstNode`in n&&this.hydrateCstNode(n.$cstNode,i),{lexerErrors:t.lexerErrors,lexerReport:t.lexerReport,parserErrors:t.parserErrors,value:this.hydrateAstNode(n,i)}}createHydrationContext(t){let n=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map;for(let i of streamAst(t))n.set(i,{});if(t.$cstNode)for(let n of streamCst(t.$cstNode)){let t;`fullText`in n?t=new RootCstNodeImpl(n.fullText):`content`in n?t=new CompositeCstNodeImpl:`tokenType`in n&&(t=this.hydrateCstLeafNode(n)),t&&i.set(n,t)}return{astNodes:n,cstNodes:i,linkedCstNodes:/* @__PURE__ */ new Set}}hydrateAstNode(t,n){let i=n.astNodes.get(t);if(i.$type=t.$type,i.$containerIndex=t.$containerIndex,i.$containerProperty=t.$containerProperty,t.$cstNode){let a=n.cstNodes.get(t.$cstNode);i.$cstNode=a,a&&!n.linkedCstNodes.has(a)&&(n.linkedCstNodes.add(a),a.astNode=i)}for(let[a,o]of Object.entries(t))if(!a.startsWith(`$`)){if(Array.isArray(o)){let t=[];i[a]=t;for(let c of o)isAstNode(c)?t.push(this.setParent(this.hydrateAstNode(c,n),i)):isReference(c)?t.push(this.hydrateReference(c,i,a,n)):t.push(c)}else isAstNode(o)?i[a]=this.setParent(this.hydrateAstNode(o,n),i):isReference(o)?i[a]=this.hydrateReference(o,i,a,n):o!==void 0&&(i[a]=o)}return i}setParent(t,n){return t.$container=n,t}hydrateReference(t,n,i,a){return this.linker.buildReference(n,i,a.cstNodes.get(t.$refNode),t.$refText)}hydrateCstNode(t,n,i=0){let a=n.cstNodes.get(t);if(typeof t.grammarSource==`number`&&(a.grammarSource=this.getGrammarElement(t.grammarSource)),isCompositeCstNode(a)){let o=[];for(let a of t.content)o.push(this.hydrateCstNode(a,n,i++));this.cstNodeBuilder.appendChildren(a,o)}return a}hydrateCstLeafNode(t){let n=this.getTokenType(t.tokenType);return new LeafCstNodeImpl(t.offset,t.length,t.startLine,t.startColumn,t.endLine,t.endColumn,n,t.hidden)}getTokenType(t){return this.lexer.definition[t]}getGrammarElementId(t){if(t)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(t)}getGrammarElement(t){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(t)}createGrammarElementIdMap(){let t=0;for(let n of streamAst(this.grammar))isAbstractElement(n)&&this.grammarElementIdMap.set(n,t++)}};function createDefaultCoreModule(t){return{documentation:{CommentProvider:t=>new DefaultCommentProvider(t),DocumentationProvider:t=>new JSDocDocumentationProvider(t)},parser:{AsyncParser:t=>new DefaultAsyncParser(t),GrammarConfig:t=>createGrammarConfig(t),LangiumParser:t=>createLangiumParser(t),CompletionParser:t=>createCompletionParser(t),ValueConverter:()=>new DefaultValueConverter,TokenBuilder:()=>new DefaultTokenBuilder,Lexer:t=>new DefaultLexer(t),ParserErrorMessageProvider:()=>new LangiumParserErrorMessageProvider,LexerErrorMessageProvider:()=>new DefaultLexerErrorMessageProvider},workspace:{AstNodeLocator:()=>new DefaultAstNodeLocator,AstNodeDescriptionProvider:t=>new DefaultAstNodeDescriptionProvider(t),ReferenceDescriptionProvider:t=>new DefaultReferenceDescriptionProvider(t)},references:{Linker:t=>new DefaultLinker(t),NameProvider:()=>new DefaultNameProvider,ScopeProvider:t=>new DefaultScopeProvider(t),ScopeComputation:t=>new DefaultScopeComputation(t),References:t=>new DefaultReferences(t)},serializer:{Hydrator:t=>new DefaultHydrator(t),JsonSerializer:t=>new DefaultJsonSerializer(t)},validation:{DocumentValidator:t=>new DefaultDocumentValidator(t),ValidationRegistry:t=>new ValidationRegistry(t)},shared:()=>t.shared}}function createDefaultSharedCoreModule(t){return{ServiceRegistry:t=>new DefaultServiceRegistry(t),workspace:{LangiumDocuments:t=>new DefaultLangiumDocuments(t),LangiumDocumentFactory:t=>new DefaultLangiumDocumentFactory(t),DocumentBuilder:t=>new DefaultDocumentBuilder(t),IndexManager:t=>new DefaultIndexManager(t),WorkspaceManager:t=>new DefaultWorkspaceManager(t),FileSystemProvider:n=>t.fileSystemProvider(n),WorkspaceLock:()=>new DefaultWorkspaceLock,ConfigurationProvider:t=>new DefaultConfigurationProvider(t)},profilers:{}}}var Hr;(function(t){t.merge=(t,n)=>_merge(_merge({},t),n)})(Hr||={});function inject(t,n,i,a,o,c,l,f,p){return _inject([t,n,i,a,o,c,l,f,p].reduce(_merge,{}))}const Ur=Symbol(`isProxy`);function eagerLoad(t){if(t&&t[Ur])for(let n of Object.values(t))eagerLoad(n);return t}function _inject(t,n){let i=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw Error(`Cannot set property on injected service container`)},get:(a,o)=>o===Ur||_resolve(a,o,t,n||i),getOwnPropertyDescriptor:(a,o)=>(_resolve(a,o,t,n||i),Object.getOwnPropertyDescriptor(a,o)),has:(n,i)=>i in t,ownKeys:()=>[...Object.getOwnPropertyNames(t)]});return i}const Wr=Symbol();function _resolve(t,n,i,a){if(n in t){if(t[n]instanceof Error)throw Error(`Construction failure. Please make sure that your dependencies are constructable. Cause: `+t[n]);if(t[n]===Wr)throw Error(`Cycle detected. Please make "`+String(n)+`" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies`);return t[n]}if(n in i){let o=i[n];t[n]=Wr;try{t[n]=typeof o==`function`?o(a):_inject(o,a)}catch(i){throw t[n]=i instanceof Error?i:void 0,i}return t[n]}}function _merge(t,n){if(n){for(let[i,a]of Object.entries(n))if(i!==`__proto__`&&i!==`constructor`&&i!==`prototype`&&a!=null){if(typeof a==`object`){let n=t[i];t[i]=_merge(typeof n==`object`&&n?n:{},a)}else t[i]=a}}return t}var EmptyFileSystemProvider=class{stat(t){throw Error(`No file system is available.`)}statSync(t){throw Error(`No file system is available.`)}async exists(){return!1}existsSync(){return!1}readBinary(){throw Error(`No file system is available.`)}readBinarySync(){throw Error(`No file system is available.`)}readFile(){throw Error(`No file system is available.`)}readFileSync(){throw Error(`No file system is available.`)}async readDirectory(){return[]}readDirectorySync(){return[]}};const Gr={fileSystemProvider:()=>new EmptyFileSystemProvider},Kr={Grammar:()=>void 0,LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[`.langium`],languageId:`langium`})},qr={AstReflection:()=>new LangiumGrammarAstReflection};function createMinimalGrammarServices(){let t=inject(createDefaultSharedCoreModule(Gr),qr),n=inject(createDefaultCoreModule({shared:t}),Kr);return t.ServiceRegistry.register(n),n}function loadGrammarFromJson(t){let n=createMinimalGrammarServices(),i=n.serializer.JsonSerializer.deserialize(t);return n.shared.workspace.LangiumDocumentFactory.fromModel(i,X.parse(`memory:/${i.name??`grammar`}.langium`)),i}function getSourceRegion(t){if(t){if(`astNode`in t)return getSourceRegionOfAstNode(t);if(Array.isArray(t))return t.reduce(mergeDocumentSegment,void 0);{let n=t;return copyDocumentSegment(n,isCstNode(n)?getDocumentURIOrUndefined(n?.root?.astNode??n?.astNode):void 0)}}}function isCstNode(t){return t!==void 0&&`element`in t&&`text`in t}function getDocumentURIOrUndefined(t){try{return getDocument(t).uri.toString()}catch{return}}function getSourceRegionOfAstNode(t){let{astNode:n,property:i,index:a}=t??{},o=n?.$cstNode??n?.$textRegion;if(n!==void 0&&o!==void 0){if(i===void 0)return copyDocumentSegment(o,getDocumentURI(n));{let getSingleOrCompoundRegion=t=>a!==void 0&&a>-1&&Array.isArray(n[i])?a<t.length?t[a]:void 0:t.reduce(mergeDocumentSegment,void 0);if(o.assignments?.[i]){let t=getSingleOrCompoundRegion(o.assignments[i]);return t&&copyDocumentSegment(t,getDocumentURI(n))}if(n.$cstNode){let t=getSingleOrCompoundRegion(findNodesForProperty(n.$cstNode,i));return t&&copyDocumentSegment(t,getDocumentURI(n))}return}}}function getDocumentURI(t){if(t.$cstNode)return getDocument(t)?.uri?.toString();if(t.$textRegion)return t.$textRegion.documentURI||new TreeStreamImpl(t,t=>t.$container?[t.$container]:[]).find(t=>t.$textRegion?.documentURI)?.$textRegion?.documentURI}function copyDocumentSegment(t,n){let i={offset:t.offset,end:t.end??t.offset+t.length,length:t.length??t.end-t.offset};return t.range&&(i.range=t.range),n??=t.fileURI,n&&(i.fileURI=n),i}function mergeDocumentSegment(t,n){if(!t)return n&&copyDocumentSegment(n);if(!n)return t&&copyDocumentSegment(t);let i=t.end??t.offset+t.length,a=n.end??n.offset+n.length,o=Math.min(t.offset,n.offset),c=Math.max(i,a),l={offset:o,end:c,length:c-o};if(t.range&&n.range&&(l.range={start:n.range.start.line<t.range.start.line||n.range.start.line===t.range.start.line&&n.range.start.character<t.range.start.character?n.range.start:t.range.start,end:n.range.end.line>t.range.end.line||n.range.end.line===t.range.end.line&&n.range.end.character>t.range.end.character?n.range.end:t.range.end}),t.fileURI||n.fileURI){let i=t.fileURI,a=n.fileURI;l.fileURI=i&&a&&i!==a?`<unmergable text regions of ${i}, ${a}>`:i??a}return l}var Context=class{constructor(t){this.defaultIndentation=` `,this.pendingIndent=!0,this.currentIndents=[],this.recentNonImmediateIndents=[],this.traceData=[],this.lines=[[]],this.length=0,typeof t==`string`?this.defaultIndentation=t:typeof t==`number`&&(this.defaultIndentation=``.padStart(t))}get content(){return this.lines.map(t=>t.join(``)).join(``)}get contentLength(){return this.length}get currentLineNumber(){return this.lines.length-1}get currentLineContent(){return this.lines[this.currentLineNumber].join(``)}get currentPosition(){return{offset:this.contentLength,line:this.currentLineNumber,character:this.currentLineContent.length}}append(t,n){if(t.length>0){let i=n&&this.currentPosition;this.lines[this.currentLineNumber].push(t),this.length+=t.length,i&&this.indentPendingTraceRegions(i)}}indentPendingTraceRegions(t){for(let n=this.traceData.length-1;n>=0;n--){let i=this.traceData[n];i.targetStart&&i.targetStart.offset===t.offset&&(i.targetStart=this.currentPosition)}}increaseIndent(t){this.currentIndents.push(t),t.indentImmediately||this.recentNonImmediateIndents.push(t)}decreaseIndent(){this.currentIndents.pop()}get relevantIndents(){return this.currentIndents.filter(t=>!this.recentNonImmediateIndents.includes(t))}resetCurrentLine(){this.length-=this.lines[this.currentLineNumber].join(``).length,this.lines[this.currentLineNumber]=[],this.pendingIndent=!0,this.recentNonImmediateIndents.length=0}addNewLine(){this.lines.push([]),this.pendingIndent=!0,this.recentNonImmediateIndents.length=0}pushTraceRegion(t){let n=createTraceRegion(t,this.currentPosition,t=>this.traceData[this.traceData.length-1]?.children?.push(t));return this.traceData.push(n),n}popTraceRegion(t){let n=this.traceData.pop();return this.assertTrue(n===t,`Trace region mismatch!`),n}getParentTraceSourceFileURI(){for(let t=this.traceData.length-1;t>-1;t--){let n=this.traceData[t].sourceRegion?.fileURI;if(n)return n}}assertTrue(t,n){if(!t)throw Error(n)}};function createTraceRegion(t,n,i){let a={sourceRegion:t,targetRegion:void 0,children:[],targetStart:n,complete:t=>(a.targetRegion={offset:a.targetStart.offset,end:t.offset,length:t.offset-a.targetStart.offset,range:{start:{line:a.targetStart.line,character:a.targetStart.character},end:{line:t.line,character:t.character}}},delete a.targetStart,a.children?.length===0&&delete a.children,a.targetRegion?.length&&i(a),delete a.complete,a)};return a}function processGeneratorNode(t,n){let i=new Context(n),a=i.pushTraceRegion(void 0);processNodeInternal(t,i),i.popTraceRegion(a),a.complete&&a.complete(i.currentPosition);let o=a.children&&a.children.length===1?a.children[0]:void 0,c=o?.targetRegion,l=a.targetRegion;return c&&o.sourceRegion&&c.offset===l.offset&&c.length===l.length?{text:i.content,trace:o}:{text:i.content,trace:a}}function processNodeInternal(t,n){typeof t==`string`?processStringNode(t,n):t instanceof IndentNode?processIndentNode(t,n):t instanceof Qr?processCompositeNode(t,n):t instanceof NewLineNode&&processNewLineNode(t,n)}function hasContent(t,n){return typeof t==`string`?t.length!==0:t instanceof Qr?t.contents.some(t=>hasContent(t,n)):t instanceof NewLineNode&&!(t.ifNotEmpty&&n.currentLineContent.length===0)}function processStringNode(t,n){t&&(handlePendingIndent(n,!1),n.append(t))}function handlePendingIndent(t,n){if(t.pendingIndent){let i=``;for(let a of t.relevantIndents.filter(t=>t.indentEmptyLines||!n))i+=a.indentation??t.defaultIndentation;t.append(i,!0),t.pendingIndent=!1}}function processCompositeNode(t,n){let i,a=getSourceRegion(t.tracedSource);a&&(i=n.pushTraceRegion(a));for(let i of t.contents)processNodeInternal(i,n);if(i){n.popTraceRegion(i);let t=n.getParentTraceSourceFileURI();t&&a?.fileURI===t&&delete a.fileURI,i.complete&&i.complete(n.currentPosition)}}function processIndentNode(t,n){if(hasContent(t,n)){t.indentImmediately&&!n.pendingIndent&&n.append(t.indentation??n.defaultIndentation,!0);try{n.increaseIndent(t),processCompositeNode(t,n)}finally{n.decreaseIndent()}}}function processNewLineNode(t,n){if(t.ifNotEmpty&&!hasNonWhitespace(n.currentLineContent))n.resetCurrentLine();else{handlePendingIndent(n,!0);let i=t.count;for(;i-->0;)n.append(t.lineDelimiter),n.addNewLine()}}function hasNonWhitespace(t){return t.trimStart()!==``}Object.freeze(`__«SKIP^NEW^LINE^IF^EMPTY»__`);const Jr=/\S|$/;function findIndentation(t){let n=t.filter(t=>t.length>0).map(t=>t.search(Jr)),i=n.length===0?0:Math.min(...n);return Math.max(0,i)}function expandToNode(t,...n){return composeFinalGeneratorNode(splitTemplateLinesAndMergeWithSubstitutions(t,n,findIndentationAndTemplateStructure(t)))}function expandTracedToNode(t,n,i){return(a,...o)=>traceToNode(t,n,i)(expandToNode(a,...o))}function findIndentationAndTemplateStructure(t){let n=t.join(`_`).split(Ue),i=n.length>1&&n[0].trim().length===0,a=i&&n.length>1&&n[n.length-1].trim().length===0;if(n.length===1||n.length!==0&&n[0].trim().length!==0||n.length===2&&n[1].trim().length===0)return{indentation:0,omitFirstLine:i,omitLastLine:a,trimLastLine:n.length!==1&&n[n.length-1].trim().length===0};{let t=i?n.slice(1):n;t=a?t.slice(0,t.length-1):t,t=t.filter(t=>t.length!==0);let o=findIndentation(t);return{indentation:o,omitFirstLine:i,omitLastLine:a&&(n[n.length-1].length<o||!n[n.length-1].startsWith(t[0].substring(0,o)))}}}function splitTemplateLinesAndMergeWithSubstitutions(t,n,{indentation:i,omitFirstLine:a,omitLastLine:o,trimLastLine:c}){let l=[];t.forEach((t,o)=>{l.push(...t.split(Ue).map((t,n)=>n===0||t.length<i?t:t.substring(i)).reduce(o===0?(t,n,i)=>i===0?a?[]:[n]:i===1&&t.length===0?[n]:t.concat(Yr,n):(t,n,i)=>i===0?[n]:t.concat(Yr,n),[]).filter(t=>typeof t!=`string`||t.length!==0).concat(isGeneratorNode(n[o])?n[o]:n[o]===void 0?o<n.length?Xr:[]:{content:String(n[o])}))});let f=l.length,p=f===0?void 0:l[f-1];return(o||c)&&typeof p==`string`&&p.trim().length===0?a&&f!==1&&l[f-2]===Yr?l.slice(0,f-2):l.slice(0,f-1):l}const Yr={isNewLine:!0},Xr={isUndefinedSegment:!0},isNewLineMarker=t=>t===Yr,isUndefinedSegmentMarker=t=>t===Xr,isSubstitutionWrapper=t=>t.content!==void 0;function composeFinalGeneratorNode(t){return t.reduce((n,i,a)=>isUndefinedSegmentMarker(i)?n:isNewLineMarker(i)?{node:a!==0&&(isUndefinedSegmentMarker(t[a-1])||isGeneratorNode(t[a-1]))||a>1&&typeof t[a-1]==`string`&&(isUndefinedSegmentMarker(t[a-2])||isGeneratorNode(t[a-2]))?n.node.appendNewLineIfNotEmpty():n.node.appendNewLine()}:(()=>{let o=(a===0||isNewLineMarker(t[a-1]))&&typeof i==`string`&&i.length!==0?i.substring(0,i.length-i.trimStart().length):``,c=isSubstitutionWrapper(i)?i.content:i,l;return{node:n.indented?n.node:o.length===0?n.node.append(c):n.node.indent({indentation:o,indentImmediately:!1,indentedChildren:t=>l=t.append(c)}),indented:l??n.indented?.append(c)}})(),{node:new Qr}).node}const Zr=typeof process>`u`?`
16
19
  `:process.platform===`win32`?`\r
17
20
  `:`
18
- `;function isGeneratorNode(t){return t instanceof er||t instanceof IndentNode||t instanceof NewLineNode}function toString(t,n){return isGeneratorNode(t)?processGeneratorNode(t,n).text:String(t)}var er=class CompositeGeneratorNode{constructor(...t){this.contents=[],this.append(...t)}isEmpty(){return this.contents.length===0}trace(t,n,i){if(isAstNode(t)){if(this.tracedSource={astNode:t,property:n,index:i},this.tracedSource.property===void 0&&this.tracedSource.index!==void 0&&this.tracedSource.index>-1)throw Error(`Generation support: 'property' argument must not be 'undefined' if a non-negative value is assigned to 'index' in 'CompositeGeneratorNode.trace(...)'.`)}else this.tracedSource=t;return this}append(...t){for(let n of t)typeof n==`function`?n(this):n&&this.contents.push(n);return this}appendIf(t,...n){return t?this.append(...n):this}appendNewLine(){return this.append(tr)}appendNewLineIf(t){return t?this.append(tr):this}appendNewLineIfNotEmpty(){return this.append(nr)}appendNewLineIfNotEmptyIf(t){return t?this.appendNewLineIfNotEmpty():this}appendTemplate(t,...n){return this.append(expandToNode(t,...n))}appendTemplateIf(t){return t?(t,...n)=>this.appendTemplate(t,...n):()=>this}indent(t){let{indentedChildren:n,indentation:i,indentEmptyLines:o,indentImmediately:s}=Array.isArray(t)||typeof t==`function`?{indentedChildren:t}:typeof t==`object`?t:{},c=new IndentNode(i,s,o);return this.contents.push(c),Array.isArray(n)?c.append(...n):n&&c.append(n),this}appendTraced(t,n,i){return o=>this.append(new CompositeGeneratorNode().trace(t,n,i).append(o))}appendTracedIf(t,n,i,o){return t?this.appendTraced(typeof n==`function`?n():n,i,o):()=>this}appendTracedTemplate(t,n,i){return(o,...s)=>this.append(expandTracedToNode(t,n,i)(o,...s))}appendTracedTemplateIf(t,n,i,o){return t?this.appendTracedTemplate(typeof n==`function`?n():n,i,o):()=>this}};function traceToNode(t,n,i){return o=>o instanceof er&&o.tracedSource===void 0?o.trace(t,n,i):new er().trace(t,n,i).append(o)}var IndentNode=class extends er{constructor(t,n=!0,i=!1){super(),this.indentImmediately=!0,this.indentEmptyLines=!1,typeof t==`string`?this.indentation=t:typeof t==`number`&&(this.indentation=``.padStart(t)),this.indentImmediately=n,this.indentEmptyLines=i}},NewLineNode=class{constructor(t,n=!1){this.ifNotEmpty=!1,this.lineDelimiter=t??$n,this.ifNotEmpty=n}};const tr=new NewLineNode,nr=new NewLineNode(void 0,!0),defaultToGenerated=t=>t===void 0||typeof t==`string`||isGeneratorNode(t)?t:String(t);function joinToNode(t,n=defaultToGenerated,i={}){let o=typeof n==`function`?n:defaultToGenerated,{filter:s,prefix:c,suffix:u,separator:f,appendNewLineIfNotEmpty:p,skipNewLineAfterLastItem:h}=typeof n==`object`?n:i,g=typeof c==`function`?c:(()=>c),_=typeof u==`function`?u:(()=>u);return reduceWithIsLast(t,(t,n,i,c)=>{if(s&&!s(n,i,c))return t;let u=o(n,i,c);return u===void 0?t:(t??=new er).append(g(n,i,c)).append(u).append(_(n,i,c)).appendIf(!c,f).appendNewLineIfNotEmptyIf(!t.isEmpty()&&!!p&&(!c||!h))})}function reduceWithIsLast(t,n,i){let o=t[Symbol.iterator](),s=o.next(),c=0,u=i;for(;!s.done;){let t=o.next();u=n(u,s.value,c,!!t.done),s=t,c++}return u}var rr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.thenable=t.typedArray=t.stringArray=t.array=t.func=t.error=t.number=t.string=t.boolean=void 0;function boolean(t){return t===!0||t===!1}t.boolean=boolean;function string(t){return typeof t==`string`||t instanceof String}t.string=string;function number(t){return typeof t==`number`||t instanceof Number}t.number=number;function error(t){return t instanceof Error}t.error=error;function func(t){return typeof t==`function`}t.func=func;function array(t){return Array.isArray(t)}t.array=array;function stringArray(t){return array(t)&&t.every(t=>string(t))}t.stringArray=stringArray;function typedArray(t,n){return Array.isArray(t)&&t.every(n)}t.typedArray=typedArray;function thenable(t){return t&&func(t.then)}t.thenable=thenable})),ir=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Message=t.NotificationType9=t.NotificationType8=t.NotificationType7=t.NotificationType6=t.NotificationType5=t.NotificationType4=t.NotificationType3=t.NotificationType2=t.NotificationType1=t.NotificationType0=t.NotificationType=t.RequestType9=t.RequestType8=t.RequestType7=t.RequestType6=t.RequestType5=t.RequestType4=t.RequestType3=t.RequestType2=t.RequestType1=t.RequestType=t.RequestType0=t.AbstractMessageSignature=t.ParameterStructures=t.ResponseError=t.ErrorCodes=void 0;let n=wn();var i;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(i||(t.ErrorCodes=i={})),t.ResponseError=class ResponseError extends Error{constructor(t,o,s){super(o),this.code=n.number(t)?t:i.UnknownErrorCode,this.data=s,Object.setPrototypeOf(this,ResponseError.prototype)}toJson(){let t={code:this.code,message:this.message};return this.data!==void 0&&(t.data=this.data),t}};var o=class ParameterStructures{constructor(t){this.kind=t}static is(t){return t===ParameterStructures.auto||t===ParameterStructures.byName||t===ParameterStructures.byPosition}toString(){return this.kind}};t.ParameterStructures=o,o.auto=new o(`auto`),o.byPosition=new o(`byPosition`),o.byName=new o(`byName`);var AbstractMessageSignature=class{constructor(t,n){this.method=t,this.numberOfParams=n}get parameterStructures(){return o.auto}};t.AbstractMessageSignature=AbstractMessageSignature;var RequestType0=class extends AbstractMessageSignature{constructor(t){super(t,0)}};t.RequestType0=RequestType0;var RequestType=class extends AbstractMessageSignature{constructor(t,n=o.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};t.RequestType=RequestType;var RequestType1=class extends AbstractMessageSignature{constructor(t,n=o.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};t.RequestType1=RequestType1;var RequestType2=class extends AbstractMessageSignature{constructor(t){super(t,2)}};t.RequestType2=RequestType2;var RequestType3=class extends AbstractMessageSignature{constructor(t){super(t,3)}};t.RequestType3=RequestType3;var RequestType4=class extends AbstractMessageSignature{constructor(t){super(t,4)}};t.RequestType4=RequestType4;var RequestType5=class extends AbstractMessageSignature{constructor(t){super(t,5)}};t.RequestType5=RequestType5;var RequestType6=class extends AbstractMessageSignature{constructor(t){super(t,6)}};t.RequestType6=RequestType6;var RequestType7=class extends AbstractMessageSignature{constructor(t){super(t,7)}};t.RequestType7=RequestType7;var RequestType8=class extends AbstractMessageSignature{constructor(t){super(t,8)}};t.RequestType8=RequestType8;var RequestType9=class extends AbstractMessageSignature{constructor(t){super(t,9)}};t.RequestType9=RequestType9;var NotificationType=class extends AbstractMessageSignature{constructor(t,n=o.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};t.NotificationType=NotificationType;var NotificationType0=class extends AbstractMessageSignature{constructor(t){super(t,0)}};t.NotificationType0=NotificationType0;var NotificationType1=class extends AbstractMessageSignature{constructor(t,n=o.auto){super(t,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};t.NotificationType1=NotificationType1;var NotificationType2=class extends AbstractMessageSignature{constructor(t){super(t,2)}};t.NotificationType2=NotificationType2;var NotificationType3=class extends AbstractMessageSignature{constructor(t){super(t,3)}};t.NotificationType3=NotificationType3;var NotificationType4=class extends AbstractMessageSignature{constructor(t){super(t,4)}};t.NotificationType4=NotificationType4;var NotificationType5=class extends AbstractMessageSignature{constructor(t){super(t,5)}};t.NotificationType5=NotificationType5;var NotificationType6=class extends AbstractMessageSignature{constructor(t){super(t,6)}};t.NotificationType6=NotificationType6;var NotificationType7=class extends AbstractMessageSignature{constructor(t){super(t,7)}};t.NotificationType7=NotificationType7;var NotificationType8=class extends AbstractMessageSignature{constructor(t){super(t,8)}};t.NotificationType8=NotificationType8;var NotificationType9=class extends AbstractMessageSignature{constructor(t){super(t,9)}};t.NotificationType9=NotificationType9;var s;(function(t){function isRequest(t){let i=t;return i&&n.string(i.method)&&(n.string(i.id)||n.number(i.id))}t.isRequest=isRequest;function isNotification(t){let i=t;return i&&n.string(i.method)&&t.id===void 0}t.isNotification=isNotification;function isResponse(t){let i=t;return i&&(i.result!==void 0||!!i.error)&&(n.string(i.id)||n.number(i.id)||i.id===null)}t.isResponse=isResponse})(s||(t.Message=s={}))})),ar=f((t=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.LRUCache=t.LinkedMap=t.Touch=void 0;var i;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(i||(t.Touch=i={}));var LinkedMap=class{constructor(){this[n]=`LinkedMap`,this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(t){return this._map.has(t)}get(t,n=i.None){let o=this._map.get(t);if(o)return n!==i.None&&this.touch(o,n),o.value}set(t,n,o=i.None){let s=this._map.get(t);if(s)s.value=n,o!==i.None&&this.touch(s,o);else{switch(s={key:t,value:n,next:void 0,previous:void 0},o){case i.None:this.addItemLast(s);break;case i.First:this.addItemFirst(s);break;case i.Last:this.addItemLast(s);break;default:this.addItemLast(s)}this._map.set(t,s),this._size++}return this}delete(t){return!!this.remove(t)}remove(t){let n=this._map.get(t);if(n)return this._map.delete(t),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw Error(`Invalid list`);let t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,n){let i=this._state,o=this._head;for(;o;){if(n?t.bind(n)(o.value,o.key,this):t(o.value,o.key,this),this._state!==i)throw Error(`LinkedMap got modified during iteration.`);o=o.next}}keys(){let t=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==t)throw Error(`LinkedMap got modified during iteration.`);if(n){let t={value:n.key,done:!1};return n=n.next,t}return{value:void 0,done:!0}}};return i}values(){let t=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==t)throw Error(`LinkedMap got modified during iteration.`);if(n){let t={value:n.value,done:!1};return n=n.next,t}return{value:void 0,done:!0}}};return i}entries(){let t=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==t)throw Error(`LinkedMap got modified during iteration.`);if(n){let t={value:[n.key,n.value],done:!1};return n=n.next,t}return{value:void 0,done:!0}}};return i}[(n=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(t){if(t>=this.size)return;if(t===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>t;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(t){if(!this._head&&!this._tail)this._tail=t;else if(this._head)t.next=this._head,this._head.previous=t;else throw Error(`Invalid list`);this._head=t,this._state++}addItemLast(t){if(!this._head&&!this._tail)this._head=t;else if(this._tail)t.previous=this._tail,this._tail.next=t;else throw Error(`Invalid list`);this._tail=t,this._state++}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head){if(!t.next)throw Error(`Invalid list`);t.next.previous=void 0,this._head=t.next}else if(t===this._tail){if(!t.previous)throw Error(`Invalid list`);t.previous.next=void 0,this._tail=t.previous}else{let n=t.next,i=t.previous;if(!n||!i)throw Error(`Invalid list`);n.previous=i,i.next=n}t.next=void 0,t.previous=void 0,this._state++}touch(t,n){if(!this._head||!this._tail)throw Error(`Invalid list`);if(n===i.First||n===i.Last){if(n===i.First){if(t===this._head)return;let n=t.next,i=t.previous;t===this._tail?(i.next=void 0,this._tail=i):(n.previous=i,i.next=n),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t,this._state++}else if(n===i.Last){if(t===this._tail)return;let n=t.next,i=t.previous;t===this._head?(n.previous=void 0,this._head=n):(n.previous=i,i.next=n),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t,this._state++}}}toJSON(){let t=[];return this.forEach((n,i)=>{t.push([i,n])}),t}fromJSON(t){this.clear();for(let[n,i]of t)this.set(n,i)}};t.LinkedMap=LinkedMap;var LRUCache=class extends LinkedMap{constructor(t,n=1){super(),this._limit=t,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(t){this._limit=t,this.checkTrim()}get ratio(){return this._ratio}set ratio(t){this._ratio=Math.min(Math.max(0,t),1),this.checkTrim()}get(t,n=i.AsNew){return super.get(t,n)}peek(t){return super.get(t,i.None)}set(t,n){return super.set(t,n,i.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};t.LRUCache=LRUCache})),or=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Disposable=void 0;var n;(function(t){function create(t){return{dispose:t}}t.create=create})(n||(t.Disposable=n={}))})),sr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SharedArrayReceiverStrategy=t.SharedArraySenderStrategy=void 0;let n=En();var i;(function(t){t.Continue=0,t.Cancelled=1})(i||={});var SharedArraySenderStrategy=class{constructor(){this.buffers=new Map}enableCancellation(t){if(t.id===null)return;let n=new SharedArrayBuffer(4),o=new Int32Array(n,0,1);o[0]=i.Continue,this.buffers.set(t.id,n),t.$cancellationData=n}async sendCancellation(t,n){let o=this.buffers.get(n);if(o===void 0)return;let s=new Int32Array(o,0,1);Atomics.store(s,0,i.Cancelled)}cleanup(t){this.buffers.delete(t)}dispose(){this.buffers.clear()}};t.SharedArraySenderStrategy=SharedArraySenderStrategy;var SharedArrayBufferCancellationToken=class{constructor(t){this.data=new Int32Array(t,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===i.Cancelled}get onCancellationRequested(){throw Error(`Cancellation over SharedArrayBuffer doesn't support cancellation events`)}},SharedArrayBufferCancellationTokenSource=class{constructor(t){this.token=new SharedArrayBufferCancellationToken(t)}cancel(){}dispose(){}},SharedArrayReceiverStrategy=class{constructor(){this.kind=`request`}createCancellationTokenSource(t){let i=t.$cancellationData;return i===void 0?new n.CancellationTokenSource:new SharedArrayBufferCancellationTokenSource(i)}};t.SharedArrayReceiverStrategy=SharedArrayReceiverStrategy})),cr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Semaphore=void 0;let n=Cn();var Semaphore=class{constructor(t=1){if(t<=0)throw Error(`Capacity must be greater than 0`);this._capacity=t,this._active=0,this._waiting=[]}lock(t){return new Promise((n,i)=>{this._waiting.push({thunk:t,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length!==0&&this._active!==this._capacity&&(0,n.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let t=this._waiting.shift();if(this._active++,this._active>this._capacity)throw Error(`To many thunks active`);try{let n=t.thunk();n instanceof Promise?n.then(n=>{this._active--,t.resolve(n),this.runNext()},n=>{this._active--,t.reject(n),this.runNext()}):(this._active--,t.resolve(n),this.runNext())}catch(n){this._active--,t.reject(n),this.runNext()}}};t.Semaphore=Semaphore})),lr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ReadableStreamMessageReader=t.AbstractMessageReader=t.MessageReader=void 0;let n=Cn(),i=wn(),o=Tn(),s=cr();var c;(function(t){function is(t){let n=t;return n&&i.func(n.listen)&&i.func(n.dispose)&&i.func(n.onError)&&i.func(n.onClose)&&i.func(n.onPartialMessage)}t.is=is})(c||(t.MessageReader=c={}));var AbstractMessageReader=class{constructor(){this.errorEmitter=new o.Emitter,this.closeEmitter=new o.Emitter,this.partialMessageEmitter=new o.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(t){this.errorEmitter.fire(this.asError(t))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(t){this.partialMessageEmitter.fire(t)}asError(t){return t instanceof Error?t:Error(`Reader received error. Reason: ${i.string(t.message)?t.message:`unknown`}`)}};t.AbstractMessageReader=AbstractMessageReader;var u;(function(t){function fromOptions(t){let i,o,s=new Map,c,u=new Map;if(t===void 0||typeof t==`string`)i=t??`utf-8`;else{if(i=t.charset??`utf-8`,t.contentDecoder!==void 0&&(o=t.contentDecoder,s.set(o.name,o)),t.contentDecoders!==void 0)for(let n of t.contentDecoders)s.set(n.name,n);if(t.contentTypeDecoder!==void 0&&(c=t.contentTypeDecoder,u.set(c.name,c)),t.contentTypeDecoders!==void 0)for(let n of t.contentTypeDecoders)u.set(n.name,n)}return c===void 0&&(c=(0,n.default)().applicationJson.decoder,u.set(c.name,c)),{charset:i,contentDecoder:o,contentDecoders:s,contentTypeDecoder:c,contentTypeDecoders:u}}t.fromOptions=fromOptions})(u||={});var ReadableStreamMessageReader=class extends AbstractMessageReader{constructor(t,i){super(),this.readable=t,this.options=u.fromOptions(i),this.buffer=(0,n.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new s.Semaphore(1)}set partialMessageTimeout(t){this._partialMessageTimeout=t}get partialMessageTimeout(){return this._partialMessageTimeout}listen(t){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=t;let n=this.readable.onData(t=>{this.onData(t)});return this.readable.onError(t=>this.fireError(t)),this.readable.onClose(()=>this.fireClose()),n}onData(t){try{for(this.buffer.append(t);;){if(this.nextMessageLength===-1){let t=this.buffer.tryReadHeaders(!0);if(!t)return;let n=t.get(`content-length`);if(!n){this.fireError(Error(`Header must provide a Content-Length property.\n${JSON.stringify(Object.fromEntries(t))}`));return}let i=parseInt(n);if(isNaN(i)){this.fireError(Error(`Content-Length value must be a number. Got ${n}`));return}this.nextMessageLength=i}let t=this.buffer.tryReadBody(this.nextMessageLength);if(t===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let n=this.options.contentDecoder===void 0?t:await this.options.contentDecoder.decode(t),i=await this.options.contentTypeDecoder.decode(n,this.options);this.callback(i)}).catch(t=>{this.fireError(t)})}}catch(t){this.fireError(t)}}clearPartialMessageTimer(){this.partialMessageTimer&&=(this.partialMessageTimer.dispose(),void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,n.default)().timer.setTimeout((t,n)=>{this.partialMessageTimer=void 0,t===this.messageToken&&(this.firePartialMessage({messageToken:t,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};t.ReadableStreamMessageReader=ReadableStreamMessageReader})),ur=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WriteableStreamMessageWriter=t.AbstractMessageWriter=t.MessageWriter=void 0;let n=Cn(),i=wn(),o=cr(),s=Tn();var c;(function(t){function is(t){let n=t;return n&&i.func(n.dispose)&&i.func(n.onClose)&&i.func(n.onError)&&i.func(n.write)}t.is=is})(c||(t.MessageWriter=c={}));var AbstractMessageWriter=class{constructor(){this.errorEmitter=new s.Emitter,this.closeEmitter=new s.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(t,n,i){this.errorEmitter.fire([this.asError(t),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(t){return t instanceof Error?t:Error(`Writer received error. Reason: ${i.string(t.message)?t.message:`unknown`}`)}};t.AbstractMessageWriter=AbstractMessageWriter;var u;(function(t){function fromOptions(t){return t===void 0||typeof t==`string`?{charset:t??`utf-8`,contentTypeEncoder:(0,n.default)().applicationJson.encoder}:{charset:t.charset??`utf-8`,contentEncoder:t.contentEncoder,contentTypeEncoder:t.contentTypeEncoder??(0,n.default)().applicationJson.encoder}}t.fromOptions=fromOptions})(u||={});var WriteableStreamMessageWriter=class extends AbstractMessageWriter{constructor(t,n){super(),this.writable=t,this.options=u.fromOptions(n),this.errorCount=0,this.writeSemaphore=new o.Semaphore(1),this.writable.onError(t=>this.fireError(t)),this.writable.onClose(()=>this.fireClose())}async write(t){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(t,this.options).then(t=>this.options.contentEncoder===void 0?t:this.options.contentEncoder.encode(t)).then(n=>{let i=[];return i.push(`Content-Length: `,n.byteLength.toString(),`\r
19
- `),i.push(`\r
20
- `),this.doWrite(t,i,n)},t=>{throw this.fireError(t),t}))}async doWrite(t,n,i){try{return await this.writable.write(n.join(``),`ascii`),this.writable.write(i)}catch(n){return this.handleError(n,t),Promise.reject(n)}}handleError(t,n){this.errorCount++,this.fireError(t,n,this.errorCount)}end(){this.writable.end()}};t.WriteableStreamMessageWriter=WriteableStreamMessageWriter})),dr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractMessageBuffer=void 0;var AbstractMessageBuffer=class{constructor(t=`utf-8`){this._encoding=t,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(t){let n=typeof t==`string`?this.fromString(t,this._encoding):t;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(t=!1){if(this._chunks.length===0)return;let n=0,i=0,o=0,s=0;row:for(;i<this._chunks.length;){let t=this._chunks[i];o=0;column:for(;o<t.length;){switch(t[o]){case 13:switch(n){case 0:n=1;break;case 2:n=3;break;default:n=0}break;case 10:switch(n){case 1:n=2;break;case 3:n=4,o++;break row;default:n=0}break;default:n=0}o++}s+=t.byteLength,i++}if(n!==4)return;let c=this._read(s+o),u=new Map,f=this.toString(c,`ascii`).split(`\r
21
- `);if(f.length<2)return u;for(let n=0;n<f.length-2;n++){let i=f[n],o=i.indexOf(`:`);if(o===-1)throw Error(`Message header must separate key and value using ':'\n${i}`);let s=i.substr(0,o),c=i.substr(o+1).trim();u.set(t?s.toLowerCase():s,c)}return u}tryReadBody(t){if(!(this._totalLength<t))return this._read(t)}get numberOfBytes(){return this._totalLength}_read(t){if(t===0)return this.emptyBuffer();if(t>this._totalLength)throw Error(`Cannot read so many bytes!`);if(this._chunks[0].byteLength===t){let n=this._chunks[0];return this._chunks.shift(),this._totalLength-=t,this.asNative(n)}if(this._chunks[0].byteLength>t){let n=this._chunks[0],i=this.asNative(n,t);return this._chunks[0]=n.slice(t),this._totalLength-=t,i}let n=this.allocNative(t),i=0;for(;t>0;){let o=this._chunks[0];if(o.byteLength>t){let s=o.slice(0,t);n.set(s,i),i+=t,this._chunks[0]=o.slice(t),this._totalLength-=t,t-=t}else n.set(o,i),i+=o.byteLength,this._chunks.shift(),this._totalLength-=o.byteLength,t-=o.byteLength}return n}};t.AbstractMessageBuffer=AbstractMessageBuffer})),fr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createMessageConnection=t.ConnectionOptions=t.MessageStrategy=t.CancellationStrategy=t.CancellationSenderStrategy=t.CancellationReceiverStrategy=t.RequestCancellationReceiverStrategy=t.IdCancellationReceiverStrategy=t.ConnectionStrategy=t.ConnectionError=t.ConnectionErrors=t.LogTraceNotification=t.SetTraceNotification=t.TraceFormat=t.TraceValues=t.Trace=t.NullLogger=t.ProgressType=t.ProgressToken=void 0;let n=Cn(),i=wn(),o=ir(),s=ar(),c=Tn(),u=En();var f;(function(t){t.type=new o.NotificationType(`$/cancelRequest`)})(f||={});var p;(function(t){function is(t){return typeof t==`string`||typeof t==`number`}t.is=is})(p||(t.ProgressToken=p={}));var h;(function(t){t.type=new o.NotificationType(`$/progress`)})(h||={});var ProgressType=class{constructor(){}};t.ProgressType=ProgressType;var g;(function(t){function is(t){return i.func(t)}t.is=is})(g||={}),t.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var _;(function(t){t[t.Off=0]=`Off`,t[t.Messages=1]=`Messages`,t[t.Compact=2]=`Compact`,t[t.Verbose=3]=`Verbose`})(_||(t.Trace=_={}));var x;(function(t){t.Off=`off`,t.Messages=`messages`,t.Compact=`compact`,t.Verbose=`verbose`})(x||(t.TraceValues=x={})),(function(t){function fromString(n){if(!i.string(n))return t.Off;switch(n=n.toLowerCase(),n){case`off`:return t.Off;case`messages`:return t.Messages;case`compact`:return t.Compact;case`verbose`:return t.Verbose;default:return t.Off}}t.fromString=fromString;function toString(n){switch(n){case t.Off:return`off`;case t.Messages:return`messages`;case t.Compact:return`compact`;case t.Verbose:return`verbose`;default:return`off`}}t.toString=toString})(_||(t.Trace=_={}));var S;(function(t){t.Text=`text`,t.JSON=`json`})(S||(t.TraceFormat=S={})),(function(t){function fromString(n){return i.string(n)?(n=n.toLowerCase(),n===`json`?t.JSON:t.Text):t.Text}t.fromString=fromString})(S||(t.TraceFormat=S={}));var T;(function(t){t.type=new o.NotificationType(`$/setTrace`)})(T||(t.SetTraceNotification=T={}));var E;(function(t){t.type=new o.NotificationType(`$/logTrace`)})(E||(t.LogTraceNotification=E={}));var D;(function(t){t[t.Closed=1]=`Closed`,t[t.Disposed=2]=`Disposed`,t[t.AlreadyListening=3]=`AlreadyListening`})(D||(t.ConnectionErrors=D={}));var ee=class ConnectionError extends Error{constructor(t,n){super(n),this.code=t,Object.setPrototypeOf(this,ConnectionError.prototype)}};t.ConnectionError=ee;var O;(function(t){function is(t){let n=t;return n&&i.func(n.cancelUndispatched)}t.is=is})(O||(t.ConnectionStrategy=O={}));var k;(function(t){function is(t){let n=t;return n&&(n.kind===void 0||n.kind===`id`)&&i.func(n.createCancellationTokenSource)&&(n.dispose===void 0||i.func(n.dispose))}t.is=is})(k||(t.IdCancellationReceiverStrategy=k={}));var A;(function(t){function is(t){let n=t;return n&&n.kind===`request`&&i.func(n.createCancellationTokenSource)&&(n.dispose===void 0||i.func(n.dispose))}t.is=is})(A||(t.RequestCancellationReceiverStrategy=A={}));var j;(function(t){t.Message=Object.freeze({createCancellationTokenSource(t){return new u.CancellationTokenSource}});function is(t){return k.is(t)||A.is(t)}t.is=is})(j||(t.CancellationReceiverStrategy=j={}));var M;(function(t){t.Message=Object.freeze({sendCancellation(t,n){return t.sendNotification(f.type,{id:n})},cleanup(t){}});function is(t){let n=t;return n&&i.func(n.sendCancellation)&&i.func(n.cleanup)}t.is=is})(M||(t.CancellationSenderStrategy=M={}));var N;(function(t){t.Message=Object.freeze({receiver:j.Message,sender:M.Message});function is(t){let n=t;return n&&j.is(n.receiver)&&M.is(n.sender)}t.is=is})(N||(t.CancellationStrategy=N={}));var P;(function(t){function is(t){let n=t;return n&&i.func(n.handleMessage)}t.is=is})(P||(t.MessageStrategy=P={}));var te;(function(t){function is(t){let n=t;return n&&(N.is(n.cancellationStrategy)||O.is(n.connectionStrategy)||P.is(n.messageStrategy))}t.is=is})(te||(t.ConnectionOptions=te={}));var F;(function(t){t[t.New=1]=`New`,t[t.Listening=2]=`Listening`,t[t.Closed=3]=`Closed`,t[t.Disposed=4]=`Disposed`})(F||={});function createMessageConnection(x,O,A,j){let M=A===void 0?t.NullLogger:A,te=0,ne=0,re=0,ie,ae=new Map,oe,se=new Map,ce=new Map,le,I=new s.LinkedMap,ue=new Map,de=new Set,L=new Map,R=_.Off,fe=S.Text,z,B=F.New,pe=new c.Emitter,me=new c.Emitter,he=new c.Emitter,ge=new c.Emitter,_e=new c.Emitter,V=j&&j.cancellationStrategy?j.cancellationStrategy:N.Message;function createRequestQueueKey(t){if(t===null)throw Error(`Can't send requests with id null since the response can't be correlated.`);return`req-`+t.toString()}function createResponseQueueKey(t){return t===null?`res-unknown-`+(++re).toString():`res-`+t.toString()}function createNotificationQueueKey(){return`not-`+(++ne).toString()}function addMessageToQueue(t,n){o.Message.isRequest(n)?t.set(createRequestQueueKey(n.id),n):o.Message.isResponse(n)?t.set(createResponseQueueKey(n.id),n):t.set(createNotificationQueueKey(),n)}function cancelUndispatched(t){}function isListening(){return B===F.Listening}function isClosed(){return B===F.Closed}function isDisposed(){return B===F.Disposed}function closeHandler(){(B===F.New||B===F.Listening)&&(B=F.Closed,me.fire(void 0))}function readErrorHandler(t){pe.fire([t,void 0,void 0])}function writeErrorHandler(t){pe.fire(t)}x.onClose(closeHandler),x.onError(readErrorHandler),O.onClose(closeHandler),O.onError(writeErrorHandler);function triggerMessageQueue(){le||I.size===0||(le=(0,n.default)().timer.setImmediate(()=>{le=void 0,processMessageQueue()}))}function handleMessage(t){o.Message.isRequest(t)?handleRequest(t):o.Message.isNotification(t)?handleNotification(t):o.Message.isResponse(t)?handleResponse(t):handleInvalidMessage(t)}function processMessageQueue(){if(I.size===0)return;let t=I.shift();try{let n=j?.messageStrategy;P.is(n)?n.handleMessage(t,handleMessage):handleMessage(t)}finally{triggerMessageQueue()}}let callback=t=>{try{if(o.Message.isNotification(t)&&t.method===f.type.method){let n=t.params.id,i=createRequestQueueKey(n),s=I.get(i);if(o.Message.isRequest(s)){let o=j?.connectionStrategy,c=o&&o.cancelUndispatched?o.cancelUndispatched(s,cancelUndispatched):void 0;if(c&&(c.error!==void 0||c.result!==void 0)){I.delete(i),L.delete(n),c.id=s.id,traceSendingResponse(c,t.method,Date.now()),O.write(c).catch(()=>M.error(`Sending response for canceled message failed.`));return}}let c=L.get(n);if(c!==void 0){c.cancel(),traceReceivedNotification(t);return}de.add(n)}addMessageToQueue(I,t)}finally{triggerMessageQueue()}};function handleRequest(t){if(isDisposed())return;function reply(n,i,s){let c={jsonrpc:`2.0`,id:t.id};n instanceof o.ResponseError?c.error=n.toJson():c.result=n===void 0?null:n,traceSendingResponse(c,i,s),O.write(c).catch(()=>M.error(`Sending response failed.`))}function replyError(n,i,o){let s={jsonrpc:`2.0`,id:t.id,error:n.toJson()};traceSendingResponse(s,i,o),O.write(s).catch(()=>M.error(`Sending response failed.`))}function replySuccess(n,i,o){n===void 0&&(n=null);let s={jsonrpc:`2.0`,id:t.id,result:n};traceSendingResponse(s,i,o),O.write(s).catch(()=>M.error(`Sending response failed.`))}traceReceivedRequest(t);let n=ae.get(t.method),s,c;n&&(s=n.type,c=n.handler);let u=Date.now();if(c||ie){let n=t.id??String(Date.now()),f=k.is(V.receiver)?V.receiver.createCancellationTokenSource(n):V.receiver.createCancellationTokenSource(t);t.id!==null&&de.has(t.id)&&f.cancel(),t.id!==null&&L.set(n,f);try{let p;if(c){if(t.params===void 0){if(s!==void 0&&s.numberOfParams!==0){replyError(new o.ResponseError(o.ErrorCodes.InvalidParams,`Request ${t.method} defines ${s.numberOfParams} params but received none.`),t.method,u);return}p=c(f.token)}else if(Array.isArray(t.params)){if(s!==void 0&&s.parameterStructures===o.ParameterStructures.byName){replyError(new o.ResponseError(o.ErrorCodes.InvalidParams,`Request ${t.method} defines parameters by name but received parameters by position`),t.method,u);return}p=c(...t.params,f.token)}else{if(s!==void 0&&s.parameterStructures===o.ParameterStructures.byPosition){replyError(new o.ResponseError(o.ErrorCodes.InvalidParams,`Request ${t.method} defines parameters by position but received parameters by name`),t.method,u);return}p=c(t.params,f.token)}}else ie&&(p=ie(t.method,t.params,f.token));let h=p;p?h.then?h.then(i=>{L.delete(n),reply(i,t.method,u)},s=>{L.delete(n),s instanceof o.ResponseError?replyError(s,t.method,u):s&&i.string(s.message)?replyError(new o.ResponseError(o.ErrorCodes.InternalError,`Request ${t.method} failed with message: ${s.message}`),t.method,u):replyError(new o.ResponseError(o.ErrorCodes.InternalError,`Request ${t.method} failed unexpectedly without providing any details.`),t.method,u)}):(L.delete(n),reply(p,t.method,u)):(L.delete(n),replySuccess(p,t.method,u))}catch(s){L.delete(n),s instanceof o.ResponseError?reply(s,t.method,u):s&&i.string(s.message)?replyError(new o.ResponseError(o.ErrorCodes.InternalError,`Request ${t.method} failed with message: ${s.message}`),t.method,u):replyError(new o.ResponseError(o.ErrorCodes.InternalError,`Request ${t.method} failed unexpectedly without providing any details.`),t.method,u)}}else replyError(new o.ResponseError(o.ErrorCodes.MethodNotFound,`Unhandled method ${t.method}`),t.method,u)}function handleResponse(t){if(!isDisposed()){if(t.id===null)t.error?M.error(`Received response message without id: Error is: \n${JSON.stringify(t.error,void 0,4)}`):M.error(`Received response message without id. No further error information provided.`);else{let n=t.id,i=ue.get(n);if(traceReceivedResponse(t,i),i!==void 0){ue.delete(n);try{if(t.error){let n=t.error;i.reject(new o.ResponseError(n.code,n.message,n.data))}else if(t.result!==void 0)i.resolve(t.result);else throw Error(`Should never happen.`)}catch(t){t.message?M.error(`Response handler '${i.method}' failed with message: ${t.message}`):M.error(`Response handler '${i.method}' failed unexpectedly.`)}}}}}function handleNotification(t){if(isDisposed())return;let n,i;if(t.method===f.type.method){let n=t.params.id;de.delete(n),traceReceivedNotification(t);return}{let o=se.get(t.method);o&&(i=o.handler,n=o.type)}if(i||oe)try{if(traceReceivedNotification(t),i){if(t.params===void 0)n!==void 0&&n.numberOfParams!==0&&n.parameterStructures!==o.ParameterStructures.byName&&M.error(`Notification ${t.method} defines ${n.numberOfParams} params but received none.`),i();else if(Array.isArray(t.params)){let s=t.params;t.method===h.type.method&&s.length===2&&p.is(s[0])?i({token:s[0],value:s[1]}):(n!==void 0&&(n.parameterStructures===o.ParameterStructures.byName&&M.error(`Notification ${t.method} defines parameters by name but received parameters by position`),n.numberOfParams!==t.params.length&&M.error(`Notification ${t.method} defines ${n.numberOfParams} params but received ${s.length} arguments`)),i(...s))}else n!==void 0&&n.parameterStructures===o.ParameterStructures.byPosition&&M.error(`Notification ${t.method} defines parameters by position but received parameters by name`),i(t.params)}else oe&&oe(t.method,t.params)}catch(n){n.message?M.error(`Notification handler '${t.method}' failed with message: ${n.message}`):M.error(`Notification handler '${t.method}' failed unexpectedly.`)}else he.fire(t)}function handleInvalidMessage(t){if(!t){M.error(`Received empty message.`);return}M.error(`Received message which is neither a response nor a notification message:\n${JSON.stringify(t,null,4)}`);let n=t;if(i.string(n.id)||i.number(n.id)){let t=n.id,i=ue.get(t);i&&i.reject(Error(`The received response has neither a result nor an error property.`))}}function stringifyTrace(t){if(t!=null)switch(R){case _.Verbose:return JSON.stringify(t,null,4);case _.Compact:return JSON.stringify(t);default:return}}function traceSendingRequest(t){if(R!==_.Off&&z){if(fe===S.Text){let n;(R===_.Verbose||R===_.Compact)&&t.params&&(n=`Params: ${stringifyTrace(t.params)}\n\n`),z.log(`Sending request '${t.method} - (${t.id})'.`,n)}else logLSPMessage(`send-request`,t)}}function traceSendingNotification(t){if(R!==_.Off&&z){if(fe===S.Text){let n;(R===_.Verbose||R===_.Compact)&&(n=t.params?`Params: ${stringifyTrace(t.params)}\n\n`:`No parameters provided.
22
-
23
- `),z.log(`Sending notification '${t.method}'.`,n)}else logLSPMessage(`send-notification`,t)}}function traceSendingResponse(t,n,i){if(R!==_.Off&&z){if(fe===S.Text){let o;(R===_.Verbose||R===_.Compact)&&(t.error&&t.error.data?o=`Error data: ${stringifyTrace(t.error.data)}\n\n`:t.result?o=`Result: ${stringifyTrace(t.result)}\n\n`:t.error===void 0&&(o=`No result returned.
24
-
25
- `)),z.log(`Sending response '${n} - (${t.id})'. Processing request took ${Date.now()-i}ms`,o)}else logLSPMessage(`send-response`,t)}}function traceReceivedRequest(t){if(R!==_.Off&&z){if(fe===S.Text){let n;(R===_.Verbose||R===_.Compact)&&t.params&&(n=`Params: ${stringifyTrace(t.params)}\n\n`),z.log(`Received request '${t.method} - (${t.id})'.`,n)}else logLSPMessage(`receive-request`,t)}}function traceReceivedNotification(t){if(R!==_.Off&&z&&t.method!==E.type.method){if(fe===S.Text){let n;(R===_.Verbose||R===_.Compact)&&(n=t.params?`Params: ${stringifyTrace(t.params)}\n\n`:`No parameters provided.
26
-
27
- `),z.log(`Received notification '${t.method}'.`,n)}else logLSPMessage(`receive-notification`,t)}}function traceReceivedResponse(t,n){if(R!==_.Off&&z){if(fe===S.Text){let i;if((R===_.Verbose||R===_.Compact)&&(t.error&&t.error.data?i=`Error data: ${stringifyTrace(t.error.data)}\n\n`:t.result?i=`Result: ${stringifyTrace(t.result)}\n\n`:t.error===void 0&&(i=`No result returned.
28
-
29
- `)),n){let o=t.error?` Request failed: ${t.error.message} (${t.error.code}).`:``;z.log(`Received response '${n.method} - (${t.id})' in ${Date.now()-n.timerStart}ms.${o}`,i)}else z.log(`Received response ${t.id} without active response promise.`,i)}else logLSPMessage(`receive-response`,t)}}function logLSPMessage(t,n){if(!z||R===_.Off)return;let i={isLSPMessage:!0,type:t,message:n,timestamp:Date.now()};z.log(i)}function throwIfClosedOrDisposed(){if(isClosed())throw new ee(D.Closed,`Connection is closed.`);if(isDisposed())throw new ee(D.Disposed,`Connection is disposed.`)}function throwIfListening(){if(isListening())throw new ee(D.AlreadyListening,`Connection is already listening`)}function throwIfNotListening(){if(!isListening())throw Error(`Call listen() first.`)}function undefinedToNull(t){return t===void 0?null:t}function nullToUndefined(t){if(t!==null)return t}function isNamedParam(t){return t!=null&&!Array.isArray(t)&&typeof t==`object`}function computeSingleParam(t,n){switch(t){case o.ParameterStructures.auto:return isNamedParam(n)?nullToUndefined(n):[undefinedToNull(n)];case o.ParameterStructures.byName:if(!isNamedParam(n))throw Error(`Received parameters by name but param is not an object literal.`);return nullToUndefined(n);case o.ParameterStructures.byPosition:return[undefinedToNull(n)];default:throw Error(`Unknown parameter structure ${t.toString()}`)}}function computeMessageParams(t,n){let i,o=t.numberOfParams;switch(o){case 0:i=void 0;break;case 1:i=computeSingleParam(t.parameterStructures,n[0]);break;default:i=[];for(let t=0;t<n.length&&t<o;t++)i.push(undefinedToNull(n[t]));if(n.length<o)for(let t=n.length;t<o;t++)i.push(null)}return i}let ve={sendNotification:(t,...n)=>{throwIfClosedOrDisposed();let s,c;if(i.string(t)){s=t;let i=n[0],u=0,f=o.ParameterStructures.auto;o.ParameterStructures.is(i)&&(u=1,f=i);let p=n.length,h=p-u;switch(h){case 0:c=void 0;break;case 1:c=computeSingleParam(f,n[u]);break;default:if(f===o.ParameterStructures.byName)throw Error(`Received ${h} parameters for 'by Name' notification parameter structure.`);c=n.slice(u,p).map(t=>undefinedToNull(t))}}else{let i=n;s=t.method,c=computeMessageParams(t,i)}let u={jsonrpc:`2.0`,method:s,params:c};return traceSendingNotification(u),O.write(u).catch(t=>{throw M.error(`Sending notification failed.`),t})},onNotification:(t,n)=>{throwIfClosedOrDisposed();let o;return i.func(t)?oe=t:n&&(i.string(t)?(o=t,se.set(t,{type:void 0,handler:n})):(o=t.method,se.set(t.method,{type:t,handler:n}))),{dispose:()=>{o===void 0?oe=void 0:se.delete(o)}}},onProgress:(t,n,i)=>{if(ce.has(n))throw Error(`Progress handler for token ${n} already registered`);return ce.set(n,i),{dispose:()=>{ce.delete(n)}}},sendProgress:(t,n,i)=>ve.sendNotification(h.type,{token:n,value:i}),onUnhandledProgress:ge.event,sendRequest:(t,...n)=>{throwIfClosedOrDisposed(),throwIfNotListening();let s,c,f;if(i.string(t)){s=t;let i=n[0],p=n[n.length-1],h=0,g=o.ParameterStructures.auto;o.ParameterStructures.is(i)&&(h=1,g=i);let _=n.length;u.CancellationToken.is(p)&&(--_,f=p);let x=_-h;switch(x){case 0:c=void 0;break;case 1:c=computeSingleParam(g,n[h]);break;default:if(g===o.ParameterStructures.byName)throw Error(`Received ${x} parameters for 'by Name' request parameter structure.`);c=n.slice(h,_).map(t=>undefinedToNull(t))}}else{let i=n;s=t.method,c=computeMessageParams(t,i);let o=t.numberOfParams;f=u.CancellationToken.is(i[o])?i[o]:void 0}let p=te++,h;f&&(h=f.onCancellationRequested(()=>{let t=V.sender.sendCancellation(ve,p);return t===void 0?(M.log(`Received no promise from cancellation strategy when cancelling id ${p}`),Promise.resolve()):t.catch(()=>{M.log(`Sending cancellation messages for id ${p} failed`)})}));let g={jsonrpc:`2.0`,id:p,method:s,params:c};return traceSendingRequest(g),typeof V.sender.enableCancellation==`function`&&V.sender.enableCancellation(g),new Promise(async(t,n)=>{let resolveWithCleanup=n=>{t(n),V.sender.cleanup(p),h?.dispose()},rejectWithCleanup=t=>{n(t),V.sender.cleanup(p),h?.dispose()},i={method:s,timerStart:Date.now(),resolve:resolveWithCleanup,reject:rejectWithCleanup};try{await O.write(g),ue.set(p,i)}catch(t){throw M.error(`Sending request failed.`),i.reject(new o.ResponseError(o.ErrorCodes.MessageWriteError,t.message?t.message:`Unknown reason`)),t}})},onRequest:(t,n)=>{throwIfClosedOrDisposed();let o=null;return g.is(t)?(o=void 0,ie=t):i.string(t)?(o=null,n!==void 0&&(o=t,ae.set(t,{handler:n,type:void 0}))):n!==void 0&&(o=t.method,ae.set(t.method,{type:t,handler:n})),{dispose:()=>{o!==null&&(o===void 0?ie=void 0:ae.delete(o))}}},hasPendingResponse:()=>ue.size>0,trace:async(t,n,o)=>{let s=!1,c=S.Text;o!==void 0&&(i.boolean(o)?s=o:(s=o.sendNotification||!1,c=o.traceFormat||S.Text)),R=t,fe=c,z=R===_.Off?void 0:n,s&&!isClosed()&&!isDisposed()&&await ve.sendNotification(T.type,{value:_.toString(t)})},onError:pe.event,onClose:me.event,onUnhandledNotification:he.event,onDispose:_e.event,end:()=>{O.end()},dispose:()=>{if(isDisposed())return;B=F.Disposed,_e.fire(void 0);let t=new o.ResponseError(o.ErrorCodes.PendingResponseRejected,`Pending response rejected since connection got disposed`);for(let n of ue.values())n.reject(t);ue=new Map,L=new Map,de=new Set,I=new s.LinkedMap,i.func(O.dispose)&&O.dispose(),i.func(x.dispose)&&x.dispose()},listen:()=>{throwIfClosedOrDisposed(),throwIfListening(),B=F.Listening,x.listen(callback)},inspect:()=>{(0,n.default)().console.log(`inspect`)}};return ve.onNotification(E.type,t=>{if(R===_.Off||!z)return;let n=R===_.Verbose||R===_.Compact;z.log(t.message,n?t.verbose:void 0)}),ve.onNotification(h.type,t=>{let n=ce.get(t.token);n?n(t.value):ge.fire(t)}),ve}t.createMessageConnection=createMessageConnection})),pr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressType=t.ProgressToken=t.createMessageConnection=t.NullLogger=t.ConnectionOptions=t.ConnectionStrategy=t.AbstractMessageBuffer=t.WriteableStreamMessageWriter=t.AbstractMessageWriter=t.MessageWriter=t.ReadableStreamMessageReader=t.AbstractMessageReader=t.MessageReader=t.SharedArrayReceiverStrategy=t.SharedArraySenderStrategy=t.CancellationToken=t.CancellationTokenSource=t.Emitter=t.Event=t.Disposable=t.LRUCache=t.Touch=t.LinkedMap=t.ParameterStructures=t.NotificationType9=t.NotificationType8=t.NotificationType7=t.NotificationType6=t.NotificationType5=t.NotificationType4=t.NotificationType3=t.NotificationType2=t.NotificationType1=t.NotificationType0=t.NotificationType=t.ErrorCodes=t.ResponseError=t.RequestType9=t.RequestType8=t.RequestType7=t.RequestType6=t.RequestType5=t.RequestType4=t.RequestType3=t.RequestType2=t.RequestType1=t.RequestType0=t.RequestType=t.Message=t.RAL=void 0,t.MessageStrategy=t.CancellationStrategy=t.CancellationSenderStrategy=t.CancellationReceiverStrategy=t.ConnectionError=t.ConnectionErrors=t.LogTraceNotification=t.SetTraceNotification=t.TraceFormat=t.TraceValues=t.Trace=void 0;let n=ir();Object.defineProperty(t,"Message",{enumerable:!0,get:function(){return n.Message}}),Object.defineProperty(t,"RequestType",{enumerable:!0,get:function(){return n.RequestType}}),Object.defineProperty(t,"RequestType0",{enumerable:!0,get:function(){return n.RequestType0}}),Object.defineProperty(t,"RequestType1",{enumerable:!0,get:function(){return n.RequestType1}}),Object.defineProperty(t,"RequestType2",{enumerable:!0,get:function(){return n.RequestType2}}),Object.defineProperty(t,"RequestType3",{enumerable:!0,get:function(){return n.RequestType3}}),Object.defineProperty(t,"RequestType4",{enumerable:!0,get:function(){return n.RequestType4}}),Object.defineProperty(t,"RequestType5",{enumerable:!0,get:function(){return n.RequestType5}}),Object.defineProperty(t,"RequestType6",{enumerable:!0,get:function(){return n.RequestType6}}),Object.defineProperty(t,"RequestType7",{enumerable:!0,get:function(){return n.RequestType7}}),Object.defineProperty(t,"RequestType8",{enumerable:!0,get:function(){return n.RequestType8}}),Object.defineProperty(t,"RequestType9",{enumerable:!0,get:function(){return n.RequestType9}}),Object.defineProperty(t,"ResponseError",{enumerable:!0,get:function(){return n.ResponseError}}),Object.defineProperty(t,"ErrorCodes",{enumerable:!0,get:function(){return n.ErrorCodes}}),Object.defineProperty(t,"NotificationType",{enumerable:!0,get:function(){return n.NotificationType}}),Object.defineProperty(t,"NotificationType0",{enumerable:!0,get:function(){return n.NotificationType0}}),Object.defineProperty(t,"NotificationType1",{enumerable:!0,get:function(){return n.NotificationType1}}),Object.defineProperty(t,"NotificationType2",{enumerable:!0,get:function(){return n.NotificationType2}}),Object.defineProperty(t,"NotificationType3",{enumerable:!0,get:function(){return n.NotificationType3}}),Object.defineProperty(t,"NotificationType4",{enumerable:!0,get:function(){return n.NotificationType4}}),Object.defineProperty(t,"NotificationType5",{enumerable:!0,get:function(){return n.NotificationType5}}),Object.defineProperty(t,"NotificationType6",{enumerable:!0,get:function(){return n.NotificationType6}}),Object.defineProperty(t,"NotificationType7",{enumerable:!0,get:function(){return n.NotificationType7}}),Object.defineProperty(t,"NotificationType8",{enumerable:!0,get:function(){return n.NotificationType8}}),Object.defineProperty(t,"NotificationType9",{enumerable:!0,get:function(){return n.NotificationType9}}),Object.defineProperty(t,"ParameterStructures",{enumerable:!0,get:function(){return n.ParameterStructures}});let i=ar();Object.defineProperty(t,"LinkedMap",{enumerable:!0,get:function(){return i.LinkedMap}}),Object.defineProperty(t,"LRUCache",{enumerable:!0,get:function(){return i.LRUCache}}),Object.defineProperty(t,"Touch",{enumerable:!0,get:function(){return i.Touch}});let o=or();Object.defineProperty(t,"Disposable",{enumerable:!0,get:function(){return o.Disposable}});let s=Tn();Object.defineProperty(t,"Event",{enumerable:!0,get:function(){return s.Event}}),Object.defineProperty(t,"Emitter",{enumerable:!0,get:function(){return s.Emitter}});let c=En();Object.defineProperty(t,"CancellationTokenSource",{enumerable:!0,get:function(){return c.CancellationTokenSource}}),Object.defineProperty(t,"CancellationToken",{enumerable:!0,get:function(){return c.CancellationToken}});let u=sr();Object.defineProperty(t,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return u.SharedArraySenderStrategy}}),Object.defineProperty(t,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return u.SharedArrayReceiverStrategy}});let f=lr();Object.defineProperty(t,"MessageReader",{enumerable:!0,get:function(){return f.MessageReader}}),Object.defineProperty(t,"AbstractMessageReader",{enumerable:!0,get:function(){return f.AbstractMessageReader}}),Object.defineProperty(t,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return f.ReadableStreamMessageReader}});let p=ur();Object.defineProperty(t,"MessageWriter",{enumerable:!0,get:function(){return p.MessageWriter}}),Object.defineProperty(t,"AbstractMessageWriter",{enumerable:!0,get:function(){return p.AbstractMessageWriter}}),Object.defineProperty(t,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return p.WriteableStreamMessageWriter}});let h=dr();Object.defineProperty(t,"AbstractMessageBuffer",{enumerable:!0,get:function(){return h.AbstractMessageBuffer}});let g=fr();Object.defineProperty(t,"ConnectionStrategy",{enumerable:!0,get:function(){return g.ConnectionStrategy}}),Object.defineProperty(t,"ConnectionOptions",{enumerable:!0,get:function(){return g.ConnectionOptions}}),Object.defineProperty(t,"NullLogger",{enumerable:!0,get:function(){return g.NullLogger}}),Object.defineProperty(t,"createMessageConnection",{enumerable:!0,get:function(){return g.createMessageConnection}}),Object.defineProperty(t,"ProgressToken",{enumerable:!0,get:function(){return g.ProgressToken}}),Object.defineProperty(t,"ProgressType",{enumerable:!0,get:function(){return g.ProgressType}}),Object.defineProperty(t,"Trace",{enumerable:!0,get:function(){return g.Trace}}),Object.defineProperty(t,"TraceValues",{enumerable:!0,get:function(){return g.TraceValues}}),Object.defineProperty(t,"TraceFormat",{enumerable:!0,get:function(){return g.TraceFormat}}),Object.defineProperty(t,"SetTraceNotification",{enumerable:!0,get:function(){return g.SetTraceNotification}}),Object.defineProperty(t,"LogTraceNotification",{enumerable:!0,get:function(){return g.LogTraceNotification}}),Object.defineProperty(t,"ConnectionErrors",{enumerable:!0,get:function(){return g.ConnectionErrors}}),Object.defineProperty(t,"ConnectionError",{enumerable:!0,get:function(){return g.ConnectionError}}),Object.defineProperty(t,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return g.CancellationReceiverStrategy}}),Object.defineProperty(t,"CancellationSenderStrategy",{enumerable:!0,get:function(){return g.CancellationSenderStrategy}}),Object.defineProperty(t,"CancellationStrategy",{enumerable:!0,get:function(){return g.CancellationStrategy}}),Object.defineProperty(t,"MessageStrategy",{enumerable:!0,get:function(){return g.MessageStrategy}}),t.RAL=Cn().default})),mr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0});let n=s(`node:util`),i=pr();var o=class MessageBuffer extends i.AbstractMessageBuffer{constructor(t=`utf-8`){super(t)}emptyBuffer(){return MessageBuffer.emptyBuffer}fromString(t,n){return Buffer.from(t,n)}toString(t,i){return t instanceof Buffer?t.toString(i):new n.TextDecoder(i).decode(t)}asNative(t,n){return n===void 0?t instanceof Buffer?t:Buffer.from(t):t instanceof Buffer?t.slice(0,n):Buffer.from(t,0,n)}allocNative(t){return Buffer.allocUnsafe(t)}};o.emptyBuffer=Buffer.allocUnsafe(0);var ReadableStreamWrapper=class{constructor(t){this.stream=t}onClose(t){return this.stream.on(`close`,t),i.Disposable.create(()=>this.stream.off(`close`,t))}onError(t){return this.stream.on(`error`,t),i.Disposable.create(()=>this.stream.off(`error`,t))}onEnd(t){return this.stream.on(`end`,t),i.Disposable.create(()=>this.stream.off(`end`,t))}onData(t){return this.stream.on(`data`,t),i.Disposable.create(()=>this.stream.off(`data`,t))}},WritableStreamWrapper=class{constructor(t){this.stream=t}onClose(t){return this.stream.on(`close`,t),i.Disposable.create(()=>this.stream.off(`close`,t))}onError(t){return this.stream.on(`error`,t),i.Disposable.create(()=>this.stream.off(`error`,t))}onEnd(t){return this.stream.on(`end`,t),i.Disposable.create(()=>this.stream.off(`end`,t))}write(t,n){return new Promise((i,o)=>{let callback=t=>{t==null?i():o(t)};typeof t==`string`?this.stream.write(t,n,callback):this.stream.write(t,callback)})}end(){this.stream.end()}};let c=Object.freeze({messageBuffer:Object.freeze({create:t=>new o(t)}),applicationJson:Object.freeze({encoder:Object.freeze({name:`application/json`,encode:(t,n)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(t,void 0,0),n.charset))}catch(t){return Promise.reject(t)}}}),decoder:Object.freeze({name:`application/json`,decode:(t,i)=>{try{return t instanceof Buffer?Promise.resolve(JSON.parse(t.toString(i.charset))):Promise.resolve(JSON.parse(new n.TextDecoder(i.charset).decode(t)))}catch(t){return Promise.reject(t)}}})}),stream:Object.freeze({asReadableStream:t=>new ReadableStreamWrapper(t),asWritableStream:t=>new WritableStreamWrapper(t)}),console,timer:Object.freeze({setTimeout(t,n,...i){let o=setTimeout(t,n,...i);return{dispose:()=>clearTimeout(o)}},setImmediate(t,...n){let i=setImmediate(t,...n);return{dispose:()=>clearImmediate(i)}},setInterval(t,n,...i){let o=setInterval(t,n,...i);return{dispose:()=>clearInterval(o)}}})});function RIL(){return c}(function(t){function install(){i.RAL.install(c)}t.install=install})(RIL||={}),t.default=RIL})),hr=f((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,o){o===void 0&&(o=i);var s=Object.getOwnPropertyDescriptor(n,i);(!s||(`get`in s?!n.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,o,s)}):(function(t,n,i,o){o===void 0&&(o=i),t[o]=n[i]})),i=t&&t.__exportStar||function(t,i){for(var o in t)o!=="default"&&!Object.prototype.hasOwnProperty.call(i,o)&&n(i,t,o)};Object.defineProperty(t,"__esModule",{value:!0}),t.createMessageConnection=t.createServerSocketTransport=t.createClientSocketTransport=t.createServerPipeTransport=t.createClientPipeTransport=t.generateRandomPipeName=t.StreamMessageWriter=t.StreamMessageReader=t.SocketMessageWriter=t.SocketMessageReader=t.PortMessageWriter=t.PortMessageReader=t.IPCMessageWriter=t.IPCMessageReader=void 0;let o=mr();o.default.install();let c=s(`node:path`),u=s(`node:os`),f=s(`node:crypto`),p=s(`node:net`),h=pr();i(pr(),t);var IPCMessageReader=class extends h.AbstractMessageReader{constructor(t){super(),this.process=t;let n=this.process;n.on(`error`,t=>this.fireError(t)),n.on(`close`,()=>this.fireClose())}listen(t){return this.process.on(`message`,t),h.Disposable.create(()=>this.process.off(`message`,t))}};t.IPCMessageReader=IPCMessageReader;var IPCMessageWriter=class extends h.AbstractMessageWriter{constructor(t){super(),this.process=t,this.errorCount=0;let n=this.process;n.on(`error`,t=>this.fireError(t)),n.on(`close`,()=>this.fireClose)}write(t){try{return typeof this.process.send==`function`&&this.process.send(t,void 0,void 0,n=>{n?(this.errorCount++,this.handleError(n,t)):this.errorCount=0}),Promise.resolve()}catch(n){return this.handleError(n,t),Promise.reject(n)}}handleError(t,n){this.errorCount++,this.fireError(t,n,this.errorCount)}end(){}};t.IPCMessageWriter=IPCMessageWriter;var PortMessageReader=class extends h.AbstractMessageReader{constructor(t){super(),this.onData=new h.Emitter,t.on(`close`,()=>this.fireClose),t.on(`error`,t=>this.fireError(t)),t.on(`message`,t=>{this.onData.fire(t)})}listen(t){return this.onData.event(t)}};t.PortMessageReader=PortMessageReader;var PortMessageWriter=class extends h.AbstractMessageWriter{constructor(t){super(),this.port=t,this.errorCount=0,t.on(`close`,()=>this.fireClose()),t.on(`error`,t=>this.fireError(t))}write(t){try{return this.port.postMessage(t),Promise.resolve()}catch(n){return this.handleError(n,t),Promise.reject(n)}}handleError(t,n){this.errorCount++,this.fireError(t,n,this.errorCount)}end(){}};t.PortMessageWriter=PortMessageWriter;var SocketMessageReader=class extends h.ReadableStreamMessageReader{constructor(t,n=`utf-8`){super((0,o.default)().stream.asReadableStream(t),n)}};t.SocketMessageReader=SocketMessageReader;var SocketMessageWriter=class extends h.WriteableStreamMessageWriter{constructor(t,n){super((0,o.default)().stream.asWritableStream(t),n),this.socket=t}dispose(){super.dispose(),this.socket.destroy()}};t.SocketMessageWriter=SocketMessageWriter;var StreamMessageReader=class extends h.ReadableStreamMessageReader{constructor(t,n){super((0,o.default)().stream.asReadableStream(t),n)}};t.StreamMessageReader=StreamMessageReader;var StreamMessageWriter=class extends h.WriteableStreamMessageWriter{constructor(t,n){super((0,o.default)().stream.asWritableStream(t),n)}};t.StreamMessageWriter=StreamMessageWriter;let g=process.env.XDG_RUNTIME_DIR,_=new Map([[`linux`,107],[`darwin`,103]]);function generateRandomPipeName(){let t=(0,f.randomBytes)(21).toString(`hex`);if(process.platform===`win32`)return`\\\\.\\pipe\\vscode-jsonrpc-${t}-sock`;let n;n=g?c.join(g,`vscode-ipc-${t}.sock`):c.join(u.tmpdir(),`vscode-${t}.sock`);let i=_.get(process.platform);return i!==void 0&&n.length>i&&(0,o.default)().console.warn(`WARNING: IPC handle "${n}" is longer than ${i} characters.`),n}t.generateRandomPipeName=generateRandomPipeName;function createClientPipeTransport(t,n=`utf-8`){let i,o=new Promise((t,n)=>{i=t});return new Promise((s,c)=>{let u=(0,p.createServer)(t=>{u.close(),i([new SocketMessageReader(t,n),new SocketMessageWriter(t,n)])});u.on(`error`,c),u.listen(t,()=>{u.removeListener(`error`,c),s({onConnected:()=>o})})})}t.createClientPipeTransport=createClientPipeTransport;function createServerPipeTransport(t,n=`utf-8`){let i=(0,p.createConnection)(t);return[new SocketMessageReader(i,n),new SocketMessageWriter(i,n)]}t.createServerPipeTransport=createServerPipeTransport;function createClientSocketTransport(t,n=`utf-8`){let i,o=new Promise((t,n)=>{i=t});return new Promise((s,c)=>{let u=(0,p.createServer)(t=>{u.close(),i([new SocketMessageReader(t,n),new SocketMessageWriter(t,n)])});u.on(`error`,c),u.listen(t,`127.0.0.1`,()=>{u.removeListener(`error`,c),s({onConnected:()=>o})})})}t.createClientSocketTransport=createClientSocketTransport;function createServerSocketTransport(t,n=`utf-8`){let i=(0,p.createConnection)(t,`127.0.0.1`);return[new SocketMessageReader(i,n),new SocketMessageWriter(i,n)]}t.createServerSocketTransport=createServerSocketTransport;function isReadableStream(t){let n=t;return n.read!==void 0&&n.addListener!==void 0}function isWritableStream(t){let n=t;return n.write!==void 0&&n.addListener!==void 0}function createMessageConnection(t,n,i,o){i||=h.NullLogger;let s=isReadableStream(t)?new StreamMessageReader(t):t,c=isWritableStream(n)?new StreamMessageWriter(n):n;return h.ConnectionStrategy.is(o)&&(o={connectionStrategy:o}),(0,h.createMessageConnection)(s,c,i,o)}t.createMessageConnection=createMessageConnection})),gr=f(((t,n)=>{n.exports=hr()})),Z=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ProtocolNotificationType=t.ProtocolNotificationType0=t.ProtocolRequestType=t.ProtocolRequestType0=t.RegistrationType=t.MessageDirection=void 0;let n=hr();var i;(function(t){t.clientToServer=`clientToServer`,t.serverToClient=`serverToClient`,t.both=`both`})(i||(t.MessageDirection=i={}));var RegistrationType=class{constructor(t){this.method=t}};t.RegistrationType=RegistrationType;var ProtocolRequestType0=class extends n.RequestType0{constructor(t){super(t)}};t.ProtocolRequestType0=ProtocolRequestType0;var ProtocolRequestType=class extends n.RequestType{constructor(t){super(t,n.ParameterStructures.byName)}};t.ProtocolRequestType=ProtocolRequestType;var ProtocolNotificationType0=class extends n.NotificationType0{constructor(t){super(t)}};t.ProtocolNotificationType0=ProtocolNotificationType0;var ProtocolNotificationType=class extends n.NotificationType{constructor(t){super(t,n.ParameterStructures.byName)}};t.ProtocolNotificationType=ProtocolNotificationType})),_r=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.objectLiteral=t.typedArray=t.stringArray=t.array=t.func=t.error=t.number=t.string=t.boolean=void 0;function boolean(t){return t===!0||t===!1}t.boolean=boolean;function string(t){return typeof t==`string`||t instanceof String}t.string=string;function number(t){return typeof t==`number`||t instanceof Number}t.number=number;function error(t){return t instanceof Error}t.error=error;function func(t){return typeof t==`function`}t.func=func;function array(t){return Array.isArray(t)}t.array=array;function stringArray(t){return array(t)&&t.every(t=>string(t))}t.stringArray=stringArray;function typedArray(t,n){return Array.isArray(t)&&t.every(n)}t.typedArray=typedArray;function objectLiteral(t){return typeof t==`object`&&!!t}t.objectLiteral=objectLiteral})),vr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ImplementationRequest=void 0;let n=Z();var i;(function(t){t.method=`textDocument/implementation`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(i||(t.ImplementationRequest=i={}))})),yr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TypeDefinitionRequest=void 0;let n=Z();var i;(function(t){t.method=`textDocument/typeDefinition`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(i||(t.TypeDefinitionRequest=i={}))})),br=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DidChangeWorkspaceFoldersNotification=t.WorkspaceFoldersRequest=void 0;let n=Z();var i;(function(t){t.method=`workspace/workspaceFolders`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType0(t.method)})(i||(t.WorkspaceFoldersRequest=i={}));var o;(function(t){t.method=`workspace/didChangeWorkspaceFolders`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method)})(o||(t.DidChangeWorkspaceFoldersNotification=o={}))})),xr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ConfigurationRequest=void 0;let n=Z();var i;(function(t){t.method=`workspace/configuration`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(t.method)})(i||(t.ConfigurationRequest=i={}))})),Sr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorPresentationRequest=t.DocumentColorRequest=void 0;let n=Z();var i;(function(t){t.method=`textDocument/documentColor`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(i||(t.DocumentColorRequest=i={}));var o;(function(t){t.method=`textDocument/colorPresentation`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(o||(t.ColorPresentationRequest=o={}))})),Cr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FoldingRangeRefreshRequest=t.FoldingRangeRequest=void 0;let n=Z();var i;(function(t){t.method=`textDocument/foldingRange`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(i||(t.FoldingRangeRequest=i={}));var o;(function(t){t.method=`workspace/foldingRange/refresh`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType0(t.method)})(o||(t.FoldingRangeRefreshRequest=o={}))})),wr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DeclarationRequest=void 0;let n=Z();var i;(function(t){t.method=`textDocument/declaration`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(i||(t.DeclarationRequest=i={}))})),Tr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionRangeRequest=void 0;let n=Z();var i;(function(t){t.method=`textDocument/selectionRange`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(i||(t.SelectionRangeRequest=i={}))})),Er=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WorkDoneProgressCancelNotification=t.WorkDoneProgressCreateRequest=t.WorkDoneProgress=void 0;let n=hr(),i=Z();var o;(function(t){t.type=new n.ProgressType;function is(n){return n===t.type}t.is=is})(o||(t.WorkDoneProgress=o={}));var s;(function(t){t.method=`window/workDoneProgress/create`,t.messageDirection=i.MessageDirection.serverToClient,t.type=new i.ProtocolRequestType(t.method)})(s||(t.WorkDoneProgressCreateRequest=s={}));var c;(function(t){t.method=`window/workDoneProgress/cancel`,t.messageDirection=i.MessageDirection.clientToServer,t.type=new i.ProtocolNotificationType(t.method)})(c||(t.WorkDoneProgressCancelNotification=c={}))})),Dr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CallHierarchyOutgoingCallsRequest=t.CallHierarchyIncomingCallsRequest=t.CallHierarchyPrepareRequest=void 0;let n=Z();var i;(function(t){t.method=`textDocument/prepareCallHierarchy`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(i||(t.CallHierarchyPrepareRequest=i={}));var o;(function(t){t.method=`callHierarchy/incomingCalls`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(o||(t.CallHierarchyIncomingCallsRequest=o={}));var s;(function(t){t.method=`callHierarchy/outgoingCalls`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(s||(t.CallHierarchyOutgoingCallsRequest=s={}))})),Or=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SemanticTokensRefreshRequest=t.SemanticTokensRangeRequest=t.SemanticTokensDeltaRequest=t.SemanticTokensRequest=t.SemanticTokensRegistrationType=t.TokenFormat=void 0;let n=Z();var i;(function(t){t.Relative=`relative`})(i||(t.TokenFormat=i={}));var o;(function(t){t.method=`textDocument/semanticTokens`,t.type=new n.RegistrationType(t.method)})(o||(t.SemanticTokensRegistrationType=o={}));var s;(function(t){t.method=`textDocument/semanticTokens/full`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.registrationMethod=o.method})(s||(t.SemanticTokensRequest=s={}));var c;(function(t){t.method=`textDocument/semanticTokens/full/delta`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.registrationMethod=o.method})(c||(t.SemanticTokensDeltaRequest=c={}));var u;(function(t){t.method=`textDocument/semanticTokens/range`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method),t.registrationMethod=o.method})(u||(t.SemanticTokensRangeRequest=u={}));var f;(function(t){t.method=`workspace/semanticTokens/refresh`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType0(t.method)})(f||(t.SemanticTokensRefreshRequest=f={}))})),kr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ShowDocumentRequest=void 0;let n=Z();var i;(function(t){t.method=`window/showDocument`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(t.method)})(i||(t.ShowDocumentRequest=i={}))})),Ar=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkedEditingRangeRequest=void 0;let n=Z();var i;(function(t){t.method=`textDocument/linkedEditingRange`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(i||(t.LinkedEditingRangeRequest=i={}))})),jr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WillDeleteFilesRequest=t.DidDeleteFilesNotification=t.DidRenameFilesNotification=t.WillRenameFilesRequest=t.DidCreateFilesNotification=t.WillCreateFilesRequest=t.FileOperationPatternKind=void 0;let n=Z();var i;(function(t){t.file=`file`,t.folder=`folder`})(i||(t.FileOperationPatternKind=i={}));var o;(function(t){t.method=`workspace/willCreateFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(o||(t.WillCreateFilesRequest=o={}));var s;(function(t){t.method=`workspace/didCreateFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method)})(s||(t.DidCreateFilesNotification=s={}));var c;(function(t){t.method=`workspace/willRenameFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(c||(t.WillRenameFilesRequest=c={}));var u;(function(t){t.method=`workspace/didRenameFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method)})(u||(t.DidRenameFilesNotification=u={}));var f;(function(t){t.method=`workspace/didDeleteFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method)})(f||(t.DidDeleteFilesNotification=f={}));var p;(function(t){t.method=`workspace/willDeleteFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(p||(t.WillDeleteFilesRequest=p={}))})),Mr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MonikerRequest=t.MonikerKind=t.UniquenessLevel=void 0;let n=Z();var i;(function(t){t.document=`document`,t.project=`project`,t.group=`group`,t.scheme=`scheme`,t.global=`global`})(i||(t.UniquenessLevel=i={}));var o;(function(t){t.$import=`import`,t.$export=`export`,t.local=`local`})(o||(t.MonikerKind=o={}));var s;(function(t){t.method=`textDocument/moniker`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(s||(t.MonikerRequest=s={}))})),Nr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TypeHierarchySubtypesRequest=t.TypeHierarchySupertypesRequest=t.TypeHierarchyPrepareRequest=void 0;let n=Z();var i;(function(t){t.method=`textDocument/prepareTypeHierarchy`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(i||(t.TypeHierarchyPrepareRequest=i={}));var o;(function(t){t.method=`typeHierarchy/supertypes`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(o||(t.TypeHierarchySupertypesRequest=o={}));var s;(function(t){t.method=`typeHierarchy/subtypes`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(s||(t.TypeHierarchySubtypesRequest=s={}))})),Pr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InlineValueRefreshRequest=t.InlineValueRequest=void 0;let n=Z();var i;(function(t){t.method=`textDocument/inlineValue`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(i||(t.InlineValueRequest=i={}));var o;(function(t){t.method=`workspace/inlineValue/refresh`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType0(t.method)})(o||(t.InlineValueRefreshRequest=o={}))})),Fr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InlayHintRefreshRequest=t.InlayHintResolveRequest=t.InlayHintRequest=void 0;let n=Z();var i;(function(t){t.method=`textDocument/inlayHint`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(i||(t.InlayHintRequest=i={}));var o;(function(t){t.method=`inlayHint/resolve`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(o||(t.InlayHintResolveRequest=o={}));var s;(function(t){t.method=`workspace/inlayHint/refresh`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType0(t.method)})(s||(t.InlayHintRefreshRequest=s={}))})),Ir=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagnosticRefreshRequest=t.WorkspaceDiagnosticRequest=t.DocumentDiagnosticRequest=t.DocumentDiagnosticReportKind=t.DiagnosticServerCancellationData=void 0;let n=hr(),i=_r(),o=Z();var s;(function(t){function is(t){let n=t;return n&&i.boolean(n.retriggerRequest)}t.is=is})(s||(t.DiagnosticServerCancellationData=s={}));var c;(function(t){t.Full=`full`,t.Unchanged=`unchanged`})(c||(t.DocumentDiagnosticReportKind=c={}));var u;(function(t){t.method=`textDocument/diagnostic`,t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.ProtocolRequestType(t.method),t.partialResult=new n.ProgressType})(u||(t.DocumentDiagnosticRequest=u={}));var f;(function(t){t.method=`workspace/diagnostic`,t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.ProtocolRequestType(t.method),t.partialResult=new n.ProgressType})(f||(t.WorkspaceDiagnosticRequest=f={}));var p;(function(t){t.method=`workspace/diagnostic/refresh`,t.messageDirection=o.MessageDirection.serverToClient,t.type=new o.ProtocolRequestType0(t.method)})(p||(t.DiagnosticRefreshRequest=p={}))})),Lr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DidCloseNotebookDocumentNotification=t.DidSaveNotebookDocumentNotification=t.DidChangeNotebookDocumentNotification=t.NotebookCellArrayChange=t.DidOpenNotebookDocumentNotification=t.NotebookDocumentSyncRegistrationType=t.NotebookDocument=t.NotebookCell=t.ExecutionSummary=t.NotebookCellKind=void 0;let n=(vn(),u(qe)),i=_r(),o=Z();var s;(function(t){t.Markup=1,t.Code=2;function is(t){return t===1||t===2}t.is=is})(s||(t.NotebookCellKind=s={}));var c;(function(t){function create(t,n){let i={executionOrder:t};return(n===!0||n===!1)&&(i.success=n),i}t.create=create;function is(t){let o=t;return i.objectLiteral(o)&&n.uinteger.is(o.executionOrder)&&(o.success===void 0||i.boolean(o.success))}t.is=is;function equals(t,n){return t===n?!0:t==null||n==null?!1:t.executionOrder===n.executionOrder&&t.success===n.success}t.equals=equals})(c||(t.ExecutionSummary=c={}));var f;(function(t){function create(t,n){return{kind:t,document:n}}t.create=create;function is(t){let o=t;return i.objectLiteral(o)&&s.is(o.kind)&&n.DocumentUri.is(o.document)&&(o.metadata===void 0||i.objectLiteral(o.metadata))}t.is=is;function diff(t,n){let i=new Set;return t.document!==n.document&&i.add(`document`),t.kind!==n.kind&&i.add(`kind`),t.executionSummary!==n.executionSummary&&i.add(`executionSummary`),(t.metadata!==void 0||n.metadata!==void 0)&&!equalsMetadata(t.metadata,n.metadata)&&i.add(`metadata`),(t.executionSummary!==void 0||n.executionSummary!==void 0)&&!c.equals(t.executionSummary,n.executionSummary)&&i.add(`executionSummary`),i}t.diff=diff;function equalsMetadata(t,n){if(t===n)return!0;if(t==null||n==null||typeof t!=typeof n||typeof t!=`object`)return!1;let o=Array.isArray(t),s=Array.isArray(n);if(o!==s)return!1;if(o&&s){if(t.length!==n.length)return!1;for(let i=0;i<t.length;i++)if(!equalsMetadata(t[i],n[i]))return!1}if(i.objectLiteral(t)&&i.objectLiteral(n)){let i=Object.keys(t),o=Object.keys(n);if(i.length!==o.length||(i.sort(),o.sort(),!equalsMetadata(i,o)))return!1;for(let o=0;o<i.length;o++){let s=i[o];if(!equalsMetadata(t[s],n[s]))return!1}}return!0}})(f||(t.NotebookCell=f={}));var p;(function(t){function create(t,n,i,o){return{uri:t,notebookType:n,version:i,cells:o}}t.create=create;function is(t){let o=t;return i.objectLiteral(o)&&i.string(o.uri)&&n.integer.is(o.version)&&i.typedArray(o.cells,f.is)}t.is=is})(p||(t.NotebookDocument=p={}));var h;(function(t){t.method=`notebookDocument/sync`,t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.RegistrationType(t.method)})(h||(t.NotebookDocumentSyncRegistrationType=h={}));var g;(function(t){t.method=`notebookDocument/didOpen`,t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.ProtocolNotificationType(t.method),t.registrationMethod=h.method})(g||(t.DidOpenNotebookDocumentNotification=g={}));var _;(function(t){function is(t){let o=t;return i.objectLiteral(o)&&n.uinteger.is(o.start)&&n.uinteger.is(o.deleteCount)&&(o.cells===void 0||i.typedArray(o.cells,f.is))}t.is=is;function create(t,n,i){let o={start:t,deleteCount:n};return i!==void 0&&(o.cells=i),o}t.create=create})(_||(t.NotebookCellArrayChange=_={}));var x;(function(t){t.method=`notebookDocument/didChange`,t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.ProtocolNotificationType(t.method),t.registrationMethod=h.method})(x||(t.DidChangeNotebookDocumentNotification=x={}));var S;(function(t){t.method=`notebookDocument/didSave`,t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.ProtocolNotificationType(t.method),t.registrationMethod=h.method})(S||(t.DidSaveNotebookDocumentNotification=S={}));var T;(function(t){t.method=`notebookDocument/didClose`,t.messageDirection=o.MessageDirection.clientToServer,t.type=new o.ProtocolNotificationType(t.method),t.registrationMethod=h.method})(T||(t.DidCloseNotebookDocumentNotification=T={}))})),Rr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InlineCompletionRequest=void 0;let n=Z();var i;(function(t){t.method=`textDocument/inlineCompletion`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(i||(t.InlineCompletionRequest=i={}))})),zr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WorkspaceSymbolRequest=t.CodeActionResolveRequest=t.CodeActionRequest=t.DocumentSymbolRequest=t.DocumentHighlightRequest=t.ReferencesRequest=t.DefinitionRequest=t.SignatureHelpRequest=t.SignatureHelpTriggerKind=t.HoverRequest=t.CompletionResolveRequest=t.CompletionRequest=t.CompletionTriggerKind=t.PublishDiagnosticsNotification=t.WatchKind=t.RelativePattern=t.FileChangeType=t.DidChangeWatchedFilesNotification=t.WillSaveTextDocumentWaitUntilRequest=t.WillSaveTextDocumentNotification=t.TextDocumentSaveReason=t.DidSaveTextDocumentNotification=t.DidCloseTextDocumentNotification=t.DidChangeTextDocumentNotification=t.TextDocumentContentChangeEvent=t.DidOpenTextDocumentNotification=t.TextDocumentSyncKind=t.TelemetryEventNotification=t.LogMessageNotification=t.ShowMessageRequest=t.ShowMessageNotification=t.MessageType=t.DidChangeConfigurationNotification=t.ExitNotification=t.ShutdownRequest=t.InitializedNotification=t.InitializeErrorCodes=t.InitializeRequest=t.WorkDoneProgressOptions=t.TextDocumentRegistrationOptions=t.StaticRegistrationOptions=t.PositionEncodingKind=t.FailureHandlingKind=t.ResourceOperationKind=t.UnregistrationRequest=t.RegistrationRequest=t.DocumentSelector=t.NotebookCellTextDocumentFilter=t.NotebookDocumentFilter=t.TextDocumentFilter=void 0,t.MonikerRequest=t.MonikerKind=t.UniquenessLevel=t.WillDeleteFilesRequest=t.DidDeleteFilesNotification=t.WillRenameFilesRequest=t.DidRenameFilesNotification=t.WillCreateFilesRequest=t.DidCreateFilesNotification=t.FileOperationPatternKind=t.LinkedEditingRangeRequest=t.ShowDocumentRequest=t.SemanticTokensRegistrationType=t.SemanticTokensRefreshRequest=t.SemanticTokensRangeRequest=t.SemanticTokensDeltaRequest=t.SemanticTokensRequest=t.TokenFormat=t.CallHierarchyPrepareRequest=t.CallHierarchyOutgoingCallsRequest=t.CallHierarchyIncomingCallsRequest=t.WorkDoneProgressCancelNotification=t.WorkDoneProgressCreateRequest=t.WorkDoneProgress=t.SelectionRangeRequest=t.DeclarationRequest=t.FoldingRangeRefreshRequest=t.FoldingRangeRequest=t.ColorPresentationRequest=t.DocumentColorRequest=t.ConfigurationRequest=t.DidChangeWorkspaceFoldersNotification=t.WorkspaceFoldersRequest=t.TypeDefinitionRequest=t.ImplementationRequest=t.ApplyWorkspaceEditRequest=t.ExecuteCommandRequest=t.PrepareRenameRequest=t.RenameRequest=t.PrepareSupportDefaultBehavior=t.DocumentOnTypeFormattingRequest=t.DocumentRangesFormattingRequest=t.DocumentRangeFormattingRequest=t.DocumentFormattingRequest=t.DocumentLinkResolveRequest=t.DocumentLinkRequest=t.CodeLensRefreshRequest=t.CodeLensResolveRequest=t.CodeLensRequest=t.WorkspaceSymbolResolveRequest=void 0,t.InlineCompletionRequest=t.DidCloseNotebookDocumentNotification=t.DidSaveNotebookDocumentNotification=t.DidChangeNotebookDocumentNotification=t.NotebookCellArrayChange=t.DidOpenNotebookDocumentNotification=t.NotebookDocumentSyncRegistrationType=t.NotebookDocument=t.NotebookCell=t.ExecutionSummary=t.NotebookCellKind=t.DiagnosticRefreshRequest=t.WorkspaceDiagnosticRequest=t.DocumentDiagnosticRequest=t.DocumentDiagnosticReportKind=t.DiagnosticServerCancellationData=t.InlayHintRefreshRequest=t.InlayHintResolveRequest=t.InlayHintRequest=t.InlineValueRefreshRequest=t.InlineValueRequest=t.TypeHierarchySupertypesRequest=t.TypeHierarchySubtypesRequest=t.TypeHierarchyPrepareRequest=void 0;let n=Z(),i=(vn(),u(qe)),o=_r(),s=vr();Object.defineProperty(t,"ImplementationRequest",{enumerable:!0,get:function(){return s.ImplementationRequest}});let c=yr();Object.defineProperty(t,"TypeDefinitionRequest",{enumerable:!0,get:function(){return c.TypeDefinitionRequest}});let f=br();Object.defineProperty(t,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return f.WorkspaceFoldersRequest}}),Object.defineProperty(t,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return f.DidChangeWorkspaceFoldersNotification}});let p=xr();Object.defineProperty(t,"ConfigurationRequest",{enumerable:!0,get:function(){return p.ConfigurationRequest}});let h=Sr();Object.defineProperty(t,"DocumentColorRequest",{enumerable:!0,get:function(){return h.DocumentColorRequest}}),Object.defineProperty(t,"ColorPresentationRequest",{enumerable:!0,get:function(){return h.ColorPresentationRequest}});let g=Cr();Object.defineProperty(t,"FoldingRangeRequest",{enumerable:!0,get:function(){return g.FoldingRangeRequest}}),Object.defineProperty(t,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return g.FoldingRangeRefreshRequest}});let _=wr();Object.defineProperty(t,"DeclarationRequest",{enumerable:!0,get:function(){return _.DeclarationRequest}});let x=Tr();Object.defineProperty(t,"SelectionRangeRequest",{enumerable:!0,get:function(){return x.SelectionRangeRequest}});let S=Er();Object.defineProperty(t,"WorkDoneProgress",{enumerable:!0,get:function(){return S.WorkDoneProgress}}),Object.defineProperty(t,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return S.WorkDoneProgressCreateRequest}}),Object.defineProperty(t,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return S.WorkDoneProgressCancelNotification}});let T=Dr();Object.defineProperty(t,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return T.CallHierarchyIncomingCallsRequest}}),Object.defineProperty(t,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return T.CallHierarchyOutgoingCallsRequest}}),Object.defineProperty(t,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return T.CallHierarchyPrepareRequest}});let E=Or();Object.defineProperty(t,"TokenFormat",{enumerable:!0,get:function(){return E.TokenFormat}}),Object.defineProperty(t,"SemanticTokensRequest",{enumerable:!0,get:function(){return E.SemanticTokensRequest}}),Object.defineProperty(t,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return E.SemanticTokensDeltaRequest}}),Object.defineProperty(t,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return E.SemanticTokensRangeRequest}}),Object.defineProperty(t,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return E.SemanticTokensRefreshRequest}}),Object.defineProperty(t,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return E.SemanticTokensRegistrationType}});let D=kr();Object.defineProperty(t,"ShowDocumentRequest",{enumerable:!0,get:function(){return D.ShowDocumentRequest}});let ee=Ar();Object.defineProperty(t,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return ee.LinkedEditingRangeRequest}});let O=jr();Object.defineProperty(t,"FileOperationPatternKind",{enumerable:!0,get:function(){return O.FileOperationPatternKind}}),Object.defineProperty(t,"DidCreateFilesNotification",{enumerable:!0,get:function(){return O.DidCreateFilesNotification}}),Object.defineProperty(t,"WillCreateFilesRequest",{enumerable:!0,get:function(){return O.WillCreateFilesRequest}}),Object.defineProperty(t,"DidRenameFilesNotification",{enumerable:!0,get:function(){return O.DidRenameFilesNotification}}),Object.defineProperty(t,"WillRenameFilesRequest",{enumerable:!0,get:function(){return O.WillRenameFilesRequest}}),Object.defineProperty(t,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return O.DidDeleteFilesNotification}}),Object.defineProperty(t,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return O.WillDeleteFilesRequest}});let k=Mr();Object.defineProperty(t,"UniquenessLevel",{enumerable:!0,get:function(){return k.UniquenessLevel}}),Object.defineProperty(t,"MonikerKind",{enumerable:!0,get:function(){return k.MonikerKind}}),Object.defineProperty(t,"MonikerRequest",{enumerable:!0,get:function(){return k.MonikerRequest}});let A=Nr();Object.defineProperty(t,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return A.TypeHierarchyPrepareRequest}}),Object.defineProperty(t,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return A.TypeHierarchySubtypesRequest}}),Object.defineProperty(t,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return A.TypeHierarchySupertypesRequest}});let j=Pr();Object.defineProperty(t,"InlineValueRequest",{enumerable:!0,get:function(){return j.InlineValueRequest}}),Object.defineProperty(t,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return j.InlineValueRefreshRequest}});let M=Fr();Object.defineProperty(t,"InlayHintRequest",{enumerable:!0,get:function(){return M.InlayHintRequest}}),Object.defineProperty(t,"InlayHintResolveRequest",{enumerable:!0,get:function(){return M.InlayHintResolveRequest}}),Object.defineProperty(t,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return M.InlayHintRefreshRequest}});let N=Ir();Object.defineProperty(t,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return N.DiagnosticServerCancellationData}}),Object.defineProperty(t,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return N.DocumentDiagnosticReportKind}}),Object.defineProperty(t,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return N.DocumentDiagnosticRequest}}),Object.defineProperty(t,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return N.WorkspaceDiagnosticRequest}}),Object.defineProperty(t,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return N.DiagnosticRefreshRequest}});let P=Lr();Object.defineProperty(t,"NotebookCellKind",{enumerable:!0,get:function(){return P.NotebookCellKind}}),Object.defineProperty(t,"ExecutionSummary",{enumerable:!0,get:function(){return P.ExecutionSummary}}),Object.defineProperty(t,"NotebookCell",{enumerable:!0,get:function(){return P.NotebookCell}}),Object.defineProperty(t,"NotebookDocument",{enumerable:!0,get:function(){return P.NotebookDocument}}),Object.defineProperty(t,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return P.NotebookDocumentSyncRegistrationType}}),Object.defineProperty(t,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return P.DidOpenNotebookDocumentNotification}}),Object.defineProperty(t,"NotebookCellArrayChange",{enumerable:!0,get:function(){return P.NotebookCellArrayChange}}),Object.defineProperty(t,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return P.DidChangeNotebookDocumentNotification}}),Object.defineProperty(t,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return P.DidSaveNotebookDocumentNotification}}),Object.defineProperty(t,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return P.DidCloseNotebookDocumentNotification}});let te=Rr();Object.defineProperty(t,"InlineCompletionRequest",{enumerable:!0,get:function(){return te.InlineCompletionRequest}});var F;(function(t){function is(t){let n=t;return o.string(n)||o.string(n.language)||o.string(n.scheme)||o.string(n.pattern)}t.is=is})(F||(t.TextDocumentFilter=F={}));var ne;(function(t){function is(t){let n=t;return o.objectLiteral(n)&&(o.string(n.notebookType)||o.string(n.scheme)||o.string(n.pattern))}t.is=is})(ne||(t.NotebookDocumentFilter=ne={}));var re;(function(t){function is(t){let n=t;return o.objectLiteral(n)&&(o.string(n.notebook)||ne.is(n.notebook))&&(n.language===void 0||o.string(n.language))}t.is=is})(re||(t.NotebookCellTextDocumentFilter=re={}));var ie;(function(t){function is(t){if(!Array.isArray(t))return!1;for(let n of t)if(!o.string(n)&&!F.is(n)&&!re.is(n))return!1;return!0}t.is=is})(ie||(t.DocumentSelector=ie={}));var ae;(function(t){t.method=`client/registerCapability`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(t.method)})(ae||(t.RegistrationRequest=ae={}));var oe;(function(t){t.method=`client/unregisterCapability`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(t.method)})(oe||(t.UnregistrationRequest=oe={}));var se;(function(t){t.Create=`create`,t.Rename=`rename`,t.Delete=`delete`})(se||(t.ResourceOperationKind=se={}));var ce;(function(t){t.Abort=`abort`,t.Transactional=`transactional`,t.TextOnlyTransactional=`textOnlyTransactional`,t.Undo=`undo`})(ce||(t.FailureHandlingKind=ce={}));var le;(function(t){t.UTF8=`utf-8`,t.UTF16=`utf-16`,t.UTF32=`utf-32`})(le||(t.PositionEncodingKind=le={}));var I;(function(t){function hasId(t){let n=t;return n&&o.string(n.id)&&n.id.length>0}t.hasId=hasId})(I||(t.StaticRegistrationOptions=I={}));var ue;(function(t){function is(t){let n=t;return n&&(n.documentSelector===null||ie.is(n.documentSelector))}t.is=is})(ue||(t.TextDocumentRegistrationOptions=ue={}));var de;(function(t){function is(t){let n=t;return o.objectLiteral(n)&&(n.workDoneProgress===void 0||o.boolean(n.workDoneProgress))}t.is=is;function hasWorkDoneProgress(t){let n=t;return n&&o.boolean(n.workDoneProgress)}t.hasWorkDoneProgress=hasWorkDoneProgress})(de||(t.WorkDoneProgressOptions=de={}));var L;(function(t){t.method=`initialize`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(L||(t.InitializeRequest=L={}));var R;(function(t){t.unknownProtocolVersion=1})(R||(t.InitializeErrorCodes=R={}));var fe;(function(t){t.method=`initialized`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method)})(fe||(t.InitializedNotification=fe={}));var z;(function(t){t.method=`shutdown`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType0(t.method)})(z||(t.ShutdownRequest=z={}));var B;(function(t){t.method=`exit`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType0(t.method)})(B||(t.ExitNotification=B={}));var pe;(function(t){t.method=`workspace/didChangeConfiguration`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method)})(pe||(t.DidChangeConfigurationNotification=pe={}));var me;(function(t){t.Error=1,t.Warning=2,t.Info=3,t.Log=4,t.Debug=5})(me||(t.MessageType=me={}));var he;(function(t){t.method=`window/showMessage`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolNotificationType(t.method)})(he||(t.ShowMessageNotification=he={}));var ge;(function(t){t.method=`window/showMessageRequest`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(t.method)})(ge||(t.ShowMessageRequest=ge={}));var _e;(function(t){t.method=`window/logMessage`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolNotificationType(t.method)})(_e||(t.LogMessageNotification=_e={}));var V;(function(t){t.method=`telemetry/event`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolNotificationType(t.method)})(V||(t.TelemetryEventNotification=V={}));var ve;(function(t){t.None=0,t.Full=1,t.Incremental=2})(ve||(t.TextDocumentSyncKind=ve={}));var ye;(function(t){t.method=`textDocument/didOpen`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method)})(ye||(t.DidOpenTextDocumentNotification=ye={}));var be;(function(t){function isIncremental(t){let n=t;return n!=null&&typeof n.text==`string`&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength==`number`)}t.isIncremental=isIncremental;function isFull(t){let n=t;return n!=null&&typeof n.text==`string`&&n.range===void 0&&n.rangeLength===void 0}t.isFull=isFull})(be||(t.TextDocumentContentChangeEvent=be={}));var xe;(function(t){t.method=`textDocument/didChange`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method)})(xe||(t.DidChangeTextDocumentNotification=xe={}));var Se;(function(t){t.method=`textDocument/didClose`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method)})(Se||(t.DidCloseTextDocumentNotification=Se={}));var Ce;(function(t){t.method=`textDocument/didSave`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method)})(Ce||(t.DidSaveTextDocumentNotification=Ce={}));var we;(function(t){t.Manual=1,t.AfterDelay=2,t.FocusOut=3})(we||(t.TextDocumentSaveReason=we={}));var Te;(function(t){t.method=`textDocument/willSave`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method)})(Te||(t.WillSaveTextDocumentNotification=Te={}));var Ee;(function(t){t.method=`textDocument/willSaveWaitUntil`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Ee||(t.WillSaveTextDocumentWaitUntilRequest=Ee={}));var De;(function(t){t.method=`workspace/didChangeWatchedFiles`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolNotificationType(t.method)})(De||(t.DidChangeWatchedFilesNotification=De={}));var Oe;(function(t){t.Created=1,t.Changed=2,t.Deleted=3})(Oe||(t.FileChangeType=Oe={}));var ke;(function(t){function is(t){let n=t;return o.objectLiteral(n)&&(i.URI.is(n.baseUri)||i.WorkspaceFolder.is(n.baseUri))&&o.string(n.pattern)}t.is=is})(ke||(t.RelativePattern=ke={}));var Ae;(function(t){t.Create=1,t.Change=2,t.Delete=4})(Ae||(t.WatchKind=Ae={}));var je;(function(t){t.method=`textDocument/publishDiagnostics`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolNotificationType(t.method)})(je||(t.PublishDiagnosticsNotification=je={}));var Me;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.TriggerForIncompleteCompletions=3})(Me||(t.CompletionTriggerKind=Me={}));var Ne;(function(t){t.method=`textDocument/completion`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Ne||(t.CompletionRequest=Ne={}));var Pe;(function(t){t.method=`completionItem/resolve`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Pe||(t.CompletionResolveRequest=Pe={}));var Fe;(function(t){t.method=`textDocument/hover`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Fe||(t.HoverRequest=Fe={}));var Ie;(function(t){t.Invoked=1,t.TriggerCharacter=2,t.ContentChange=3})(Ie||(t.SignatureHelpTriggerKind=Ie={}));var Le;(function(t){t.method=`textDocument/signatureHelp`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Le||(t.SignatureHelpRequest=Le={}));var Re;(function(t){t.method=`textDocument/definition`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Re||(t.DefinitionRequest=Re={}));var ze;(function(t){t.method=`textDocument/references`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(ze||(t.ReferencesRequest=ze={}));var H;(function(t){t.method=`textDocument/documentHighlight`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(H||(t.DocumentHighlightRequest=H={}));var Be;(function(t){t.method=`textDocument/documentSymbol`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Be||(t.DocumentSymbolRequest=Be={}));var Ve;(function(t){t.method=`textDocument/codeAction`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Ve||(t.CodeActionRequest=Ve={}));var He;(function(t){t.method=`codeAction/resolve`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(He||(t.CodeActionResolveRequest=He={}));var Ue;(function(t){t.method=`workspace/symbol`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Ue||(t.WorkspaceSymbolRequest=Ue={}));var We;(function(t){t.method=`workspaceSymbol/resolve`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(We||(t.WorkspaceSymbolResolveRequest=We={}));var Ge;(function(t){t.method=`textDocument/codeLens`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Ge||(t.CodeLensRequest=Ge={}));var Ke;(function(t){t.method=`codeLens/resolve`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Ke||(t.CodeLensResolveRequest=Ke={}));var Je;(function(t){t.method=`workspace/codeLens/refresh`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType0(t.method)})(Je||(t.CodeLensRefreshRequest=Je={}));var Ye;(function(t){t.method=`textDocument/documentLink`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Ye||(t.DocumentLinkRequest=Ye={}));var Xe;(function(t){t.method=`documentLink/resolve`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Xe||(t.DocumentLinkResolveRequest=Xe={}));var Ze;(function(t){t.method=`textDocument/formatting`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Ze||(t.DocumentFormattingRequest=Ze={}));var U;(function(t){t.method=`textDocument/rangeFormatting`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(U||(t.DocumentRangeFormattingRequest=U={}));var W;(function(t){t.method=`textDocument/rangesFormatting`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(W||(t.DocumentRangesFormattingRequest=W={}));var Qe;(function(t){t.method=`textDocument/onTypeFormatting`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(Qe||(t.DocumentOnTypeFormattingRequest=Qe={}));var $e;(function(t){t.Identifier=1})($e||(t.PrepareSupportDefaultBehavior=$e={}));var et;(function(t){t.method=`textDocument/rename`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(et||(t.RenameRequest=et={}));var tt;(function(t){t.method=`textDocument/prepareRename`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(tt||(t.PrepareRenameRequest=tt={}));var nt;(function(t){t.method=`workspace/executeCommand`,t.messageDirection=n.MessageDirection.clientToServer,t.type=new n.ProtocolRequestType(t.method)})(nt||(t.ExecuteCommandRequest=nt={}));var rt;(function(t){t.method=`workspace/applyEdit`,t.messageDirection=n.MessageDirection.serverToClient,t.type=new n.ProtocolRequestType(`workspace/applyEdit`)})(rt||(t.ApplyWorkspaceEditRequest=rt={}))})),Br=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createProtocolConnection=void 0;let n=hr();function createProtocolConnection(t,i,o,s){return n.ConnectionStrategy.is(s)&&(s={connectionStrategy:s}),(0,n.createMessageConnection)(t,i,o,s)}t.createProtocolConnection=createProtocolConnection})),Vr=f((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,o){o===void 0&&(o=i);var s=Object.getOwnPropertyDescriptor(n,i);(!s||(`get`in s?!n.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,o,s)}):(function(t,n,i,o){o===void 0&&(o=i),t[o]=n[i]})),i=t&&t.__exportStar||function(t,i){for(var o in t)o!=="default"&&!Object.prototype.hasOwnProperty.call(i,o)&&n(i,t,o)};Object.defineProperty(t,"__esModule",{value:!0}),t.LSPErrorCodes=t.createProtocolConnection=void 0,i(hr(),t),i((vn(),u(qe)),t),i(Z(),t),i(zr(),t);var o=Br();Object.defineProperty(t,"createProtocolConnection",{enumerable:!0,get:function(){return o.createProtocolConnection}});var s;(function(t){t.lspReservedErrorRangeStart=-32899,t.RequestFailed=-32803,t.ServerCancelled=-32802,t.ContentModified=-32801,t.RequestCancelled=-32800,t.lspReservedErrorRangeEnd=-32800})(s||(t.LSPErrorCodes=s={}))})),Q=f((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,o){o===void 0&&(o=i);var s=Object.getOwnPropertyDescriptor(n,i);(!s||(`get`in s?!n.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,o,s)}):(function(t,n,i,o){o===void 0&&(o=i),t[o]=n[i]})),i=t&&t.__exportStar||function(t,i){for(var o in t)o!=="default"&&!Object.prototype.hasOwnProperty.call(i,o)&&n(i,t,o)};Object.defineProperty(t,"__esModule",{value:!0}),t.createProtocolConnection=void 0;let o=gr();i(gr(),t),i(Vr(),t);function createProtocolConnection(t,n,i,s){return(0,o.createMessageConnection)(t,n,i,s)}t.createProtocolConnection=createProtocolConnection})),Hr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.generateUuid=t.parse=t.isUUID=t.v4=t.empty=void 0;var ValueUUID=class{constructor(t){this._value=t}asHex(){return this._value}equals(t){return this.asHex()===t.asHex()}},n=class V4UUID extends ValueUUID{static _oneOf(t){return t[Math.floor(t.length*Math.random())]}static _randomHex(){return V4UUID._oneOf(V4UUID._chars)}constructor(){super([V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),`-`,V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),`-`,`4`,V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),`-`,V4UUID._oneOf(V4UUID._timeHighBits),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),`-`,V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex()].join(``))}};n._chars=[`0`,`1`,`2`,`3`,`4`,`5`,`6`,`6`,`7`,`8`,`9`,`a`,`b`,`c`,`d`,`e`,`f`],n._timeHighBits=[`8`,`9`,`a`,`b`],t.empty=new ValueUUID(`00000000-0000-0000-0000-000000000000`);function v4(){return new n}t.v4=v4;let i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function isUUID(t){return i.test(t)}t.isUUID=isUUID;function parse(t){if(!isUUID(t))throw Error(`invalid uuid`);return new ValueUUID(t)}t.parse=parse;function generateUuid(){return v4().asHex()}t.generateUuid=generateUuid})),Ur=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.attachPartialResult=t.ProgressFeature=t.attachWorkDone=void 0;let n=Q(),i=Hr();var o=class WorkDoneProgressReporterImpl{constructor(t,n){this._connection=t,this._token=n,WorkDoneProgressReporterImpl.Instances.set(this._token,this)}begin(t,i,o,s){let c={kind:`begin`,title:t,percentage:i,message:o,cancellable:s};this._connection.sendProgress(n.WorkDoneProgress.type,this._token,c)}report(t,i){let o={kind:`report`};typeof t==`number`?(o.percentage=t,i!==void 0&&(o.message=i)):o.message=t,this._connection.sendProgress(n.WorkDoneProgress.type,this._token,o)}done(){WorkDoneProgressReporterImpl.Instances.delete(this._token),this._connection.sendProgress(n.WorkDoneProgress.type,this._token,{kind:`end`})}};o.Instances=new Map;var WorkDoneProgressServerReporterImpl=class extends o{constructor(t,i){super(t,i),this._source=new n.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},NullProgressReporter=class{constructor(){}begin(){}report(){}done(){}},NullProgressServerReporter=class extends NullProgressReporter{constructor(){super(),this._source=new n.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function attachWorkDone(t,n){if(n===void 0||n.workDoneToken===void 0)return new NullProgressReporter;let i=n.workDoneToken;return delete n.workDoneToken,new o(t,i)}t.attachWorkDone=attachWorkDone;let ProgressFeature=t=>class extends t{constructor(){super(),this._progressSupported=!1}initialize(t){super.initialize(t),t?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(n.WorkDoneProgressCancelNotification.type,t=>{let n=o.Instances.get(t.token);(n instanceof WorkDoneProgressServerReporterImpl||n instanceof NullProgressServerReporter)&&n.cancel()}))}attachWorkDoneProgress(t){return t===void 0?new NullProgressReporter:new o(this.connection,t)}createWorkDoneProgress(){if(this._progressSupported){let t=(0,i.generateUuid)();return this.connection.sendRequest(n.WorkDoneProgressCreateRequest.type,{token:t}).then(()=>new WorkDoneProgressServerReporterImpl(this.connection,t))}return Promise.resolve(new NullProgressServerReporter)}};t.ProgressFeature=ProgressFeature;var s;(function(t){t.type=new n.ProgressType})(s||={});var ResultProgressReporterImpl=class{constructor(t,n){this._connection=t,this._token=n}report(t){this._connection.sendProgress(s.type,this._token,t)}};function attachPartialResult(t,n){if(n===void 0||n.partialResultToken===void 0)return;let i=n.partialResultToken;return delete n.partialResultToken,new ResultProgressReporterImpl(t,i)}t.attachPartialResult=attachPartialResult})),Wr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ConfigurationFeature=void 0;let n=Q(),i=rr(),ConfigurationFeature=t=>class extends t{getConfiguration(t){return t?i.string(t)?this._getConfiguration({section:t}):this._getConfiguration(t):this._getConfiguration({})}_getConfiguration(t){let i={items:Array.isArray(t)?t:[t]};return this.connection.sendRequest(n.ConfigurationRequest.type,i).then(n=>Array.isArray(n)?Array.isArray(t)?n:n[0]:Array.isArray(t)?[]:null)}};t.ConfigurationFeature=ConfigurationFeature})),Gr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WorkspaceFoldersFeature=void 0;let n=Q(),WorkspaceFoldersFeature=t=>class extends t{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(t){super.initialize(t);let i=t.workspace;i&&i.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new n.Emitter,this.connection.onNotification(n.DidChangeWorkspaceFoldersNotification.type,t=>{this._onDidChangeWorkspaceFolders.fire(t.event)}))}fillServerCapabilities(t){super.fillServerCapabilities(t);let n=t.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n==`string`}getWorkspaceFolders(){return this.connection.sendRequest(n.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw Error(`Client doesn't support sending workspace folder change events.`);return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(n.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};t.WorkspaceFoldersFeature=WorkspaceFoldersFeature})),Kr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CallHierarchyFeature=void 0;let n=Q(),CallHierarchyFeature=t=>class extends t{get callHierarchy(){return{onPrepare:t=>this.connection.onRequest(n.CallHierarchyPrepareRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:t=>{let i=n.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(i,(n,o)=>t(n,o,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))},onOutgoingCalls:t=>{let i=n.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(i,(n,o)=>t(n,o,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))}}}};t.CallHierarchyFeature=CallHierarchyFeature})),qr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SemanticTokensBuilder=t.SemanticTokensDiff=t.SemanticTokensFeature=void 0;let n=Q(),SemanticTokensFeature=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(n.SemanticTokensRefreshRequest.type),on:t=>{let i=n.SemanticTokensRequest.type;return this.connection.onRequest(i,(n,o)=>t(n,o,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))},onDelta:t=>{let i=n.SemanticTokensDeltaRequest.type;return this.connection.onRequest(i,(n,o)=>t(n,o,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))},onRange:t=>{let i=n.SemanticTokensRangeRequest.type;return this.connection.onRequest(i,(n,o)=>t(n,o,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))}}}};t.SemanticTokensFeature=SemanticTokensFeature;var SemanticTokensDiff=class{constructor(t,n){this.originalSequence=t,this.modifiedSequence=n}computeDiff(){let t=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i<n&&i<t&&this.originalSequence[i]===this.modifiedSequence[i];)i++;if(i<n&&i<t){let o=t-1,s=n-1;for(;o>=i&&s>=i&&this.originalSequence[o]===this.modifiedSequence[s];)o--,s--;(o<i||s<i)&&(o++,s++);let c=o-i+1,u=this.modifiedSequence.slice(i,s+1);return u.length===1&&u[0]===this.originalSequence[o]?[{start:i,deleteCount:c-1}]:[{start:i,deleteCount:c,data:u}]}return i<n?[{start:i,deleteCount:0,data:this.modifiedSequence.slice(i)}]:i<t?[{start:i,deleteCount:t-i}]:[]}};t.SemanticTokensDiff=SemanticTokensDiff;var SemanticTokensBuilder=class{constructor(){this._prevData=void 0,this.initialize()}initialize(){this._id=Date.now(),this._prevLine=0,this._prevChar=0,this._data=[],this._dataLen=0}push(t,n,i,o,s){let c=t,u=n;this._dataLen>0&&(c-=this._prevLine,c===0&&(u-=this._prevChar)),this._data[this._dataLen++]=c,this._data[this._dataLen++]=u,this._data[this._dataLen++]=i,this._data[this._dataLen++]=o,this._data[this._dataLen++]=s,this._prevLine=t,this._prevChar=n}get id(){return this._id.toString()}previousResult(t){this.id===t&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData===void 0?this.build():{resultId:this.id,edits:new SemanticTokensDiff(this._prevData,this._data).computeDiff()}}};t.SemanticTokensBuilder=SemanticTokensBuilder})),Jr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ShowDocumentFeature=void 0;let n=Q(),ShowDocumentFeature=t=>class extends t{showDocument(t){return this.connection.sendRequest(n.ShowDocumentRequest.type,t)}};t.ShowDocumentFeature=ShowDocumentFeature})),Yr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FileOperationsFeature=void 0;let n=Q(),FileOperationsFeature=t=>class extends t{onDidCreateFiles(t){return this.connection.onNotification(n.DidCreateFilesNotification.type,n=>{t(n)})}onDidRenameFiles(t){return this.connection.onNotification(n.DidRenameFilesNotification.type,n=>{t(n)})}onDidDeleteFiles(t){return this.connection.onNotification(n.DidDeleteFilesNotification.type,n=>{t(n)})}onWillCreateFiles(t){return this.connection.onRequest(n.WillCreateFilesRequest.type,(n,i)=>t(n,i))}onWillRenameFiles(t){return this.connection.onRequest(n.WillRenameFilesRequest.type,(n,i)=>t(n,i))}onWillDeleteFiles(t){return this.connection.onRequest(n.WillDeleteFilesRequest.type,(n,i)=>t(n,i))}};t.FileOperationsFeature=FileOperationsFeature})),Xr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkedEditingRangeFeature=void 0;let n=Q(),LinkedEditingRangeFeature=t=>class extends t{onLinkedEditingRange(t){return this.connection.onRequest(n.LinkedEditingRangeRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),void 0))}};t.LinkedEditingRangeFeature=LinkedEditingRangeFeature})),Zr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TypeHierarchyFeature=void 0;let n=Q(),TypeHierarchyFeature=t=>class extends t{get typeHierarchy(){return{onPrepare:t=>this.connection.onRequest(n.TypeHierarchyPrepareRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:t=>{let i=n.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(i,(n,o)=>t(n,o,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))},onSubtypes:t=>{let i=n.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(i,(n,o)=>t(n,o,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))}}}};t.TypeHierarchyFeature=TypeHierarchyFeature})),Qr=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InlineValueFeature=void 0;let n=Q(),InlineValueFeature=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(n.InlineValueRefreshRequest.type),on:t=>this.connection.onRequest(n.InlineValueRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n)))}}};t.InlineValueFeature=InlineValueFeature})),$r=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FoldingRangeFeature=void 0;let n=Q(),FoldingRangeFeature=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(n.FoldingRangeRefreshRequest.type),on:t=>{let i=n.FoldingRangeRequest.type;return this.connection.onRequest(i,(n,o)=>t(n,o,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))}}}};t.FoldingRangeFeature=FoldingRangeFeature})),ei=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InlayHintFeature=void 0;let n=Q(),InlayHintFeature=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(n.InlayHintRefreshRequest.type),on:t=>this.connection.onRequest(n.InlayHintRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n))),resolve:t=>this.connection.onRequest(n.InlayHintResolveRequest.type,(n,i)=>t(n,i))}}};t.InlayHintFeature=InlayHintFeature})),ti=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagnosticFeature=void 0;let n=Q(),DiagnosticFeature=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(n.DiagnosticRefreshRequest.type),on:t=>this.connection.onRequest(n.DocumentDiagnosticRequest.type,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n.DocumentDiagnosticRequest.partialResult,i))),onWorkspace:t=>this.connection.onRequest(n.WorkspaceDiagnosticRequest.type,(i,o)=>t(i,o,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n.WorkspaceDiagnosticRequest.partialResult,i)))}}};t.DiagnosticFeature=DiagnosticFeature})),ni=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextDocuments=void 0;let n=Q();var TextDocuments=class{constructor(t){this._configuration=t,this._syncedDocuments=new Map,this._onDidChangeContent=new n.Emitter,this._onDidOpen=new n.Emitter,this._onDidClose=new n.Emitter,this._onDidSave=new n.Emitter,this._onWillSave=new n.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(t){this._willSaveWaitUntil=t}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(t){return this._syncedDocuments.get(t)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(t){t.__textDocumentSync=n.TextDocumentSyncKind.Incremental;let i=[];return i.push(t.onDidOpenTextDocument(t=>{let n=t.textDocument,i=this._configuration.create(n.uri,n.languageId,n.version,n.text);this._syncedDocuments.set(n.uri,i);let o=Object.freeze({document:i});this._onDidOpen.fire(o),this._onDidChangeContent.fire(o)})),i.push(t.onDidChangeTextDocument(t=>{let n=t.textDocument,i=t.contentChanges;if(i.length===0)return;let{version:o}=n;if(o==null)throw Error(`Received document change event for ${n.uri} without valid version identifier`);let s=this._syncedDocuments.get(n.uri);s!==void 0&&(s=this._configuration.update(s,i,o),this._syncedDocuments.set(n.uri,s),this._onDidChangeContent.fire(Object.freeze({document:s})))})),i.push(t.onDidCloseTextDocument(t=>{let n=this._syncedDocuments.get(t.textDocument.uri);n!==void 0&&(this._syncedDocuments.delete(t.textDocument.uri),this._onDidClose.fire(Object.freeze({document:n})))})),i.push(t.onWillSaveTextDocument(t=>{let n=this._syncedDocuments.get(t.textDocument.uri);n!==void 0&&this._onWillSave.fire(Object.freeze({document:n,reason:t.reason}))})),i.push(t.onWillSaveTextDocumentWaitUntil((t,n)=>{let i=this._syncedDocuments.get(t.textDocument.uri);return i!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:i,reason:t.reason}),n):[]})),i.push(t.onDidSaveTextDocument(t=>{let n=this._syncedDocuments.get(t.textDocument.uri);n!==void 0&&this._onDidSave.fire(Object.freeze({document:n}))})),n.Disposable.create(()=>{i.forEach(t=>t.dispose())})}};t.TextDocuments=TextDocuments})),ri=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NotebookDocuments=t.NotebookSyncFeature=void 0;let n=Q(),i=ni(),NotebookSyncFeature=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:t=>this.connection.onNotification(n.DidOpenNotebookDocumentNotification.type,n=>{t(n)}),onDidChangeNotebookDocument:t=>this.connection.onNotification(n.DidChangeNotebookDocumentNotification.type,n=>{t(n)}),onDidSaveNotebookDocument:t=>this.connection.onNotification(n.DidSaveNotebookDocumentNotification.type,n=>{t(n)}),onDidCloseNotebookDocument:t=>this.connection.onNotification(n.DidCloseNotebookDocumentNotification.type,n=>{t(n)})}}};t.NotebookSyncFeature=NotebookSyncFeature;var o=class CellTextDocumentConnection{onDidOpenTextDocument(t){return this.openHandler=t,n.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(t){this.openHandler&&this.openHandler(t)}onDidChangeTextDocument(t){return this.changeHandler=t,n.Disposable.create(()=>{this.changeHandler=t})}changeTextDocument(t){this.changeHandler&&this.changeHandler(t)}onDidCloseTextDocument(t){return this.closeHandler=t,n.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(t){this.closeHandler&&this.closeHandler(t)}onWillSaveTextDocument(){return CellTextDocumentConnection.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return CellTextDocumentConnection.NULL_DISPOSE}onDidSaveTextDocument(){return CellTextDocumentConnection.NULL_DISPOSE}};o.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var NotebookDocuments=class{constructor(t){this._cellTextDocuments=t instanceof i.TextDocuments?t:new i.TextDocuments(t),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new n.Emitter,this._onDidChange=new n.Emitter,this._onDidSave=new n.Emitter,this._onDidClose=new n.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(t){return this._cellTextDocuments.get(t.document)}getNotebookDocument(t){return this.notebookDocuments.get(t)}getNotebookCell(t){let n=this.notebookCellMap.get(t);return n&&n[0]}findNotebookDocumentForCell(t){let n=typeof t==`string`?t:t.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(t){let i=new o,s=[];return s.push(this.cellTextDocuments.listen(i)),s.push(t.notebooks.synchronization.onDidOpenNotebookDocument(t=>{this.notebookDocuments.set(t.notebookDocument.uri,t.notebookDocument);for(let n of t.cellTextDocuments)i.openTextDocument({textDocument:n});this.updateCellMap(t.notebookDocument),this._onDidOpen.fire(t.notebookDocument)})),s.push(t.notebooks.synchronization.onDidChangeNotebookDocument(t=>{let n=this.notebookDocuments.get(t.notebookDocument.uri);if(n===void 0)return;n.version=t.notebookDocument.version;let o=n.metadata,s=!1,c=t.change;c.metadata!==void 0&&(s=!0,n.metadata=c.metadata);let u=[],f=[],p=[],h=[];if(c.cells!==void 0){let t=c.cells;if(t.structure!==void 0){let o=t.structure.array;if(n.cells.splice(o.start,o.deleteCount,...o.cells===void 0?[]:o.cells),t.structure.didOpen!==void 0)for(let n of t.structure.didOpen)i.openTextDocument({textDocument:n}),u.push(n.uri);if(t.structure.didClose)for(let n of t.structure.didClose)i.closeTextDocument({textDocument:n}),f.push(n.uri)}if(t.data!==void 0){let i=new Map(t.data.map(t=>[t.document,t]));for(let t=0;t<=n.cells.length;t++){let o=i.get(n.cells[t].document);if(o!==void 0){let s=n.cells.splice(t,1,o);if(p.push({old:s[0],new:o}),i.delete(o.document),i.size===0)break}}}if(t.textContent!==void 0)for(let n of t.textContent)i.changeTextDocument({textDocument:n.document,contentChanges:n.changes}),h.push(n.document.uri)}this.updateCellMap(n);let g={notebookDocument:n};s&&(g.metadata={old:o,new:n.metadata});let _=[];for(let t of u)_.push(this.getNotebookCell(t));let x=[];for(let t of f)x.push(this.getNotebookCell(t));let S=[];for(let t of h)S.push(this.getNotebookCell(t));(_.length>0||x.length>0||p.length>0||S.length>0)&&(g.cells={added:_,removed:x,changed:{data:p,textContent:S}}),(g.metadata!==void 0||g.cells!==void 0)&&this._onDidChange.fire(g)})),s.push(t.notebooks.synchronization.onDidSaveNotebookDocument(t=>{let n=this.notebookDocuments.get(t.notebookDocument.uri);n!==void 0&&this._onDidSave.fire(n)})),s.push(t.notebooks.synchronization.onDidCloseNotebookDocument(t=>{let n=this.notebookDocuments.get(t.notebookDocument.uri);if(n!==void 0){this._onDidClose.fire(n);for(let n of t.cellTextDocuments)i.closeTextDocument({textDocument:n});this.notebookDocuments.delete(t.notebookDocument.uri);for(let t of n.cells)this.notebookCellMap.delete(t.document)}})),n.Disposable.create(()=>{s.forEach(t=>t.dispose())})}updateCellMap(t){for(let n of t.cells)this.notebookCellMap.set(n.document,[n,t])}};t.NotebookDocuments=NotebookDocuments})),ii=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MonikerFeature=void 0;let n=Q(),MonikerFeature=t=>class extends t{get moniker(){return{on:t=>{let i=n.MonikerRequest.type;return this.connection.onRequest(i,(n,o)=>t(n,o,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))}}}};t.MonikerFeature=MonikerFeature})),ai=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createConnection=t.combineFeatures=t.combineNotebooksFeatures=t.combineLanguagesFeatures=t.combineWorkspaceFeatures=t.combineWindowFeatures=t.combineClientFeatures=t.combineTracerFeatures=t.combineTelemetryFeatures=t.combineConsoleFeatures=t._NotebooksImpl=t._LanguagesImpl=t.BulkUnregistration=t.BulkRegistration=t.ErrorMessageTracker=void 0;let n=Q(),i=rr(),o=Hr(),s=Ur(),c=Wr(),u=Gr(),f=Kr(),p=qr(),h=Jr(),g=Yr(),_=Xr(),x=Zr(),S=Qr(),T=$r(),E=ei(),D=ti(),ee=ri(),O=ii();function null2Undefined(t){if(t!==null)return t}var ErrorMessageTracker=class{constructor(){this._messages=Object.create(null)}add(t){let n=this._messages[t];n||=0,n++,this._messages[t]=n}sendErrors(t){Object.keys(this._messages).forEach(n=>{t.window.showErrorMessage(n)})}};t.ErrorMessageTracker=ErrorMessageTracker;var RemoteConsoleImpl=class{constructor(){}rawAttach(t){this._rawConnection=t}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}fillServerCapabilities(t){}initialize(t){}error(t){this.send(n.MessageType.Error,t)}warn(t){this.send(n.MessageType.Warning,t)}info(t){this.send(n.MessageType.Info,t)}log(t){this.send(n.MessageType.Log,t)}debug(t){this.send(n.MessageType.Debug,t)}send(t,i){this._rawConnection&&this._rawConnection.sendNotification(n.LogMessageNotification.type,{type:t,message:i}).catch(()=>{(0,n.RAL)().console.error(`Sending log message failed`)})}},_RemoteWindowImpl=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}showErrorMessage(t,...i){let o={type:n.MessageType.Error,message:t,actions:i};return this.connection.sendRequest(n.ShowMessageRequest.type,o).then(null2Undefined)}showWarningMessage(t,...i){let o={type:n.MessageType.Warning,message:t,actions:i};return this.connection.sendRequest(n.ShowMessageRequest.type,o).then(null2Undefined)}showInformationMessage(t,...i){let o={type:n.MessageType.Info,message:t,actions:i};return this.connection.sendRequest(n.ShowMessageRequest.type,o).then(null2Undefined)}};let k=(0,h.ShowDocumentFeature)((0,s.ProgressFeature)(_RemoteWindowImpl));var A;(function(t){function create(){return new BulkRegistrationImpl}t.create=create})(A||(t.BulkRegistration=A={}));var BulkRegistrationImpl=class{constructor(){this._registrations=[],this._registered=new Set}add(t,n){let s=i.string(t)?t:t.method;if(this._registered.has(s))throw Error(`${s} is already added to this registration`);let c=o.generateUuid();this._registrations.push({id:c,method:s,registerOptions:n||{}}),this._registered.add(s)}asRegistrationParams(){return{registrations:this._registrations}}},j;(function(t){function create(){return new BulkUnregistrationImpl(void 0,[])}t.create=create})(j||(t.BulkUnregistration=j={}));var BulkUnregistrationImpl=class{constructor(t,n){this._connection=t,this._unregistrations=new Map,n.forEach(t=>{this._unregistrations.set(t.method,t)})}get isAttached(){return!!this._connection}attach(t){this._connection=t}add(t){this._unregistrations.set(t.method,t)}dispose(){let t=[];for(let n of this._unregistrations.values())t.push(n);let i={unregisterations:t};this._connection.sendRequest(n.UnregistrationRequest.type,i).catch(()=>{this._connection.console.info(`Bulk unregistration failed.`)})}disposeSingle(t){let o=i.string(t)?t:t.method,s=this._unregistrations.get(o);if(!s)return!1;let c={unregisterations:[s]};return this._connection.sendRequest(n.UnregistrationRequest.type,c).then(()=>{this._unregistrations.delete(o)},t=>{this._connection.console.info(`Un-registering request handler for ${s.id} failed.`)}),!0}},RemoteClientImpl=class{attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}register(t,n,i){return t instanceof BulkRegistrationImpl?this.registerMany(t):t instanceof BulkUnregistrationImpl?this.registerSingle1(t,n,i):this.registerSingle2(t,n)}registerSingle1(t,s,c){let u=i.string(s)?s:s.method,f=o.generateUuid(),p={registrations:[{id:f,method:u,registerOptions:c||{}}]};return t.isAttached||t.attach(this.connection),this.connection.sendRequest(n.RegistrationRequest.type,p).then(n=>(t.add({id:f,method:u}),t),t=>(this.connection.console.info(`Registering request handler for ${u} failed.`),Promise.reject(t)))}registerSingle2(t,s){let c=i.string(t)?t:t.method,u=o.generateUuid(),f={registrations:[{id:u,method:c,registerOptions:s||{}}]};return this.connection.sendRequest(n.RegistrationRequest.type,f).then(t=>n.Disposable.create(()=>{this.unregisterSingle(u,c).catch(()=>{this.connection.console.info(`Un-registering capability with id ${u} failed.`)})}),t=>(this.connection.console.info(`Registering request handler for ${c} failed.`),Promise.reject(t)))}unregisterSingle(t,i){let o={unregisterations:[{id:t,method:i}]};return this.connection.sendRequest(n.UnregistrationRequest.type,o).catch(()=>{this.connection.console.info(`Un-registering request handler for ${t} failed.`)})}registerMany(t){let i=t.asRegistrationParams();return this.connection.sendRequest(n.RegistrationRequest.type,i).then(()=>new BulkUnregistrationImpl(this._connection,i.registrations.map(t=>({id:t.id,method:t.method}))),t=>(this.connection.console.info(`Bulk registration failed.`),Promise.reject(t)))}},_RemoteWorkspaceImpl=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}applyEdit(t){function isApplyWorkspaceEditParams(t){return t&&!!t.edit}let i=isApplyWorkspaceEditParams(t)?t:{edit:t};return this.connection.sendRequest(n.ApplyWorkspaceEditRequest.type,i)}};let M=(0,g.FileOperationsFeature)((0,u.WorkspaceFoldersFeature)((0,c.ConfigurationFeature)(_RemoteWorkspaceImpl)));var TracerImpl=class{constructor(){this._trace=n.Trace.Off}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}set trace(t){this._trace=t}log(t,i){this._trace!==n.Trace.Off&&this.connection.sendNotification(n.LogTraceNotification.type,{message:t,verbose:this._trace===n.Trace.Verbose?i:void 0}).catch(()=>{})}},TelemetryImpl=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}logEvent(t){this.connection.sendNotification(n.TelemetryEventNotification.type,t).catch(()=>{this.connection.console.log(`Sending TelemetryEventNotification failed`)})}},_LanguagesImpl=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}attachWorkDoneProgress(t){return(0,s.attachWorkDone)(this.connection,t)}attachPartialResultProgress(t,n){return(0,s.attachPartialResult)(this.connection,n)}};t._LanguagesImpl=_LanguagesImpl;let N=(0,T.FoldingRangeFeature)((0,O.MonikerFeature)((0,D.DiagnosticFeature)((0,E.InlayHintFeature)((0,S.InlineValueFeature)((0,x.TypeHierarchyFeature)((0,_.LinkedEditingRangeFeature)((0,p.SemanticTokensFeature)((0,f.CallHierarchyFeature)(_LanguagesImpl)))))))));var _NotebooksImpl=class{constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}attachWorkDoneProgress(t){return(0,s.attachWorkDone)(this.connection,t)}attachPartialResultProgress(t,n){return(0,s.attachPartialResult)(this.connection,n)}};t._NotebooksImpl=_NotebooksImpl;let P=(0,ee.NotebookSyncFeature)(_NotebooksImpl);function combineConsoleFeatures(t,n){return function(i){return n(t(i))}}t.combineConsoleFeatures=combineConsoleFeatures;function combineTelemetryFeatures(t,n){return function(i){return n(t(i))}}t.combineTelemetryFeatures=combineTelemetryFeatures;function combineTracerFeatures(t,n){return function(i){return n(t(i))}}t.combineTracerFeatures=combineTracerFeatures;function combineClientFeatures(t,n){return function(i){return n(t(i))}}t.combineClientFeatures=combineClientFeatures;function combineWindowFeatures(t,n){return function(i){return n(t(i))}}t.combineWindowFeatures=combineWindowFeatures;function combineWorkspaceFeatures(t,n){return function(i){return n(t(i))}}t.combineWorkspaceFeatures=combineWorkspaceFeatures;function combineLanguagesFeatures(t,n){return function(i){return n(t(i))}}t.combineLanguagesFeatures=combineLanguagesFeatures;function combineNotebooksFeatures(t,n){return function(i){return n(t(i))}}t.combineNotebooksFeatures=combineNotebooksFeatures;function combineFeatures(t,n){function combine(t,n,i){return t&&n?i(t,n):t||n}return{__brand:`features`,console:combine(t.console,n.console,combineConsoleFeatures),tracer:combine(t.tracer,n.tracer,combineTracerFeatures),telemetry:combine(t.telemetry,n.telemetry,combineTelemetryFeatures),client:combine(t.client,n.client,combineClientFeatures),window:combine(t.window,n.window,combineWindowFeatures),workspace:combine(t.workspace,n.workspace,combineWorkspaceFeatures),languages:combine(t.languages,n.languages,combineLanguagesFeatures),notebooks:combine(t.notebooks,n.notebooks,combineNotebooksFeatures)}}t.combineFeatures=combineFeatures;function createConnection(t,o,c){let u=c&&c.console?new(c.console(RemoteConsoleImpl)):new RemoteConsoleImpl,f=t(u);u.rawAttach(f);let p=c&&c.tracer?new(c.tracer(TracerImpl)):new TracerImpl,h=c&&c.telemetry?new(c.telemetry(TelemetryImpl)):new TelemetryImpl,g=c&&c.client?new(c.client(RemoteClientImpl)):new RemoteClientImpl,_=c&&c.window?new(c.window(k)):new k,x=c&&c.workspace?new(c.workspace(M)):new M,S=c&&c.languages?new(c.languages(N)):new N,T=c&&c.notebooks?new(c.notebooks(P)):new P,E=[u,p,h,g,_,x,S,T];function asPromise(t){return t instanceof Promise?t:i.thenable(t)?new Promise((n,i)=>{t.then(t=>n(t),t=>i(t))}):Promise.resolve(t)}let D,ee,O,A={listen:()=>f.listen(),sendRequest:(t,...n)=>f.sendRequest(i.string(t)?t:t.method,...n),onRequest:(t,n)=>f.onRequest(t,n),sendNotification:(t,n)=>{let o=i.string(t)?t:t.method;return f.sendNotification(o,n)},onNotification:(t,n)=>f.onNotification(t,n),onProgress:f.onProgress,sendProgress:f.sendProgress,onInitialize:t=>(ee=t,{dispose:()=>{ee=void 0}}),onInitialized:t=>f.onNotification(n.InitializedNotification.type,t),onShutdown:t=>(D=t,{dispose:()=>{D=void 0}}),onExit:t=>(O=t,{dispose:()=>{O=void 0}}),get console(){return u},get telemetry(){return h},get tracer(){return p},get client(){return g},get window(){return _},get workspace(){return x},get languages(){return S},get notebooks(){return T},onDidChangeConfiguration:t=>f.onNotification(n.DidChangeConfigurationNotification.type,t),onDidChangeWatchedFiles:t=>f.onNotification(n.DidChangeWatchedFilesNotification.type,t),__textDocumentSync:void 0,onDidOpenTextDocument:t=>f.onNotification(n.DidOpenTextDocumentNotification.type,t),onDidChangeTextDocument:t=>f.onNotification(n.DidChangeTextDocumentNotification.type,t),onDidCloseTextDocument:t=>f.onNotification(n.DidCloseTextDocumentNotification.type,t),onWillSaveTextDocument:t=>f.onNotification(n.WillSaveTextDocumentNotification.type,t),onWillSaveTextDocumentWaitUntil:t=>f.onRequest(n.WillSaveTextDocumentWaitUntilRequest.type,t),onDidSaveTextDocument:t=>f.onNotification(n.DidSaveTextDocumentNotification.type,t),sendDiagnostics:t=>f.sendNotification(n.PublishDiagnosticsNotification.type,t),onHover:t=>f.onRequest(n.HoverRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),void 0)),onCompletion:t=>f.onRequest(n.CompletionRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onCompletionResolve:t=>f.onRequest(n.CompletionResolveRequest.type,t),onSignatureHelp:t=>f.onRequest(n.SignatureHelpRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),void 0)),onDeclaration:t=>f.onRequest(n.DeclarationRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onDefinition:t=>f.onRequest(n.DefinitionRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onTypeDefinition:t=>f.onRequest(n.TypeDefinitionRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onImplementation:t=>f.onRequest(n.ImplementationRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onReferences:t=>f.onRequest(n.ReferencesRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onDocumentHighlight:t=>f.onRequest(n.DocumentHighlightRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onDocumentSymbol:t=>f.onRequest(n.DocumentSymbolRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onWorkspaceSymbol:t=>f.onRequest(n.WorkspaceSymbolRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onWorkspaceSymbolResolve:t=>f.onRequest(n.WorkspaceSymbolResolveRequest.type,t),onCodeAction:t=>f.onRequest(n.CodeActionRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onCodeActionResolve:t=>f.onRequest(n.CodeActionResolveRequest.type,(n,i)=>t(n,i)),onCodeLens:t=>f.onRequest(n.CodeLensRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onCodeLensResolve:t=>f.onRequest(n.CodeLensResolveRequest.type,(n,i)=>t(n,i)),onDocumentFormatting:t=>f.onRequest(n.DocumentFormattingRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),void 0)),onDocumentRangeFormatting:t=>f.onRequest(n.DocumentRangeFormattingRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),void 0)),onDocumentOnTypeFormatting:t=>f.onRequest(n.DocumentOnTypeFormattingRequest.type,(n,i)=>t(n,i)),onRenameRequest:t=>f.onRequest(n.RenameRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),void 0)),onPrepareRename:t=>f.onRequest(n.PrepareRenameRequest.type,(n,i)=>t(n,i)),onDocumentLinks:t=>f.onRequest(n.DocumentLinkRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onDocumentLinkResolve:t=>f.onRequest(n.DocumentLinkResolveRequest.type,(n,i)=>t(n,i)),onDocumentColor:t=>f.onRequest(n.DocumentColorRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onColorPresentation:t=>f.onRequest(n.ColorPresentationRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onFoldingRanges:t=>f.onRequest(n.FoldingRangeRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onSelectionRanges:t=>f.onRequest(n.SelectionRangeRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),(0,s.attachPartialResult)(f,n))),onExecuteCommand:t=>f.onRequest(n.ExecuteCommandRequest.type,(n,i)=>t(n,i,(0,s.attachWorkDone)(f,n),void 0)),dispose:()=>f.dispose()};for(let t of E)t.attach(A);return f.onRequest(n.InitializeRequest.type,t=>{o.initialize(t),i.string(t.trace)&&(p.trace=n.Trace.fromString(t.trace));for(let n of E)n.initialize(t.capabilities);if(ee)return asPromise(ee(t,new n.CancellationTokenSource().token,(0,s.attachWorkDone)(f,t),void 0)).then(t=>{if(t instanceof n.ResponseError)return t;let o=t;o||={capabilities:{}};let s=o.capabilities;s||(s={},o.capabilities=s),s.textDocumentSync===void 0||s.textDocumentSync===null?s.textDocumentSync=i.number(A.__textDocumentSync)?A.__textDocumentSync:n.TextDocumentSyncKind.None:!i.number(s.textDocumentSync)&&!i.number(s.textDocumentSync.change)&&(s.textDocumentSync.change=i.number(A.__textDocumentSync)?A.__textDocumentSync:n.TextDocumentSyncKind.None);for(let t of E)t.fillServerCapabilities(s);return o});{let t={capabilities:{textDocumentSync:n.TextDocumentSyncKind.None}};for(let n of E)n.fillServerCapabilities(t.capabilities);return t}}),f.onRequest(n.ShutdownRequest.type,()=>{if(o.shutdownReceived=!0,D)return D(new n.CancellationTokenSource().token)}),f.onNotification(n.ExitNotification.type,()=>{try{O&&O()}finally{o.shutdownReceived?o.exit(0):o.exit(1)}}),f.onNotification(n.SetTraceNotification.type,t=>{p.trace=n.Trace.fromString(t.value)}),A}t.createConnection=createConnection})),oi=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveModulePath=t.FileSystem=t.resolveGlobalYarnPath=t.resolveGlobalNodePath=t.resolve=t.uriToFilePath=void 0;let n=s(`node:url`),i=s(`node:path`),o=s(`node:fs`),c=s(`node:child_process`);function uriToFilePath(t){let o=n.parse(t);if(o.protocol!==`file:`||!o.path)return;let s=o.path.split(`/`);for(var c=0,u=s.length;c<u;c++)s[c]=decodeURIComponent(s[c]);if(process.platform===`win32`&&s.length>1){let t=s[0],n=s[1];t.length===0&&n.length>1&&n[1]===`:`&&s.shift()}return i.normalize(s.join(`/`))}t.uriToFilePath=uriToFilePath;function isWindows(){return process.platform===`win32`}function resolve(t,n,s,u){let f=`NODE_PATH`,p=[`var p = process;`,`p.on('message',function(m){`,`if(m.c==='e'){`,`p.exit(0);`,`}`,`else if(m.c==='rs'){`,`try{`,`var r=require.resolve(m.a);`,`p.send({c:'r',s:true,r:r});`,`}`,`catch(err){`,`p.send({c:'r',s:false});`,`}`,`}`,`});`].join(``);return new Promise((h,g)=>{let _=process.env,x=Object.create(null);Object.keys(_).forEach(t=>x[t]=_[t]),n&&o.existsSync(n)&&(x[f]?x[f]=n+i.delimiter+x[f]:x[f]=n,u&&u(`NODE_PATH value is: ${x[f]}`)),x.ELECTRON_RUN_AS_NODE=`1`;try{let n=(0,c.fork)(``,[],{cwd:s,env:x,execArgv:[`-e`,p]});if(n.pid===void 0){g(Error(`Starting process to resolve node module ${t} failed`));return}n.on(`error`,t=>{g(t)}),n.on(`message`,i=>{i.c===`r`&&(n.send({c:`e`}),i.s?h(i.r):g(Error(`Failed to resolve module: ${t}`)))});let i={c:`rs`,a:t};n.send(i)}catch(t){g(t)}})}t.resolve=resolve;function resolveGlobalNodePath(t){let n=`npm`,o=Object.create(null);Object.keys(process.env).forEach(t=>o[t]=process.env[t]),o.NO_UPDATE_NOTIFIER=`true`;let s={encoding:`utf8`,env:o};isWindows()&&(n=`npm.cmd`,s.shell=!0);let handler=()=>{};try{process.on(`SIGPIPE`,handler);let o=(0,c.spawnSync)(n,[`config`,`get`,`prefix`],s).stdout;if(!o){t&&t(`'npm config get prefix' didn't return a value.`);return}let u=o.trim();return t&&t(`'npm config get prefix' value is: ${u}`),u.length>0?isWindows()?i.join(u,`node_modules`):i.join(u,`lib`,`node_modules`):void 0}catch{return}finally{process.removeListener(`SIGPIPE`,handler)}}t.resolveGlobalNodePath=resolveGlobalNodePath;function resolveGlobalYarnPath(t){let n=`yarn`,o={encoding:`utf8`};isWindows()&&(n=`yarn.cmd`,o.shell=!0);let handler=()=>{};try{process.on(`SIGPIPE`,handler);let s=(0,c.spawnSync)(n,[`global`,`dir`,`--json`],o),u=s.stdout;if(!u){t&&(t(`'yarn global dir' didn't return a value.`),s.stderr&&t(s.stderr));return}let f=u.trim().split(/\r?\n/);for(let t of f)try{let n=JSON.parse(t);if(n.type===`log`)return i.join(n.data,`node_modules`)}catch{}return}catch{return}finally{process.removeListener(`SIGPIPE`,handler)}}t.resolveGlobalYarnPath=resolveGlobalYarnPath;var u;(function(t){let n;function isCaseSensitive(){return n===void 0&&(n=process.platform===`win32`?!1:!o.existsSync(__filename.toUpperCase())||!o.existsSync(__filename.toLowerCase())),n}t.isCaseSensitive=isCaseSensitive;function isParent(t,n){return isCaseSensitive()?i.normalize(n).indexOf(i.normalize(t))===0:i.normalize(n).toLowerCase().indexOf(i.normalize(t).toLowerCase())===0}t.isParent=isParent})(u||(t.FileSystem=u={}));function resolveModulePath(t,n,o,s){return o?(i.isAbsolute(o)||(o=i.join(t,o)),resolve(n,o,o,s).then(t=>u.isParent(o,t)?t:Promise.reject(Error(`Failed to load ${n} from node path location.`))).then(void 0,i=>resolve(n,resolveGlobalNodePath(s),t,s))):resolve(n,resolveGlobalNodePath(s),t,s)}t.resolveModulePath=resolveModulePath})),si=f(((t,n)=>{n.exports=Q()})),ci=f((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InlineCompletionFeature=void 0;let n=Q(),InlineCompletionFeature=t=>class extends t{get inlineCompletion(){return{on:t=>this.connection.onRequest(n.InlineCompletionRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n)))}}};t.InlineCompletionFeature=InlineCompletionFeature})),li=f((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,o){o===void 0&&(o=i);var s=Object.getOwnPropertyDescriptor(n,i);(!s||(`get`in s?!n.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,o,s)}):(function(t,n,i,o){o===void 0&&(o=i),t[o]=n[i]})),i=t&&t.__exportStar||function(t,i){for(var o in t)o!=="default"&&!Object.prototype.hasOwnProperty.call(i,o)&&n(i,t,o)};Object.defineProperty(t,"__esModule",{value:!0}),t.ProposedFeatures=t.NotebookDocuments=t.TextDocuments=t.SemanticTokensBuilder=void 0;let o=qr();Object.defineProperty(t,"SemanticTokensBuilder",{enumerable:!0,get:function(){return o.SemanticTokensBuilder}});let s=ci();i(Q(),t);let c=ni();Object.defineProperty(t,"TextDocuments",{enumerable:!0,get:function(){return c.TextDocuments}});let u=ri();Object.defineProperty(t,"NotebookDocuments",{enumerable:!0,get:function(){return u.NotebookDocuments}}),i(ai(),t);var f;(function(t){t.all={__brand:`features`,languages:s.InlineCompletionFeature}})(f||(t.ProposedFeatures=f={}))})),ui=f((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,o){o===void 0&&(o=i);var s=Object.getOwnPropertyDescriptor(n,i);(!s||(`get`in s?!n.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,o,s)}):(function(t,n,i,o){o===void 0&&(o=i),t[o]=n[i]})),i=t&&t.__exportStar||function(t,i){for(var o in t)o!=="default"&&!Object.prototype.hasOwnProperty.call(i,o)&&n(i,t,o)};Object.defineProperty(t,"__esModule",{value:!0}),t.createConnection=t.Files=void 0;let o=s(`node:util`),c=rr(),u=ai(),f=oi(),p=si();i(si(),t),i(li(),t);var h;(function(t){t.uriToFilePath=f.uriToFilePath,t.resolveGlobalNodePath=f.resolveGlobalNodePath,t.resolveGlobalYarnPath=f.resolveGlobalYarnPath,t.resolve=f.resolve,t.resolveModulePath=f.resolveModulePath})(h||(t.Files=h={}));let g=!1,_;function setupExitTimer(){let t=`--clientProcessId`;function runTimer(t){try{let n=parseInt(t);isNaN(n)||(_=setInterval(()=>{try{process.kill(n,0)}catch{process.exit(+!g)}},3e3))}catch{}}for(let n=2;n<process.argv.length;n++){let i=process.argv[n];if(i===t&&n+1<process.argv.length){runTimer(process.argv[n+1]);return}{let n=i.split(`=`);n[0]===t&&runTimer(n[1])}}}setupExitTimer();let x={initialize:t=>{let n=t.processId;c.number(n)&&_===void 0&&setInterval(()=>{try{process.kill(n,0)}catch{process.exit(+!g)}},3e3)},get shutdownReceived(){return g},set shutdownReceived(t){g=t},exit:t=>{process.exit(t)}};function createConnection(t,n,i,o){let s,c,u,f;return t!==void 0&&t.__brand===`features`&&(s=t,t=n,n=i,i=o),p.ConnectionStrategy.is(t)||p.ConnectionOptions.is(t)?f=t:(c=t,u=n,f=i),_createConnection(c,u,f,s)}t.createConnection=createConnection;function _createConnection(t,n,i,o){let s=!1;if(!t&&!n&&process.argv.length>2){let i,o,c=process.argv.slice(2);for(let u=0;u<c.length;u++){let h=c[u];if(h===`--node-ipc`){t=new p.IPCMessageReader(process),n=new p.IPCMessageWriter(process);break}if(h===`--stdio`){s=!0,t=process.stdin,n=process.stdout;break}if(h===`--socket`){i=parseInt(c[u+1]);break}if(h===`--pipe`){o=c[u+1];break}var f=h.split(`=`);if(f[0]===`--socket`){i=parseInt(f[1]);break}if(f[0]===`--pipe`){o=f[1];break}}if(i){let o=(0,p.createServerSocketTransport)(i);t=o[0],n=o[1]}else if(o){let i=(0,p.createServerPipeTransport)(o);t=i[0],n=i[1]}}var h=`Use arguments of createConnection or set command line parameters: '--node-ipc', '--stdio' or '--socket={number}'`;if(!t)throw Error(`Connection input stream is not set. `+h);if(!n)throw Error(`Connection output stream is not set. `+h);if(c.func(t.read)&&c.func(t.on)){let n=t;n.on(`end`,()=>{process.exit(+!g)}),n.on(`close`,()=>{process.exit(+!g)})}let connectionFactory=o=>{let c=(0,p.createProtocolConnection)(t,n,o,i);return s&&patchConsole(o),c};return(0,u.createConnection)(connectionFactory,x,o)}function patchConsole(t){function serialize(t){return t.map(t=>typeof t==`string`?t:(0,o.inspect)(t)).join(` `)}let n=new Map;console.assert=function assert(n,...i){if(!n){if(i.length===0)t.error(`Assertion failed`);else{let[n,...o]=i;t.error(`Assertion failed: ${n} ${serialize(o)}`)}}},console.count=function count(i=`default`){let o=String(i),s=n.get(o)??0;s+=1,n.set(o,s),t.log(`${o}: ${o}`)},console.countReset=function countReset(t){t===void 0?n.clear():n.delete(String(t))},console.debug=function debug(...n){t.log(serialize(n))},console.dir=function dir(n,i){t.log((0,o.inspect)(n,i))},console.log=function log(...n){t.log(serialize(n))},console.error=function error(...n){t.error(serialize(n))},console.trace=function trace(...n){let i=Error().stack.replace(/(.+\n){2}/,``),o=`Trace`;n.length!==0&&(o+=`: ${serialize(n)}`),t.log(`${o}\n${i}`)},console.warn=function warn(...n){t.warn(serialize(n))}}})),$=ui();function findNextFeatures(t,n){let i={stacks:t,tokens:n};return interpretTokens(i),i.stacks.flat().forEach(t=>{t.property=void 0}),findNextFeatureStacks(i.stacks).map(t=>t[t.length-1])}function findNextFeaturesInternal(t){let{next:n,cardinalities:i,visited:o,plus:s}=t,c=[],u=n.feature;if(o.has(u))return[];isGroup(u)||o.add(u);let f,p=u;for(;p.$container;)if(isGroup(p.$container)){f=p.$container;break}else if(isAbstractElement(p.$container))p=p.$container;else break;if(isArrayCardinality(p.cardinality)){let t=findFirstFeaturesInternal({next:{feature:p,type:n.type},cardinalities:i,visited:o,plus:s});for(let n of t)s.add(n.feature);c.push(...t)}if(f){let t=f.elements.indexOf(p);t!==void 0&&t<f.elements.length-1&&c.push(...findNextFeaturesInGroup({feature:f,type:n.type},t+1,i,o,s)),c.every(t=>isOptionalCardinality(t.feature.cardinality,t.feature)||isOptionalCardinality(i.get(t.feature))||s.has(t.feature))&&c.push(...findNextFeaturesInternal({next:{feature:f,type:n.type},cardinalities:i,visited:o,plus:s}))}return c}function findFirstFeatures(t){return isAstNode(t)&&(t={feature:t}),findFirstFeaturesInternal({next:t,cardinalities:new Map,visited:new Set,plus:new Set})}function findFirstFeaturesInternal(t){let{next:n,cardinalities:i,visited:o,plus:s}=t;if(n===void 0)return[];let{feature:c,type:u}=n;if(isGroup(c))return o.has(c)?[]:(o.add(c),findNextFeaturesInGroup(n,0,i,o,s).map(t=>modifyCardinality(t,c.cardinality,i)));if(isAlternatives(c)||isUnorderedGroup(c))return c.elements.flatMap(t=>findFirstFeaturesInternal({next:{feature:t,type:u,property:n.property},cardinalities:i,visited:o,plus:s})).map(t=>modifyCardinality(t,c.cardinality,i));if(isAssignment(c))return findFirstFeaturesInternal({next:{feature:c.terminal,type:u,property:n.property??c.feature},cardinalities:i,visited:o,plus:s}).map(t=>modifyCardinality(t,c.cardinality,i));if(isAction(c))return findNextFeaturesInternal({next:{feature:c,type:getTypeName(c),property:n.property??c.feature},cardinalities:i,visited:o,plus:s});if(isRuleCall(c)&&isParserRule(c.rule.ref)){let t=c.rule.ref;return findFirstFeaturesInternal({next:{feature:t.definition,type:t.fragment||t.dataType?void 0:getExplicitRuleType(t)??t.name,property:n.property},cardinalities:i,visited:o,plus:s}).map(t=>modifyCardinality(t,c.cardinality,i))}return[n]}function modifyCardinality(t,n,i){return i.set(t.feature,n),t}function findNextFeaturesInGroup(t,n,i,o,s){let c=[],u;for(;n<t.feature.elements.length&&(u={feature:t.feature.elements[n++],type:t.type},c.push(...findFirstFeaturesInternal({next:u,cardinalities:i,visited:o,plus:s})),isOptionalCardinality(u.feature.cardinality??i.get(u.feature),u.feature)););return c}function interpretTokens(t){for(let n of t.tokens)t.stacks=findNextFeatureStacks(t.stacks,n)}function findNextFeatureStacks(t,n){let i=[];for(let o of t)i.push(...interpretStackToken(o,n));return i}function interpretStackToken(t,n){let i=new Map,o=new Set(t.map(t=>t.feature).filter(isPlusFeature)),s=[];for(;t.length>0;){let c=findNextFeaturesInternal({next:t.pop(),cardinalities:i,plus:o,visited:new Set}).filter(t=>!n||featureMatches(t.feature,n));for(let n of c)s.push([...t,n]);if(!c.every(t=>isOptionalCardinality(t.feature.cardinality,t.feature)||isOptionalCardinality(i.get(t.feature))))break}return s}function isPlusFeature(t){if(t.cardinality===`+`)return!0;let n=getContainerOfType(t,isAssignment);return!!(n&&n.cardinality===`+`)}function featureMatches(t,n){if(isKeyword(t))return t.value===n.image;if(isRuleCall(t))return ruleMatches(t.rule.ref,n);if(isCrossReference(t)){let i=getCrossReferenceTerminal(t);if(i)return featureMatches(i,n)}return!1}function ruleMatches(t,n){return isParserRule(t)?findFirstFeatures(t.definition).some(t=>featureMatches(t.feature,n)):isTerminalRule(t)?terminalRegex(t).test(n.image):!1}function mergeCompletionProviderOptions(t){let n=Array.from(new Set(t.flatMap(t=>t?.triggerCharacters??[]))),i=Array.from(new Set(t.flatMap(t=>t?.allCommitCharacters??[])));return{triggerCharacters:n.length>0?n:void 0,allCommitCharacters:i.length>0?i:void 0}}var DefaultCompletionProvider=class{constructor(t){this.scopeProvider=t.references.ScopeProvider,this.grammar=t.Grammar,this.completionParser=t.parser.CompletionParser,this.nameProvider=t.references.NameProvider,this.lexer=t.parser.Lexer,this.nodeKindProvider=t.shared.lsp.NodeKindProvider,this.fuzzyMatcher=t.shared.lsp.FuzzyMatcher,this.grammarConfig=t.parser.GrammarConfig,this.astReflection=t.shared.AstReflection,this.documentationProvider=t.documentation.DocumentationProvider}async getCompletion(t,n,i){let o=[],s=this.buildContexts(t,n.position),acceptor=(t,n)=>{let i=this.fillCompletionItem(t,n);i&&o.push(i)},distinctionFunction=t=>isKeyword(t.feature)?t.feature.value:t.feature,c=[];for(let t of s)if(await Promise.all(stream(t.features).distinct(distinctionFunction).exclude(c).map(n=>this.completionFor(t,n,acceptor))),c.push(...t.features),!this.continueCompletion(o))break;return $.CompletionList.create(this.deduplicateItems(o),!0)}deduplicateItems(t){return stream(t).distinct(t=>`${t.kind}_${t.label}_${t.detail}`).toArray()}findFeaturesAt(t,n){let i=t.getText({start:$.Position.create(0,0),end:t.positionAt(n)}),o=this.completionParser.parse(i),s=o.tokens;if(o.tokenIndex===0){let t=getEntryRule(this.grammar),n=findFirstFeatures({feature:t.definition,type:getExplicitRuleType(t)});return s.length>0?(s.shift(),findNextFeatures(n.map(t=>[t]),s)):n}let c=[...s].splice(o.tokenIndex);return findNextFeatures([o.elementStack.map(t=>({feature:t}))],c)}*buildContexts(t,n){let i=t.parseResult.value.$cstNode;if(!i)return;let o=t.textDocument,s=o.getText(),c=o.offsetAt(n),u={document:t,textDocument:o,offset:c,position:n},f=this.findDataTypeRuleStart(i,c);if(f){let[t,n]=f,s=findLeafNodeBeforeOffset(i,t)?.astNode;yield Object.assign(Object.assign({},u),{node:s,tokenOffset:t,tokenEndOffset:n,features:this.findFeaturesAt(o,t)})}let{nextTokenStart:p,nextTokenEnd:h,previousTokenStart:g,previousTokenEnd:_}=this.backtrackToAnyToken(s,c),x=p;c<=p&&g!==void 0&&(x=g);let S=findLeafNodeBeforeOffset(i,x)?.astNode,T=!0;if(g!==void 0&&_!==void 0&&_===c&&(yield Object.assign(Object.assign({},u),{node:S,tokenOffset:g,tokenEndOffset:_,features:this.findFeaturesAt(o,g)}),T=this.performNextTokenCompletion(t,s.substring(g,_),g,_),T&&(yield Object.assign(Object.assign({},u),{node:S,tokenOffset:_,tokenEndOffset:_,features:this.findFeaturesAt(o,_)}))),S)T&&(yield Object.assign(Object.assign({},u),{node:S,tokenOffset:p,tokenEndOffset:h,features:this.findFeaturesAt(o,p)}));else{let t=getEntryRule(this.grammar);if(!t)throw Error(`Missing entry parser rule`);yield Object.assign(Object.assign({},u),{tokenOffset:p,tokenEndOffset:h,features:findFirstFeatures(t.definition)})}}performNextTokenCompletion(t,n,i,o){return/\P{L}$/u.test(n)}findDataTypeRuleStart(t,n){let i=findDeclarationNodeAtOffset(t,n,this.grammarConfig.nameRegexp),o=!!getContainerOfType(i?.grammarSource,isParserRule)?.dataType;if(o){for(;o;)i=i?.container,o=!!getContainerOfType(i?.grammarSource,isParserRule)?.dataType;if(i)return[i.offset,i.end]}}continueCompletion(t){return t.length===0}backtrackToAnyToken(t,n){let i=this.lexer.tokenize(t).tokens;if(i.length===0)return{nextTokenStart:n,nextTokenEnd:n};let o;for(let t of i){if(t.startOffset>=n)return{nextTokenStart:n,nextTokenEnd:n,previousTokenStart:o?o.startOffset:void 0,previousTokenEnd:o?o.endOffset+1:void 0};if(t.endOffset>=n)return{nextTokenStart:t.startOffset,nextTokenEnd:t.endOffset+1,previousTokenStart:o?o.startOffset:void 0,previousTokenEnd:o?o.endOffset+1:void 0};o=t}return{nextTokenStart:n,nextTokenEnd:n,previousTokenStart:o?o.startOffset:void 0,previousTokenEnd:o?o.endOffset+1:void 0}}completionFor(t,n,i){if(isKeyword(n.feature))return this.completionForKeyword(t,n.feature,i);if(isCrossReference(n.feature)&&t.node)return this.completionForCrossReference(t,n,i)}completionForCrossReference(t,n,i){let o=getContainerOfType(n.feature,isAssignment),s=t.node;if(o&&s){n.type&&(s={$type:n.type,$container:s,$containerProperty:n.property},assignMandatoryProperties(this.astReflection,s));let c={reference:{$refText:``},container:s,property:o.feature};try{for(let n of this.getReferenceCandidates(c,t))i(t,this.createReferenceCompletionItem(n))}catch(t){console.error(t)}}}getReferenceCandidates(t,n){return this.scopeProvider.getScope(t).getAllElements()}createReferenceCompletionItem(t){return{nodeDescription:t,kind:this.nodeKindProvider.getCompletionItemKind(t),documentation:this.getReferenceDocumentation(t),detail:t.type,sortText:`0`}}getReferenceDocumentation(t){if(!t.node)return;let n=this.documentationProvider.getDocumentation(t.node);if(n)return{kind:`markdown`,value:n}}completionForKeyword(t,n,i){this.filterKeyword(t,n)&&i(t,{label:n.value,kind:this.getKeywordCompletionItemKind(n),detail:`Keyword`,sortText:`1`})}getKeywordCompletionItemKind(t){return $.CompletionItemKind.Keyword}filterKeyword(t,n){return/\p{L}/u.test(n.value)}fillCompletionItem(t,n){let i;if(typeof n.label==`string`)i=n.label;else if(`node`in n){let t=this.nameProvider.getName(n.node);if(!t)return;i=t}else if(`nodeDescription`in n)i=n.nodeDescription.name;else return;let o;o=typeof n.textEdit?.newText==`string`?n.textEdit.newText:typeof n.insertText==`string`?n.insertText:i;let s=n.textEdit??this.buildCompletionTextEdit(t,i,o);if(s)return{additionalTextEdits:n.additionalTextEdits,command:n.command,commitCharacters:n.commitCharacters,data:n.data,detail:n.detail,documentation:n.documentation,filterText:n.filterText,insertText:n.insertText,insertTextFormat:n.insertTextFormat,insertTextMode:n.insertTextMode,kind:n.kind,labelDetails:n.labelDetails,preselect:n.preselect,sortText:n.sortText,tags:n.tags,textEditText:n.textEditText,textEdit:s,label:i}}buildCompletionTextEdit(t,n,i){let o=t.textDocument.getText().substring(t.tokenOffset,t.offset);if(this.fuzzyMatcher.match(o,n))return{newText:i,range:{start:t.textDocument.positionAt(t.tokenOffset),end:t.position}}}},DefaultDefinitionProvider=class{constructor(t){this.nameProvider=t.references.NameProvider,this.references=t.references.References,this.grammarConfig=t.parser.GrammarConfig}getDefinition(t,n,i){let o=t.parseResult.value;if(o.$cstNode){let i=o.$cstNode,s=findDeclarationNodeAtOffset(i,t.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);if(s)return this.collectLocationLinks(s,n)}}collectLocationLinks(t,n){let i=this.findLink(t);if(i)return[$.LocationLink.create(i.targetDocument.textDocument.uri,(i.target.astNode.$cstNode??i.target).range,i.target.range,i.source.range)]}findLink(t){let n=this.references.findDeclarationNode(t);if(n?.astNode){let i=getDocument(n.astNode);if(n&&i)return{source:t,target:n,targetDocument:i}}}},DefaultDocumentHighlightProvider=class{constructor(t){this.references=t.references.References,this.nameProvider=t.references.NameProvider,this.grammarConfig=t.parser.GrammarConfig}getDocumentHighlight(t,n,i){let o=t.parseResult.value.$cstNode;if(!o)return;let s=findDeclarationNodeAtOffset(o,t.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);if(!s)return;let c=this.references.findDeclaration(s);if(c){let n=Y.equals(getDocument(c).uri,t.uri),i={documentUri:t.uri,includeDeclaration:n};return this.references.findReferences(c,i).map(t=>this.createDocumentHighlight(t)).toArray()}}createDocumentHighlight(t){return $.DocumentHighlight.create(t.segment.range)}},DefaultDocumentSymbolProvider=class{constructor(t){this.nameProvider=t.references.NameProvider,this.nodeKindProvider=t.shared.lsp.NodeKindProvider}getSymbols(t,n,i){return this.getSymbol(t,t.parseResult.value)}getSymbol(t,n){let i=n.$cstNode,o=this.nameProvider.getNameNode(n);if(o&&i){let s=this.nameProvider.getName(n);return[{kind:this.nodeKindProvider.getSymbolKind(n),name:s||o.text,range:i.range,selectionRange:o.range,children:this.getChildSymbols(t,n)}]}return this.getChildSymbols(t,n)||[]}getChildSymbols(t,n){let i=[];for(let o of streamContents(n)){let n=this.getSymbol(t,o);i.push(...n)}if(i.length>0)return i}},DefaultDocumentUpdateHandler=class{constructor(t){this.workspaceManager=t.workspace.WorkspaceManager,this.documentBuilder=t.workspace.DocumentBuilder,this.workspaceLock=t.workspace.WorkspaceLock,this.serviceRegistry=t.ServiceRegistry;let n=!1;t.lsp.LanguageServer.onInitialize(t=>{n=!!t.capabilities.workspace?.didChangeWatchedFiles?.dynamicRegistration}),t.lsp.LanguageServer.onInitialized(i=>{n&&this.registerFileWatcher(t)})}registerFileWatcher(t){let n=[],i=stream(t.ServiceRegistry.all).flatMap(t=>t.LanguageMetaData.fileExtensions).map(t=>t.startsWith(`.`)?t.substring(1):t).distinct().toArray();i.length>0&&n.push({globPattern:i.length===1?`**/*.${i[0]}`:`**/*.{${i.join(`,`)}}`});let o=stream(t.ServiceRegistry.all).flatMap(t=>t.LanguageMetaData.fileNames??[]).distinct().toArray();if(o.length>0&&n.push({globPattern:o.length===1?`**/${o[0]}`:`**/{${o.join(`,`)}}`}),n.length>0){let i=t.lsp.Connection,o={watchers:n};i?.client.register($.DidChangeWatchedFilesNotification.type,o)}}fireDocumentUpdate(t,n){t=t.filter(t=>this.serviceRegistry.hasServices(t)),this.workspaceManager.ready.then(()=>{this.workspaceLock.write(i=>this.documentBuilder.update(t,n,i))}).catch(t=>{console.error(`Workspace initialization failed. Could not perform document update.`,t)})}didChangeContent(t){this.fireDocumentUpdate([J.parse(t.document.uri)],[])}didChangeWatchedFiles(t){let n=stream(t.changes).filter(t=>t.type!==$.FileChangeType.Deleted).distinct(t=>t.uri).map(t=>J.parse(t.uri)).toArray(),i=stream(t.changes).filter(t=>t.type===$.FileChangeType.Deleted).distinct(t=>t.uri).map(t=>J.parse(t.uri)).toArray();this.fireDocumentUpdate(n,i)}},DefaultFoldingRangeProvider=class{constructor(t){this.commentNames=t.parser.GrammarConfig.multilineCommentRules}getFoldingRanges(t,n,i){let o=[],acceptor=t=>o.push(t);return this.collectFolding(t,acceptor),o}collectFolding(t,n){let i=t.parseResult?.value;if(i){if(this.shouldProcessContent(i)){let o=streamAllContents(i).iterator(),s;do if(s=o.next(),!s.done){let i=s.value;this.shouldProcess(i)&&this.collectObjectFolding(t,i,n),this.shouldProcessContent(i)||o.prune()}while(!s.done)}this.collectCommentFolding(t,i,n)}}shouldProcess(t){return!0}shouldProcessContent(t){return!0}collectObjectFolding(t,n,i){let o=n.$cstNode;if(o){let n=this.toFoldingRange(t,o);n&&i(n)}}collectCommentFolding(t,n,i){let o=n.$cstNode;if(o){for(let n of flattenCst(o))if(this.commentNames.includes(n.tokenType.name)){let o=this.toFoldingRange(t,n,$.FoldingRangeKind.Comment);o&&i(o)}}}toFoldingRange(t,n,i){let o=n.range,s=o.start,c=o.end;if(!(c.line-s.line<2))return this.includeLastFoldingLine(n,i)||(c=t.textDocument.positionAt(t.textDocument.offsetAt({line:c.line,character:0})-1)),$.FoldingRange.create(s.line,c.line,s.character,c.character,i)}includeLastFoldingLine(t,n){if(n===$.FoldingRangeKind.Comment)return!1;let i=t.text,o=i.charAt(i.length-1);return o!==`}`&&o!==`)`&&o!==`]`}},DefaultFuzzyMatcher=class{match(t,n){if(t.length===0)return!0;let i=!1,o,s=0,c=n.length;for(let u=0;u<c;u++){let c=n.charCodeAt(u),f=t.charCodeAt(s);if((c===f||this.toUpperCharCode(c)===this.toUpperCharCode(f))&&(i||=o===void 0||this.isWordTransition(o,c),i&&s++,s===t.length))return!0;o=c}return!1}isWordTransition(t,n){return di<=t&&t<=fi&&pi<=n&&n<=mi||t===hi&&n!==hi}toUpperCharCode(t){return di<=t&&t<=fi?t-32:t}};const di=97,fi=122,pi=65,mi=90,hi=95;var AstNodeHoverProvider=class{constructor(t){this.references=t.references.References,this.grammarConfig=t.parser.GrammarConfig}getHoverContent(t,n){let i=t.parseResult?.value?.$cstNode;if(i){let o=t.textDocument.offsetAt(n.position),s=findDeclarationNodeAtOffset(i,o,this.grammarConfig.nameRegexp);if(s&&s.offset+s.length>o){let t=this.references.findDeclaration(s);if(t)return this.getAstNodeHoverContent(t);if(isKeyword(s.grammarSource))return this.getKeywordHoverContent(s.grammarSource)}}}getKeywordHoverContent(t){let n=isAstNodeWithComment(t)?t.$comment:void 0;if(n||=findCommentNode(t.$cstNode,[`ML_COMMENT`])?.text,n&&isJSDoc(n)){let t=parseJSDoc(n).toMarkdown();if(t)return{contents:{kind:`markdown`,value:t}}}}},MultilineCommentHoverProvider=class extends AstNodeHoverProvider{constructor(t){super(t),this.documentationProvider=t.documentation.DocumentationProvider}getAstNodeHoverContent(t){let n=this.documentationProvider.getDocumentation(t);if(n)return{contents:{kind:`markdown`,value:n}}}},gi=Q();const _i={[$.SemanticTokenTypes.class]:0,[$.SemanticTokenTypes.comment]:1,[$.SemanticTokenTypes.enum]:2,[$.SemanticTokenTypes.enumMember]:3,[$.SemanticTokenTypes.event]:4,[$.SemanticTokenTypes.function]:5,[$.SemanticTokenTypes.interface]:6,[$.SemanticTokenTypes.keyword]:7,[$.SemanticTokenTypes.macro]:8,[$.SemanticTokenTypes.method]:9,[$.SemanticTokenTypes.modifier]:10,[$.SemanticTokenTypes.namespace]:11,[$.SemanticTokenTypes.number]:12,[$.SemanticTokenTypes.operator]:13,[$.SemanticTokenTypes.parameter]:14,[$.SemanticTokenTypes.property]:15,[$.SemanticTokenTypes.regexp]:16,[$.SemanticTokenTypes.string]:17,[$.SemanticTokenTypes.struct]:18,[$.SemanticTokenTypes.type]:19,[$.SemanticTokenTypes.typeParameter]:20,[$.SemanticTokenTypes.variable]:21,[$.SemanticTokenTypes.decorator]:22},vi={[$.SemanticTokenModifiers.abstract]:1,[$.SemanticTokenModifiers.async]:2,[$.SemanticTokenModifiers.declaration]:4,[$.SemanticTokenModifiers.defaultLibrary]:8,[$.SemanticTokenModifiers.definition]:16,[$.SemanticTokenModifiers.deprecated]:32,[$.SemanticTokenModifiers.documentation]:64,[$.SemanticTokenModifiers.modification]:128,[$.SemanticTokenModifiers.readonly]:256,[$.SemanticTokenModifiers.static]:512};Object.keys(_i),Object.keys(vi);function mergeSemanticTokenProviderOptions(t){let n=[],i=[],o=!0,s=!0,c=!0;for(let u of t)u&&(u.legend.tokenTypes.forEach((t,i)=>{let o=n[i];if(o&&o!==t)throw Error(`Cannot merge '${o}' and '${t}' token types. They use the same index ${i}.`);n[i]=t}),u.legend.tokenModifiers.forEach((t,n)=>{let o=i[n];if(o&&o!==t)throw Error(`Cannot merge '${o}' and '${t}' token modifier. They use the same index ${n}.`);i[n]=t}),u.full?typeof u.full==`object`&&!u.full.delta&&(s=!1):o=!1,u.range||(c=!1));return{legend:{tokenTypes:n,tokenModifiers:i},full:o&&{delta:s},range:c}}var SemanticTokensBuilder=class extends $.SemanticTokensBuilder{constructor(){super(...arguments),this._tokens=[]}push(t,n,i,o,s){this._tokens.push({line:t,char:n,length:i,tokenType:o,tokenModifiers:s})}build(){return this.applyTokens(),super.build()}buildEdits(){return this.applyTokens(),super.buildEdits()}flush(){this.previousResult(this.id)}applyTokens(){for(let t of this._tokens.sort(this.compareTokens))super.push(t.line,t.char,t.length,t.tokenType,t.tokenModifiers);this._tokens=[]}compareTokens(t,n){return t.line===n.line?t.char-n.char:t.line-n.line}},AbstractSemanticTokenProvider=class{constructor(t){this.tokensBuilders=new Map,t.shared.workspace.TextDocuments.onDidClose(t=>{this.tokensBuilders.delete(t.document.uri)}),t.shared.lsp.LanguageServer.onInitialize(t=>{this.initialize(t.capabilities.textDocument?.semanticTokens)})}initialize(t){this.clientCapabilities=t}get tokenTypes(){return _i}get tokenModifiers(){return vi}get semanticTokensOptions(){return{legend:{tokenTypes:Object.keys(this.tokenTypes),tokenModifiers:Object.keys(this.tokenModifiers)},full:{delta:!0},range:!0}}async semanticHighlight(t,n,i=q.CancellationToken.None){return this.currentRange=void 0,this.currentDocument=t,this.currentTokensBuilder=this.getDocumentTokensBuilder(t),this.currentTokensBuilder.flush(),await this.computeHighlighting(t,this.createAcceptor(),i),this.currentTokensBuilder.build()}async semanticHighlightRange(t,n,i=q.CancellationToken.None){return this.currentRange=n.range,this.currentDocument=t,this.currentTokensBuilder=this.getDocumentTokensBuilder(t),this.currentTokensBuilder.flush(),await this.computeHighlighting(t,this.createAcceptor(),i),this.currentTokensBuilder.build()}async semanticHighlightDelta(t,n,i=q.CancellationToken.None){return this.currentRange=void 0,this.currentDocument=t,this.currentTokensBuilder=this.getDocumentTokensBuilder(t),this.currentTokensBuilder.previousResult(n.previousResultId),await this.computeHighlighting(t,this.createAcceptor(),i),this.currentTokensBuilder.buildEdits()}createAcceptor(){let acceptor=t=>{`line`in t?this.highlightToken({range:{start:{line:t.line,character:t.char},end:{line:t.line,character:t.char+t.length}},type:t.type,modifier:t.modifier}):`range`in t?this.highlightToken(t):`keyword`in t?this.highlightKeyword(t):`property`in t?this.highlightProperty(t):this.highlightNode({node:t.cst,type:t.type,modifier:t.modifier})};return acceptor}getDocumentTokensBuilder(t){let n=this.tokensBuilders.get(t.uri.toString());if(n)return n;let i=new SemanticTokensBuilder;return this.tokensBuilders.set(t.uri.toString(),i),i}async computeHighlighting(t,n,i){let o=t.parseResult.value,s=streamAst(o,{range:this.currentRange}).iterator(),c;do if(c=s.next(),!c.done){await interruptAndCheck(i);let t=c.value;this.highlightElement(t,n)===`prune`&&s.prune()}while(!c.done)}highlightToken(t){let{range:n,type:i}=t,o=t.modifier;if(this.currentRange&&!inRange(n,this.currentRange)||!this.currentDocument||!this.currentTokensBuilder)return;let s=this.tokenTypes[i],c=0;if(o!==void 0){typeof o==`string`&&(o=[o]);for(let t of o){let n=this.tokenModifiers[t];c|=n}}let u=n.start.line,f=n.end.line;if(u===f){let t=n.start.character,i=n.end.character-t;this.currentTokensBuilder.push(u,t,i,s,c)}else if(this.clientCapabilities?.multilineTokenSupport){let t=n.start.character,i=this.currentDocument.textDocument.offsetAt(n.start),o=this.currentDocument.textDocument.offsetAt(n.end);this.currentTokensBuilder.push(u,t,o-i,s,c)}else{let t=n.start,i=this.currentDocument.textDocument.offsetAt({line:u+1,character:0});this.currentTokensBuilder.push(t.line,t.character,i-t.character-1,s,c);for(let t=u+1;t<f;t++){let n=i;i=this.currentDocument.textDocument.offsetAt({line:t+1,character:0}),this.currentTokensBuilder.push(t,0,i-n-1,s,c)}this.currentTokensBuilder.push(f,0,n.end.character,s,c)}}highlightProperty(t){let n=[];if(typeof t.index==`number`){let i=findNodeForProperty(t.node.$cstNode,t.property,t.index);i&&n.push(i)}else n.push(...findNodesForProperty(t.node.$cstNode,t.property));let{type:i,modifier:o}=t;for(let t of n)this.highlightNode({node:t,type:i,modifier:o})}highlightKeyword(t){let{node:n,keyword:i,type:o,index:s,modifier:c}=t,u=[];if(typeof s==`number`){let t=findNodeForKeyword(n.$cstNode,i,s);t&&u.push(t)}else u.push(...findNodesForKeyword(n.$cstNode,i));for(let t of u)this.highlightNode({node:t,type:o,modifier:c})}highlightNode(t){let{node:n,type:i,modifier:o}=t,s=n.range;this.highlightToken({range:s,type:i,modifier:o})}},yi;(function(t){function decode(t,n,i){let o=new Map;Object.entries(n).forEach(([t,n])=>o.set(n,t));let s=0,c=0;return sliceIntoChunks(t.data,5).map(t=>{s+=t[0],t[0]!==0&&(c=0),c+=t[1];let n=t[2];return{offset:i.textDocument.offsetAt({line:s,character:c}),tokenType:o.get(t[3]),tokenModifiers:t[4],text:i.textDocument.getText({start:{line:s,character:c},end:{line:s,character:c+n}})}})}t.decode=decode;function sliceIntoChunks(t,n){let i=[];for(let o=0;o<t.length;o+=n){let s=t.slice(o,o+n);i.push(s)}return i}})(yi||={});function mergeSignatureHelpOptions(t){let n=[],i=[];t.forEach(t=>{t?.triggerCharacters&&n.push(...t.triggerCharacters),t?.retriggerCharacters&&i.push(...t.retriggerCharacters)});let o={triggerCharacters:n.length>0?Array.from(new Set(n)).sort():void 0,retriggerCharacters:i.length>0?Array.from(new Set(i)).sort():void 0};return o.triggerCharacters?o:void 0}var DefaultLanguageServer=class{constructor(t){this.onInitializeEmitter=new gi.Emitter,this.onInitializedEmitter=new gi.Emitter,this.services=t}get onInitialize(){return this.onInitializeEmitter.event}get onInitialized(){return this.onInitializedEmitter.event}async initialize(t){return this.eagerLoadServices(),this.fireInitializeOnDefaultServices(t),this.onInitializeEmitter.fire(t),this.onInitializeEmitter.dispose(),this.buildInitializeResult(t)}eagerLoadServices(){eagerLoad(this.services),this.services.ServiceRegistry.all.forEach(t=>eagerLoad(t))}hasService(t){return this.services.ServiceRegistry.all.some(n=>t(n)!==void 0)}buildInitializeResult(t){let n=this.services.lsp.DocumentUpdateHandler,i=this.services.lsp.FileOperationHandler?.fileOperationOptions,o=this.services.ServiceRegistry.all,s=this.hasService(t=>t.lsp?.Formatter),c=o.map(t=>t.lsp?.Formatter?.formatOnTypeOptions).find(t=>!!t),u=this.hasService(t=>t.lsp?.CodeActionProvider),f=this.hasService(t=>t.lsp?.SemanticTokenProvider),p=mergeSemanticTokenProviderOptions(o.map(t=>t.lsp?.SemanticTokenProvider?.semanticTokensOptions)),h=this.services.lsp?.ExecuteCommandHandler?.commands,g=this.hasService(t=>t.lsp?.DocumentLinkProvider),_=mergeSignatureHelpOptions(o.map(t=>t.lsp?.SignatureHelp?.signatureHelpOptions)),x=this.hasService(t=>t.lsp?.TypeProvider),S=this.hasService(t=>t.lsp?.ImplementationProvider),T=this.hasService(t=>t.lsp?.CompletionProvider),E=mergeCompletionProviderOptions(o.map(t=>t.lsp?.CompletionProvider?.completionOptions)),D=this.hasService(t=>t.lsp?.ReferencesProvider),ee=this.hasService(t=>t.lsp?.DocumentSymbolProvider),O=this.hasService(t=>t.lsp?.DefinitionProvider),k=this.hasService(t=>t.lsp?.DocumentHighlightProvider),A=this.hasService(t=>t.lsp?.FoldingRangeProvider),j=this.hasService(t=>t.lsp?.HoverProvider),M=this.hasService(t=>t.lsp?.RenameProvider),N=this.hasService(t=>t.lsp?.CallHierarchyProvider),P=this.hasService(t=>t.lsp?.TypeHierarchyProvider),te=this.hasService(t=>t.lsp?.CodeLensProvider),F=this.hasService(t=>t.lsp?.DeclarationProvider),ne=this.hasService(t=>t.lsp?.InlayHintProvider),re=this.services.lsp?.WorkspaceSymbolProvider;return{capabilities:{workspace:{workspaceFolders:{supported:!0},fileOperations:i},executeCommandProvider:h&&{commands:h},textDocumentSync:{change:gi.TextDocumentSyncKind.Incremental,openClose:!0,save:!!n.didSaveDocument,willSave:!!n.willSaveDocument,willSaveWaitUntil:!!n.willSaveDocumentWaitUntil},completionProvider:T?E:void 0,referencesProvider:D,documentSymbolProvider:ee,definitionProvider:O,typeDefinitionProvider:x,documentHighlightProvider:k,codeActionProvider:u,documentFormattingProvider:s,documentRangeFormattingProvider:s,documentOnTypeFormattingProvider:c,foldingRangeProvider:A,hoverProvider:j,renameProvider:M?{prepareProvider:!0}:void 0,semanticTokensProvider:f?p:void 0,signatureHelpProvider:_,implementationProvider:S,callHierarchyProvider:N?{}:void 0,typeHierarchyProvider:P?{}:void 0,documentLinkProvider:g?{resolveProvider:!1}:void 0,codeLensProvider:te?{resolveProvider:!1}:void 0,declarationProvider:F,inlayHintProvider:ne?{resolveProvider:!1}:void 0,workspaceSymbolProvider:re?{resolveProvider:!!re.resolveSymbol}:void 0}}}initialized(t){this.fireInitializedOnDefaultServices(t),this.onInitializedEmitter.fire(t),this.onInitializedEmitter.dispose()}fireInitializeOnDefaultServices(t){this.services.workspace.ConfigurationProvider.initialize(t),this.services.workspace.WorkspaceManager.initialize(t)}fireInitializedOnDefaultServices(t){let n=this.services.lsp.Connection,i=n?Object.assign(Object.assign({},t),{register:t=>n.client.register(gi.DidChangeConfigurationNotification.type,t),fetchConfiguration:t=>n.workspace.getConfiguration(t)}):t;this.services.workspace.ConfigurationProvider.initialized(i).catch(t=>console.error(`Error in ConfigurationProvider initialization:`,t)),this.services.workspace.WorkspaceManager.initialized(t).catch(t=>console.error(`Error in WorkspaceManager initialization:`,t))}};function startLanguageServer(t){let n=t.lsp.Connection;if(!n)throw Error(`Starting a language server requires the languageServer.Connection service to be set.`);addDocumentUpdateHandler(n,t),addFileOperationHandler(n,t),addDiagnosticsHandler(n,t),addCompletionHandler(n,t),addFindReferencesHandler(n,t),addDocumentSymbolHandler(n,t),addGotoDefinitionHandler(n,t),addGoToTypeDefinitionHandler(n,t),addGoToImplementationHandler(n,t),addDocumentHighlightsHandler(n,t),addFoldingRangeHandler(n,t),addFormattingHandler(n,t),addCodeActionHandler(n,t),addRenameHandler(n,t),addHoverHandler(n,t),addInlayHintHandler(n,t),addSemanticTokenHandler(n,t),addExecuteCommandHandler(n,t),addSignatureHelpHandler(n,t),addCallHierarchyHandler(n,t),addTypeHierarchyHandler(n,t),addCodeLensHandler(n,t),addDocumentLinkHandler(n,t),addConfigurationChangeHandler(n,t),addGoToDeclarationHandler(n,t),addWorkspaceSymbolHandler(n,t),n.onInitialize(n=>t.lsp.LanguageServer.initialize(n)),n.onInitialized(n=>{t.lsp.LanguageServer.initialized(n)}),t.workspace.TextDocuments.listen(n),n.listen()}function addDocumentUpdateHandler(t,n){let i=n.lsp.DocumentUpdateHandler,o=n.workspace.TextDocuments;i.didOpenDocument&&o.onDidOpen(t=>i.didOpenDocument(t)),i.didChangeContent&&o.onDidChangeContent(t=>i.didChangeContent(t)),i.didCloseDocument&&o.onDidClose(t=>i.didCloseDocument(t)),i.didSaveDocument&&o.onDidSave(t=>i.didSaveDocument(t)),i.willSaveDocument&&o.onWillSave(t=>i.willSaveDocument(t)),i.willSaveDocumentWaitUntil&&o.onWillSaveWaitUntil(t=>i.willSaveDocumentWaitUntil(t)),i.didChangeWatchedFiles&&t.onDidChangeWatchedFiles(t=>i.didChangeWatchedFiles(t))}function addFileOperationHandler(t,n){let i=n.lsp.FileOperationHandler;i&&(i.didCreateFiles&&t.workspace.onDidCreateFiles(t=>i.didCreateFiles(t)),i.didRenameFiles&&t.workspace.onDidRenameFiles(t=>i.didRenameFiles(t)),i.didDeleteFiles&&t.workspace.onDidDeleteFiles(t=>i.didDeleteFiles(t)),i.willCreateFiles&&t.workspace.onWillCreateFiles(t=>i.willCreateFiles(t)),i.willRenameFiles&&t.workspace.onWillRenameFiles(t=>i.willRenameFiles(t)),i.willDeleteFiles&&t.workspace.onWillDeleteFiles(t=>i.willDeleteFiles(t)))}function addDiagnosticsHandler(t,n){let i=n.workspace.DocumentBuilder;i.onUpdate(async(n,i)=>{for(let n of i)t.sendDiagnostics({uri:n.toString(),diagnostics:[]})}),i.onDocumentPhase(X.Validated,async n=>{n.diagnostics&&t.sendDiagnostics({uri:n.uri.toString(),diagnostics:n.diagnostics})})}function addCompletionHandler(t,n){t.onCompletion(createRequestHandler((t,n,i,o)=>(t.lsp?.CompletionProvider)?.getCompletion(n,i,o),n,X.IndexedReferences))}function addFindReferencesHandler(t,n){t.onReferences(createRequestHandler((t,n,i,o)=>(t.lsp?.ReferencesProvider)?.findReferences(n,i,o),n,X.IndexedReferences))}function addCodeActionHandler(t,n){t.onCodeAction(createRequestHandler((t,n,i,o)=>(t.lsp?.CodeActionProvider)?.getCodeActions(n,i,o),n,X.Validated))}function addDocumentSymbolHandler(t,n){t.onDocumentSymbol(createRequestHandler((t,n,i,o)=>(t.lsp?.DocumentSymbolProvider)?.getSymbols(n,i,o),n,X.Parsed))}function addGotoDefinitionHandler(t,n){t.onDefinition(createRequestHandler((t,n,i,o)=>(t.lsp?.DefinitionProvider)?.getDefinition(n,i,o),n,X.IndexedReferences))}function addGoToTypeDefinitionHandler(t,n){t.onTypeDefinition(createRequestHandler((t,n,i,o)=>(t.lsp?.TypeProvider)?.getTypeDefinition(n,i,o),n,X.IndexedReferences))}function addGoToImplementationHandler(t,n){t.onImplementation(createRequestHandler((t,n,i,o)=>(t.lsp?.ImplementationProvider)?.getImplementation(n,i,o),n,X.IndexedReferences))}function addGoToDeclarationHandler(t,n){t.onDeclaration(createRequestHandler((t,n,i,o)=>(t.lsp?.DeclarationProvider)?.getDeclaration(n,i,o),n,X.IndexedReferences))}function addDocumentHighlightsHandler(t,n){t.onDocumentHighlight(createRequestHandler((t,n,i,o)=>(t.lsp?.DocumentHighlightProvider)?.getDocumentHighlight(n,i,o),n,X.IndexedReferences))}function addHoverHandler(t,n){t.onHover(createRequestHandler((t,n,i,o)=>(t.lsp?.HoverProvider)?.getHoverContent(n,i,o),n,X.IndexedReferences))}function addFoldingRangeHandler(t,n){t.onFoldingRanges(createRequestHandler((t,n,i,o)=>(t.lsp?.FoldingRangeProvider)?.getFoldingRanges(n,i,o),n,X.Parsed))}function addFormattingHandler(t,n){t.onDocumentFormatting(createRequestHandler((t,n,i,o)=>(t.lsp?.Formatter)?.formatDocument(n,i,o),n,X.Parsed)),t.onDocumentRangeFormatting(createRequestHandler((t,n,i,o)=>(t.lsp?.Formatter)?.formatDocumentRange(n,i,o),n,X.Parsed)),t.onDocumentOnTypeFormatting(createRequestHandler((t,n,i,o)=>(t.lsp?.Formatter)?.formatDocumentOnType(n,i,o),n,X.Parsed))}function addRenameHandler(t,n){t.onRenameRequest(createRequestHandler((t,n,i,o)=>(t.lsp?.RenameProvider)?.rename(n,i,o),n,X.IndexedReferences)),t.onPrepareRename(createRequestHandler((t,n,i,o)=>(t.lsp?.RenameProvider)?.prepareRename(n,i,o),n,X.IndexedReferences))}function addInlayHintHandler(t,n){t.languages.inlayHint.on(createServerRequestHandler((t,n,i,o)=>(t.lsp?.InlayHintProvider)?.getInlayHints(n,i,o),n,X.IndexedReferences))}function addSemanticTokenHandler(t,n){let i={data:[]};t.languages.semanticTokens.on(createServerRequestHandler((t,n,o,s)=>t.lsp?.SemanticTokenProvider?t.lsp.SemanticTokenProvider.semanticHighlight(n,o,s):i,n,X.IndexedReferences)),t.languages.semanticTokens.onDelta(createServerRequestHandler((t,n,o,s)=>t.lsp?.SemanticTokenProvider?t.lsp.SemanticTokenProvider.semanticHighlightDelta(n,o,s):i,n,X.IndexedReferences)),t.languages.semanticTokens.onRange(createServerRequestHandler((t,n,o,s)=>t.lsp?.SemanticTokenProvider?t.lsp.SemanticTokenProvider.semanticHighlightRange(n,o,s):i,n,X.IndexedReferences))}function addConfigurationChangeHandler(t,n){t.onDidChangeConfiguration(t=>{t.settings&&n.workspace.ConfigurationProvider.updateConfiguration(t)})}function addExecuteCommandHandler(t,n){let i=n.lsp.ExecuteCommandHandler;i&&t.onExecuteCommand(async(t,n)=>{try{return await i.executeCommand(t.command,t.arguments??[],n)}catch(t){return responseError(t)}})}function addDocumentLinkHandler(t,n){t.onDocumentLinks(createServerRequestHandler((t,n,i,o)=>(t.lsp?.DocumentLinkProvider)?.getDocumentLinks(n,i,o),n,X.Parsed))}function addSignatureHelpHandler(t,n){t.onSignatureHelp(createServerRequestHandler((t,n,i,o)=>(t.lsp?.SignatureHelp)?.provideSignatureHelp(n,i,o),n,X.IndexedReferences))}function addCodeLensHandler(t,n){t.onCodeLens(createServerRequestHandler((t,n,i,o)=>(t.lsp?.CodeLensProvider)?.provideCodeLens(n,i,o),n,X.IndexedReferences))}function addWorkspaceSymbolHandler(t,n){let i=n.lsp.WorkspaceSymbolProvider;if(i){let o=n.workspace.DocumentBuilder;t.onWorkspaceSymbol(async(t,n)=>{try{return await o.waitUntil(X.IndexedContent,n),await i.getSymbols(t,n)}catch(t){return responseError(t)}});let s=i.resolveSymbol?.bind(i);s&&t.onWorkspaceSymbolResolve(async(t,n)=>{try{return await o.waitUntil(X.IndexedContent,n),await s(t,n)}catch(t){return responseError(t)}})}}function addCallHierarchyHandler(t,n){t.languages.callHierarchy.onPrepare(createServerRequestHandler(async(t,n,i,o)=>t.lsp?.CallHierarchyProvider?await t.lsp.CallHierarchyProvider.prepareCallHierarchy(n,i,o)??null:null,n,X.IndexedReferences)),t.languages.callHierarchy.onIncomingCalls(createHierarchyRequestHandler(async(t,n,i)=>t.lsp?.CallHierarchyProvider?await t.lsp.CallHierarchyProvider.incomingCalls(n,i)??null:null,n)),t.languages.callHierarchy.onOutgoingCalls(createHierarchyRequestHandler(async(t,n,i)=>t.lsp?.CallHierarchyProvider?await t.lsp.CallHierarchyProvider.outgoingCalls(n,i)??null:null,n))}function addTypeHierarchyHandler(t,n){n.ServiceRegistry.all.some(t=>t.lsp?.TypeHierarchyProvider)&&(t.languages.typeHierarchy.onPrepare(createServerRequestHandler(async(t,n,i,o)=>await(t.lsp?.TypeHierarchyProvider)?.prepareTypeHierarchy(n,i,o)??null,n,X.IndexedReferences)),t.languages.typeHierarchy.onSupertypes(createHierarchyRequestHandler(async(t,n,i)=>await(t.lsp?.TypeHierarchyProvider)?.supertypes(n,i)??null,n)),t.languages.typeHierarchy.onSubtypes(createHierarchyRequestHandler(async(t,n,i)=>await(t.lsp?.TypeHierarchyProvider)?.subtypes(n,i)??null,n)))}function createHierarchyRequestHandler(t,n){let i=n.ServiceRegistry;return async(o,s)=>{let c=J.parse(o.item.uri),u=await waitUntilPhase(n,s,c,X.IndexedReferences);if(u)return u;if(!i.hasServices(c)){let t=`Could not find service instance for uri: '${c}'`;return console.debug(t),responseError(Error(t))}let f=i.getServices(c);try{return await t(f,o,s)}catch(t){return responseError(t)}}}function createServerRequestHandler(t,n,i){let o=n.workspace.LangiumDocuments,s=n.ServiceRegistry;return async(c,u)=>{let f=J.parse(c.textDocument.uri),p=await waitUntilPhase(n,u,f,i);if(p)return p;if(!s.hasServices(f)){let t=`Could not find service instance for uri: '${f}'`;return console.debug(t),responseError(Error(t))}let h=s.getServices(f);try{return await t(h,await o.getOrCreateDocument(f),c,u)}catch(t){return responseError(t)}}}function createRequestHandler(t,n,i){let o=n.workspace.LangiumDocuments,s=n.ServiceRegistry;return async(c,u)=>{let f=J.parse(c.textDocument.uri),p=await waitUntilPhase(n,u,f,i);if(p)return p;if(!s.hasServices(f))return console.debug(`Could not find service instance for uri: '${f.toString()}'`),null;let h=s.getServices(f);try{return await t(h,await o.getOrCreateDocument(f),c,u)}catch(t){return responseError(t)}}}async function waitUntilPhase(t,n,i,o){if(o!==void 0){let s=t.workspace.DocumentBuilder;try{await s.waitUntil(o,i,n)}catch(t){return responseError(t)}}}function responseError(t){if(isOperationCancelled(t))return new gi.ResponseError(gi.LSPErrorCodes.RequestCancelled,`The request has been cancelled.`);if(t instanceof gi.ResponseError)return t;throw t}var DefaultNodeKindProvider=class{getSymbolKind(t){return $.SymbolKind.Field}getCompletionItemKind(t){return $.CompletionItemKind.Reference}},DefaultReferencesProvider=class{constructor(t){this.nameProvider=t.references.NameProvider,this.references=t.references.References,this.grammarConfig=t.parser.GrammarConfig}findReferences(t,n,i){let o=t.parseResult.value.$cstNode;if(!o)return[];let s=findDeclarationNodeAtOffset(o,t.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);return s?this.getReferences(s,n,t):[]}getReferences(t,n,i){let o=[],s=this.references.findDeclaration(t);if(s){let t={includeDeclaration:n.context.includeDeclaration};this.references.findReferences(s,t).forEach(t=>{o.push($.Location.create(t.sourceUri.toString(),t.segment.range))})}return o}};vn();var DefaultRenameProvider=class{constructor(t){this.references=t.references.References,this.nameProvider=t.references.NameProvider,this.grammarConfig=t.parser.GrammarConfig}async rename(t,n,i){let o={},s=t.parseResult.value.$cstNode;if(!s)return;let c=findDeclarationNodeAtOffset(s,t.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);if(!c)return;let u=this.references.findDeclaration(c);if(u)return this.references.findReferences(u,{onlyLocal:!1,includeDeclaration:!0}).forEach(t=>{let i=dt.replace(t.segment.range,n.newName),s=t.sourceUri.toString();o[s]?o[s].push(i):o[s]=[i]}),{changes:o}}prepareRename(t,n,i){return this.renameNodeRange(t,n.position)}renameNodeRange(t,n){let i=t.parseResult.value.$cstNode,o=t.textDocument.offsetAt(n);if(i&&o){let t=findDeclarationNodeAtOffset(i,o,this.grammarConfig.nameRegexp);if(!t)return;if(this.references.findDeclaration(t)||this.isNameNode(t))return t.range}}isNameNode(t){return t?.astNode&&isNamed(t.astNode)&&t===this.nameProvider.getNameNode(t.astNode)}},DefaultWorkspaceSymbolProvider=class{constructor(t){this.indexManager=t.workspace.IndexManager,this.nodeKindProvider=t.lsp.NodeKindProvider,this.fuzzyMatcher=t.lsp.FuzzyMatcher}async getSymbols(t,n=q.CancellationToken.None){let i=[],o=t.query.toLowerCase();for(let t of this.indexManager.allElements())if(await interruptAndCheck(n),this.fuzzyMatcher.match(o,t.name)){let n=this.getWorkspaceSymbol(t);n&&i.push(n)}return i}getWorkspaceSymbol(t){let n=t.nameSegment;if(n)return{kind:this.nodeKindProvider.getSymbolKind(t),name:t.name,location:{range:n.range,uri:t.documentUri.toString()}}}},NormalizedTextDocuments=class{constructor(t){this._configuration=t,this._syncedDocuments=new Map,this._onDidChangeContent=new $.Emitter,this._onDidOpen=new $.Emitter,this._onDidClose=new $.Emitter,this._onDidSave=new $.Emitter,this._onWillSave=new $.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(t){this._willSaveWaitUntil=t}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(t){return this._syncedDocuments.get(Y.normalize(t))}set(t){let n=Y.normalize(t.uri),i=!0;this._syncedDocuments.has(n)&&(i=!1),this._syncedDocuments.set(n,t);let o=Object.freeze({document:t});return this._onDidOpen.fire(o),this._onDidChangeContent.fire(o),i}delete(t){let n=Y.normalize(typeof t==`object`&&`uri`in t?t.uri:t),i=this._syncedDocuments.get(n);i!==void 0&&(this._syncedDocuments.delete(n),this._onDidClose.fire(Object.freeze({document:i})))}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(t){t.__textDocumentSync=$.TextDocumentSyncKind.Incremental;let n=[];return n.push(t.onDidOpenTextDocument(t=>{let n=t.textDocument,i=Y.normalize(n.uri),o=this._configuration.create(i,n.languageId,n.version,n.text);this._syncedDocuments.set(i,o);let s=Object.freeze({document:o});this._onDidOpen.fire(s),this._onDidChangeContent.fire(s)})),n.push(t.onDidChangeTextDocument(t=>{let n=t.textDocument,i=t.contentChanges;if(i.length===0)return;let{version:o}=n;if(o==null)throw Error(`Received document change event for ${n.uri} without valid version identifier`);let s=Y.normalize(n.uri),c=this._syncedDocuments.get(s);c!==void 0&&(c=this._configuration.update(c,i,o),this._syncedDocuments.set(s,c),this._onDidChangeContent.fire(Object.freeze({document:c})))})),n.push(t.onDidCloseTextDocument(t=>{let n=Y.normalize(t.textDocument.uri),i=this._syncedDocuments.get(n);i!==void 0&&(this._syncedDocuments.delete(n),this._onDidClose.fire(Object.freeze({document:i})))})),n.push(t.onWillSaveTextDocument(t=>{let n=this._syncedDocuments.get(Y.normalize(t.textDocument.uri));n!==void 0&&this._onWillSave.fire(Object.freeze({document:n,reason:t.reason}))})),n.push(t.onWillSaveTextDocumentWaitUntil((t,n)=>{let i=this._syncedDocuments.get(Y.normalize(t.textDocument.uri));return i!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:i,reason:t.reason}),n):[]})),n.push(t.onDidSaveTextDocument(t=>{let n=this._syncedDocuments.get(Y.normalize(t.textDocument.uri));n!==void 0&&this._onDidSave.fire(Object.freeze({document:n}))})),$.Disposable.create(()=>{n.forEach(t=>t.dispose())})}},NormalizedNotebookDocuments=class{constructor(t){this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new $.Emitter,this._onDidSave=new $.Emitter,this._onDidChange=new $.Emitter,this._onDidClose=new $.Emitter,this._cellTextDocuments=`listen`in t?t:new NormalizedTextDocuments(t)}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(t){return this._cellTextDocuments.get(t.document)}getNotebookDocument(t){return this.notebookDocuments.get(Y.normalize(t))}getNotebookCell(t){let n=this.notebookCellMap.get(Y.normalize(t));return n&&n[0]}findNotebookDocumentForCell(t){let n=typeof t==`string`||`scheme`in t?t:t.document,i=this.notebookCellMap.get(Y.normalize(n));return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(t){let n=new bi,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(t.notebooks.synchronization.onDidOpenNotebookDocument(t=>{let i=Y.normalize(t.notebookDocument.uri);this.notebookDocuments.set(i,t.notebookDocument);for(let i of t.cellTextDocuments)n.openTextDocument({textDocument:i});this.updateCellMap(t.notebookDocument),this._onDidOpen.fire(t.notebookDocument)})),i.push(t.notebooks.synchronization.onDidChangeNotebookDocument(t=>{let i=Y.normalize(t.notebookDocument.uri),o=this.notebookDocuments.get(i);if(o===void 0)return;o.version=t.notebookDocument.version;let s=o.metadata,c=!1,u=t.change;u.metadata!==void 0&&(c=!0,o.metadata=u.metadata);let f=[],p=[],h=[],g=[];if(u.cells!==void 0){let t=u.cells;if(t.structure!==void 0){let i=t.structure.array;if(o.cells.splice(i.start,i.deleteCount,...i.cells===void 0?[]:i.cells),t.structure.didOpen!==void 0)for(let i of t.structure.didOpen)n.openTextDocument({textDocument:i}),f.push(i.uri);if(t.structure.didClose)for(let i of t.structure.didClose)n.closeTextDocument({textDocument:i}),p.push(i.uri)}if(t.data!==void 0){let n=new Map(t.data.map(t=>[t.document,t]));for(let t=0;t<=o.cells.length;t++){let i=n.get(o.cells[t].document);if(i!==void 0){let s=o.cells.splice(t,1,i);if(h.push({old:s[0],new:i}),n.delete(i.document),n.size===0)break}}}if(t.textContent!==void 0)for(let i of t.textContent)n.changeTextDocument({textDocument:i.document,contentChanges:i.changes}),g.push(i.document.uri)}this.updateCellMap(o);let _={notebookDocument:o};c&&(_.metadata={old:s,new:o.metadata});let x=[];for(let t of f)x.push(this.getNotebookCell(t));let S=[];for(let t of p)S.push(this.getNotebookCell(t));let T=[];for(let t of g)T.push(this.getNotebookCell(t));(x.length>0||S.length>0||h.length>0||T.length>0)&&(_.cells={added:x,removed:S,changed:{data:h,textContent:T}}),(_.metadata!==void 0||_.cells!==void 0)&&this._onDidChange.fire(_)})),i.push(t.notebooks.synchronization.onDidSaveNotebookDocument(t=>{let n=this.getNotebookDocument(t.notebookDocument.uri);n!==void 0&&this._onDidSave.fire(n)})),i.push(t.notebooks.synchronization.onDidCloseNotebookDocument(t=>{let i=Y.normalize(t.notebookDocument.uri),o=this.notebookDocuments.get(i);if(o!==void 0){this._onDidClose.fire(o);for(let i of t.cellTextDocuments)n.closeTextDocument({textDocument:i});this.notebookDocuments.delete(i);for(let t of o.cells)this.notebookCellMap.delete(t.document)}})),$.Disposable.create(()=>{i.forEach(t=>t.dispose())})}updateCellMap(t){for(let n of t.cells)this.notebookCellMap.set(n.document,[n,t])}},bi=class CellTextDocumentConnection{onDidOpenTextDocument(t){return this.openHandler=t,$.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(t){this.openHandler&&this.openHandler(t)}onDidChangeTextDocument(t){return this.changeHandler=t,$.Disposable.create(()=>{this.changeHandler=t})}changeTextDocument(t){this.changeHandler&&this.changeHandler(t)}onDidCloseTextDocument(t){return this.closeHandler=t,$.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(t){this.closeHandler&&this.closeHandler(t)}onWillSaveTextDocument(){return CellTextDocumentConnection.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return CellTextDocumentConnection.NULL_DISPOSE}onDidSaveTextDocument(){return CellTextDocumentConnection.NULL_DISPOSE}};bi.NULL_DISPOSE=Object.freeze({dispose:()=>{}});function createDefaultModule(t){return Wn.merge(createDefaultCoreModule(t),createDefaultLSPModule(t))}function createDefaultLSPModule(t){return{lsp:{CompletionProvider:t=>new DefaultCompletionProvider(t),DocumentSymbolProvider:t=>new DefaultDocumentSymbolProvider(t),HoverProvider:t=>new MultilineCommentHoverProvider(t),FoldingRangeProvider:t=>new DefaultFoldingRangeProvider(t),ReferencesProvider:t=>new DefaultReferencesProvider(t),DefinitionProvider:t=>new DefaultDefinitionProvider(t),DocumentHighlightProvider:t=>new DefaultDocumentHighlightProvider(t),RenameProvider:t=>new DefaultRenameProvider(t)},shared:()=>t.shared}}function createDefaultSharedModule(t){return Wn.merge(createDefaultSharedCoreModule(t),createDefaultSharedLSPModule(t))}function createDefaultSharedLSPModule(t){return{lsp:{Connection:()=>t.connection,LanguageServer:t=>new DefaultLanguageServer(t),DocumentUpdateHandler:t=>new DefaultDocumentUpdateHandler(t),WorkspaceSymbolProvider:t=>new DefaultWorkspaceSymbolProvider(t),NodeKindProvider:()=>new DefaultNodeKindProvider,FuzzyMatcher:()=>new DefaultFuzzyMatcher},workspace:{TextDocuments:()=>new NormalizedTextDocuments(An),NotebookDocuments:t=>new NormalizedNotebookDocuments(t.workspace.TextDocuments)}}}var AbstractFormatter=class{constructor(){this.collector=()=>{}}getNodeFormatter(t){return new DefaultNodeFormatter(t,this.collector)}formatDocument(t,n){let i=t.parseResult;return i.lexerErrors.length===0&&i.parserErrors.length===0?this.doDocumentFormat(t,n.options):[]}isFormatRangeErrorFree(t,n){let i=t.parseResult;return i.lexerErrors.length||i.parserErrors.length?Math.min(...i.lexerErrors.map(t=>t.line??Number.MAX_VALUE),...i.parserErrors.map(t=>t.token.startLine??Number.MAX_VALUE))>n.end.line:!0}formatDocumentRange(t,n){return this.isFormatRangeErrorFree(t,n.range)?this.doDocumentFormat(t,n.options,n.range):[]}formatDocumentOnType(t,n){let i={start:{character:0,line:n.position.line},end:n.position};return this.isFormatRangeErrorFree(t,i)?this.doDocumentFormat(t,n.options,i):[]}get formatOnTypeOptions(){}doDocumentFormat(t,n,i){let o=new Map,collector=(t,n,i)=>{let s=this.nodeModeToKey(t,n),c=o.get(s),u=i.options.priority??0,f=c?.options.priority??0;(!c||f<=u)&&o.set(s,i)};this.collector=collector,this.iterateAstFormatting(t,i);let s=this.iterateCstFormatting(t,o,n,i);return this.avoidOverlappingEdits(t.textDocument,s)}avoidOverlappingEdits(t,n){let i=[];for(let o of n){let n=i[i.length-1];for(;n&&t.offsetAt(o.range.start)<t.offsetAt(n.range.end);)i.pop(),n=i[i.length-1];i.push(o)}return i.filter(n=>this.isNecessary(n,t))}iterateAstFormatting(t,n){let i=t.parseResult.value;this.format(i);let o=streamAllContents(i).iterator(),s;do if(s=o.next(),!s.done){let t=s.value;this.insideRange(t.$cstNode.range,n)?this.format(t):o.prune()}while(!s.done)}nodeModeToKey(t,n){return`${t.offset}:${t.end}:${n}`}insideRange(t,n){return!n||t.start.line<=n.start.line&&t.end.line>=n.end.line||t.start.line>=n.start.line&&t.end.line<=n.end.line||t.start.line<=n.end.line&&t.end.line>=n.end.line}isNecessary(t,n){return t.newText!==n.getText(t.range).replace(/\r/g,``)}iterateCstFormatting(t,n,i,o){let s={indentation:0,options:i,document:t.textDocument},c=[],u=this.iterateCstTree(t,s).iterator(),f,p;do if(p=u.next(),!p.done){let t=p.value,i=isLeafCstNode(t),u=this.nodeModeToKey(t,`prepend`),h=n.get(u);if(n.delete(u),h){let n=this.createTextEdit(f,t,h,s);for(let t of n)t&&this.insideRange(t.range,o)&&c.push(t)}let g=this.nodeModeToKey(t,`append`),_=n.get(g);if(n.delete(g),_){let n=getNextNode(t);if(n){let i=this.createTextEdit(t,n,_,s);for(let t of i)t&&this.insideRange(t.range,o)&&c.push(t)}}if(!h&&t.hidden){let n=this.createHiddenTextEdits(f,t,void 0,s);for(let t of n)t&&this.insideRange(t.range,o)&&c.push(t)}i&&(f=t)}while(!p.done);return c}createHiddenTextEdits(t,n,i,o){let s=n.range.start.line;if(t&&t.range.end.line===s)return[];let c=[],u={start:{character:0,line:s},end:n.range.start},f=o.document.getText(u),p=this.findFittingMove(u,i?.moves??[],o),h=this.getExistingIndentationCharacterCount(f,o),g=this.getIndentationCharacterCount(o,p)-h;if(g===0)return[];let _=``;g>0&&(_=(o.options.insertSpaces?` `:` `).repeat(g));let x=n.text.split(`
30
- `);x[0]=f+x[0];for(let t=0;t<x.length;t++){let n=s+t,i={character:0,line:n};if(g>0)c.push({newText:_,range:{start:i,end:i}});else{let o=x[t],s=0;for(;s<o.length;s++){let t=o.charAt(s);if(t!==` `&&t!==` `)break}c.push({newText:``,range:{start:i,end:{line:n,character:Math.min(s,Math.abs(g))}}})}}return c}getExistingIndentationCharacterCount(t,n){let i=` `.repeat(n.options.tabSize);return(n.options.insertSpaces?t.replaceAll(` `,i):t.replaceAll(i,` `)).length}getIndentationCharacterCount(t,n){let i=t.indentation;return n&&n.tabs&&(i+=n.tabs),(t.options.insertSpaces?t.options.tabSize:1)*i}createTextEdit(t,n,i,o){if(n.hidden)return this.createHiddenTextEdits(t,n,i,o);if(t&&(t.range.end.line>n.range.start.line||t.range.end.line===n.range.start.line&&t.range.end.character>n.range.start.character))return[];let s={start:t?.range.end??{character:0,line:0},end:n.range.start},c=this.findFittingMove(s,i.moves,o);if(!c)return[];let u=c.characters,f=c.lines,p=c.tabs,h=o.indentation;o.indentation+=p??0;let g=[];return u===void 0?f===void 0?p!==void 0&&g.push(this.createTabTextEdit(s,!!t,o)):g.push(this.createLineTextEdit(s,f,o,i.options)):t?.hidden||g.push(this.createSpaceTextEdit(s,u,i.options)),isLeafCstNode(n)&&(o.indentation=h),g}createSpaceTextEdit(t,n,i){if(t.start.line===t.end.line){let o=t.end.character-t.start.character;n=this.fitIntoOptions(n,o,i)}return{newText:` `.repeat(n),range:t}}createLineTextEdit(t,n,i,o){let s=t.end.line-t.start.line;n=this.fitIntoOptions(n,s,o);let c=(i.options.insertSpaces?` `.repeat(i.options.tabSize):` `).repeat(i.indentation);return{newText:`${`
31
- `.repeat(n)}${c}`,range:t}}createTabTextEdit(t,n,i){let o=(i.options.insertSpaces?` `.repeat(i.options.tabSize):` `).repeat(i.indentation),s=+!!n,c=Math.max(t.end.line-t.start.line,s);return{newText:`${`
32
- `.repeat(c)}${o}`,range:t}}fitIntoOptions(t,n,i){return i.allowMore?t=Math.max(n,t):i.allowLess&&(t=Math.min(n,t)),t}findFittingMove(t,n,i){if(n.length===0)return;if(n.length===1)return n[0];let o=t.end.line-t.start.line;for(let t of n)if(t.lines!==void 0&&o<=t.lines)return t;else if(t.lines===void 0&&o===0)return t;return n[n.length-1]}iterateCstTree(t,n){let i=t.parseResult.value.$cstNode;return i?new TreeStreamImpl(i,t=>this.iterateCst(t,n)):A}iterateCst(t,n){if(!isCompositeCstNode(t))return A;let i=n.indentation;return new k(()=>({index:0}),o=>o.index<t.content.length?{done:!1,value:t.content[o.index++]}:(n.indentation=i,j))}},DefaultNodeFormatter=class{constructor(t,n){this.astNode=t,this.collector=n}node(t){return new xi(t.$cstNode?[t.$cstNode]:[],this.collector)}nodes(...t){let n=[];for(let i of t)i.$cstNode&&n.push(i.$cstNode);return new xi(n,this.collector)}property(t,n){let i=findNodeForProperty(this.astNode.$cstNode,t,n);return new xi(i?[i]:[],this.collector)}properties(...t){let n=[];for(let i of t){let t=findNodesForProperty(this.astNode.$cstNode,i);n.push(...t)}return new xi(n,this.collector)}keyword(t,n){let i=findNodeForKeyword(this.astNode.$cstNode,t,n);return new xi(i?[i]:[],this.collector)}keywords(...t){let n=[];for(let i of t){let t=findNodesForKeyword(this.astNode.$cstNode,i);n.push(...t)}return new xi(n,this.collector)}cst(t){return new xi([...t],this.collector)}interior(t,n){let i=t.nodes,o=n.nodes;if(i.length!==1||o.length!==1)return new xi([],this.collector);let s=i[0],c=o[0];if(s.offset>c.offset){let t=s;s=c,c=t}return new xi(getInteriorNodes(s,c),this.collector)}},xi=class FormattingRegion{constructor(t,n){this.nodes=t,this.collector=n}prepend(t){for(let n of this.nodes)this.collector(n,`prepend`,t);return this}append(t){for(let n of this.nodes)this.collector(n,`append`,t);return this}surround(t){for(let n of this.nodes)this.collector(n,`prepend`,t),this.collector(n,`append`,t);return this}slice(t,n){return new FormattingRegion(this.nodes.slice(t,n),this.collector)}},Si;(function(t){function fit(...t){return{options:{},moves:t.flatMap(t=>t.moves).sort(compareMoves)}}t.fit=fit;function noSpace(t){return spaces(0,t)}t.noSpace=noSpace;function oneSpace(t){return spaces(1,t)}t.oneSpace=oneSpace;function spaces(t,n){return{options:n??{},moves:[{characters:t}]}}t.spaces=spaces;function newLine(t){return newLines(1,t)}t.newLine=newLine;function newLines(t,n){return{options:n??{},moves:[{lines:t}]}}t.newLines=newLines;function indent(t){return{options:t??{},moves:[{tabs:1,lines:1}]}}t.indent=indent;function noIndent(t){return{options:t??{},moves:[{tabs:0}]}}t.noIndent=noIndent;function compareMoves(t,n){let i=t.lines??0,o=n.lines??0,s=t.tabs??0,c=n.tabs??0,u=t.characters??0,f=n.characters??0;return i<o?-1:i>o?1:s<c?-1:s>c?1:u<f?-1:+(u>f)}})(Si||={});var NodeFileSystemProvider=class{constructor(){this.encoding=`utf-8`}readFile(t){return O.promises.readFile(t.fsPath,this.encoding)}async readDirectory(t){return(await O.promises.readdir(t.fsPath,{withFileTypes:!0})).map(n=>({dirent:n,isFile:n.isFile(),isDirectory:n.isDirectory(),uri:Y.joinPath(t,n.name)}))}};export{$t as $,SimpleCache as A,X as B,JSDocDocumentationProvider as C,DefaultDocumentValidator as D,Rn as E,DefaultScopeComputation as F,isOperationCancelled as G,J as H,MultiMap as I,Tt as J,DefaultValueConverter as K,DefaultNameProvider as L,Pn as M,MapScope as N,DefaultScopeProvider as O,StreamScope as P,W as Q,isNamed as R,inject as S,DefaultIndexManager as T,An as U,Y as V,interruptAndCheck as W,Et as X,ot as Y,U as Z,tr as _,A as _t,createDefaultSharedModule as a,findNodeForProperty as at,expandToNode as b,isAstNode as bt,AbstractSemanticTokenProvider as c,Be as ct,DefaultCompletionProvider as d,hasContainerOfType as dt,Qt as et,ui as f,streamAllContents as ft,er as g,findCommentNode as gt,joinToNode as h,isRuleCall as ht,createDefaultModule as i,findNodeForKeyword as it,WorkspaceCache as j,ContextCache as k,AstNodeHoverProvider as l,getContainerOfType as lt,hr as m,isKeyword as mt,AbstractFormatter as n,dt as nt,DefaultWorkspaceSymbolProvider as o,findNodesForProperty as ot,Q as p,isCrossReference as pt,Sn as q,Si as r,vn as rt,startLanguageServer as s,Ge as st,NodeFileSystemProvider as t,zt as tt,DefaultDocumentHighlightProvider as u,getDocument as ut,NewLineNode as v,stream as vt,DefaultWorkspaceManager as w,loadGrammarFromJson as x,toString as y,AbstractAstReflection as yt,DefaultLangiumDocuments as z};
21
+ `;function isGeneratorNode(t){return t instanceof Qr||t instanceof IndentNode||t instanceof NewLineNode}function toString(t,n){return isGeneratorNode(t)?processGeneratorNode(t,n).text:String(t)}var Qr=class CompositeGeneratorNode{constructor(...t){this.contents=[],this.append(...t)}isEmpty(){return this.contents.length===0}trace(t,n,i){if(isAstNode(t)){if(this.tracedSource={astNode:t,property:n,index:i},this.tracedSource.property===void 0&&this.tracedSource.index!==void 0&&this.tracedSource.index>-1)throw Error(`Generation support: 'property' argument must not be 'undefined' if a non-negative value is assigned to 'index' in 'CompositeGeneratorNode.trace(...)'.`)}else this.tracedSource=t;return this}append(...t){for(let n of t)typeof n==`function`?n(this):n&&this.contents.push(n);return this}prepend(...t){return this.contents.unshift(...t.filter(t=>t!==void 0)),this}appendIf(t,...n){return t?this.append(...n):this}prependIf(t,...n){return t?this.prepend(...n):this}appendNewLine(){return this.append($r)}appendNewLineIf(t){return t?this.append($r):this}appendNewLineIfNotEmpty(){return this.append(ei)}appendNewLineIfNotEmptyIf(t){return t?this.appendNewLineIfNotEmpty():this}appendTemplate(t,...n){return this.append(expandToNode(t,...n))}appendTemplateIf(t){return t?(t,...n)=>this.appendTemplate(t,...n):()=>this}indent(t){let{indentedChildren:n,indentation:i,indentEmptyLines:a,indentImmediately:o}=Array.isArray(t)||typeof t==`function`?{indentedChildren:t}:typeof t==`object`?t:{},c=new IndentNode(i,o,a);return this.contents.push(c),Array.isArray(n)?c.append(...n):n&&c.append(n),this}appendTraced(t,n,i){return a=>this.append(new CompositeGeneratorNode().trace(t,n,i).append(a))}appendTracedIf(t,n,i,a){return t?this.appendTraced(typeof n==`function`?n():n,i,a):()=>this}appendTracedTemplate(t,n,i){return(a,...o)=>this.append(expandTracedToNode(t,n,i)(a,...o))}appendTracedTemplateIf(t,n,i,a){return t?this.appendTracedTemplate(typeof n==`function`?n():n,i,a):()=>this}};function traceToNode(t,n,i){return a=>a instanceof Qr&&a.tracedSource===void 0?a.trace(t,n,i):new Qr().trace(t,n,i).append(a)}var IndentNode=class extends Qr{constructor(t,n=!0,i=!1){super(),typeof t==`string`?this.indentation=t:typeof t==`number`&&(this.indentation=``.padStart(t)),this.indentImmediately=n,this.indentEmptyLines=i}},NewLineNode=class{constructor(t=Zr,n=!1,i=1){this.lineDelimiter=t,this.ifNotEmpty=n,this.count=i}};const $r=new NewLineNode,ei=new NewLineNode(void 0,!0),defaultToGenerated=t=>t===void 0||typeof t==`string`||isGeneratorNode(t)?t:String(t);function joinToNode(t,n=defaultToGenerated,i={}){let a=typeof n==`function`?n:defaultToGenerated,{filter:o,prefix:c,suffix:l,separator:f,appendNewLineIfNotEmpty:p,skipNewLineAfterLastItem:h}=typeof n==`object`?n:i,_=typeof c==`function`?c:(()=>c),x=typeof l==`function`?l:(()=>l),doAppendNewLines=t=>{t.isEmpty()||(p===!0||p===1?t.appendNewLineIfNotEmpty():t.append(new NewLineNode(void 0,!0,p)))};return reduceWithIsLast(t,(t,n,i,c)=>{if(o&&!o(n,i,c))return t;let l=a(n,i,c);return l===void 0?t:(t??=new Qr).appendIf(!t.isEmpty(),f).appendIf(p!==void 0,doAppendNewLines).append(_(n,i,c)).append(l).append(x(n,i,c))})?.appendIf(!h&&p!==void 0,doAppendNewLines)}function reduceWithIsLast(t,n,i){let a=t[Symbol.iterator](),o=a.next(),c=0,l=i;for(;!o.done;){let t=a.next();l=n(l,o.value,c,!!t.done),o=t,c++}return l}var ti=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SemanticTokensBuilder=t.SemanticTokensDiff=t.SemanticTokensFeature=void 0;let n=J(),SemanticTokensFeature=t=>class extends t{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(n.SemanticTokensRefreshRequest.type),on:t=>{let i=n.SemanticTokensRequest.type;return this.connection.onRequest(i,(n,a)=>t(n,a,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))},onDelta:t=>{let i=n.SemanticTokensDeltaRequest.type;return this.connection.onRequest(i,(n,a)=>t(n,a,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))},onRange:t=>{let i=n.SemanticTokensRangeRequest.type;return this.connection.onRequest(i,(n,a)=>t(n,a,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))}}}};t.SemanticTokensFeature=SemanticTokensFeature;var SemanticTokensDiff=class{originalSequence;modifiedSequence;constructor(t,n){this.originalSequence=t,this.modifiedSequence=n}computeDiff(){let t=this.originalSequence.length,n=this.modifiedSequence.length,i=0;for(;i<n&&i<t&&this.originalSequence[i]===this.modifiedSequence[i];)i++;if(i<n&&i<t){let a=t-1,o=n-1;for(;a>=i&&o>=i&&this.originalSequence[a]===this.modifiedSequence[o];)a--,o--;(a<i||o<i)&&(a++,o++);let c=a-i+1,l=this.modifiedSequence.slice(i,o+1);return l.length===1&&l[0]===this.originalSequence[a]?[{start:i,deleteCount:c-1}]:[{start:i,deleteCount:c,data:l}]}return i<n?[{start:i,deleteCount:0,data:this.modifiedSequence.slice(i)}]:i<t?[{start:i,deleteCount:t-i}]:[]}};t.SemanticTokensDiff=SemanticTokensDiff,t.SemanticTokensBuilder=class SemanticTokensBuilder{_id;_prevLine;_prevChar;_dataIsSortedAndDeltaEncoded;_data;_dataNonDelta;_dataLen;_prevData;constructor(){this._prevData=void 0,this.initialize()}initialize(){this._id=Date.now(),this._prevLine=0,this._prevChar=0,this._data=[],this._dataNonDelta=[],this._dataLen=0,this._dataIsSortedAndDeltaEncoded=!0}push(t,n,i,a,o){this._dataIsSortedAndDeltaEncoded&&(t<this._prevLine||t===this._prevLine&&n<this._prevChar)&&(this._dataIsSortedAndDeltaEncoded=!1,this._dataNonDelta=SemanticTokensBuilder._deltaDecode(this._data));let c=t,l=n;this._dataIsSortedAndDeltaEncoded&&this._dataLen>0&&(c-=this._prevLine,c===0&&(l-=this._prevChar));let f=this._dataIsSortedAndDeltaEncoded?this._data:this._dataNonDelta;f[this._dataLen++]=c,f[this._dataLen++]=l,f[this._dataLen++]=i,f[this._dataLen++]=a,f[this._dataLen++]=o,this._prevLine=t,this._prevChar=n}get id(){return this._id.toString()}static _deltaDecode(t){let n=t.length/5|0,i=0,a=0,o=[];for(let c=0;c<n;c++){let n=5*c,l=t[n],f=t[n+1];l===0?(l=i,f+=a):l+=i;let p=t[n+2],h=t[n+3],_=t[n+4];o[n+0]=l,o[n+1]=f,o[n+2]=p,o[n+3]=h,o[n+4]=_,i=l,a=f}return o}static _sortAndDeltaEncode(t){let n=[],i=t.length/5|0;for(let t=0;t<i;t++)n[t]=t;n.sort((n,i)=>{let a=t[5*n],o=t[5*i];return a===o?t[5*n+1]-t[5*i+1]:a-o});let a=[],o=0,c=0;for(let l=0;l<i;l++){let i=5*n[l],f=t[i+0],p=t[i+1],h=t[i+2],_=t[i+3],x=t[i+4],S=f-o,C=S===0?p-c:p,w=5*l;a[w+0]=S,a[w+1]=C,a[w+2]=h,a[w+3]=_,a[w+4]=x,o=f,c=p}return a}getFinalDataDelta(){return this._dataIsSortedAndDeltaEncoded?this._data:SemanticTokensBuilder._sortAndDeltaEncode(this._dataNonDelta)}previousResult(t){this._prevData=this.id===t?this.getFinalDataDelta():void 0,this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this.getFinalDataDelta()}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData===void 0?this.build():{resultId:this.id,edits:new SemanticTokensDiff(this._prevData,this.getFinalDataDelta()).computeDiff()}}}})),ni=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.empty=void 0,t.v4=v4,t.isUUID=isUUID,t.parse=parse,t.generateUuid=generateUuid;var ValueUUID=class{_value;constructor(t){this._value=t}asHex(){return this._value}equals(t){return this.asHex()===t.asHex()}},n=class V4UUID extends ValueUUID{static _chars=[`0`,`1`,`2`,`3`,`4`,`5`,`6`,`6`,`7`,`8`,`9`,`a`,`b`,`c`,`d`,`e`,`f`];static _timeHighBits=[`8`,`9`,`a`,`b`];static _oneOf(t){return t[Math.floor(t.length*Math.random())]}static _randomHex(){return V4UUID._oneOf(V4UUID._chars)}constructor(){super([V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),`-`,V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),`-`,`4`,V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),`-`,V4UUID._oneOf(V4UUID._timeHighBits),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),`-`,V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex(),V4UUID._randomHex()].join(``))}};t.empty=new ValueUUID(`00000000-0000-0000-0000-000000000000`);function v4(){return new n}let i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function isUUID(t){return i.test(t)}function parse(t){if(!isUUID(t))throw Error(`invalid uuid`);return new ValueUUID(t)}function generateUuid(){return v4().asHex()}})),ri=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ProgressFeature=t.WorkDoneProgressReporter=void 0,t.attachWorkDone=attachWorkDone,t.attachPartialResult=attachPartialResult;let n=J(),i=ni();var a;(function(t){function isNullInstance(t){return t instanceof NullProgressReporter}t.isNullInstance=isNullInstance})(a||(t.WorkDoneProgressReporter=a={}));var o=class WorkDoneProgressReporterImpl{_connection;_token;static Instances=/* @__PURE__ */ new Map;constructor(t,n){this._connection=t,this._token=n,WorkDoneProgressReporterImpl.Instances.set(this._token,this)}begin(t,i,a,o){let c={kind:`begin`,title:t,message:a,cancellable:o};typeof i==`number`&&(c.percentage=Math.round(i)),this._connection.sendProgress(n.WorkDoneProgress.type,this._token,c)}report(t,i){let a={kind:`report`};typeof t==`number`?(a.percentage=Math.round(t),i!==void 0&&(a.message=i)):a.message=t,this._connection.sendProgress(n.WorkDoneProgress.type,this._token,a)}done(){WorkDoneProgressReporterImpl.Instances.delete(this._token),this._connection.sendProgress(n.WorkDoneProgress.type,this._token,{kind:`end`})}},WorkDoneProgressServerReporterImpl=class extends o{_source;constructor(t,i){super(t,i),this._source=new n.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},NullProgressReporter=class{constructor(){}begin(){}report(){}done(){}},NullProgressServerReporter=class extends NullProgressReporter{_source;constructor(){super(),this._source=new n.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function attachWorkDone(t,n){if(n===void 0||n.workDoneToken===void 0)return new NullProgressReporter;let i=n.workDoneToken;return delete n.workDoneToken,new o(t,i)}let ProgressFeature=t=>class extends t{_progressSupported;constructor(){super(),this._progressSupported=!1}initialize(t){super.initialize(t),t?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(n.WorkDoneProgressCancelNotification.type,t=>{let n=o.Instances.get(t.token);(n instanceof WorkDoneProgressServerReporterImpl||n instanceof NullProgressServerReporter)&&n.cancel()}))}attachWorkDoneProgress(t){return t===void 0?new NullProgressReporter:new o(this.connection,t)}createWorkDoneProgress(){if(this._progressSupported){let t=(0,i.generateUuid)();return this.connection.sendRequest(n.WorkDoneProgressCreateRequest.type,{token:t}).then(()=>new WorkDoneProgressServerReporterImpl(this.connection,t))}return Promise.resolve(new NullProgressServerReporter)}};t.ProgressFeature=ProgressFeature;var c;(function(t){t.type=new n.ProgressType})(c||={});var ResultProgressReporterImpl=class{_connection;_token;constructor(t,n){this._connection=t,this._token=n}report(t){this._connection.sendProgress(c.type,this._token,t)}};function attachPartialResult(t,n){if(n===void 0||n.partialResultToken===void 0)return;let i=n.partialResultToken;return delete n.partialResultToken,new ResultProgressReporterImpl(t,i)}})),ii=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextDocuments=void 0;let n=J();var TextDocuments=class{_configuration;_syncedDocuments;_onDidChangeContent;_onDidOpen;_onDidClose;_onDidSave;_onWillSave;_willSaveWaitUntil;constructor(t){this._configuration=t,this._syncedDocuments=/* @__PURE__ */ new Map,this._onDidChangeContent=new n.Emitter,this._onDidOpen=new n.Emitter,this._onDidClose=new n.Emitter,this._onDidSave=new n.Emitter,this._onWillSave=new n.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(t){this._willSaveWaitUntil=t}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(t){return this._syncedDocuments.get(t)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(t){t.__textDocumentSync=n.TextDocumentSyncKind.Incremental;let i=[];return i.push(t.onDidOpenTextDocument(t=>{let n=t.textDocument,i=this._configuration.create(n.uri,n.languageId,n.version,n.text);this._syncedDocuments.set(n.uri,i);let a=Object.freeze({document:i});this._onDidOpen.fire(a),this._onDidChangeContent.fire(a)})),i.push(t.onDidChangeTextDocument(t=>{let n=t.textDocument,i=t.contentChanges;if(i.length===0)return;let{version:a}=n;if(a==null)throw Error(`Received document change event for ${n.uri} without valid version identifier`);let o=this._syncedDocuments.get(n.uri);o!==void 0&&(o=this._configuration.update(o,i,a),this._syncedDocuments.set(n.uri,o),this._onDidChangeContent.fire(Object.freeze({document:o})))})),i.push(t.onDidCloseTextDocument(t=>{let n=this._syncedDocuments.get(t.textDocument.uri);n!==void 0&&(this._syncedDocuments.delete(t.textDocument.uri),this._onDidClose.fire(Object.freeze({document:n})))})),i.push(t.onWillSaveTextDocument(t=>{let n=this._syncedDocuments.get(t.textDocument.uri);n!==void 0&&this._onWillSave.fire(Object.freeze({document:n,reason:t.reason}))})),i.push(t.onWillSaveTextDocumentWaitUntil((t,n)=>{let i=this._syncedDocuments.get(t.textDocument.uri);return i!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:i,reason:t.reason}),n):[]})),i.push(t.onDidSaveTextDocument(t=>{let n=this._syncedDocuments.get(t.textDocument.uri);n!==void 0&&this._onDidSave.fire(Object.freeze({document:n}))})),n.Disposable.create(()=>{i.forEach(t=>t.dispose())})}};t.TextDocuments=TextDocuments})),ai=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NotebookDocuments=t.NotebookSyncFeature=void 0;let n=J(),i=ii(),NotebookSyncFeature=t=>class extends t{get synchronization(){return{onDidOpenNotebookDocument:t=>this.connection.onNotification(n.DidOpenNotebookDocumentNotification.type,n=>t(n)),onDidChangeNotebookDocument:t=>this.connection.onNotification(n.DidChangeNotebookDocumentNotification.type,n=>t(n)),onDidSaveNotebookDocument:t=>this.connection.onNotification(n.DidSaveNotebookDocumentNotification.type,n=>t(n)),onDidCloseNotebookDocument:t=>this.connection.onNotification(n.DidCloseNotebookDocumentNotification.type,n=>t(n))}}};t.NotebookSyncFeature=NotebookSyncFeature;var a=class CellTextDocumentConnection{static NULL_DISPOSE=Object.freeze({dispose:()=>{}});openHandler;changeHandler;closeHandler;onDidOpenTextDocument(t){return this.openHandler=t,n.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(t){return this.openHandler&&this.openHandler(t)}onDidChangeTextDocument(t){return this.changeHandler=t,n.Disposable.create(()=>{this.changeHandler=t})}changeTextDocument(t){return this.changeHandler&&this.changeHandler(t)}onDidCloseTextDocument(t){return this.closeHandler=t,n.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(t){return this.closeHandler&&this.closeHandler(t)}onWillSaveTextDocument(){return CellTextDocumentConnection.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return CellTextDocumentConnection.NULL_DISPOSE}onDidSaveTextDocument(){return CellTextDocumentConnection.NULL_DISPOSE}},NotebookDocuments=class{notebookDocuments;notebookCellMap;_onDidOpen;_onDidSave;_onDidChange;_onDidClose;_cellTextDocuments;constructor(t){this._cellTextDocuments=t instanceof i.TextDocuments?t:new i.TextDocuments(t),this.notebookDocuments=/* @__PURE__ */ new Map,this.notebookCellMap=/* @__PURE__ */ new Map,this._onDidOpen=new n.Emitter,this._onDidChange=new n.Emitter,this._onDidSave=new n.Emitter,this._onDidClose=new n.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(t){return this._cellTextDocuments.get(t.document)}getNotebookDocument(t){return this.notebookDocuments.get(t)}getNotebookCell(t){let n=this.notebookCellMap.get(t);return n&&n[0]}findNotebookDocumentForCell(t){let n=typeof t==`string`?t:t.document,i=this.notebookCellMap.get(n);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(t){let i=new a,o=[];return o.push(this.cellTextDocuments.listen(i)),o.push(t.notebooks.synchronization.onDidOpenNotebookDocument(async t=>{this.notebookDocuments.set(t.notebookDocument.uri,t.notebookDocument);for(let n of t.cellTextDocuments)await i.openTextDocument({textDocument:n});this.updateCellMap(t.notebookDocument),this._onDidOpen.fire(t.notebookDocument)})),o.push(t.notebooks.synchronization.onDidChangeNotebookDocument(async t=>{let n=this.notebookDocuments.get(t.notebookDocument.uri);if(n===void 0)return;n.version=t.notebookDocument.version;let a=n.metadata,o=!1,c=t.change;c.metadata!==void 0&&(o=!0,n.metadata=c.metadata);let l=[],f=[],p=[],h=[];if(c.cells!==void 0){let t=c.cells;if(t.structure!==void 0){let a=t.structure.array;if(n.cells.splice(a.start,a.deleteCount,...a.cells===void 0?[]:a.cells),t.structure.didOpen!==void 0)for(let n of t.structure.didOpen)await i.openTextDocument({textDocument:n}),l.push(n.uri);if(t.structure.didClose)for(let n of t.structure.didClose)await i.closeTextDocument({textDocument:n}),f.push(n.uri)}if(t.data!==void 0){let i=new Map(t.data.map(t=>[t.document,t]));for(let t=0;t<=n.cells.length;t++){let a=i.get(n.cells[t].document);if(a!==void 0){let o=n.cells.splice(t,1,a);if(p.push({old:o[0],new:a}),i.delete(a.document),i.size===0)break}}}if(t.textContent!==void 0)for(let n of t.textContent)await i.changeTextDocument({textDocument:n.document,contentChanges:n.changes}),h.push(n.document.uri)}this.updateCellMap(n);let _={notebookDocument:n};o&&(_.metadata={old:a,new:n.metadata});let x=[];for(let t of l)x.push(this.getNotebookCell(t));let S=[];for(let t of f)S.push(this.getNotebookCell(t));let C=[];for(let t of h)C.push(this.getNotebookCell(t));(x.length>0||S.length>0||p.length>0||C.length>0)&&(_.cells={added:x,removed:S,changed:{data:p,textContent:C}}),(_.metadata!==void 0||_.cells!==void 0)&&this._onDidChange.fire(_)})),o.push(t.notebooks.synchronization.onDidSaveNotebookDocument(t=>{let n=this.notebookDocuments.get(t.notebookDocument.uri);n!==void 0&&this._onDidSave.fire(n)})),o.push(t.notebooks.synchronization.onDidCloseNotebookDocument(async t=>{let n=this.notebookDocuments.get(t.notebookDocument.uri);if(n!==void 0){this._onDidClose.fire(n);for(let n of t.cellTextDocuments)await i.closeTextDocument({textDocument:n});this.notebookDocuments.delete(t.notebookDocument.uri);for(let t of n.cells)this.notebookCellMap.delete(t.document)}})),n.Disposable.create(()=>{o.forEach(t=>t.dispose())})}updateCellMap(t){for(let n of t.cells)this.notebookCellMap.set(n.document,[n,t])}};t.NotebookDocuments=NotebookDocuments})),oi=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolean=boolean,t.string=string,t.number=number,t.error=error,t.func=func,t.array=array,t.stringArray=stringArray,t.typedArray=typedArray,t.thenable=thenable;function boolean(t){return t===!0||t===!1}function string(t){return typeof t==`string`||t instanceof String}function number(t){return typeof t==`number`||t instanceof Number}function error(t){return t instanceof Error}function func(t){return typeof t==`function`}function array(t){return Array.isArray(t)}function stringArray(t){return array(t)&&t.every(t=>string(t))}function typedArray(t,n){return Array.isArray(t)&&t.every(n)}function thenable(t){return t&&func(t.then)}})),si=/* @__PURE__ */ o((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,a){a===void 0&&(a=i);var o=Object.getOwnPropertyDescriptor(n,i);(!o||(`get`in o?!n.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,a,o)}):(function(t,n,i,a){a===void 0&&(a=i),t[a]=n[i]})),i=t&&t.__setModuleDefault||(Object.create?(function(t,n){Object.defineProperty(t,"default",{enumerable:!0,value:n})}):function(t,n){t.default=n}),a=t&&t.__importStar||(function(){var ownKeys=function(t){return ownKeys=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},ownKeys(t)};return function(t){if(t&&t.__esModule)return t;var a={};if(t!=null)for(var o=ownKeys(t),c=0;c<o.length;c++)o[c]!=="default"&&n(a,t,o[c]);return i(a,t),a}})();Object.defineProperty(t,"__esModule",{value:!0}),t.ConfigurationFeature=void 0;let o=J(),c=a(oi()),ConfigurationFeature=t=>class extends t{getConfiguration(t){return t?c.string(t)?this._getConfiguration({section:t}):this._getConfiguration(t):this._getConfiguration({})}_getConfiguration(t){let n={items:Array.isArray(t)?t:[t]};return this.connection.sendRequest(o.ConfigurationRequest.type,n).then(n=>Array.isArray(n)?Array.isArray(t)?n:n[0]:Array.isArray(t)?[]:null)}};t.ConfigurationFeature=ConfigurationFeature})),ci=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WorkspaceFoldersFeature=void 0;let n=J(),WorkspaceFoldersFeature=t=>class extends t{_onDidChangeWorkspaceFolders;_unregistration;_notificationIsAutoRegistered;constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(t){super.initialize(t);let i=t.workspace;i&&i.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new n.Emitter,this.connection.onNotification(n.DidChangeWorkspaceFoldersNotification.type,t=>{this._onDidChangeWorkspaceFolders.fire(t.event)}))}fillServerCapabilities(t){super.fillServerCapabilities(t);let n=t.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=n===!0||typeof n==`string`}getWorkspaceFolders(){return this.connection.sendRequest(n.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw Error(`Client doesn't support sending workspace folder change events.`);return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(n.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};t.WorkspaceFoldersFeature=WorkspaceFoldersFeature})),li=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CallHierarchyFeature=void 0;let n=J(),CallHierarchyFeature=t=>class extends t{get callHierarchy(){return{onPrepare:t=>this.connection.onRequest(n.CallHierarchyPrepareRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),void 0)),onIncomingCalls:t=>{let i=n.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(i,(n,a)=>t(n,a,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))},onOutgoingCalls:t=>{let i=n.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(i,(n,a)=>t(n,a,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))}}}};t.CallHierarchyFeature=CallHierarchyFeature})),ui=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ShowDocumentFeature=void 0;let n=J(),ShowDocumentFeature=t=>class extends t{showDocument(t){return this.connection.sendRequest(n.ShowDocumentRequest.type,t)}};t.ShowDocumentFeature=ShowDocumentFeature})),di=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FileOperationsFeature=void 0;let n=J(),FileOperationsFeature=t=>class extends t{onDidCreateFiles(t){return this.connection.onNotification(n.DidCreateFilesNotification.type,n=>t(n))}onDidRenameFiles(t){return this.connection.onNotification(n.DidRenameFilesNotification.type,n=>t(n))}onDidDeleteFiles(t){return this.connection.onNotification(n.DidDeleteFilesNotification.type,n=>t(n))}onWillCreateFiles(t){return this.connection.onRequest(n.WillCreateFilesRequest.type,(n,i)=>t(n,i))}onWillRenameFiles(t){return this.connection.onRequest(n.WillRenameFilesRequest.type,(n,i)=>t(n,i))}onWillDeleteFiles(t){return this.connection.onRequest(n.WillDeleteFilesRequest.type,(n,i)=>t(n,i))}};t.FileOperationsFeature=FileOperationsFeature})),fi=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkedEditingRangeFeature=void 0;let n=J(),LinkedEditingRangeFeature=t=>class extends t{onLinkedEditingRange(t){return this.connection.onRequest(n.LinkedEditingRangeRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),void 0))}};t.LinkedEditingRangeFeature=LinkedEditingRangeFeature})),pi=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TypeHierarchyFeature=void 0;let n=J(),TypeHierarchyFeature=t=>class extends t{get typeHierarchy(){return{onPrepare:t=>this.connection.onRequest(n.TypeHierarchyPrepareRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n),void 0)),onSupertypes:t=>{let i=n.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(i,(n,a)=>t(n,a,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))},onSubtypes:t=>{let i=n.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(i,(n,a)=>t(n,a,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))}}}};t.TypeHierarchyFeature=TypeHierarchyFeature})),mi=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InlineValueFeature=void 0;let n=J(),InlineValueFeature=t=>class extends t{get inlineValue(){return{refresh:()=>this.connection.sendRequest(n.InlineValueRefreshRequest.type),on:t=>this.connection.onRequest(n.InlineValueRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n)))}}};t.InlineValueFeature=InlineValueFeature})),hi=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FoldingRangeFeature=void 0;let n=J(),FoldingRangeFeature=t=>class extends t{get foldingRange(){return{refresh:()=>this.connection.sendRequest(n.FoldingRangeRefreshRequest.type),on:t=>{let i=n.FoldingRangeRequest.type;return this.connection.onRequest(i,(n,a)=>t(n,a,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))}}}};t.FoldingRangeFeature=FoldingRangeFeature})),gi=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InlayHintFeature=void 0;let n=J(),InlayHintFeature=t=>class extends t{get inlayHint(){return{refresh:()=>this.connection.sendRequest(n.InlayHintRefreshRequest.type),on:t=>this.connection.onRequest(n.InlayHintRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n))),resolve:t=>this.connection.onRequest(n.InlayHintResolveRequest.type,(n,i)=>t(n,i))}}};t.InlayHintFeature=InlayHintFeature})),_i=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiagnosticFeature=void 0;let n=J(),DiagnosticFeature=t=>class extends t{get diagnostics(){return{refresh:()=>this.connection.sendRequest(n.DiagnosticRefreshRequest.type),on:t=>this.connection.onRequest(n.DocumentDiagnosticRequest.type,(i,a)=>t(i,a,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n.DocumentDiagnosticRequest.partialResult,i))),onWorkspace:t=>this.connection.onRequest(n.WorkspaceDiagnosticRequest.type,(i,a)=>t(i,a,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(n.WorkspaceDiagnosticRequest.partialResult,i)))}}};t.DiagnosticFeature=DiagnosticFeature})),vi=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MonikerFeature=void 0;let n=J(),MonikerFeature=t=>class extends t{get moniker(){return{on:t=>{let i=n.MonikerRequest.type;return this.connection.onRequest(i,(n,a)=>t(n,a,this.attachWorkDoneProgress(n),this.attachPartialResultProgress(i,n)))}}}};t.MonikerFeature=MonikerFeature})),yi=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InlineCompletionFeature=void 0;let n=J(),InlineCompletionFeature=t=>class extends t{get inlineCompletion(){return{on:t=>this.connection.onRequest(n.InlineCompletionRequest.type,(n,i)=>t(n,i,this.attachWorkDoneProgress(n)))}}};t.InlineCompletionFeature=InlineCompletionFeature})),bi=/* @__PURE__ */ o((t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TextDocumentContentFeature=void 0;let n=J(),TextDocumentContentFeature=t=>class extends t{get textDocumentContent(){return{refresh:t=>this.connection.sendRequest(n.TextDocumentContentRefreshRequest.type,{uri:t}),on:t=>this.connection.onRequest(n.TextDocumentContentRequest.type,(n,i)=>t(n,i))}}};t.TextDocumentContentFeature=TextDocumentContentFeature})),xi=/* @__PURE__ */ o((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,a){a===void 0&&(a=i);var o=Object.getOwnPropertyDescriptor(n,i);(!o||(`get`in o?!n.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,a,o)}):(function(t,n,i,a){a===void 0&&(a=i),t[a]=n[i]})),i=t&&t.__setModuleDefault||(Object.create?(function(t,n){Object.defineProperty(t,"default",{enumerable:!0,value:n})}):function(t,n){t.default=n}),a=t&&t.__importStar||(function(){var ownKeys=function(t){return ownKeys=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},ownKeys(t)};return function(t){if(t&&t.__esModule)return t;var a={};if(t!=null)for(var o=ownKeys(t),c=0;c<o.length;c++)o[c]!=="default"&&n(a,t,o[c]);return i(a,t),a}})();Object.defineProperty(t,"__esModule",{value:!0}),t._NotebooksImpl=t._LanguagesImpl=t.BulkUnregistration=t.BulkRegistration=t.ErrorMessageTracker=void 0,t.combineConsoleFeatures=combineConsoleFeatures,t.combineTelemetryFeatures=combineTelemetryFeatures,t.combineTracerFeatures=combineTracerFeatures,t.combineClientFeatures=combineClientFeatures,t.combineWindowFeatures=combineWindowFeatures,t.combineWorkspaceFeatures=combineWorkspaceFeatures,t.combineLanguagesFeatures=combineLanguagesFeatures,t.combineNotebooksFeatures=combineNotebooksFeatures,t.combineFeatures=combineFeatures,t.createConnection=createConnection;let o=J(),c=a(oi()),l=a(ni()),f=ri(),p=si(),h=ci(),_=li(),x=ti(),S=ui(),C=di(),w=fi(),T=pi(),E=mi(),D=hi(),O=gi(),k=_i(),ee=ai(),A=vi(),te=yi(),ne=bi();function null2Undefined(t){if(t!==null)return t}var ErrorMessageTracker=class{_messages;constructor(){this._messages=Object.create(null)}add(t){let n=this._messages[t];n||=0,n++,this._messages[t]=n}sendErrors(t){Object.keys(this._messages).forEach(n=>{t.window.showErrorMessage(n)})}};t.ErrorMessageTracker=ErrorMessageTracker;var RemoteConsoleImpl=class{_rawConnection;_connection;constructor(){}rawAttach(t){this._rawConnection=t}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}fillServerCapabilities(t){}initialize(t){}error(t){this.send(o.MessageType.Error,t)}warn(t){this.send(o.MessageType.Warning,t)}info(t){this.send(o.MessageType.Info,t)}log(t){this.send(o.MessageType.Log,t)}debug(t){this.send(o.MessageType.Debug,t)}send(t,n){this._rawConnection&&this._rawConnection.sendNotification(o.LogMessageNotification.type,{type:t,message:n}).catch(()=>{(0,o.RAL)().console.error(`Sending log message failed`)})}},_RemoteWindowImpl=class{_connection;constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}showErrorMessage(t,...n){let i={type:o.MessageType.Error,message:t,actions:n};return this.connection.sendRequest(o.ShowMessageRequest.type,i).then(null2Undefined)}showWarningMessage(t,...n){let i={type:o.MessageType.Warning,message:t,actions:n};return this.connection.sendRequest(o.ShowMessageRequest.type,i).then(null2Undefined)}showInformationMessage(t,...n){let i={type:o.MessageType.Info,message:t,actions:n};return this.connection.sendRequest(o.ShowMessageRequest.type,i).then(null2Undefined)}};let j=(0,S.ShowDocumentFeature)((0,f.ProgressFeature)(_RemoteWindowImpl));var M;(function(t){function create(){return new BulkRegistrationImpl}t.create=create})(M||(t.BulkRegistration=M={}));var BulkRegistrationImpl=class{_registrations=[];_registered=/* @__PURE__ */ new Set;add(t,n){let i=c.string(t)?t:t.method;if(this._registered.has(i))throw Error(`${i} is already added to this registration`);let a=l.generateUuid();this._registrations.push({id:a,method:i,registerOptions:n||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},N;(function(t){function create(){return new BulkUnregistrationImpl(void 0,[])}t.create=create})(N||(t.BulkUnregistration=N={}));var BulkUnregistrationImpl=class{_connection;_unregistrations=/* @__PURE__ */ new Map;constructor(t,n){this._connection=t,n.forEach(t=>{this._unregistrations.set(t.method,t)})}get isAttached(){return!!this._connection}attach(t){this._connection=t}add(t){this._unregistrations.set(t.method,t)}dispose(){let t=[];for(let n of this._unregistrations.values())t.push(n);let n={unregisterations:t};this._connection.sendRequest(o.UnregistrationRequest.type,n).catch(()=>{this._connection.console.info(`Bulk unregistration failed.`)})}disposeSingle(t){let n=c.string(t)?t:t.method,i=this._unregistrations.get(n);if(!i)return!1;let a={unregisterations:[i]};return this._connection.sendRequest(o.UnregistrationRequest.type,a).then(()=>{this._unregistrations.delete(n)},t=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},RemoteClientImpl=class{_connection;attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}register(t,n,i){return t instanceof BulkRegistrationImpl?this.registerMany(t):t instanceof BulkUnregistrationImpl?this.registerSingle1(t,n,i):this.registerSingle2(t,n)}registerSingle1(t,n,i){let a=c.string(n)?n:n.method,f=l.generateUuid(),p={registrations:[{id:f,method:a,registerOptions:i||{}}]};return t.isAttached||t.attach(this.connection),this.connection.sendRequest(o.RegistrationRequest.type,p).then(n=>(t.add({id:f,method:a}),t),t=>(this.connection.console.info(`Registering request handler for ${a} failed.`),Promise.reject(t)))}registerSingle2(t,n){let i=c.string(t)?t:t.method,a=l.generateUuid(),f={registrations:[{id:a,method:i,registerOptions:n||{}}]};return this.connection.sendRequest(o.RegistrationRequest.type,f).then(t=>o.Disposable.create(()=>{this.unregisterSingle(a,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${a} failed.`)})}),t=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(t)))}unregisterSingle(t,n){let i={unregisterations:[{id:t,method:n}]};return this.connection.sendRequest(o.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${t} failed.`)})}registerMany(t){let n=t.asRegistrationParams();return this.connection.sendRequest(o.RegistrationRequest.type,n).then(()=>new BulkUnregistrationImpl(this._connection,n.registrations.map(t=>({id:t.id,method:t.method}))),t=>(this.connection.console.info(`Bulk registration failed.`),Promise.reject(t)))}},_RemoteWorkspaceImpl=class{_connection;constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}applyEdit(t){function isApplyWorkspaceEditParams(t){return t&&!!t.edit}let n=isApplyWorkspaceEditParams(t)?t:{edit:t};return this.connection.sendRequest(o.ApplyWorkspaceEditRequest.type,n)}};let P=(0,ne.TextDocumentContentFeature)((0,C.FileOperationsFeature)((0,h.WorkspaceFoldersFeature)((0,p.ConfigurationFeature)(_RemoteWorkspaceImpl))));var TracerImpl=class{_trace;_connection;constructor(){this._trace=o.Trace.Off}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}set trace(t){this._trace=t}log(t,n){this._trace!==o.Trace.Off&&this.connection.sendNotification(o.LogTraceNotification.type,{message:t,verbose:this._trace===o.Trace.Verbose?n:void 0}).catch(()=>{})}},TelemetryImpl=class{_connection;constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}logEvent(t){this.connection.sendNotification(o.TelemetryEventNotification.type,t).catch(()=>{this.connection.console.log(`Sending TelemetryEventNotification failed`)})}},_LanguagesImpl=class{_connection;constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}attachWorkDoneProgress(t){return(0,f.attachWorkDone)(this.connection,t)}attachPartialResultProgress(t,n){return(0,f.attachPartialResult)(this.connection,n)}};t._LanguagesImpl=_LanguagesImpl;let re=(0,te.InlineCompletionFeature)((0,D.FoldingRangeFeature)((0,A.MonikerFeature)((0,k.DiagnosticFeature)((0,O.InlayHintFeature)((0,E.InlineValueFeature)((0,T.TypeHierarchyFeature)((0,w.LinkedEditingRangeFeature)((0,x.SemanticTokensFeature)((0,_.CallHierarchyFeature)(_LanguagesImpl))))))))));var _NotebooksImpl=class{_connection;constructor(){}attach(t){this._connection=t}get connection(){if(!this._connection)throw Error(`Remote is not attached to a connection yet.`);return this._connection}initialize(t){}fillServerCapabilities(t){}attachWorkDoneProgress(t){return(0,f.attachWorkDone)(this.connection,t)}attachPartialResultProgress(t,n){return(0,f.attachPartialResult)(this.connection,n)}};t._NotebooksImpl=_NotebooksImpl;let F=(0,ee.NotebookSyncFeature)(_NotebooksImpl);function combineConsoleFeatures(t,n){return function(i){return n(t(i))}}function combineTelemetryFeatures(t,n){return function(i){return n(t(i))}}function combineTracerFeatures(t,n){return function(i){return n(t(i))}}function combineClientFeatures(t,n){return function(i){return n(t(i))}}function combineWindowFeatures(t,n){return function(i){return n(t(i))}}function combineWorkspaceFeatures(t,n){return function(i){return n(t(i))}}function combineLanguagesFeatures(t,n){return function(i){return n(t(i))}}function combineNotebooksFeatures(t,n){return function(i){return n(t(i))}}function combineFeatures(t,n){function combine(t,n,i){return t&&n?i(t,n):t||n}return{__brand:`features`,console:combine(t.console,n.console,combineConsoleFeatures),tracer:combine(t.tracer,n.tracer,combineTracerFeatures),telemetry:combine(t.telemetry,n.telemetry,combineTelemetryFeatures),client:combine(t.client,n.client,combineClientFeatures),window:combine(t.window,n.window,combineWindowFeatures),workspace:combine(t.workspace,n.workspace,combineWorkspaceFeatures),languages:combine(t.languages,n.languages,combineLanguagesFeatures),notebooks:combine(t.notebooks,n.notebooks,combineNotebooksFeatures)}}function createConnection(t,n,i){let a=i&&i.console?new(i.console(RemoteConsoleImpl)):new RemoteConsoleImpl,l=t(a);a.rawAttach(l);let p=i&&i.tracer?new(i.tracer(TracerImpl)):new TracerImpl,h=i&&i.telemetry?new(i.telemetry(TelemetryImpl)):new TelemetryImpl,_=i&&i.client?new(i.client(RemoteClientImpl)):new RemoteClientImpl,x=i&&i.window?new(i.window(j)):new j,S=i&&i.workspace?new(i.workspace(P)):new P,C=i&&i.languages?new(i.languages(re)):new re,w=i&&i.notebooks?new(i.notebooks(F)):new F,T=[a,p,h,_,x,S,C,w];function asPromise(t){return t instanceof Promise?t:c.thenable(t)?new Promise((n,i)=>{t.then(t=>n(t),t=>i(t))}):Promise.resolve(t)}let E,D,O,k={listen:()=>l.listen(),sendRequest:(t,...n)=>l.sendRequest(c.string(t)?t:t.method,...n),onRequest:(t,n)=>l.onRequest(t,n),sendNotification:(t,n)=>{let i=c.string(t)?t:t.method;return l.sendNotification(i,n)},onNotification:(t,n)=>l.onNotification(t,n),onProgress:l.onProgress,sendProgress:l.sendProgress,onInitialize:t=>(D=t,{dispose:()=>{D=void 0}}),onInitialized:t=>l.onNotification(o.InitializedNotification.type,t),onShutdown:t=>(E=t,{dispose:()=>{E=void 0}}),onExit:t=>(O=t,{dispose:()=>{O=void 0}}),get console(){return a},get telemetry(){return h},get tracer(){return p},get client(){return _},get window(){return x},get workspace(){return S},get languages(){return C},get notebooks(){return w},onDidChangeConfiguration:t=>l.onNotification(o.DidChangeConfigurationNotification.type,t),onDidChangeWatchedFiles:t=>l.onNotification(o.DidChangeWatchedFilesNotification.type,t),__textDocumentSync:void 0,onDidOpenTextDocument:t=>l.onNotification(o.DidOpenTextDocumentNotification.type,t),onDidChangeTextDocument:t=>l.onNotification(o.DidChangeTextDocumentNotification.type,t),onDidCloseTextDocument:t=>l.onNotification(o.DidCloseTextDocumentNotification.type,t),onWillSaveTextDocument:t=>l.onNotification(o.WillSaveTextDocumentNotification.type,t),onWillSaveTextDocumentWaitUntil:t=>l.onRequest(o.WillSaveTextDocumentWaitUntilRequest.type,t),onDidSaveTextDocument:t=>l.onNotification(o.DidSaveTextDocumentNotification.type,t),sendDiagnostics:t=>l.sendNotification(o.PublishDiagnosticsNotification.type,t),onHover:t=>l.onRequest(o.HoverRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),void 0)),onCompletion:t=>l.onRequest(o.CompletionRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onCompletionResolve:t=>l.onRequest(o.CompletionResolveRequest.type,t),onSignatureHelp:t=>l.onRequest(o.SignatureHelpRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),void 0)),onDeclaration:t=>l.onRequest(o.DeclarationRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onDefinition:t=>l.onRequest(o.DefinitionRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onTypeDefinition:t=>l.onRequest(o.TypeDefinitionRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onImplementation:t=>l.onRequest(o.ImplementationRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onReferences:t=>l.onRequest(o.ReferencesRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onDocumentHighlight:t=>l.onRequest(o.DocumentHighlightRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onDocumentSymbol:t=>l.onRequest(o.DocumentSymbolRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onWorkspaceSymbol:t=>l.onRequest(o.WorkspaceSymbolRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onWorkspaceSymbolResolve:t=>l.onRequest(o.WorkspaceSymbolResolveRequest.type,t),onCodeAction:t=>l.onRequest(o.CodeActionRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onCodeActionResolve:t=>l.onRequest(o.CodeActionResolveRequest.type,(n,i)=>t(n,i)),onCodeLens:t=>l.onRequest(o.CodeLensRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onCodeLensResolve:t=>l.onRequest(o.CodeLensResolveRequest.type,(n,i)=>t(n,i)),onDocumentFormatting:t=>l.onRequest(o.DocumentFormattingRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),void 0)),onDocumentRangeFormatting:t=>l.onRequest(o.DocumentRangeFormattingRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),void 0)),onDocumentRangesFormatting:t=>l.onRequest(o.DocumentRangesFormattingRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),void 0)),onDocumentOnTypeFormatting:t=>l.onRequest(o.DocumentOnTypeFormattingRequest.type,(n,i)=>t(n,i)),onRenameRequest:t=>l.onRequest(o.RenameRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),void 0)),onPrepareRename:t=>l.onRequest(o.PrepareRenameRequest.type,(n,i)=>t(n,i)),onDocumentLinks:t=>l.onRequest(o.DocumentLinkRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onDocumentLinkResolve:t=>l.onRequest(o.DocumentLinkResolveRequest.type,(n,i)=>t(n,i)),onDocumentColor:t=>l.onRequest(o.DocumentColorRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onColorPresentation:t=>l.onRequest(o.ColorPresentationRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onFoldingRanges:t=>l.onRequest(o.FoldingRangeRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onSelectionRanges:t=>l.onRequest(o.SelectionRangeRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),(0,f.attachPartialResult)(l,n))),onExecuteCommand:t=>l.onRequest(o.ExecuteCommandRequest.type,(n,i)=>t(n,i,(0,f.attachWorkDone)(l,n),void 0)),dispose:()=>l.dispose()};for(let t of T)t.attach(k);return l.onRequest(o.InitializeRequest.type,t=>{n.initialize(t),c.string(t.trace)&&(p.trace=o.Trace.fromString(t.trace));for(let n of T)n.initialize(t.capabilities);if(D)return asPromise(D(t,new o.CancellationTokenSource().token,(0,f.attachWorkDone)(l,t),void 0)).then(t=>{if(t instanceof o.ResponseError)return t;let n=t;n||={capabilities:{}};let i=n.capabilities;i||(i={},n.capabilities=i),i.textDocumentSync===void 0||i.textDocumentSync===null?i.textDocumentSync=c.number(k.__textDocumentSync)?k.__textDocumentSync:o.TextDocumentSyncKind.None:!c.number(i.textDocumentSync)&&!c.number(i.textDocumentSync.change)&&(i.textDocumentSync.change=c.number(k.__textDocumentSync)?k.__textDocumentSync:o.TextDocumentSyncKind.None);for(let t of T)t.fillServerCapabilities(i);return n});{let t={capabilities:{textDocumentSync:o.TextDocumentSyncKind.None}};for(let n of T)n.fillServerCapabilities(t.capabilities);return t}}),l.onRequest(o.ShutdownRequest.type,()=>{if(n.shutdownReceived=!0,E)return E(new o.CancellationTokenSource().token)}),l.onNotification(o.ExitNotification.type,()=>{try{if(O)return O()}finally{n.shutdownReceived?n.exit(0):n.exit(1)}}),l.onNotification(o.SetTraceNotification.type,t=>{p.trace=o.Trace.fromString(t.value)}),k}})),Si=/* @__PURE__ */ o((t=>{var n=t&&t.__createBinding||(Object.create?(function(t,n,i,a){a===void 0&&(a=i);var o=Object.getOwnPropertyDescriptor(n,i);(!o||(`get`in o?!n.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,a,o)}):(function(t,n,i,a){a===void 0&&(a=i),t[a]=n[i]})),i=t&&t.__exportStar||function(t,i){for(var a in t)a!=="default"&&!Object.prototype.hasOwnProperty.call(i,a)&&n(i,t,a)};Object.defineProperty(t,"__esModule",{value:!0}),t.ProposedFeatures=t.NotebookDocuments=t.TextDocuments=t.SemanticTokensBuilder=t.WorkDoneProgressReporter=void 0;let a=ti();Object.defineProperty(t,"SemanticTokensBuilder",{enumerable:!0,get:function(){return a.SemanticTokensBuilder}});let o=ri();Object.defineProperty(t,"WorkDoneProgressReporter",{enumerable:!0,get:function(){return o.WorkDoneProgressReporter}}),i(J(),t);let c=ii();Object.defineProperty(t,"TextDocuments",{enumerable:!0,get:function(){return c.TextDocuments}});let l=ai();Object.defineProperty(t,"NotebookDocuments",{enumerable:!0,get:function(){return l.NotebookDocuments}}),i(xi(),t);var f;(function(t){t.all={__brand:`features`}})(f||(t.ProposedFeatures=f={}))})),$=Si();function findNextFeatures(t,n){let i={stacks:t,tokens:n};return interpretTokens(i),i.stacks.flat().forEach(t=>{t.property=void 0}),findNextFeatureStacks(i.stacks).map(t=>t[t.length-1])}function findNextFeaturesInternal(t){let n=[];if(t.length===0)return n;let i=t[t.length-1],{group:a,child:o}=findGroupAndChild(i.feature);if(isArrayCardinality(o.cardinality)){let t=findFirstFeaturesInternal({feature:o,type:i.type,property:i.property});n.push(...t)}let c=-1;a&&(c=a.elements.indexOf(o));let l=t.slice(0,-1);if(a){let t=c+1,{stacks:o,end:f}=findNextFeaturesInGroup({feature:a,type:i.type},t);for(let t of o)n.push([...l,...t]);f&&(c=a.elements.length-1)}else{let t=getAbstractElementParent(o);t?n.push(...findNextFeaturesInternal([...l,{feature:t}])):n.push(...findNextFeaturesInternal(l))}return a&&c===a.elements.length-1&&n.push(...findNextFeaturesInternal([...l,{feature:a}])),n}function findFirstFeatures(t){return findFirstFeaturesInternal({feature:t})}function findFirstFeaturesInternal(t){let{feature:n,type:i}=t;if(isGroup(n))return findNextFeaturesInGroup(t,0).stacks;if(isAlternatives(n)||isUnorderedGroup(n))return n.elements.flatMap(n=>findFirstFeaturesInternal({feature:n,type:i,property:t.property}));if(isAssignment(n))return findFirstFeaturesInternal({feature:n.terminal,type:i,property:t.property??n.feature});if(isAction(n))return findNextFeaturesInternal([{feature:n,type:getTypeName(n),property:t.property??n.feature}]);if(isRuleCall(n)&&isParserRule(n.rule.ref)){let i=n.rule.ref,a=findFirstFeaturesInternal({feature:i.definition,type:i.fragment||i.dataType?void 0:getExplicitRuleType(i)??i.name,property:t.property});for(let n of a)n.unshift(t);return a}if(isRuleCall(n)&&isInfixRule(n.rule.ref)){let i=n.rule.ref,a=i.call.rule.ref;if(!isParserRule(a))return console.error(`Failed to resolve reference to `+i.call.rule.$refText),[];let o=findFirstFeaturesInternal({feature:a.definition,type:getExplicitRuleType(a)??a.name,property:`parts`});for(let n of o)n.unshift(t);return o}return[[t]]}function findNextFeaturesInGroup(t,n){let i=[],a;for(;n<t.feature.elements.length;){let o=t.feature.elements[n];a={feature:o,type:t.type};let c=findFirstFeaturesInternal(a);if(i.push(...c),isElementOptional(o,/* @__PURE__ */ new Map))n++;else break}return{stacks:i,end:n>=t.feature.elements.length}}function isElementOptional(t,n){let i=n.get(t);if(i!==void 0)return i;if(n.set(t,!1),isOptionalCardinality(t.cardinality,t))return n.set(t,!0),!0;if(isGroup(t)){for(let i of t.elements)if(!isElementOptional(i,n))return n.set(t,!1),!1;return n.set(t,!0),!0}if(isAlternatives(t)||isUnorderedGroup(t)){for(let i of t.elements)if(isElementOptional(i,n))return n.set(t,!0),!0;return n.set(t,!1),!1}if(isRuleCall(t)&&isParserRule(t.rule.ref)){let i=t.rule.ref,a=isElementOptional(i.definition,n);return n.set(t,a),a}return!1}function interpretTokens(t){for(let n of t.tokens)t.stacks=findNextFeatureStacks(t.stacks,n)}function findNextFeatureStacks(t,n){let i=[];for(let a of t)i.push(...interpretStackToken(a,n));return i}function interpretStackToken(t,n){return findNextFeaturesInternal(t).filter(t=>!n||featureMatches(t[t.length-1].feature,n))}function findGroupAndChild(t){let n,i=t;for(;i.$container;)if(isGroup(i.$container)){n=i.$container;break}else if(isAbstractElement(i.$container))i=i.$container;else break;return n?{group:n,child:i}:{group:void 0,child:getContainerOfType(t,isAssignment)??t}}function getAbstractElementParent(t){let n=t.$container,i=getContainerOfType(n,isAssignment);if(i)return getAbstractElementParent(i);if(n&&isAbstractElement(n))return n}function featureMatches(t,n){if(isKeyword(t))return t.value===n.tokenType.name;if(isRuleCall(t))return ruleMatches(t.rule.ref,n);if(isCrossReference(t)){let i=getCrossReferenceTerminal(t);if(i)return featureMatches(i,n)}return!1}function ruleMatches(t,n){return isParserRule(t)?findFirstFeatures(t.definition).some(t=>featureMatches(t[t.length-1].feature,n)):isTerminalRule(t)?terminalRegex(t).test(n.image):!1}function mergeCompletionProviderOptions(t){let n=Array.from(new Set(t.flatMap(t=>t?.triggerCharacters??[]))),i=Array.from(new Set(t.flatMap(t=>t?.allCommitCharacters??[])));return{triggerCharacters:n.length>0?n:void 0,allCommitCharacters:i.length>0?i:void 0}}var DefaultCompletionProvider=class{constructor(t){this.scopeProvider=t.references.ScopeProvider,this.grammar=t.Grammar,this.completionParser=t.parser.CompletionParser,this.nameProvider=t.references.NameProvider,this.lexer=t.parser.Lexer,this.nodeKindProvider=t.shared.lsp.NodeKindProvider,this.fuzzyMatcher=t.shared.lsp.FuzzyMatcher,this.grammarConfig=t.parser.GrammarConfig,this.astReflection=t.shared.AstReflection,this.documentationProvider=t.documentation.DocumentationProvider,t.shared.lsp.LanguageServer.onInitialize(t=>{this.initialize(t)})}initialize(t){this.clientCapabilities=t.capabilities.textDocument?.completion}async getCompletion(t,n,i){let a=[],o=this.buildContexts(t,n.position),acceptor=(t,n)=>{let i=this.fillCompletionItem(t,n);i&&a.push(i)},distinctionFunction=t=>isKeyword(t.feature)?t.feature.value:t.feature,c=[];for(let t of o)if(await Promise.all(stream(t.features).distinct(distinctionFunction).exclude(c).map(n=>this.completionFor(t,n,acceptor))),c.push(...t.features),!this.continueCompletion(a))break;return $.CompletionList.create(this.deduplicateItems(a),!0)}deduplicateItems(t){return stream(t).distinct(t=>`${t.kind}_${t.label}_${t.detail}`).toArray()}findFeaturesAt(t,n){let i=t.getText({start:$.Position.create(0,0),end:t.positionAt(n)}),a=this.completionParser.parse(i),o=a.tokens;if(a.tokenIndex===0){let t=getEntryRule(this.grammar);return findNextFeatures([[this.buildSyntheticEntryRuleCall(t)]],o)}let c=[...o].splice(a.tokenIndex);return findNextFeatures([a.elementStack.map(t=>({feature:t}))],c)}buildSyntheticEntryRuleCall(t){let n={$type:`Group`,$container:void 0,elements:[]},i={feature:n},a={$type:`RuleCall`,$container:void 0,rule:{ref:t,$refText:t.name},arguments:[]},o={$type:`Group`,$container:void 0,elements:[n,a]};return n.$container=o,a.$container=o,i}*buildContexts(t,n){let i=t.parseResult.value.$cstNode;if(!i)return;let a=t.textDocument,o=a.getText(),c=a.offsetAt(n),l={document:t,textDocument:a,offset:c,position:n},f=this.findDataTypeRuleStart(i,c);if(f){let[t,n]=f,o=findLeafNodeBeforeOffset(i,t)?.astNode;yield{...l,node:o,tokenOffset:t,tokenEndOffset:n,features:this.findFeaturesAt(a,t)}}let{nextTokenStart:p,nextTokenEnd:h,previousTokenStart:_,previousTokenEnd:x}=this.backtrackToAnyToken(o,c),S=p;c<=p&&_!==void 0&&(S=_);let C=findLeafNodeBeforeOffset(i,S)?.astNode,w=!0;if(_!==void 0&&x!==void 0&&x===c&&(yield{...l,node:C,tokenOffset:_,tokenEndOffset:x,features:this.findFeaturesAt(a,_)},w=this.performNextTokenCompletion(t,o.substring(_,x),_,x),w&&(yield{...l,node:C,tokenOffset:x,tokenEndOffset:x,features:this.findFeaturesAt(a,x)})),C)w&&(yield{...l,node:C,tokenOffset:p,tokenEndOffset:h,features:this.findFeaturesAt(a,p)});else{let t=getEntryRule(this.grammar);if(!t)throw Error(`Missing entry parser rule`);yield{...l,tokenOffset:p,tokenEndOffset:h,features:findFirstFeatures(t.definition).map(t=>t[t.length-1])}}}performNextTokenCompletion(t,n,i,a){return/\P{L}$/u.test(n)}findDataTypeRuleStart(t,n){let i=findDeclarationNodeAtOffset(t,n,this.grammarConfig.nameRegexp);if(!i)return;let a=getDatatypeNode(i);if(a)return[a.offset,a.end]}continueCompletion(t){return t.length===0}backtrackToAnyToken(t,n){let i=this.lexer.tokenize(t).tokens;if(i.length===0)return{nextTokenStart:n,nextTokenEnd:n};let a;for(let t of i){if(t.startOffset>=n)return{nextTokenStart:n,nextTokenEnd:n,previousTokenStart:a?a.startOffset:void 0,previousTokenEnd:a?a.endOffset+1:void 0};if(t.endOffset>=n)return{nextTokenStart:t.startOffset,nextTokenEnd:t.endOffset+1,previousTokenStart:a?a.startOffset:void 0,previousTokenEnd:a?a.endOffset+1:void 0};a=t}return{nextTokenStart:n,nextTokenEnd:n,previousTokenStart:a?a.startOffset:void 0,previousTokenEnd:a?a.endOffset+1:void 0}}completionFor(t,n,i){if(isKeyword(n.feature))return this.completionForKeyword(t,n.feature,i);if(isCrossReference(n.feature)&&t.node)return this.completionForCrossReference(t,n,i)}completionForCrossReference(t,n,i){let a=getContainerOfType(n.feature,isAssignment),o=t.node;if(a&&o){n.type&&(o={$type:n.type,$container:o,$containerProperty:n.property},assignMandatoryProperties(this.astReflection,o));let c;c=n.feature.isMulti?{$refText:``,items:[]}:{$refText:``,ref:void 0};let l={reference:c,container:o,property:a.feature};try{for(let n of this.getReferenceCandidates(l,t))i(t,this.createReferenceCompletionItem(n,l,t))}catch(t){console.error(t)}}}getReferenceCandidates(t,n){return this.scopeProvider.getScope(t).getAllElements()}createReferenceCompletionItem(t,n,i){return{nodeDescription:t,kind:this.nodeKindProvider.getCompletionItemKind(t),documentation:this.getReferenceDocumentation(t),detail:t.type,sortText:`0`}}getReferenceDocumentation(t){if(!t.node)return;let n=this.documentationProvider.getDocumentation(t.node);if(n)return{kind:`markdown`,value:n}}completionForKeyword(t,n,i){this.filterKeyword(t,n)&&i(t,{label:n.value,kind:this.getKeywordCompletionItemKind(n),detail:`Keyword`,sortText:`1`})}getKeywordCompletionItemKind(t){return $.CompletionItemKind.Keyword}filterKeyword(t,n){return/\p{L}/u.test(n.value)}fillCompletionItem(t,n){let i;if(typeof n.label==`string`)i=n.label;else if(`node`in n){let t=this.nameProvider.getName(n.node);if(!t)return;i=t}else if(`nodeDescription`in n)i=n.nodeDescription.name;else return;let a;a=typeof n.textEdit?.newText==`string`?n.textEdit.newText:typeof n.insertText==`string`?n.insertText:i;let o=n.textEdit??this.buildCompletionTextEdit(t,i,a);if(o)return{additionalTextEdits:n.additionalTextEdits,command:n.command,commitCharacters:n.commitCharacters,data:n.data,detail:n.detail,documentation:n.documentation,filterText:n.filterText,insertText:n.insertText,insertTextFormat:n.insertTextFormat,insertTextMode:n.insertTextMode,kind:n.kind,labelDetails:n.labelDetails,preselect:n.preselect,sortText:n.sortText,tags:n.tags,textEditText:n.textEditText,textEdit:o,label:i}}buildCompletionTextEdit(t,n,i){return this.clientCapabilities?.completionItem?.insertReplaceSupport?this.buildCompletionTextEditWithInsertReplace(t,n,i):this.buildCompletionTextEditWithoutInsertReplace(t,n,i)}buildCompletionTextEditWithInsertReplace(t,n,i){let a=t.textDocument.positionAt(t.tokenOffset),o=t.position,c=t.textDocument.getText({start:a,end:o});if(this.fuzzyMatcher.match(c,n)){let n=t.textDocument.positionAt(t.tokenEndOffset);return{newText:i,insert:{start:a,end:o},replace:{start:a,end:n}}}}buildCompletionTextEditWithoutInsertReplace(t,n,i){let a=t.textDocument.getText().substring(t.tokenOffset,t.offset);if(this.fuzzyMatcher.match(a,n))return{newText:i,range:{start:t.textDocument.positionAt(t.tokenOffset),end:t.position}}}},DefaultDefinitionProvider=class{constructor(t){this.nameProvider=t.references.NameProvider,this.references=t.references.References,this.grammarConfig=t.parser.GrammarConfig}getDefinition(t,n,i){let a=t.parseResult.value;if(a.$cstNode){let i=a.$cstNode,o=findDeclarationNodeAtOffset(i,t.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);if(o)return this.collectLocationLinks(o,n)}}collectLocationLinks(t,n){let i=this.findLinks(t);if(i.length>0)return i.map(t=>$.LocationLink.create(t.targetDocument.textDocument.uri,(t.target.astNode.$cstNode??t.target).range,t.target.range,t.source.range))}findLinks(t){let n=getDatatypeNode(t)??t,i=this.references.findDeclarationNodes(t),a=[];for(let t of i){let o=getDocument(t.astNode);i&&o&&a.push({source:n,target:t,targetDocument:o})}return a}},DefaultDocumentHighlightProvider=class{constructor(t){this.references=t.references.References,this.nameProvider=t.references.NameProvider,this.grammarConfig=t.parser.GrammarConfig}getDocumentHighlight(t,n,i){let a=t.parseResult.value.$cstNode;if(!a)return;let o=findDeclarationNodeAtOffset(a,t.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);if(!o)return;let c=this.references.findDeclarations(o),l=[];for(let n of c){let i=Z.equals(getDocument(n).uri,t.uri),a={documentUri:t.uri,includeDeclaration:i},o=this.references.findReferences(n,a);l.push(...o.map(t=>this.createDocumentHighlight(t)).toArray())}return l}createDocumentHighlight(t){return $.DocumentHighlight.create(t.segment.range)}},DefaultDocumentSymbolProvider=class{constructor(t){this.nameProvider=t.references.NameProvider,this.nodeKindProvider=t.shared.lsp.NodeKindProvider}getSymbols(t,n,i){return this.getSymbol(t,t.parseResult.value)}getSymbol(t,n){let i=this.nameProvider.getNameNode(n);if(i&&n.$cstNode){let a=this.nameProvider.getName(n);return[this.createSymbol(t,n,n.$cstNode,i,a)]}return this.getChildSymbols(t,n)||[]}createSymbol(t,n,i,a,o){return{kind:this.nodeKindProvider.getSymbolKind(n),name:o||a.text,range:i.range,selectionRange:a.range,children:this.getChildSymbols(t,n)}}getChildSymbols(t,n){let i=[];for(let a of streamContents(n)){let n=this.getSymbol(t,a);i.push(...n)}if(i.length>0)return i}},DefaultDocumentUpdateHandler=class{constructor(t){this.onWatchedFilesChangeEmitter=new Y.Emitter,this.workspaceManager=t.workspace.WorkspaceManager,this.documentBuilder=t.workspace.DocumentBuilder,this.workspaceLock=t.workspace.WorkspaceLock,this.serviceRegistry=t.ServiceRegistry;let n=!1;t.lsp.LanguageServer.onInitialize(t=>{n=!!t.capabilities.workspace?.didChangeWatchedFiles?.dynamicRegistration}),t.lsp.LanguageServer.onInitialized(i=>{n&&this.registerFileWatcher(t)})}registerFileWatcher(t){let n=this.getWatchers();if(n.length>0){let i=t.lsp.Connection,a={watchers:n};i?.client.register($.DidChangeWatchedFilesNotification.type,a)}}getWatchers(){return[{globPattern:`**/*`}]}fireDocumentUpdate(t,n){this.workspaceManager.ready.then(()=>{this.workspaceLock.write(i=>this.documentBuilder.update(t,n,i))}).catch(t=>{console.error(`Workspace initialization failed. Could not perform document update.`,t)})}didChangeContent(t){this.fireDocumentUpdate([X.parse(t.document.uri)],[])}didChangeWatchedFiles(t){this.onWatchedFilesChangeEmitter.fire(t);let n=stream(t.changes).filter(t=>t.type!==$.FileChangeType.Deleted).distinct(t=>t.uri).map(t=>X.parse(t.uri)).toArray(),i=stream(t.changes).filter(t=>t.type===$.FileChangeType.Deleted).distinct(t=>t.uri).map(t=>X.parse(t.uri)).toArray();this.fireDocumentUpdate(n,i)}get onWatchedFilesChange(){return this.onWatchedFilesChangeEmitter.event}},DefaultFoldingRangeProvider=class{constructor(t){this.commentNames=t.parser.GrammarConfig.multilineCommentRules}getFoldingRanges(t,n,i){let a=[],acceptor=t=>a.push(t);return this.collectFolding(t,acceptor),a}collectFolding(t,n){let i=t.parseResult?.value;if(i){if(this.shouldProcessContent(i)){let a=streamAllContents(i).iterator(),o;do if(o=a.next(),!o.done){let i=o.value;this.shouldProcess(i)&&this.collectObjectFolding(t,i,n),this.shouldProcessContent(i)||a.prune()}while(!o.done)}this.collectCommentFolding(t,i,n)}}shouldProcess(t){return!0}shouldProcessContent(t){return!0}collectObjectFolding(t,n,i){let a=n.$cstNode;if(a){let n=this.toFoldingRange(t,a);n&&i(n)}}collectCommentFolding(t,n,i){let a=n.$cstNode;if(a){for(let n of flattenCst(a))if(this.commentNames.includes(n.tokenType.name)){let a=this.toFoldingRange(t,n,$.FoldingRangeKind.Comment);a&&i(a)}}}toFoldingRange(t,n,i){let a=n.range,o=a.start,c=a.end;if(!(c.line-o.line<2))return this.includeLastFoldingLine(n,i)||(c=t.textDocument.positionAt(t.textDocument.offsetAt({line:c.line,character:0})-1)),$.FoldingRange.create(o.line,c.line,o.character,c.character,i)}includeLastFoldingLine(t,n){if(n===$.FoldingRangeKind.Comment)return!1;let i=t.root.fullText.charAt(t.end-1);return i!==`}`&&i!==`)`&&i!==`]`}},DefaultFuzzyMatcher=class{match(t,n){if(t.length===0)return!0;let i=!1,a,o=0,c=n.length;for(let l=0;l<c;l++){let c=n.charCodeAt(l),f=t.charCodeAt(o);if((c===f||this.toUpperCharCode(c)===this.toUpperCharCode(f))&&(i||=a===void 0||this.isWordTransition(a,c),i&&o++,o===t.length))return!0;a=c}return!1}isWordTransition(t,n){return Ci<=t&&t<=wi&&Ti<=n&&n<=Ei||t===Di&&n!==Di}toUpperCharCode(t){return Ci<=t&&t<=wi?t-32:t}};const Ci=97,wi=122,Ti=65,Ei=90,Di=95;var AstNodeHoverProvider=class{constructor(t){this.references=t.references.References,this.grammarConfig=t.parser.GrammarConfig}async getHoverContent(t,n){let i=t.parseResult?.value?.$cstNode;if(i){let a=t.textDocument.offsetAt(n.position),o=findDeclarationNodeAtOffset(i,a,this.grammarConfig.nameRegexp);if(o&&o.offset+o.length>a){let t=[],n=this.references.findDeclarations(o);for(let i of n){let n=await this.getAstNodeHoverContent(i);typeof n==`string`&&t.push(n)}if(t.length>0)return{contents:{kind:`markdown`,value:t.join(` `)}};if(isKeyword(o.grammarSource))return this.getKeywordHoverContent(o.grammarSource)}}}getKeywordHoverContent(t){let n=isAstNodeWithComment(t)?t.$comment:void 0;if(n||=findCommentNode(t.$cstNode,[`ML_COMMENT`])?.text,n&&isJSDoc(n)){let t=parseJSDoc(n).toMarkdown();if(t)return{contents:{kind:`markdown`,value:t}}}}},MultilineCommentHoverProvider=class extends AstNodeHoverProvider{constructor(t){super(t),this.documentationProvider=t.documentation.DocumentationProvider}getAstNodeHoverContent(t){let n=this.documentationProvider.getDocumentation(t);if(n)return n}};const Oi={[$.SemanticTokenTypes.class]:0,[$.SemanticTokenTypes.comment]:1,[$.SemanticTokenTypes.enum]:2,[$.SemanticTokenTypes.enumMember]:3,[$.SemanticTokenTypes.event]:4,[$.SemanticTokenTypes.function]:5,[$.SemanticTokenTypes.interface]:6,[$.SemanticTokenTypes.keyword]:7,[$.SemanticTokenTypes.macro]:8,[$.SemanticTokenTypes.method]:9,[$.SemanticTokenTypes.modifier]:10,[$.SemanticTokenTypes.namespace]:11,[$.SemanticTokenTypes.number]:12,[$.SemanticTokenTypes.operator]:13,[$.SemanticTokenTypes.parameter]:14,[$.SemanticTokenTypes.property]:15,[$.SemanticTokenTypes.regexp]:16,[$.SemanticTokenTypes.string]:17,[$.SemanticTokenTypes.struct]:18,[$.SemanticTokenTypes.type]:19,[$.SemanticTokenTypes.typeParameter]:20,[$.SemanticTokenTypes.variable]:21,[$.SemanticTokenTypes.decorator]:22},ki={[$.SemanticTokenModifiers.abstract]:1,[$.SemanticTokenModifiers.async]:2,[$.SemanticTokenModifiers.declaration]:4,[$.SemanticTokenModifiers.defaultLibrary]:8,[$.SemanticTokenModifiers.definition]:16,[$.SemanticTokenModifiers.deprecated]:32,[$.SemanticTokenModifiers.documentation]:64,[$.SemanticTokenModifiers.modification]:128,[$.SemanticTokenModifiers.readonly]:256,[$.SemanticTokenModifiers.static]:512};Object.keys(Oi),Object.keys(ki);function mergeSemanticTokenProviderOptions(t){let n=[],i=[],a=!0,o=!0,c=!0;for(let l of t)l&&(l.legend.tokenTypes.forEach((t,i)=>{let a=n[i];if(a&&a!==t)throw Error(`Cannot merge '${a}' and '${t}' token types. They use the same index ${i}.`);n[i]=t}),l.legend.tokenModifiers.forEach((t,n)=>{let a=i[n];if(a&&a!==t)throw Error(`Cannot merge '${a}' and '${t}' token modifier. They use the same index ${n}.`);i[n]=t}),l.full?typeof l.full==`object`&&!l.full.delta&&(o=!1):a=!1,l.range||(c=!1));return{legend:{tokenTypes:n,tokenModifiers:i},full:a&&{delta:o},range:c}}var SemanticTokensBuilder=class extends $.SemanticTokensBuilder{constructor(){super(...arguments),this._tokens=[]}push(t,n,i,a,o){this._tokens.push({line:t,char:n,length:i,tokenType:a,tokenModifiers:o})}build(){return this.applyTokens(),super.build()}buildEdits(){return this.applyTokens(),super.buildEdits()}flush(){this.previousResult(this.id)}applyTokens(){for(let t of this._tokens.sort(this.compareTokens))super.push(t.line,t.char,t.length,t.tokenType,t.tokenModifiers);this._tokens=[]}compareTokens(t,n){return t.line-n.line||t.char-n.char}},AbstractSemanticTokenProvider=class{constructor(t){this.tokensBuilders=/* @__PURE__ */ new Map,t.shared.workspace.TextDocuments.onDidClose(t=>{this.tokensBuilders.delete(t.document.uri)}),t.shared.lsp.LanguageServer.onInitialize(t=>{this.initialize(t.capabilities.textDocument?.semanticTokens)})}initialize(t){this.clientCapabilities=t}get tokenTypes(){return Oi}get tokenModifiers(){return ki}get semanticTokensOptions(){return{legend:{tokenTypes:Object.keys(this.tokenTypes),tokenModifiers:Object.keys(this.tokenModifiers)},full:{delta:!1},range:!0}}async semanticHighlight(t,n,i=Y.CancellationToken.None){return this.currentRange=void 0,this.currentDocument=t,this.currentTokensBuilder=this.getDocumentTokensBuilder(t),this.currentTokensBuilder.flush(),await this.computeHighlighting(t,this.createAcceptor(),i),this.currentTokensBuilder.build()}async semanticHighlightRange(t,n,i=Y.CancellationToken.None){return this.currentRange=n.range,this.currentDocument=t,this.currentTokensBuilder=this.getDocumentTokensBuilder(t),this.currentTokensBuilder.flush(),await this.computeHighlighting(t,this.createAcceptor(),i),this.currentTokensBuilder.build()}async semanticHighlightDelta(t,n,i=Y.CancellationToken.None){return this.currentRange=void 0,this.currentDocument=t,this.currentTokensBuilder=this.getDocumentTokensBuilder(t),this.currentTokensBuilder.previousResult(n.previousResultId),await this.computeHighlighting(t,this.createAcceptor(),i),this.currentTokensBuilder.buildEdits()}createAcceptor(){let acceptor=t=>{`line`in t?this.highlightToken({range:{start:{line:t.line,character:t.char},end:{line:t.line,character:t.char+t.length}},type:t.type,modifier:t.modifier}):`range`in t?this.highlightToken(t):`keyword`in t?this.highlightKeyword(t):`property`in t?this.highlightProperty(t):this.highlightNode({node:t.cst,type:t.type,modifier:t.modifier})};return acceptor}getDocumentTokensBuilder(t){let n=this.tokensBuilders.get(t.uri.toString());if(n)return n;let i=new SemanticTokensBuilder;return this.tokensBuilders.set(t.uri.toString(),i),i}async computeHighlighting(t,n,i){let a=t.parseResult.value,o=streamAst(a,{range:this.currentRange}).iterator(),c;do if(c=o.next(),!c.done){await interruptAndCheck(i);let t=c.value;this.highlightElement(t,n)===`prune`&&o.prune()}while(!c.done)}highlightToken(t){let{range:n,type:i}=t,a=t.modifier;if(this.currentRange&&!inRange(n,this.currentRange)||!this.currentDocument||!this.currentTokensBuilder)return;let o=this.tokenTypes[i],c=0;if(a!==void 0){typeof a==`string`&&(a=[a]);for(let t of a){let n=this.tokenModifiers[t];c|=n}}let l=n.start.line,f=n.end.line;if(l===f){let t=n.start.character,i=n.end.character-t;this.currentTokensBuilder.push(l,t,i,o,c)}else if(this.clientCapabilities?.multilineTokenSupport){let t=n.start.character,i=this.currentDocument.textDocument.offsetAt(n.start),a=this.currentDocument.textDocument.offsetAt(n.end);this.currentTokensBuilder.push(l,t,a-i,o,c)}else{let t=n.start,i=this.currentDocument.textDocument.offsetAt({line:l+1,character:0});this.currentTokensBuilder.push(t.line,t.character,i-t.character-1,o,c);for(let t=l+1;t<f;t++){let n=i;i=this.currentDocument.textDocument.offsetAt({line:t+1,character:0}),this.currentTokensBuilder.push(t,0,i-n-1,o,c)}this.currentTokensBuilder.push(f,0,n.end.character,o,c)}}highlightProperty(t){let n=[];if(typeof t.index==`number`){let i=findNodeForProperty(t.node.$cstNode,t.property,t.index);i&&n.push(i)}else n.push(...findNodesForProperty(t.node.$cstNode,t.property));let{type:i,modifier:a}=t;for(let t of n)this.highlightNode({node:t,type:i,modifier:a})}highlightKeyword(t){let{node:n,keyword:i,type:a,index:o,modifier:c}=t,l=[];if(typeof o==`number`){let t=findNodeForKeyword(n.$cstNode,i,o);t&&l.push(t)}else l.push(...findNodesForKeyword(n.$cstNode,i));for(let t of l)this.highlightNode({node:t,type:a,modifier:c})}highlightNode(t){let{node:n,type:i,modifier:a}=t,o=n.range;this.highlightToken({range:o,type:i,modifier:a})}},Ai;(function(t){function decode(t,n,i){let a=/* @__PURE__ */ new Map;Object.entries(n).forEach(([t,n])=>a.set(n,t));let o=0,c=0;return sliceIntoChunks(t.data,5).map(t=>{o+=t[0],t[0]!==0&&(c=0),c+=t[1];let n=t[2];return{offset:i.textDocument.offsetAt({line:o,character:c}),tokenType:a.get(t[3]),tokenModifiers:t[4],text:i.textDocument.getText({start:{line:o,character:c},end:{line:o,character:c+n}})}})}t.decode=decode;function sliceIntoChunks(t,n){let i=[];for(let a=0;a<t.length;a+=n){let o=t.slice(a,a+n);i.push(o)}return i}})(Ai||={});function mergeSignatureHelpOptions(t){let n=[],i=[];t.forEach(t=>{t?.triggerCharacters&&n.push(...t.triggerCharacters),t?.retriggerCharacters&&i.push(...t.retriggerCharacters)});let a={triggerCharacters:n.length>0?Array.from(new Set(n)).sort():void 0,retriggerCharacters:i.length>0?Array.from(new Set(i)).sort():void 0};return a.triggerCharacters?a:void 0}var DefaultLanguageServer=class{constructor(t){this.onInitializeEmitter=new Y.Emitter,this.onInitializedEmitter=new Y.Emitter,this.services=t}get onInitialize(){return this.onInitializeEmitter.event}get onInitialized(){return this.onInitializedEmitter.event}async initialize(t){return this.eagerLoadServices(),this.fireInitializeOnDefaultServices(t),this.onInitializeEmitter.fire(t),this.onInitializeEmitter.dispose(),this.buildInitializeResult(t)}eagerLoadServices(){eagerLoad(this.services),this.services.ServiceRegistry.all.forEach(t=>eagerLoad(t))}hasService(t){return this.services.ServiceRegistry.all.some(n=>t(n)!==void 0)}buildInitializeResult(t){let n=this.services.lsp.DocumentUpdateHandler,i=this.services.lsp.FileOperationHandler?.fileOperationOptions,a=this.services.ServiceRegistry.all,o=this.hasService(t=>t.lsp?.Formatter),c=a.map(t=>t.lsp?.Formatter?.formatOnTypeOptions).find(t=>!!t),l=this.hasService(t=>t.lsp?.CodeActionProvider),f=this.hasService(t=>t.lsp?.SemanticTokenProvider),p=mergeSemanticTokenProviderOptions(a.map(t=>t.lsp?.SemanticTokenProvider?.semanticTokensOptions)),h=this.services.lsp?.ExecuteCommandHandler?.commands,_=this.hasService(t=>t.lsp?.DocumentLinkProvider),x=mergeSignatureHelpOptions(a.map(t=>t.lsp?.SignatureHelp?.signatureHelpOptions)),S=this.hasService(t=>t.lsp?.TypeProvider),C=this.hasService(t=>t.lsp?.ImplementationProvider),w=this.hasService(t=>t.lsp?.CompletionProvider),T=mergeCompletionProviderOptions(a.map(t=>t.lsp?.CompletionProvider?.completionOptions)),E=this.hasService(t=>t.lsp?.ReferencesProvider),D=this.hasService(t=>t.lsp?.DocumentSymbolProvider),O=this.hasService(t=>t.lsp?.DefinitionProvider),k=this.hasService(t=>t.lsp?.DocumentHighlightProvider),ee=this.hasService(t=>t.lsp?.FoldingRangeProvider),A=this.hasService(t=>t.lsp?.HoverProvider),te=this.hasService(t=>t.lsp?.RenameProvider),ne=this.hasService(t=>t.lsp?.CallHierarchyProvider),j=this.hasService(t=>t.lsp?.TypeHierarchyProvider),M=this.hasService(t=>t.lsp?.CodeLensProvider),N=this.hasService(t=>t.lsp?.DeclarationProvider),P=this.hasService(t=>t.lsp?.InlayHintProvider),re=this.services.lsp?.WorkspaceSymbolProvider,F=this.services.lsp?.TextDocumentContentProvider?.schemes;return{capabilities:{workspace:{workspaceFolders:{supported:!0},fileOperations:i,textDocumentContent:F?{schemes:F}:void 0},executeCommandProvider:h&&{commands:h},textDocumentSync:{change:Y.TextDocumentSyncKind.Incremental,openClose:!0,save:!!n.didSaveDocument,willSave:!!n.willSaveDocument,willSaveWaitUntil:!!n.willSaveDocumentWaitUntil},completionProvider:w?T:void 0,referencesProvider:E,documentSymbolProvider:D,definitionProvider:O,typeDefinitionProvider:S,documentHighlightProvider:k,codeActionProvider:l,documentFormattingProvider:o,documentRangeFormattingProvider:o,documentOnTypeFormattingProvider:c,foldingRangeProvider:ee,hoverProvider:A,renameProvider:te?{prepareProvider:!0}:void 0,semanticTokensProvider:f?p:void 0,signatureHelpProvider:x,implementationProvider:C,callHierarchyProvider:ne?{}:void 0,typeHierarchyProvider:j?{}:void 0,documentLinkProvider:_?{resolveProvider:!1}:void 0,codeLensProvider:M?{resolveProvider:!1}:void 0,declarationProvider:N,inlayHintProvider:P?{resolveProvider:!1}:void 0,workspaceSymbolProvider:re?{resolveProvider:!!re.resolveSymbol}:void 0}}}initialized(t){this.fireInitializedOnDefaultServices(t),this.onInitializedEmitter.fire(t),this.onInitializedEmitter.dispose()}fireInitializeOnDefaultServices(t){this.services.workspace.ConfigurationProvider.initialize(t),this.services.workspace.WorkspaceManager.initialize(t)}fireInitializedOnDefaultServices(t){let n=this.services.lsp.Connection,i=n?{...t,register:t=>n.client.register(Y.DidChangeConfigurationNotification.type,t),fetchConfiguration:t=>n.workspace.getConfiguration(t)}:t;this.services.workspace.ConfigurationProvider.initialized(i).catch(t=>console.error(`Error in ConfigurationProvider initialization:`,t)),this.services.workspace.WorkspaceManager.initialized(t).catch(t=>console.error(`Error in WorkspaceManager initialization:`,t))}};function isDocumentState(t){return typeof t==`number`}var ji;(function(t){t.Parsed=Object.freeze({type:`workspace`,state:Q.Parsed}),t.IndexedContent=Object.freeze({type:`workspace`,state:Q.IndexedContent}),t.ComputedScopes=Object.freeze({type:`workspace`,state:Q.ComputedScopes}),t.Linked=Object.freeze({type:`workspace`,state:Q.Linked}),t.IndexedReferences=Object.freeze({type:`workspace`,state:Q.IndexedReferences}),t.Validated=Object.freeze({type:`workspace`,state:Q.Validated})})(ji||={});function startLanguageServer(t,n={}){let i=t.lsp.Connection;if(!i)throw Error(`Starting a language server requires the languageServer.Connection service to be set.`);addDocumentUpdateHandler(i,t),addFileOperationHandler(i,t),addDiagnosticsHandler(i,t),addCompletionHandler(i,t,n.CompletionProvider),addFindReferencesHandler(i,t,n.ReferencesProvider),addDocumentSymbolHandler(i,t,n.DocumentSymbolProvider),addGotoDefinitionHandler(i,t,n.DefinitionProvider),addGoToTypeDefinitionHandler(i,t,n.TypeProvider),addGoToImplementationHandler(i,t,n.ImplementationProvider),addDocumentHighlightHandler(i,t,n.DocumentHighlightProvider),addFoldingRangeHandler(i,t,n.FoldingRangeProvider),addFormattingHandler(i,t,n.Formatter),addCodeActionHandler(i,t,n.CodeActionProvider),addRenameHandler(i,t,n.RenameProvider),addHoverHandler(i,t,n.HoverProvider),addInlayHintHandler(i,t,n.InlayHintProvider),addSemanticTokenHandler(i,t,n.SemanticTokenProvider),addExecuteCommandHandler(i,t),addSignatureHelpHandler(i,t,n.SignatureHelp),addCallHierarchyHandler(i,t,n.CallHierarchyProvider),addTypeHierarchyHandler(i,t,n.TypeHierarchyProvider),addCodeLensHandler(i,t,n.CodeLensProvider),addTextDocumentContentRequestHandler(i,t),addDocumentLinkHandler(i,t,n.DocumentLinkProvider),addConfigurationChangeHandler(i,t),addGoToDeclarationHandler(i,t,n.DeclarationProvider),addWorkspaceSymbolHandler(i,t,n.WorkspaceSymbolProvider),i.onInitialize(n=>t.lsp.LanguageServer.initialize(n)),i.onInitialized(n=>{t.lsp.LanguageServer.initialized(n)}),t.workspace.TextDocuments.listen(i),i.listen()}function addDocumentUpdateHandler(t,n){let i=n.lsp.DocumentUpdateHandler,a=n.workspace.TextDocuments;i.didOpenDocument&&a.onDidOpen(t=>i.didOpenDocument(t)),i.didChangeContent&&a.onDidChangeContent(t=>i.didChangeContent(t)),i.didCloseDocument&&a.onDidClose(t=>i.didCloseDocument(t)),i.didSaveDocument&&a.onDidSave(t=>i.didSaveDocument(t)),i.willSaveDocument&&a.onWillSave(t=>i.willSaveDocument(t)),i.willSaveDocumentWaitUntil&&a.onWillSaveWaitUntil(t=>i.willSaveDocumentWaitUntil(t)),i.didChangeWatchedFiles&&t.onDidChangeWatchedFiles(t=>i.didChangeWatchedFiles(t))}function addFileOperationHandler(t,n){let i=n.lsp.FileOperationHandler;i&&(i.didCreateFiles&&t.workspace.onDidCreateFiles(t=>i.didCreateFiles(t)),i.didRenameFiles&&t.workspace.onDidRenameFiles(t=>i.didRenameFiles(t)),i.didDeleteFiles&&t.workspace.onDidDeleteFiles(t=>i.didDeleteFiles(t)),i.willCreateFiles&&t.workspace.onWillCreateFiles(t=>i.willCreateFiles(t)),i.willRenameFiles&&t.workspace.onWillRenameFiles(t=>i.willRenameFiles(t)),i.willDeleteFiles&&t.workspace.onWillDeleteFiles(t=>i.willDeleteFiles(t)))}function addDiagnosticsHandler(t,n){let i=n.workspace.DocumentBuilder;i.onUpdate(async(n,i)=>{for(let n of i)t.sendDiagnostics({uri:n.toString(),diagnostics:[]})}),i.onDocumentPhase(Q.Validated,async n=>{n.diagnostics&&t.sendDiagnostics({uri:n.uri.toString(),diagnostics:n.diagnostics})})}function addCompletionHandler(t,n,i=Q.Linked){t.onCompletion(createRequestHandler((t,n,i,a)=>t.lsp?.CompletionProvider?.getCompletion(n,i,a),n,i))}function addFindReferencesHandler(t,n,i=ji.IndexedReferences){t.onReferences(createRequestHandler((t,n,i,a)=>t.lsp?.ReferencesProvider?.findReferences(n,i,a),n,i))}function addCodeActionHandler(t,n,i=Q.Validated){t.onCodeAction(createRequestHandler((t,n,i,a)=>t.lsp?.CodeActionProvider?.getCodeActions(n,i,a),n,i))}function addDocumentSymbolHandler(t,n,i=Q.Parsed){t.onDocumentSymbol(createRequestHandler((t,n,i,a)=>t.lsp?.DocumentSymbolProvider?.getSymbols(n,i,a),n,i))}function addGotoDefinitionHandler(t,n,i=Q.Linked){t.onDefinition(createRequestHandler((t,n,i,a)=>t.lsp?.DefinitionProvider?.getDefinition(n,i,a),n,i))}function addGoToTypeDefinitionHandler(t,n,i=Q.Linked){t.onTypeDefinition(createRequestHandler((t,n,i,a)=>t.lsp?.TypeProvider?.getTypeDefinition(n,i,a),n,i))}function addGoToImplementationHandler(t,n,i=ji.IndexedReferences){t.onImplementation(createRequestHandler((t,n,i,a)=>t.lsp?.ImplementationProvider?.getImplementation(n,i,a),n,i))}function addGoToDeclarationHandler(t,n,i=Q.Linked){t.onDeclaration(createRequestHandler((t,n,i,a)=>t.lsp?.DeclarationProvider?.getDeclaration(n,i,a),n,i))}function addDocumentHighlightHandler(t,n,i=ji.IndexedReferences){t.onDocumentHighlight(createRequestHandler((t,n,i,a)=>t.lsp?.DocumentHighlightProvider?.getDocumentHighlight(n,i,a),n,i))}function addHoverHandler(t,n,i=Q.Linked){t.onHover(createRequestHandler((t,n,i,a)=>t.lsp?.HoverProvider?.getHoverContent(n,i,a),n,i))}function addFoldingRangeHandler(t,n,i=Q.Parsed){t.onFoldingRanges(createRequestHandler((t,n,i,a)=>t.lsp?.FoldingRangeProvider?.getFoldingRanges(n,i,a),n,i))}function addFormattingHandler(t,n,i=Q.Parsed){t.onDocumentFormatting(createRequestHandler((t,n,i,a)=>t.lsp?.Formatter?.formatDocument(n,i,a),n,i)),t.onDocumentRangeFormatting(createRequestHandler((t,n,i,a)=>t.lsp?.Formatter?.formatDocumentRange(n,i,a),n,i)),t.onDocumentOnTypeFormatting(createRequestHandler((t,n,i,a)=>t.lsp?.Formatter?.formatDocumentOnType(n,i,a),n,i))}function addRenameHandler(t,n,i=ji.IndexedReferences){t.onRenameRequest(createRequestHandler((t,n,i,a)=>t.lsp?.RenameProvider?.rename(n,i,a),n,i)),t.onPrepareRename(createRequestHandler((t,n,i,a)=>t.lsp?.RenameProvider?.prepareRename(n,i,a),n,i))}function addInlayHintHandler(t,n,i=Q.IndexedReferences){t.languages.inlayHint.on(createServerRequestHandler((t,n,i,a)=>t.lsp?.InlayHintProvider?.getInlayHints(n,i,a),n,i))}function addSemanticTokenHandler(t,n,i=Q.Linked){let a={data:[]};t.languages.semanticTokens.on(createServerRequestHandler((t,n,i,o)=>t.lsp?.SemanticTokenProvider?t.lsp.SemanticTokenProvider.semanticHighlight(n,i,o):a,n,i)),t.languages.semanticTokens.onDelta(createServerRequestHandler((t,n,i,o)=>t.lsp?.SemanticTokenProvider?t.lsp.SemanticTokenProvider.semanticHighlightDelta(n,i,o):a,n,i)),t.languages.semanticTokens.onRange(createServerRequestHandler((t,n,i,o)=>t.lsp?.SemanticTokenProvider?t.lsp.SemanticTokenProvider.semanticHighlightRange(n,i,o):a,n,i))}function addConfigurationChangeHandler(t,n){t.onDidChangeConfiguration(t=>{n.workspace.ConfigurationProvider.updateConfiguration(t)})}function addExecuteCommandHandler(t,n){let i=n.lsp.ExecuteCommandHandler;i&&t.onExecuteCommand(async(t,n)=>{try{return await i.executeCommand(t.command,t.arguments??[],n)}catch(t){return responseError(t)}})}function addDocumentLinkHandler(t,n,i=Q.Parsed){t.onDocumentLinks(createServerRequestHandler((t,n,i,a)=>t.lsp?.DocumentLinkProvider?.getDocumentLinks(n,i,a),n,i))}function addSignatureHelpHandler(t,n,i=Q.IndexedReferences){t.onSignatureHelp(createServerRequestHandler((t,n,i,a)=>t.lsp?.SignatureHelp?.provideSignatureHelp(n,i,a),n,i))}function addCodeLensHandler(t,n,i=Q.IndexedReferences){t.onCodeLens(createServerRequestHandler((t,n,i,a)=>t.lsp?.CodeLensProvider?.provideCodeLens(n,i,a),n,i))}function addTextDocumentContentRequestHandler(t,n){t.workspace.textDocumentContent.on(async(t,i)=>{let a=n.lsp?.TextDocumentContentProvider;if(a)try{return await a.provideTextDocumentContent(t,i)}catch(t){return responseError(t)}return null})}function addWorkspaceSymbolHandler(t,n,i=ji.IndexedContent){let a=n.lsp.WorkspaceSymbolProvider;if(a){if(isDocumentState(i)||i.type===`document`)throw Error(`Workspace symbol requests are independent of a certain document, so the given document-specific required state is invalid. Provide a service requirement of type "workspace".`);let o=n.workspace.DocumentBuilder,c=n.workspace.WorkspaceLock;t.onWorkspaceSymbol(async(t,n)=>{try{return await o.waitUntil(i.state,n),await c.read(()=>a.getSymbols(t,n),Vr.Immediate)}catch(t){return responseError(t)}});let l=a.resolveSymbol?.bind(a);l&&t.onWorkspaceSymbolResolve(async(t,n)=>{try{return await o.waitUntil(i.state,n),await c.read(()=>l(t,n),Vr.Immediate)}catch(t){return responseError(t)}})}}function addCallHierarchyHandler(t,n,i=ji.IndexedReferences){t.languages.callHierarchy.onPrepare(createServerRequestHandler(async(t,n,i,a)=>t.lsp?.CallHierarchyProvider?await t.lsp.CallHierarchyProvider.prepareCallHierarchy(n,i,a)??null:null,n,i)),t.languages.callHierarchy.onIncomingCalls(createHierarchyRequestHandler(async(t,n,i)=>t.lsp?.CallHierarchyProvider?await t.lsp.CallHierarchyProvider.incomingCalls(n,i)??null:null,n,i)),t.languages.callHierarchy.onOutgoingCalls(createHierarchyRequestHandler(async(t,n,i)=>t.lsp?.CallHierarchyProvider?await t.lsp.CallHierarchyProvider.outgoingCalls(n,i)??null:null,n,i))}function addTypeHierarchyHandler(t,n,i=ji.IndexedReferences){n.ServiceRegistry.all.some(t=>t.lsp?.TypeHierarchyProvider)&&(t.languages.typeHierarchy.onPrepare(createServerRequestHandler(async(t,n,i,a)=>await t.lsp?.TypeHierarchyProvider?.prepareTypeHierarchy(n,i,a)??null,n,i)),t.languages.typeHierarchy.onSupertypes(createHierarchyRequestHandler(async(t,n,i)=>await t.lsp?.TypeHierarchyProvider?.supertypes(n,i)??null,n,i)),t.languages.typeHierarchy.onSubtypes(createHierarchyRequestHandler(async(t,n,i)=>await t.lsp?.TypeHierarchyProvider?.subtypes(n,i)??null,n,i)))}function createHierarchyRequestHandler(t,n,i){let a=n.ServiceRegistry,o=n.workspace.WorkspaceLock;return async(c,l)=>{let f=X.parse(c.item.uri),p=await waitUntilPhase(n,l,f,i);if(p)return p;if(!a.hasServices(f)){let t=`Could not find service instance for uri: '${f}'`;return console.debug(t),responseError(Error(t))}let h=a.getServices(f);try{return await o.read(()=>t(h,c,l),readPriority(i))??null}catch(t){return responseError(t)}}}function createServerRequestHandler(t,n,i){let a=n.workspace.LangiumDocuments,o=n.ServiceRegistry,c=n.workspace.WorkspaceLock;return async(l,f)=>{let p=X.parse(l.textDocument.uri),h=await waitUntilPhase(n,f,p,i);if(h)return h;if(!o.hasServices(p)){let t=`Could not find service instance for uri: '${p}'`;return console.debug(t),responseError(Error(t))}let _=o.getServices(p);try{return await c.read(async()=>{let n=await a.getOrCreateDocument(p);return t(_,n,l,f)},readPriority(i))??null}catch(t){return responseError(t)}}}function createRequestHandler(t,n,i){let a=n.workspace.LangiumDocuments,o=n.ServiceRegistry,c=n.workspace.WorkspaceLock;return async(l,f)=>{let p=X.parse(l.textDocument.uri),h=await waitUntilPhase(n,f,p,i);if(h)return h;if(!o.hasServices(p))return console.debug(`Could not find service instance for uri: '${p.toString()}'`),null;let _=o.getServices(p);try{return await c.read(async()=>{let n=await a.getOrCreateDocument(p);return t(_,n,l,f)},readPriority(i))??null}catch(t){return responseError(t)}}}function readPriority(t){return t===void 0?Vr.Normal:Vr.Immediate}async function waitUntilPhase(t,n,i,a){if(a!==void 0){let o=t.workspace.DocumentBuilder,c=t.workspace.WorkspaceManager;try{await c.ready,isDocumentState(a)?await o.waitUntil(a,i,n):a.type===`document`?await o.waitUntil(a.state,i,n):await o.waitUntil(a.state,n)}catch(t){return responseError(t)}}}function responseError(t){if(isOperationCancelled(t))return new Y.ResponseError(Y.LSPErrorCodes.RequestCancelled,`The request has been cancelled.`);if(t instanceof Y.ResponseError)return t;throw t}var DefaultNodeKindProvider=class{getSymbolKind(t){return $.SymbolKind.Field}getCompletionItemKind(t){return $.CompletionItemKind.Reference}},DefaultReferencesProvider=class{constructor(t){this.nameProvider=t.references.NameProvider,this.references=t.references.References,this.grammarConfig=t.parser.GrammarConfig}findReferences(t,n,i){let a=t.parseResult.value.$cstNode;if(!a)return[];let o=findDeclarationNodeAtOffset(a,t.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);return o?this.getReferences(o,n,t):[]}getReferences(t,n,i){let a=[],o=this.references.findDeclarations(t);for(let t of o){let i={includeDeclaration:n.context.includeDeclaration};this.references.findReferences(t,i).forEach(t=>{a.push($.Location.create(t.sourceUri.toString(),t.segment.range))})}return a}};Vn();var DefaultRenameProvider=class{constructor(t){this.references=t.references.References,this.nameProvider=t.references.NameProvider,this.grammarConfig=t.parser.GrammarConfig}async rename(t,n,i){let a={},o=t.parseResult.value.$cstNode;if(!o)return;let c=findDeclarationNodeAtOffset(o,t.textDocument.offsetAt(n.position),this.grammarConfig.nameRegexp);if(!c)return;let l=this.references.findDeclarations(c);if(l.length===0)return;let f=l[0],p=this.references.findReferences(f,{onlyLocal:!1,includeDeclaration:!0});for(let t of p){let i=At.replace(t.segment.range,n.newName),o=t.sourceUri.toString();a[o]?a[o].push(i):a[o]=[i]}return{changes:a}}prepareRename(t,n,i){return this.renameNodeRange(t,n.position)}renameNodeRange(t,n){let i=t.parseResult.value.$cstNode,a=t.textDocument.offsetAt(n);if(i){let t=findDeclarationNodeAtOffset(i,a,this.grammarConfig.nameRegexp);if(!t)return;if(this.references.findDeclarations(t).length>0||this.isNameNode(t))return t.range}}isNameNode(t){return t?.astNode&&isNamed(t.astNode)&&t===this.nameProvider.getNameNode(t.astNode)}},DefaultWorkspaceSymbolProvider=class{constructor(t){this.indexManager=t.workspace.IndexManager,this.nodeKindProvider=t.lsp.NodeKindProvider,this.fuzzyMatcher=t.lsp.FuzzyMatcher}async getSymbols(t,n=Y.CancellationToken.None){let i=[],a=t.query.toLowerCase();for(let t of this.indexManager.allElements())if(await interruptAndCheck(n),this.fuzzyMatcher.match(a,t.name)){let n=this.getWorkspaceSymbol(t);n&&i.push(n)}return i}getWorkspaceSymbol(t){let n=t.nameSegment;if(n)return{kind:this.nodeKindProvider.getSymbolKind(t),name:t.name,location:{range:n.range,uri:t.documentUri.toString()}}}},NormalizedTextDocuments=class{constructor(t){this._configuration=t,this._syncedDocuments=/* @__PURE__ */ new Map,this._onDidChangeContent=new $.Emitter,this._onDidOpen=new $.Emitter,this._onDidClose=new $.Emitter,this._onDidSave=new $.Emitter,this._onWillSave=new $.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(t){this._willSaveWaitUntil=t}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(t){return this._syncedDocuments.get(Z.normalize(t))}set(t){let n=Z.normalize(t.uri),i=!0;this._syncedDocuments.has(n)&&(i=!1),this._syncedDocuments.set(n,t);let a=Object.freeze({document:t});return this._onDidOpen.fire(a),this._onDidChangeContent.fire(a),i}delete(t){let n=Z.normalize(typeof t==`object`&&`uri`in t?t.uri:t),i=this._syncedDocuments.get(n);i!==void 0&&(this._syncedDocuments.delete(n),this._onDidClose.fire(Object.freeze({document:i})))}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(t){t.__textDocumentSync=$.TextDocumentSyncKind.Incremental;let n=[];return n.push(t.onDidOpenTextDocument(t=>{let n=t.textDocument,i=Z.normalize(n.uri),a=this._configuration.create(i,n.languageId,n.version,n.text);this._syncedDocuments.set(i,a);let o=Object.freeze({document:a});this._onDidOpen.fire(o),this._onDidChangeContent.fire(o)})),n.push(t.onDidChangeTextDocument(t=>{let n=t.textDocument,i=t.contentChanges;if(i.length===0)return;let{version:a}=n;if(a==null)throw Error(`Received document change event for ${n.uri} without valid version identifier`);let o=Z.normalize(n.uri),c=this._syncedDocuments.get(o);c!==void 0&&(c=this._configuration.update(c,i,a),this._syncedDocuments.set(o,c),this._onDidChangeContent.fire(Object.freeze({document:c})))})),n.push(t.onDidCloseTextDocument(t=>{let n=Z.normalize(t.textDocument.uri),i=this._syncedDocuments.get(n);i!==void 0&&(this._syncedDocuments.delete(n),this._onDidClose.fire(Object.freeze({document:i})))})),n.push(t.onWillSaveTextDocument(t=>{let n=this._syncedDocuments.get(Z.normalize(t.textDocument.uri));n!==void 0&&this._onWillSave.fire(Object.freeze({document:n,reason:t.reason}))})),n.push(t.onWillSaveTextDocumentWaitUntil((t,n)=>{let i=this._syncedDocuments.get(Z.normalize(t.textDocument.uri));return i!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:i,reason:t.reason}),n):[]})),n.push(t.onDidSaveTextDocument(t=>{let n=this._syncedDocuments.get(Z.normalize(t.textDocument.uri));n!==void 0&&this._onDidSave.fire(Object.freeze({document:n}))})),$.Disposable.create(()=>{n.forEach(t=>t.dispose())})}},NormalizedNotebookDocuments=class{constructor(t){this.notebookDocuments=/* @__PURE__ */ new Map,this.notebookCellMap=/* @__PURE__ */ new Map,this._onDidOpen=new $.Emitter,this._onDidSave=new $.Emitter,this._onDidChange=new $.Emitter,this._onDidClose=new $.Emitter,this._cellTextDocuments=`listen`in t?t:new NormalizedTextDocuments(t)}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(t){return this._cellTextDocuments.get(t.document)}getNotebookDocument(t){return this.notebookDocuments.get(Z.normalize(t))}getNotebookCell(t){let n=this.notebookCellMap.get(Z.normalize(t));return n&&n[0]}findNotebookDocumentForCell(t){let n=typeof t==`string`||`scheme`in t?t:t.document,i=this.notebookCellMap.get(Z.normalize(n));return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(t){let n=new Mi,i=[];return i.push(this.cellTextDocuments.listen(n)),i.push(t.notebooks.synchronization.onDidOpenNotebookDocument(t=>{let i=Z.normalize(t.notebookDocument.uri);this.notebookDocuments.set(i,t.notebookDocument);for(let i of t.cellTextDocuments)n.openTextDocument({textDocument:i});this.updateCellMap(t.notebookDocument),this._onDidOpen.fire(t.notebookDocument)})),i.push(t.notebooks.synchronization.onDidChangeNotebookDocument(t=>{let i=Z.normalize(t.notebookDocument.uri),a=this.notebookDocuments.get(i);if(a===void 0)return;a.version=t.notebookDocument.version;let o=a.metadata,c=!1,l=t.change;l.metadata!==void 0&&(c=!0,a.metadata=l.metadata);let f=[],p=[],h=[],_=[];if(l.cells!==void 0){let t=l.cells;if(t.structure!==void 0){let i=t.structure.array;if(a.cells.splice(i.start,i.deleteCount,...i.cells===void 0?[]:i.cells),t.structure.didOpen!==void 0)for(let i of t.structure.didOpen)n.openTextDocument({textDocument:i}),f.push(i.uri);if(t.structure.didClose)for(let i of t.structure.didClose)n.closeTextDocument({textDocument:i}),p.push(i.uri)}if(t.data!==void 0){let n=new Map(t.data.map(t=>[t.document,t]));for(let t=0;t<=a.cells.length;t++){let i=n.get(a.cells[t].document);if(i!==void 0){let o=a.cells.splice(t,1,i);if(h.push({old:o[0],new:i}),n.delete(i.document),n.size===0)break}}}if(t.textContent!==void 0)for(let i of t.textContent)n.changeTextDocument({textDocument:i.document,contentChanges:i.changes}),_.push(i.document.uri)}this.updateCellMap(a);let x={notebookDocument:a};c&&(x.metadata={old:o,new:a.metadata});let S=[];for(let t of f)S.push(this.getNotebookCell(t));let C=[];for(let t of p)C.push(this.getNotebookCell(t));let w=[];for(let t of _)w.push(this.getNotebookCell(t));(S.length>0||C.length>0||h.length>0||w.length>0)&&(x.cells={added:S,removed:C,changed:{data:h,textContent:w}}),(x.metadata!==void 0||x.cells!==void 0)&&this._onDidChange.fire(x)})),i.push(t.notebooks.synchronization.onDidSaveNotebookDocument(t=>{let n=this.getNotebookDocument(t.notebookDocument.uri);n!==void 0&&this._onDidSave.fire(n)})),i.push(t.notebooks.synchronization.onDidCloseNotebookDocument(t=>{let i=Z.normalize(t.notebookDocument.uri),a=this.notebookDocuments.get(i);if(a!==void 0){this._onDidClose.fire(a);for(let i of t.cellTextDocuments)n.closeTextDocument({textDocument:i});this.notebookDocuments.delete(i);for(let t of a.cells)this.notebookCellMap.delete(t.document)}})),$.Disposable.create(()=>{i.forEach(t=>t.dispose())})}updateCellMap(t){for(let n of t.cells)this.notebookCellMap.set(n.document,[n,t])}},Mi=class CellTextDocumentConnection{onDidOpenTextDocument(t){return this.openHandler=t,$.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(t){this.openHandler&&this.openHandler(t)}onDidChangeTextDocument(t){return this.changeHandler=t,$.Disposable.create(()=>{this.changeHandler=t})}changeTextDocument(t){this.changeHandler&&this.changeHandler(t)}onDidCloseTextDocument(t){return this.closeHandler=t,$.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(t){this.closeHandler&&this.closeHandler(t)}onWillSaveTextDocument(){return CellTextDocumentConnection.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return CellTextDocumentConnection.NULL_DISPOSE}onDidSaveTextDocument(){return CellTextDocumentConnection.NULL_DISPOSE}};Mi.NULL_DISPOSE=Object.freeze({dispose:()=>{}});function createDefaultModule(t){return Hr.merge(createDefaultCoreModule(t),createDefaultLSPModule(t))}function createDefaultLSPModule(t){return{lsp:{CompletionProvider:t=>new DefaultCompletionProvider(t),DocumentSymbolProvider:t=>new DefaultDocumentSymbolProvider(t),HoverProvider:t=>new MultilineCommentHoverProvider(t),FoldingRangeProvider:t=>new DefaultFoldingRangeProvider(t),ReferencesProvider:t=>new DefaultReferencesProvider(t),DefinitionProvider:t=>new DefaultDefinitionProvider(t),DocumentHighlightProvider:t=>new DefaultDocumentHighlightProvider(t),RenameProvider:t=>new DefaultRenameProvider(t)},shared:()=>t.shared}}function createDefaultSharedModule(t){return Hr.merge(createDefaultSharedCoreModule(t),createDefaultSharedLSPModule(t))}function createDefaultSharedLSPModule(t){return{lsp:{Connection:()=>t.connection,LanguageServer:t=>new DefaultLanguageServer(t),DocumentUpdateHandler:t=>new DefaultDocumentUpdateHandler(t),WorkspaceSymbolProvider:t=>new DefaultWorkspaceSymbolProvider(t),NodeKindProvider:()=>new DefaultNodeKindProvider,FuzzyMatcher:()=>new DefaultFuzzyMatcher},workspace:{TextDocuments:()=>new NormalizedTextDocuments(gr),NotebookDocuments:t=>new NormalizedNotebookDocuments(t.workspace.TextDocuments)}}}var AbstractFormatter=class{constructor(){this.collector=()=>{}}getNodeFormatter(t){return new DefaultNodeFormatter(t,this.collector)}formatDocument(t,n){let i=t.parseResult;return i.lexerErrors.length===0&&i.parserErrors.length===0?this.doDocumentFormat(t,n.options):[]}isFormatRangeErrorFree(t,n){let i=t.parseResult;return i.lexerErrors.length||i.parserErrors.length?Math.min(...i.lexerErrors.map(t=>t.line??Number.MAX_VALUE),...i.parserErrors.map(t=>t.token.startLine??Number.MAX_VALUE))>n.end.line:!0}formatDocumentRange(t,n){return this.isFormatRangeErrorFree(t,n.range)?this.doDocumentFormat(t,n.options,n.range):[]}formatDocumentOnType(t,n){let i={start:{character:0,line:n.position.line},end:n.position};return this.isFormatRangeErrorFree(t,i)?this.doDocumentFormat(t,n.options,i):[]}get formatOnTypeOptions(){}doDocumentFormat(t,n,i){let a=/* @__PURE__ */ new Map,collector=(t,n,i)=>{let o=this.nodeModeToKey(t,n),c=a.get(o),l=i.options.priority??0,f=c?.options.priority??0;(!c||f<=l)&&a.set(o,i)};this.collector=collector,this.iterateAstFormatting(t,i);let o=this.iterateCstFormatting(t,a,n,i);return this.avoidOverlappingEdits(t.textDocument,o)}avoidOverlappingEdits(t,n){let i=[];for(let a of n){let n=i[i.length-1];for(;n&&t.offsetAt(a.range.start)<t.offsetAt(n.range.end);)i.pop(),n=i[i.length-1];i.push(a)}return i.filter(n=>this.isNecessary(n,t))}iterateAstFormatting(t,n){let i=t.parseResult.value;this.format(i);let a=streamAllContents(i).iterator(),o;do if(o=a.next(),!o.done){let t=o.value;this.insideRange(t.$cstNode.range,n)?this.format(t):a.prune()}while(!o.done)}nodeModeToKey(t,n){return`${t.offset}:${t.end}:${n}`}insideRange(t,n){return!n||t.start.line<=n.start.line&&t.end.line>=n.end.line||t.start.line>=n.start.line&&t.end.line<=n.end.line||t.start.line<=n.end.line&&t.end.line>=n.end.line}isNecessary(t,n){return t.newText!==n.getText(t.range).replace(/\r/g,``)}iterateCstFormatting(t,n,i,a){let o={indentation:0,options:i,document:t.textDocument},c=[],l=this.iterateCstTree(t,o).iterator(),f,p;do if(p=l.next(),!p.done){let t=p.value,i=isLeafCstNode(t),l=this.nodeModeToKey(t,`prepend`),h=n.get(l);if(n.delete(l),h){let n=this.createTextEdit(f,t,h,o);for(let t of n)t&&this.insideRange(t.range,a)&&c.push(t)}let _=this.nodeModeToKey(t,`append`),x=n.get(_);if(n.delete(_),x){let n=getNextNode(t);if(n){let i=this.createTextEdit(t,n,x,o);for(let t of i)t&&this.insideRange(t.range,a)&&c.push(t)}}if(!h&&t.hidden){let n=this.createHiddenTextEdits(f,t,void 0,o);for(let t of n)t&&this.insideRange(t.range,a)&&c.push(t)}i&&(f=t)}while(!p.done);return c}createHiddenTextEdits(t,n,i,a){let o=n.range.start,c=o.line;if(t&&t.range.end.line===c)return[];let l=[],f={start:{character:0,line:c},end:o},p=a.document.getText(f),h=this.findFittingMove(f,i?.moves??[],a),_=this.getExistingIndentationCharacterCount(p,a),x=this.getIndentationCharacterCount(a,h)-_;if(x===0)return[];let S=``;x>0&&(S=(a.options.insertSpaces?` `:` `).repeat(x));let C=n.text.split(`
22
+ `);C[0]=p+C[0];for(let t=0;t<C.length;t++){let n=c+t,i={character:0,line:n};if(x>0)l.push({newText:S,range:{start:i,end:i}});else{let a=C[t],o=0;for(;o<a.length;o++){let t=a.charAt(o);if(t!==` `&&t!==` `)break}l.push({newText:``,range:{start:i,end:{line:n,character:Math.min(o,Math.abs(x))}}})}}return l}getExistingIndentationCharacterCount(t,n){let i=` `.repeat(n.options.tabSize),a=``,o;return n.options.insertSpaces?(o=/* @__PURE__ */ RegExp(`\\t`,`g`),a=i):(o=new RegExp(i,`g`),a=` `),t.replace(o,a).length}getIndentationCharacterCount(t,n){let i=t.indentation;return n&&n.tabs&&(i+=n.tabs),(t.options.insertSpaces?t.options.tabSize:1)*i}createTextEdit(t,n,i,a){if(n.hidden)return this.createHiddenTextEdits(t,n,i,a);let o=t?.range.end,c=n.range.start;if(o&&(o.line>c.line||o.line===c.line&&o.character>c.character))return[];let l={start:o??{character:0,line:0},end:c},f=this.findFittingMove(l,i.moves,a);if(!f)return[];let p=f.characters,h=f.lines,_=f.tabs,x=a.indentation;a.indentation+=_??0;let S=[];return p===void 0?h===void 0?_!==void 0&&S.push(this.createTabTextEdit(l,!!t,a)):S.push(this.createLineTextEdit(l,h,a,i.options)):t?.hidden||S.push(this.createSpaceTextEdit(l,p,i.options)),isLeafCstNode(n)&&(a.indentation=x),S}createSpaceTextEdit(t,n,i){if(t.start.line===t.end.line){let a=t.end.character-t.start.character;n=this.fitIntoOptions(n,a,i)}return{newText:` `.repeat(n),range:t}}createLineTextEdit(t,n,i,a){let o=t.end.line-t.start.line;n=this.fitIntoOptions(n,o,a);let c=(i.options.insertSpaces?` `.repeat(i.options.tabSize):` `).repeat(i.indentation);return{newText:`${`
23
+ `.repeat(n)}${c}`,range:t}}createTabTextEdit(t,n,i){let a=(i.options.insertSpaces?` `.repeat(i.options.tabSize):` `).repeat(i.indentation),o=+!!n,c=Math.max(t.end.line-t.start.line,o);return{newText:`${`
24
+ `.repeat(c)}${a}`,range:t}}fitIntoOptions(t,n,i){return i.allowMore?t=Math.max(n,t):i.allowLess&&(t=Math.min(n,t)),t}findFittingMove(t,n,i){if(n.length===0)return;if(n.length===1)return n[0];let a=t.end.line-t.start.line;for(let t of n)if(t.lines!==void 0&&a<=t.lines)return t;else if(t.lines===void 0&&a===0)return t;return n[n.length-1]}iterateCstTree(t,n){let i=t.parseResult.value.$cstNode;return i?new TreeStreamImpl(i,t=>this.iterateCst(t,n)):D}iterateCst(t,n){if(!isCompositeCstNode(t))return D;let i=n.indentation;return new E(()=>({index:0}),a=>a.index<t.content.length?{done:!1,value:t.content[a.index++]}:(n.indentation=i,O))}},DefaultNodeFormatter=class{constructor(t,n){this.astNode=t,this.collector=n}node(t){return new Ni(t.$cstNode?[t.$cstNode]:[],this.collector)}nodes(...t){let n=[];for(let i of t)i.$cstNode&&n.push(i.$cstNode);return new Ni(n,this.collector)}property(t,n){let i=findNodeForProperty(this.astNode.$cstNode,t,n);return new Ni(i?[i]:[],this.collector)}properties(...t){let n=[];for(let i of t){let t=findNodesForProperty(this.astNode.$cstNode,i);n.push(...t)}return new Ni(n,this.collector)}keyword(t,n){let i=findNodeForKeyword(this.astNode.$cstNode,t,n);return new Ni(i?[i]:[],this.collector)}keywords(...t){let n=[];for(let i of t){let t=findNodesForKeyword(this.astNode.$cstNode,i);n.push(...t)}return new Ni(n,this.collector)}cst(t){return new Ni([...t],this.collector)}interior(t,n){let i=t.nodes,a=n.nodes;if(i.length!==1||a.length!==1)return new Ni([],this.collector);let o=i[0],c=a[0];if(o.offset>c.offset){let t=o;o=c,c=t}return new Ni(getInteriorNodes(o,c),this.collector)}},Ni=class FormattingRegion{constructor(t,n){this.nodes=t,this.collector=n}prepend(t){for(let n of this.nodes)this.collector(n,`prepend`,t);return this}append(t){for(let n of this.nodes)this.collector(n,`append`,t);return this}surround(t){for(let n of this.nodes)this.collector(n,`prepend`,t),this.collector(n,`append`,t);return this}slice(t,n){return new FormattingRegion(this.nodes.slice(t,n),this.collector)}},Pi;(function(t){function fit(...t){return{options:{},moves:t.flatMap(t=>t.moves).sort(compareMoves)}}t.fit=fit;function noSpace(t){return spaces(0,t)}t.noSpace=noSpace;function oneSpace(t){return spaces(1,t)}t.oneSpace=oneSpace;function spaces(t,n){return{options:n??{},moves:[{characters:t}]}}t.spaces=spaces;function newLine(t){return newLines(1,t)}t.newLine=newLine;function newLines(t,n){return{options:n??{},moves:[{lines:t}]}}t.newLines=newLines;function indent(t){return{options:t??{},moves:[{tabs:1,lines:1}]}}t.indent=indent;function noIndent(t){return{options:t??{},moves:[{tabs:0}]}}t.noIndent=noIndent;function compareMoves(t,n){let i=t.lines??0,a=n.lines??0,o=t.tabs??0,c=n.tabs??0,l=t.characters??0,f=n.characters??0;return i<a?-1:i>a?1:o<c?-1:o>c?1:l<f?-1:+(l>f)}})(Pi||={});var NodeFileSystemProvider=class{constructor(){this.encoding=`utf-8`}async stat(t){let n=await T.promises.stat(t.fsPath);return{isFile:n.isFile(),isDirectory:n.isDirectory(),uri:t}}statSync(t){let n=T.statSync(t.fsPath);return{isFile:n.isFile(),isDirectory:n.isDirectory(),uri:t}}exists(t){return new Promise(n=>{T.stat(t.fsPath,t=>{n(!t)})})}existsSync(t){return T.existsSync(t.fsPath)}readBinary(t){return T.promises.readFile(t.fsPath)}readBinarySync(t){return T.readFileSync(t.fsPath)}readFile(t){return T.promises.readFile(t.fsPath,this.encoding)}readFileSync(t){return T.readFileSync(t.fsPath,this.encoding)}async readDirectory(t){return(await T.promises.readdir(t.fsPath,{withFileTypes:!0})).map(n=>({dirent:n,isFile:n.isFile(),isDirectory:n.isDirectory(),uri:Z.joinPath(t,n.name)}))}readDirectorySync(t){return T.readdirSync(t.fsPath,{withFileTypes:!0}).map(n=>({dirent:n,isFile:n.isFile(),isDirectory:n.isDirectory(),uri:Z.joinPath(t,n.name)}))}};export{Sn as $,SimpleCache as A,Q as B,JSDocDocumentationProvider as C,isAstNode as Ct,DefaultDocumentValidator as D,Fr as E,DefaultScopeComputation as F,isOperationCancelled as G,X as H,MultiMap as I,Tt as J,J as K,DefaultNameProvider as L,jr as M,MapScope as N,DefaultScopeProvider as O,StreamScope as P,Cn as Q,isNamed as R,inject as S,AbstractAstReflection as St,DefaultIndexManager as T,gr as U,Z as V,interruptAndCheck as W,U as X,qt as Y,W as Z,$r as _,getDocument as _t,createDefaultSharedModule as a,Ze as at,expandToNode as b,D as bt,AbstractSemanticTokenProvider as c,findNodesForProperty as ct,DefaultCompletionProvider as d,findCommentNode as dt,cn as et,Si as f,isCrossReference as ft,Qr as g,getContainerOfType as gt,joinToNode as h,ee as ht,createDefaultModule as i,DefaultValueConverter as it,WorkspaceCache as j,ContextCache as k,AstNodeHoverProvider as l,qe as lt,oi as m,isRuleCall as mt,AbstractFormatter as n,Vn as nt,DefaultWorkspaceSymbolProvider as o,findNodeForKeyword as ot,xi as p,isKeyword as pt,Kt as q,Pi as r,dt as rt,startLanguageServer as s,findNodeForProperty as st,NodeFileSystemProvider as t,At as tt,DefaultDocumentHighlightProvider as u,Be as ut,NewLineNode as v,hasContainerOfType as vt,DefaultWorkspaceManager as w,loadGrammarFromJson as x,stream as xt,toString as y,streamAllContents as yt,DefaultLangiumDocuments as z};