@tsrx/typescript-plugin 0.3.25 → 0.3.27

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @tsrx/typescript-plugin
2
2
 
3
+ ## 0.3.27
4
+
5
+ ## 0.3.26
6
+
7
+ ### Patch Changes
8
+
9
+ - [#916](https://github.com/Ripple-TS/ripple/pull/916)
10
+ [`5b01246`](https://github.com/Ripple-TS/ripple/commit/5b01246b8e1a3a3c7c9da294f3ebda8c73af3ee7)
11
+ Thanks [@trueadm](https://github.com/trueadm)! - Rename the TypeScript plugin
12
+ package to `@tsrx/typescript-plugin` and update local consumers, templates, and
13
+ playgrounds to use the new package name.
14
+
15
+ - [`68d80f8`](https://github.com/Ripple-TS/ripple/commit/68d80f8c7a6398692e00497b90cb3d0ba981aea3)
16
+ Thanks [@leonidaz](https://github.com/leonidaz)! - Correct package versions.
17
+
18
+ - Updated dependencies
19
+ [[`5b01246`](https://github.com/Ripple-TS/ripple/commit/5b01246b8e1a3a3c7c9da294f3ebda8c73af3ee7),
20
+ [`fab49f7`](https://github.com/Ripple-TS/ripple/commit/fab49f7da8ec13c981f1c7b3102703d0c349fc1e)]:
21
+ - @tsrx/react@0.1.1
22
+ - @tsrx/ripple@0.0.9
23
+
3
24
  ## 1.0.1
4
25
 
5
26
  ### Patch Changes
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "TypeScript plugin for TSRX",
4
4
  "license": "MIT",
5
5
  "author": "Dominic Gannaway",
6
- "version": "0.3.25",
6
+ "version": "0.3.27",
7
7
  "main": "dist/index.js",
8
8
  "type": "module",
9
9
  "homepage": "https://ripple-ts.com",
@@ -25,8 +25,8 @@
25
25
  },
26
26
  "peerDependencies": {
27
27
  "typescript": "^5.9.3",
28
- "@tsrx/ripple": "0.0.8",
29
- "@tsrx/react": "0.1.0"
28
+ "@tsrx/react": "0.1.1",
29
+ "@tsrx/ripple": "0.0.9"
30
30
  },
31
31
  "publishConfig": {
32
32
  "access": "public"
package/.build-hash DELETED
@@ -1 +0,0 @@
1
- dbc166e19d220e3ae7fbadec50dbce93e1d20b669b21a0944138b87035d35882
package/.build-hash-built DELETED
@@ -1 +0,0 @@
1
- f4e769bce49fcaf3fc5290e59b3b2a68cb76d45f63548445666a93fb6e81024d
package/dist/index.js DELETED
@@ -1,10 +0,0 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));require(`typescript`);let l=require(`fs`);l=c(l);let u=require(`path`);u=c(u);let d=require(`module`),f=require(`url`);var p=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.binarySearch=t;function t(e,t){let n=0,r=e.length-1,i;for(;n<=r;){let a=Math.floor((n+r)/2),o=e[a];if(o<t)n=a+1;else if(o>t)r=a-1;else{n=a,r=a,i=a;break}}return{low:Math.max(Math.min(n,r,e.length-1),0),high:Math.min(Math.max(n,r,0),e.length-1),match:i}}})),m=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.translateOffset=n;let t=!1;function n(e,n,r,i,a=i,o=!1){if(!n.every((e,t)=>t===0||n[t-1]<=e)){for(let t=0;t<n.length;t++){let s=n[t],c=i[t];if(e>=s&&e<=s+c){let n=a[t],i=r[t],l,u=e-s;return l=o&&n>c&&u===c?n:Math.min(u,n),i+l}}t||(t=!0,console.warn(`fromOffsets should be sorted in ascending order`))}let s=0,c=n.length-1;for(;s<=c;){let t=Math.floor((s+c)/2),l=n[t],u=i[t];if(e>=l&&e<=l+u){let n=a[t],i=r[t],s,c=e-l;return s=o&&n>u&&c===u?n:Math.min(c,n),i+s}else e<l?c=t-1:s=t+1}}})),h=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.SourceMap=void 0;let t=p(),n=m();e.SourceMap=class{constructor(e){this.mappings=e}toSourceRange(e,t,n,r){return this.findMatchingStartEnd(e,t,n,`generatedOffsets`,r)}toGeneratedRange(e,t,n,r){return this.findMatchingStartEnd(e,t,n,`sourceOffsets`,r)}toSourceLocation(e,t){return this.findMatchingOffsets(e,`generatedOffsets`,t)}toGeneratedLocation(e,t){return this.findMatchingOffsets(e,`sourceOffsets`,t)}*findMatchingOffsets(e,i,a,o=!1){let s=this.getMemoBasedOnRange(i);if(s.offsets.length===0)return;let{low:c,high:l}=(0,t.binarySearch)(s.offsets,e),u=new Set,d=i===`sourceOffsets`?`generatedOffsets`:`sourceOffsets`;for(let t=c;t<=l;t++)for(let c of s.mappings[t]){if(u.has(c)||(u.add(c),a&&!a(c.data)))continue;let t=(0,n.translateOffset)(e,c[i],c[d],r(c,i),r(c,d),o);t!==void 0&&(yield[t,c])}}*findMatchingStartEnd(e,t,i,a,o){let s=a===`sourceOffsets`?`generatedOffsets`:`sourceOffsets`,c=s===`sourceOffsets`,l=[],u=!1;for(let[i,d]of this.findMatchingOffsets(e,a)){if(o&&!o(d.data))continue;l.push([i,d]);let e=(0,n.translateOffset)(t,d[a],d[s],r(d,a),r(d,s),c);e!==void 0&&(u=!0,yield[i,e,d,d])}if(!u&&i){for(let[e,n]of l)for(let[r,i]of this.findMatchingOffsets(t,a,void 0,c))if(!(o&&!o(i.data)||r<e)){yield[e,r,n,i];break}}}getMemoBasedOnRange(e){return e===`sourceOffsets`?this.sourceCodeOffsetsMemo??=this.createMemo(`sourceOffsets`):this.generatedCodeOffsetsMemo??=this.createMemo(`generatedOffsets`)}createMemo(e){let n=new Set;for(let t of this.mappings)for(let i=0;i<t[e].length;i++)n.add(t[e][i]),n.add(t[e][i]+r(t,e)[i]);let i=[...n].sort((e,t)=>e-t),a=i.map(()=>new Set);for(let n of this.mappings)for(let o=0;o<n[e].length;o++){let s=(0,t.binarySearch)(i,n[e][o]).match,c=(0,t.binarySearch)(i,n[e][o]+r(n,e)[o]).match;for(let e=s;e<=c;e++)a[e].add(n)}return{offsets:i,mappings:a}}};function r(e,t){return t===`sourceOffsets`?e.lengths:e.generatedLengths??e.lengths}})),g=o((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!==`default`&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,`__esModule`,{value:!0}),n(h(),e),n(m(),e)})),_=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.isHoverEnabled=t,e.isInlayHintsEnabled=n,e.isCodeLensEnabled=r,e.isMonikerEnabled=i,e.isInlineValueEnabled=a,e.isSemanticTokensEnabled=o,e.isCallHierarchyEnabled=s,e.isTypeHierarchyEnabled=c,e.isRenameEnabled=l,e.isDefinitionEnabled=u,e.isTypeDefinitionEnabled=d,e.isReferencesEnabled=f,e.isImplementationEnabled=p,e.isHighlightEnabled=m,e.isSymbolsEnabled=h,e.isFoldingRangesEnabled=g,e.isSelectionRangesEnabled=_,e.isLinkedEditingEnabled=v,e.isColorEnabled=y,e.isDocumentLinkEnabled=b,e.isDiagnosticsEnabled=x,e.isCodeActionsEnabled=S,e.isFormattingEnabled=C,e.isCompletionEnabled=w,e.isAutoInsertEnabled=T,e.isSignatureHelpEnabled=E,e.shouldReportDiagnostics=D,e.resolveRenameNewName=O,e.resolveRenameEditText=k,e.findOverlapCodeRange=A;function t(e){return!!e.semantic}function n(e){return!!e.semantic}function r(e){return!!e.semantic}function i(e){return!!e.semantic}function a(e){return!!e.semantic}function o(e){return typeof e.semantic==`object`?e.semantic.shouldHighlight?.()??!0:!!e.semantic}function s(e){return!!e.navigation}function c(e){return!!e.navigation}function l(e){return typeof e.navigation==`object`?e.navigation.shouldRename?.()??!0:!!e.navigation}function u(e){return!!e.navigation}function d(e){return!!e.navigation}function f(e){return!!e.navigation}function p(e){return!!e.navigation}function m(e){return typeof e.navigation==`object`?e.navigation.shouldHighlight?.()??!0:!!e.navigation}function h(e){return!!e.structure}function g(e){return!!e.structure}function _(e){return!!e.structure}function v(e){return!!e.structure}function y(e){return!!e.structure}function b(e){return!!e.structure}function x(e){return!!e.verification}function S(e){return!!e.verification}function C(e){return!!e.format}function w(e){return!!e.completion}function T(e){return!!e.completion}function E(e){return!!e.completion}function D(e,t,n){return typeof e.verification==`object`?e.verification.shouldReport?.(t,n)??!0:!!e.verification}function O(e,t){return typeof t.navigation==`object`?t.navigation.resolveRenameNewName?.(e)??e:e}function k(e,t){return typeof t.navigation==`object`?t.navigation.resolveRenameEditText?.(e)??e:e}function A(e,t,n,r){let i,a;for(let[t,a]of n.toGeneratedLocation(e))if(r(a.data)){i=t;break}for(let[e,i]of n.toGeneratedLocation(t))if(r(i.data)){a=e;break}if(i===void 0||a===void 0){for(let o of n.mappings)if(r(o.data)){let n=o.sourceOffsets[0],r=j(e,t,n,o.sourceOffsets[o.sourceOffsets.length-1]+o.lengths[o.lengths.length-1]);if(r){let e=r.start-n+o.generatedOffsets[0],t=(o.generatedLengths??o.lengths)[o.generatedOffsets.length-1],s=Math.min(r.end-o.sourceOffsets[o.sourceOffsets.length-1],t),c=o.generatedOffsets[o.generatedOffsets.length-1]+s;i=i===void 0?e:Math.min(i,e),a=a===void 0?c:Math.max(a,c)}}}if(i!==void 0&&a!==void 0)return{start:i,end:a}}function j(e,t,n,r){let i=Math.max(e,n),a=Math.min(t,r);if(!(i>a))return{start:i,end:a}}})),v=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.LinkedCodeMap=void 0;let t=g();e.LinkedCodeMap=class extends t.SourceMap{*getLinkedOffsets(e){for(let t of this.toGeneratedLocation(e))yield t[0];for(let t of this.toSourceLocation(e))yield t[0]}}})),y=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0})})),b=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.FileMap=void 0,e.FileMap=class extends Map{constructor(e){super(),this.caseSensitive=e,this.originalFileNames=new Map}keys(){return this.originalFileNames.values()}get(e){return super.get(this.normalizeId(e))}has(e){return super.has(this.normalizeId(e))}set(e,t){return this.originalFileNames.set(this.normalizeId(e),e),super.set(this.normalizeId(e),t)}delete(e){return this.originalFileNames.delete(this.normalizeId(e)),super.delete(this.normalizeId(e))}clear(){return this.originalFileNames.clear(),super.clear()}normalizeId(e){return this.caseSensitive?e:e.toLowerCase()}}})),x=o((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!==`default`&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,`__esModule`,{value:!0}),e.defaultMapperFactory=e.SourceMap=void 0,e.createLanguage=o,e.forEachEmbeddedCode=s;var r=g();Object.defineProperty(e,`SourceMap`,{enumerable:!0,get:function(){return r.SourceMap}}),n(_(),e),n(v(),e),n(y(),e),n(b(),e);let i=g(),a=v();e.defaultMapperFactory=e=>new i.SourceMap(e);function o(t,n,r,i){let o=new WeakMap,c=new WeakMap,l=new WeakMap,u={mapperFactory:e.defaultMapperFactory,plugins:t,scripts:{fromVirtualCode(e){return o.get(e)},get(e,t=!0,i=!1){r(e,t,i);let a=n.get(e);return a?.isAssociationDirty&&this.set(e,a.snapshot,a.languageId),n.get(e)},set(e,r,i,a=t){if(!i){for(let n of t)if(i=n.getLanguageId?.(e),i)break}if(!i){console.warn(`languageId not found for ${String(e)}`);return}let c=!1;for(let n of t)if(n.isAssociatedFileOnly?.(e,i)){c=!0;break}if(n.has(e)){let t=n.get(e);if(t.languageId!==i||t.associatedOnly!==c)return this.delete(e),d(t),this.set(e,r,i);if(c)t.snapshot!==r&&(t.snapshot=r,d(t));else if(t.isAssociationDirty||t.snapshot!==r){t.snapshot!==r&&(t.snapshot=r,d(t));let n=f(t);if(t.generated){let{updateVirtualCode:a,createVirtualCode:c}=t.generated.languagePlugin,l=a?a(e,t.generated.root,r,n):c?.(e,i,r,n);if(l){t.generated.root=l,t.generated.embeddedCodes.clear();for(let e of s(t.generated.root))o.set(e,t),t.generated.embeddedCodes.set(e.id,e);return t}else{this.delete(e);return}}}else return t}else{let t={id:e,languageId:i,snapshot:r,associatedIds:new Set,targetIds:new Set,associatedOnly:c};if(n.set(e,t),c)return t;for(let n of a){let a=n.createVirtualCode?.(e,i,r,f(t));if(a){t.generated={root:a,languagePlugin:n,embeddedCodes:new Map};for(let e of s(a))o.set(e,t),t.generated.embeddedCodes.set(e.id,e);break}}return t}},delete(e){let t=n.get(e);t&&(t.generated?.languagePlugin.disposeVirtualCode?.(e,t.generated.root),n.delete(e),d(t))}},maps:{get(e,t){let n=c.get(e.snapshot);if(n||c.set(e.snapshot,n=new WeakMap),!n.has(t.snapshot)){let r=e.associatedScriptMappings?.get(t.id)??e.mappings;n.set(t.snapshot,u.mapperFactory(r))}return n.get(t.snapshot)},*forEach(e){let t=o.get(e);if(yield[t,this.get(e,t)],e.associatedScriptMappings)for(let[t]of e.associatedScriptMappings){let r=n.get(t);r&&(yield[r,this.get(e,r)])}}},linkedCodeMaps:{get(e){let t=o.get(e),n=l.get(e.snapshot);return n?.[0]!==t.snapshot&&l.set(e.snapshot,n=[t.snapshot,e.linkedCodeMappings?new a.LinkedCodeMap(e.linkedCodeMappings):void 0]),n[1]}}};return u;function d(e){e.targetIds.forEach(e=>{let t=n.get(e);t&&(t.isAssociationDirty=!0,i?.(t.id))})}function f(e){for(let t of e.associatedIds)n.get(t)?.targetIds.delete(e.id);return e.associatedIds.clear(),e.isAssociationDirty=!1,{getAssociatedScript(t){r(t,!0,!0);let i=n.get(t);return i&&(i.targetIds.add(e.id),e.associatedIds.add(i.id)),i}}}}function*s(e){if(yield e,e.embeddedCodes)for(let t of e.embeddedCodes)yield*s(t)}})),S=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dedupeDocumentSpans=t;function t(e){return n(e,e=>[e.fileName,e.textSpan.start,e.textSpan.length].join(`:`))}function n(e,t){let n=new Map;for(let r of e.reverse())n.set(t(r),r);return[...n.values()]}})),C=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.getServiceScript=t,e.fixupImpliedNodeFormatForFile=n;function t(e,t){let n=e.scripts.get(t);if(n?.targetIds.size)for(let t of n.targetIds){let r=e.scripts.get(t);if(r?.generated){let e=r.generated.languagePlugin.typescript?.getServiceScript(r.generated.root);if(e)return[e,r,n]}}if(n?.associatedOnly)return[void 0,n,n];if(n?.generated){let e=n.generated.languagePlugin.typescript?.getServiceScript(n.generated.root);if(e)return[e,n,n]}return[void 0,void 0,void 0]}function n(e,t,n,r,i,a){if(n.impliedNodeFormat!==void 0||!t.some(e=>n.fileName.endsWith(e))||[`.d.ts`,`.ts`,`.tsx`,`.js`,`.jsx`].some(e=>n.fileName.endsWith(e)))return;let o=n.fileName+`.ts`,s=e.getImpliedNodeFormatForFileWorker?.(o,r,i,a)?.impliedNodeFormat;if(s!==void 0)return n.impliedNodeFormat=s,()=>n.impliedNodeFormat=void 0}})),w=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.transformCallHierarchyItem=a,e.transformDiagnostic=o,e.fillSourceFileText=s,e.transformFileTextChanges=c,e.transformDocumentSpan=l,e.transformSpan=u,e.transformTextChange=d,e.transformTextSpan=f,e.toSourceOffset=p,e.toSourceRanges=m,e.toSourceOffsets=h,e.toGeneratedRange=g,e.toGeneratedRanges=_,e.toGeneratedOffset=v,e.toGeneratedOffsets=y,e.getMappingOffset=b;let t=x(),n=C(),r=new WeakMap,i=new WeakSet;function a(e,t,n,r){let i=u(e,t.file,t.span,n,r),a=u(e,t.file,t.selectionSpan,n,r);return{...t,file:i?.fileName??t.file,span:i?.textSpan??{start:0,length:0},selectionSpan:a?.textSpan??{start:0,length:0}}}function o(e,i,a,c){if(!r.has(i)){r.set(i,void 0);let{relatedInformation:l}=i;if(l&&(i.relatedInformation=l.map(t=>o(e,t,a,c)).filter(e=>!!e)),i.file!==void 0&&i.start!==void 0&&i.length!==void 0){let[o]=(0,n.getServiceScript)(e,i.file.fileName);if(o){let[n,l]=f(void 0,e,o,{start:i.start,length:i.length},!0,e=>(0,t.shouldReportDiagnostics)(e,String(i.source),String(i.code)))??[],u=n?i.file.fileName===n?i.file:a?.getSourceFile(n):void 0;l&&u&&(c&&s(e,i.file),r.set(i,{...i,file:u,start:l.start,length:l.length}))}else r.set(i,i)}else r.set(i,i)}return r.get(i)}function s(e,t){if(i.has(t))return;i.add(t);let[r]=(0,n.getServiceScript)(e,t.fileName);if(r&&!r.preventLeadingOffset){let n=e.scripts.fromVirtualCode(r.code);t.text=n.snapshot.getText(0,n.snapshot.getLength())+t.text.substring(n.snapshot.getLength())}}function c(e,t,r,i){let a={},o=new Set;for(let s of t){let[t,c]=(0,n.getServiceScript)(e,s.fileName);if(c)s.textChanges.forEach(t=>{let{fileName:n,textSpan:o}=u(e,s.fileName,t.span,r,i)??{};n&&o&&(a[n]??(a[n]=[])).push({...t,span:o})});else{let e=a[s.fileName]??(a[s.fileName]=[]);s.textChanges.forEach(t=>{e.push(t)}),s.isNewFile&&o.add(s.fileName)}}let s=[];for(let e in a)s.push({fileName:e,isNewFile:o.has(e),textChanges:a[e]});return s}function l(e,t,n,r,i){let a=u(e,t.fileName,t.textSpan,n,r);if(!a&&i&&(a={fileName:t.fileName,textSpan:{start:0,length:0}}),!a)return;let o=u(e,t.fileName,t.contextSpan,n,r),s=u(e,t.originalFileName,t.originalTextSpan,n,r),c=u(e,t.originalFileName,t.originalContextSpan,n,r);return{...t,fileName:a.fileName,textSpan:a.textSpan,contextSpan:o?.textSpan,originalFileName:s?.fileName,originalTextSpan:s?.textSpan,originalContextSpan:c?.textSpan}}function u(e,t,r,i,a){if(!t||!r)return;let[o]=(0,n.getServiceScript)(e,t);if(o){let[t,n]=f(void 0,e,o,r,i,a)??[];if(n&&t)return{fileName:t,textSpan:n}}else return{fileName:t,textSpan:r}}function d(e,t,n,r,i,a){let[o,s]=f(e,t,n,r.span,i,a)??[];if(s&&o)return[o,{newText:r.newText,span:s}]}function f(e,t,n,r,i,a){let o=r.start,s=r.start+r.length;for(let[r,c,l]of m(e,t,n,o,s,i,a))return[r,{start:c,length:l-c}]}function p(e,t,n,r,i){for(let a of h(e,t,n,r,i))return a}function*m(e,t,n,r,i,a,o){if(e){let s=t.maps.get(n.code,e);for(let[c,l]of s.toSourceRange(r-b(t,n),i-b(t,n),a,o))yield[e.id,c,l]}else for(let[e,s]of t.maps.forEach(n.code))for(let[c,l]of s.toSourceRange(r-b(t,n),i-b(t,n),a,o))yield[e.id,c,l]}function*h(e,t,n,r,i){if(e){let a=t.maps.get(n.code,e);for(let[o,s]of a.toSourceLocation(r-b(t,n)))i(s.data)&&(yield[e.id,o])}else for(let[e,a]of t.maps.forEach(n.code))for(let[o,s]of a.toSourceLocation(r-b(t,n)))i(s.data)&&(yield[e.id,o])}function g(e,t,n,r,i,a){for(let o of _(e,t,n,r,i,a))return o}function*_(e,t,n,r,i,a){let o=e.maps.get(t.code,n);for(let[n,s]of o.toGeneratedRange(r,i,!0,a))yield[n+b(e,t),s+b(e,t)]}function v(e,t,n,r,i){for(let[a]of y(e,t,n,r,i))return a}function*y(e,t,n,r,i){let a=e.maps.get(t.code,n);for(let[n,o]of a.toGeneratedLocation(r))i(o.data)&&(yield[n+b(e,t),o])}function b(e,t){return t.preventLeadingOffset?0:e.scripts.fromVirtualCode(t.code).snapshot.getLength()}})),T=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.createProxyLanguageService=o;let t=x(),n=S(),r=w(),i=C(),a=/\\/g;function o(e){let t=new Map,n;return{initialize(t){n=(n,r)=>{switch(r){case`getNavigationTree`:return s(t,n[r]);case`getOutliningSpans`:return c(t,n[r]);case`getFormattingEditsForDocument`:return l(t,n[r]);case`getFormattingEditsForRange`:return u(t,n[r]);case`getFormattingEditsAfterKeystroke`:return d(t,n[r]);case`getEditsForFileRename`:return f(t,n[r]);case`getLinkedEditingRangeAtPosition`:return p(t,n[r]);case`prepareCallHierarchy`:return m(t,n[r]);case`provideCallHierarchyIncomingCalls`:return h(t,n[r]);case`provideCallHierarchyOutgoingCalls`:return g(t,n[r]);case`organizeImports`:return _(t,n[r]);case`getQuickInfoAtPosition`:return v(t,n[r]);case`getSignatureHelpItems`:return y(t,n[r]);case`getDocumentHighlights`:return b(t,n[r]);case`getApplicableRefactors`:return T(t,n[r]);case`getEditsForRefactor`:return E(t,n[r]);case`getCombinedCodeFix`:return D(t,n[r]);case`getRenameInfo`:return O(t,n[r]);case`getCodeFixesAtPosition`:return k(t,n[r]);case`getEncodedSemanticClassifications`:return A(t,n[r]);case`getSyntacticDiagnostics`:return j(t,e,n[r]);case`getSemanticDiagnostics`:return M(t,e,n[r]);case`getSuggestionDiagnostics`:return N(t,e,n[r]);case`getDefinitionAndBoundSpan`:return P(t,n[r]);case`findReferences`:return F(t,n[r]);case`getDefinitionAtPosition`:return I(t,n[r]);case`getTypeDefinitionAtPosition`:return L(t,n[r]);case`getImplementationAtPosition`:return R(t,n[r]);case`findRenameLocations`:return z(t,n[r]);case`getReferencesAtPosition`:return B(t,n[r]);case`getCompletionsAtPosition`:return V(t,n[r]);case`getCompletionEntryDetails`:return H(t,n[r]);case`provideInlayHints`:return U(t,n[r]);case`getFileReferences`:return W(t,n[r]);case`getNavigateToItems`:return G(t,n[r])}}},proxy:new Proxy(e,{get(e,r,i){if(n){t.has(r)||t.set(r,n(e,r));let i=t.get(r);if(i)return i}return Reflect.get(e,r,i)},set(e,t,n,r){return Reflect.set(e,t,n,r)}})}}function s(e,t){return n=>{let r=n.replace(a,`/`),[o,s]=(0,i.getServiceScript)(e,r);if(o||s?.associatedOnly){let e=t(s.id);return e.childItems=void 0,e}else return t(r)}}function c(e,t){return n=>{let r=n.replace(a,`/`),[o,s]=(0,i.getServiceScript)(e,r);return o||s?.associatedOnly?[]:t(r)}}function l(e,n){return(o,s)=>{let c=o.replace(a,`/`),[l,u,d]=(0,i.getServiceScript)(e,c);return u?.associatedOnly?[]:l?e.maps.get(l.code,u).mappings.some(e=>(0,t.isFormattingEnabled)(e.data))?n(u.id,s).map(n=>(0,r.transformTextChange)(d,e,l,n,!1,t.isFormattingEnabled)?.[1]).filter(e=>!!e):[]:n(c,s)}}function u(e,n){return(o,s,c,l)=>{let u=o.replace(a,`/`),[d,f,p]=(0,i.getServiceScript)(e,u);if(f?.associatedOnly)return[];if(d){let i=(0,r.toGeneratedRange)(e,d,p,s,c,t.isFormattingEnabled);return i===void 0?[]:n(f.id,i[0],i[1],l).map(n=>(0,r.transformTextChange)(p,e,d,n,!1,t.isFormattingEnabled)?.[1]).filter(e=>!!e)}else return n(u,s,c,l)}}function d(e,n){return(o,s,c,l)=>{let u=o.replace(a,`/`),[d,f,p]=(0,i.getServiceScript)(e,u);if(f?.associatedOnly)return[];if(d){let i=(0,r.toGeneratedOffset)(e,d,p,s,t.isFormattingEnabled);return i===void 0?[]:n(f.id,i,c,l).map(n=>(0,r.transformTextChange)(p,e,d,n,!1,t.isFormattingEnabled)?.[1]).filter(e=>!!e)}else return n(u,s,c,l)}}function f(e,n){return(i,a,o,s)=>{let c=n(i,a,o,s);return(0,r.transformFileTextChanges)(e,c,!1,t.isRenameEnabled)}}function p(e,n){return(o,s)=>{let c=o.replace(a,`/`),[l,u,d]=(0,i.getServiceScript)(e,c);if(!u?.associatedOnly)if(l){let i=(0,r.toGeneratedOffset)(e,l,d,s,t.isLinkedEditingEnabled);if(i!==void 0){let a=n(u.id,i);if(a)return{ranges:a.ranges.map(n=>(0,r.transformTextSpan)(d,e,l,n,!1,t.isLinkedEditingEnabled)?.[1]).filter(e=>!!e),wordPattern:a.wordPattern}}}else return n(c,s)}}function m(e,n){return(o,s)=>{let c=o.replace(a,`/`),[l,u,d]=(0,i.getServiceScript)(e,c);if(!u?.associatedOnly)if(l){let i=(0,r.toGeneratedOffset)(e,l,d,s,t.isCallHierarchyEnabled);if(i!==void 0){let a=n(u.id,i);if(Array.isArray(a))return a.map(n=>(0,r.transformCallHierarchyItem)(e,n,!0,t.isCallHierarchyEnabled));if(a)return(0,r.transformCallHierarchyItem)(e,a,!0,t.isCallHierarchyEnabled)}}else return n(c,s)}}function h(e,n){return(o,s)=>{let c=[],l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(d?.associatedOnly)return[];if(u){let i=(0,r.toGeneratedOffset)(e,u,f,s,t.isCallHierarchyEnabled);i!==void 0&&(c=n(d.id,i))}else c=n(l,s);return c.map(n=>({from:(0,r.transformCallHierarchyItem)(e,n.from,!0,t.isCallHierarchyEnabled),fromSpans:n.fromSpans.map(i=>(0,r.transformSpan)(e,n.from.file,i,!0,t.isCallHierarchyEnabled)?.textSpan).filter(e=>!!e)}))}}function g(e,n){return(o,s)=>{let c=[],l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(d?.associatedOnly)return[];if(u){let i=(0,r.toGeneratedOffset)(e,u,f,s,t.isCallHierarchyEnabled);i!==void 0&&(c=n(d.id,i))}else c=n(l,s);return c.map(n=>({to:(0,r.transformCallHierarchyItem)(e,n.to,!0,t.isCallHierarchyEnabled),fromSpans:n.fromSpans.map(n=>u?(0,r.transformTextSpan)(f,e,u,n,!0,t.isCallHierarchyEnabled)?.[1]:n).filter(e=>!!e)}))}}function _(e,n){return(i,a,o)=>{let s=n(i,a,o);return(0,r.transformFileTextChanges)(e,s,!1,t.isCodeActionsEnabled)}}function v(e,n){return(o,s,...c)=>{let l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(!d?.associatedOnly)if(u){let i=[];for(let[a]of(0,r.toGeneratedOffsets)(e,u,f,s,t.isHoverEnabled)){let o=n(d.id,a,...c);if(o){let n=(0,r.transformTextSpan)(f,e,u,o.textSpan,!0,t.isHoverEnabled)?.[1];n&&i.push({...o,textSpan:n})}}if(i.length===1)return i[0];if(i.length>=2){let e={...i[0]};e.displayParts=e.displayParts?.slice(),e.documentation=e.documentation?.slice(),e.tags=e.tags?.slice();let t=new Set([q(i[0].displayParts)]),n=new Set([q(i[0].documentation)]),r=new Set;for(let e of i[0].tags??[])r.add(e.name+`__volar__`+q(e.text));for(let a=1;a<i.length;a++){let{displayParts:o,documentation:s,tags:c}=i[a];o?.length&&!t.has(q(o))&&(t.add(q(o)),e.displayParts??=[],e.displayParts.push({...o[0],text:`
2
-
3
- `+o[0].text}),e.displayParts.push(...o.slice(1))),s?.length&&!n.has(q(s))&&(n.add(q(s)),e.documentation??=[],e.documentation.push({...s[0],text:`
4
-
5
- `+s[0].text}),e.documentation.push(...s.slice(1)));for(let t of c??[])r.has(t.name+`__volar__`+q(t.text))||(r.add(t.name+`__volar__`+q(t.text)),e.tags??=[],e.tags.push(t))}return e}}else return n(l,s,...c)}}function y(e,n){return(o,s,c)=>{let l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(!d?.associatedOnly)if(u){let i=(0,r.toGeneratedOffset)(e,u,f,s,t.isSignatureHelpEnabled);if(i!==void 0){let a=n(d.id,i,c);if(a){let n=(0,r.transformTextSpan)(f,e,u,a.applicableSpan,!0,t.isSignatureHelpEnabled)?.[1];if(n)return{...a,applicableSpan:n}}}}else return n(l,s,c)}}function b(e,n){return(i,o,s)=>K(e,i.replace(a,`/`),o,t.isHighlightEnabled,(e,t)=>n(e,t,s),function*(e){for(let t of e)for(let e of t.highlightSpans)yield[e.fileName??t.fileName,e.textSpan.start]}).flat().map(n=>({...n,highlightSpans:n.highlightSpans.map(i=>{let{textSpan:a}=(0,r.transformSpan)(e,i.fileName??n.fileName,i.textSpan,!1,t.isHighlightEnabled)??{};if(a)return{...i,contextSpan:(0,r.transformSpan)(e,i.fileName??n.fileName,i.contextSpan,!1,t.isHighlightEnabled)?.textSpan,textSpan:a}}).filter(e=>!!e)}))}function T(e,n){return(o,s,c,l,u,d)=>{let f=o.replace(a,`/`),[p,m,h]=(0,i.getServiceScript)(e,f);if(m?.associatedOnly)return[];if(p){if(typeof s==`number`){let i=(0,r.toGeneratedOffset)(e,p,h,s,t.isCodeActionsEnabled);if(i!==void 0)return n(m.id,i,c,l,u,d)}else for(let[i,a]of(0,r.toGeneratedRanges)(e,p,h,s.pos,s.end,t.isCodeActionsEnabled))return n(m.id,{pos:i,end:a},c,l,u,d);return[]}else return n(f,s,c,l,u,d)}}function E(e,n){return(o,s,c,l,u,d,f)=>{let p,m=o.replace(a,`/`),[h,g,_]=(0,i.getServiceScript)(e,m);if(!g?.associatedOnly){if(h)if(typeof c==`number`){let i=(0,r.toGeneratedOffset)(e,h,_,c,t.isCodeActionsEnabled);i!==void 0&&(p=n(g.id,s,i,l,u,d,f))}else for(let[i,a]of(0,r.toGeneratedRanges)(e,h,_,c.pos,c.end,t.isCodeActionsEnabled))p=n(g.id,s,{pos:i,end:a},l,u,d,f);else p=n(m,s,c,l,u,d,f);if(p)return p.edits=(0,r.transformFileTextChanges)(e,p.edits,!1,t.isCodeActionsEnabled),p}}}function D(e,n){return(...i)=>{let a=n(...i);return a.changes=(0,r.transformFileTextChanges)(e,a.changes,!1,t.isCodeActionsEnabled),a}}function O(e,n){return(o,s,c)=>{let l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(d?.associatedOnly)return{canRename:!1,localizedErrorMessage:`Cannot rename`};if(u){let i;for(let[a]of(0,r.toGeneratedOffsets)(e,u,f,s,t.isRenameEnabled)){let o=n(d.id,a,c);if(o.canRename){let n=(0,r.transformTextSpan)(f,e,u,o.triggerSpan,!1,t.isRenameEnabled)?.[1];if(n)return o.triggerSpan=n,o}else i=o}return i||{canRename:!1,localizedErrorMessage:`Failed to get rename locations`}}else return n(l,s,c)}}function k(e,n){return(o,s,c,l,u,d)=>{let f=[],p=o.replace(a,`/`),[m,h,g]=(0,i.getServiceScript)(e,p);if(h?.associatedOnly)return[];if(m){let i=(0,r.toGeneratedRange)(e,m,g,s,c,t.isCodeActionsEnabled);i!==void 0&&(f=n(h.id,i[0],i[1],l,u,d))}else f=n(p,s,c,l,u,d);return f=f.map(n=>(n.changes=(0,r.transformFileTextChanges)(e,n.changes,!1,t.isCodeActionsEnabled),n)),f}}function A(e,n){return(o,s,c)=>{let l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(d?.associatedOnly)return{spans:[],endOfLineState:0};if(u){let i=e.maps.get(u.code,d),a=(0,t.findOverlapCodeRange)(s.start,s.start+s.length,i,t.isSemanticTokensEnabled);if(!a)return{spans:[],endOfLineState:0};let o=(0,r.getMappingOffset)(e,u),l=a.start+o,p=a.end+o,m=n(d.id,{start:l,length:p-l},c),h=[];for(let n=0;n<m.spans.length;n+=3)for(let[i,a,o]of(0,r.toSourceRanges)(f,e,u,m.spans[n],m.spans[n]+m.spans[n+1],!1,t.isSemanticTokensEnabled)){h.push(a,o-a,m.spans[n+2]);break}return m.spans=h,m}else return n(l,s,c)}}function j(e,t,n){return o=>{let s=o.replace(a,`/`),[c,l,u]=(0,i.getServiceScript)(e,s);return l?.associatedOnly?[]:n(l?.id??s).map(n=>(0,r.transformDiagnostic)(e,n,t.getProgram(),!1)).filter(e=>!!e).filter(t=>!c||e.scripts.get(t.file.fileName)===u)}}function M(e,t,n){return o=>{let s=o.replace(a,`/`),[c,l,u]=(0,i.getServiceScript)(e,s);return l?.associatedOnly?[]:n(l?.id??s).map(n=>(0,r.transformDiagnostic)(e,n,t.getProgram(),!1)).filter(e=>!!e).filter(t=>!c||!t.file||e.scripts.get(t.file.fileName)===u)}}function N(e,t,n){return o=>{let s=o.replace(a,`/`),[c,l,u]=(0,i.getServiceScript)(e,s);return l?.associatedOnly?[]:n(l?.id??s).map(n=>(0,r.transformDiagnostic)(e,n,t.getProgram(),!1)).filter(e=>!!e).filter(t=>!c||!t.file||e.scripts.get(t.file.fileName)===u)}}function P(e,i){return(o,s)=>{let c=o.replace(a,`/`),l=K(e,c,s,t.isDefinitionEnabled,(e,t)=>i(e,t),function*(e){for(let t of e.definitions??[])yield[t.fileName,t.textSpan.start]}),u=l.map(n=>(0,r.transformSpan)(e,c,n.textSpan,!0,t.isDefinitionEnabled)?.textSpan).filter(e=>!!e)[0];if(!u)return;let d=l.map(n=>n.definitions?.map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isDefinitionEnabled,n.fileName!==c)).filter(e=>!!e)??[]).flat();return{textSpan:u,definitions:(0,n.dedupeDocumentSpans)(d)}}}function F(e,n){return(i,o)=>K(e,i.replace(a,`/`),o,t.isReferencesEnabled,(e,t)=>n(e,t),function*(e){for(let t of e)for(let e of t.references)yield[e.fileName,e.textSpan.start]}).flat().map(n=>({definition:(0,r.transformDocumentSpan)(e,n.definition,!0,t.isDefinitionEnabled,!0),references:n.references.map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isReferencesEnabled)).filter(e=>!!e)}))}function I(e,i){return(o,s)=>{let c=o.replace(a,`/`),l=K(e,c,s,t.isDefinitionEnabled,(e,t)=>i(e,t),function*(e){for(let t of e)yield[t.fileName,t.textSpan.start]}).flat().map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isDefinitionEnabled,n.fileName!==c)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(l)}}function L(e,i){return(o,s)=>{let c=K(e,o.replace(a,`/`),s,t.isTypeDefinitionEnabled,(e,t)=>i(e,t),function*(e){for(let t of e)yield[t.fileName,t.textSpan.start]}).flat().map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isTypeDefinitionEnabled)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(c)}}function R(e,i){return(o,s)=>{let c=K(e,o.replace(a,`/`),s,t.isImplementationEnabled,(e,t)=>i(e,t),function*(e){for(let t of e)yield[t.fileName,t.textSpan.start]}).flat().map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isImplementationEnabled)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(c)}}function z(e,i){return(o,s,c,l,u)=>{let d=K(e,o.replace(a,`/`),s,t.isRenameEnabled,(e,t)=>i(e,t,c,l,u),function*(e){for(let t of e)yield[t.fileName,t.textSpan.start]}).flat().map(n=>(0,r.transformDocumentSpan)(e,n,!1,t.isRenameEnabled)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(d)}}function B(e,i){return(o,s)=>{let c=K(e,o.replace(a,`/`),s,t.isReferencesEnabled,(e,t)=>i(e,t),function*(e){for(let t of e)yield[t.fileName,t.textSpan.start]}).flat().map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isReferencesEnabled)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(c)}}function V(e,n){return(o,s,c,l)=>{let u=o.replace(a,`/`),[d,f,p]=(0,i.getServiceScript)(e,u);if(!f?.associatedOnly)if(d){let i,a=[];for(let[o,u]of(0,r.toGeneratedOffsets)(e,d,p,s,t.isCompletionEnabled)){let s=typeof u.data.completion==`object`&&u.data.completion.isAdditional;if(!s&&i?.entries.length)continue;let m=n(f.id,o,c,l);if(m){typeof u.data.completion==`object`&&u.data.completion.onlyImport&&(m.entries=m.entries.filter(e=>!!e.sourceDisplay));for(let n of m.entries)n.replacementSpan=n.replacementSpan&&(0,r.transformTextSpan)(p,e,d,n.replacementSpan,!1,t.isCompletionEnabled)?.[1];m.optionalReplacementSpan=m.optionalReplacementSpan&&(0,r.transformTextSpan)(p,e,d,m.optionalReplacementSpan,!1,t.isCompletionEnabled)?.[1],s?a.push(m):i=m}}let o=a;if(i&&o.unshift(i),o.length)return{...o[0],entries:o.map(e=>e.entries).flat()}}else return n(u,s,c,l)}}function H(e,n){return(o,s,c,l,u,d,f)=>{let p,m=o.replace(a,`/`),[h,g,_]=(0,i.getServiceScript)(e,m);if(!g?.associatedOnly){if(h){let i=(0,r.toGeneratedOffset)(e,h,_,s,t.isCompletionEnabled);i!==void 0&&(p=n(g.id,i,c,l,u,d,f))}else return n(m,s,c,l,u,d,f);if(p?.codeActions)for(let n of p.codeActions)n.changes=(0,r.transformFileTextChanges)(e,n.changes,!1,t.isCompletionEnabled);return p}}}function U(e,n){return(o,s,c)=>{let l=o.replace(a,`/`),[u,d,f]=(0,i.getServiceScript)(e,l);if(d?.associatedOnly)return[];if(u){let i=e.maps.get(u.code,f),a=(0,t.findOverlapCodeRange)(s.start,s.start+s.length,i,t.isSemanticTokensEnabled);if(!a)return[];let o=(0,r.getMappingOffset)(e,u),l=a.start+o,p=a.end+o,m=n(d.id,{start:l,length:p-l},c),h=[];for(let n of m){let i=(0,r.toSourceOffset)(f,e,u,n.position,t.isInlayHintsEnabled);i!==void 0&&h.push({...n,position:i[1]})}return h}else return n(l,s,c)}}function W(e,i){return o=>{let s=i(o.replace(a,`/`)).map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isReferencesEnabled)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(s)}}function G(e,i){return(...a)=>{let o=i(...a).map(n=>(0,r.transformDocumentSpan)(e,n,!0,t.isReferencesEnabled)).filter(e=>!!e);return(0,n.dedupeDocumentSpans)(o)}}function K(e,t,n,a,o,s){let c=[],l=new Set,[u,d,f]=(0,i.getServiceScript)(e,t);if(u)for(let[t]of(0,r.toGeneratedOffsets)(e,u,f,n,a))p(d.id,t);else p(t,n);return c;function p(t,n){if(l.has(t+`:`+n))return;l.add(t+`:`+n);let a=o(t,n);if(a){c.push(a);for(let t of s(a)){l.add(t[0]+`:`+t[1]);let[n]=(0,i.getServiceScript)(e,t[0]);if(!n)continue;let a=e.linkedCodeMaps.get(n.code);if(!a)continue;let o=(0,r.getMappingOffset)(e,n);for(let e of a.getLinkedOffsets(t[1]-o))p(t[0],e+o)}}}}function q(e){return e?e.map(e=>e.text).join(``):``}})),E=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.resolveFileLanguageId=t;function t(e){switch(e.split(`.`).pop()){case`js`:return`javascript`;case`cjs`:return`javascript`;case`mjs`:return`javascript`;case`ts`:return`typescript`;case`cts`:return`typescript`;case`mts`:return`typescript`;case`jsx`:return`javascriptreact`;case`tsx`:return`typescriptreact`;case`json`:return`json`}}})),D=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.createResolveModuleName=t;function t(e,t,n,r,i){let a=new Map,o={readFile:n.readFile.bind(n),directoryExists:n.directoryExists?.bind(n),realpath:n.realpath?.bind(n),getCurrentDirectory:n.getCurrentDirectory?.bind(n),getDirectories:n.getDirectories?.bind(n),useCaseSensitiveFileNames:typeof n.useCaseSensitiveFileNames==`function`?n.useCaseSensitiveFileNames.bind(n):n.useCaseSensitiveFileNames,fileExists(e){let t=n.fileExists(e);for(let{typescript:n}of r)if(n){if(!t)for(let{extension:t}of n.extraFileExtensions){if(!e.endsWith(`.d.${t}.ts`))continue;let n=e.slice(0,-`.d.${t}.ts`.length)+`.${t}`;if(s(n)){let t=i(n);if(t?.generated){let r=t.generated.languagePlugin.typescript?.getServiceScript(t.generated.root);if(r){let t=n+`.d.ts`;return(r.extension===`.js`||r.extension===`.jsx`)&&s(t)?a.set(e,{sourceFileName:t,extension:`.ts`}):a.set(e,{sourceFileName:n,extension:r.extension}),!0}}}}if(n.resolveHiddenExtensions&&e.endsWith(`.d.ts`))for(let{extension:t}of n.extraFileExtensions){let n=e.slice(0,-5)+`.${t}`;if(s(n)){let t=i(n);if(t?.generated){let r=t.generated.languagePlugin.typescript?.getServiceScript(t.generated.root);if(r)return a.set(e,{sourceFileName:n,extension:r.extension}),!0}}}}return t}};return(t,n,r,i,s,c)=>{let l=e.resolveModuleName(t,n,r,o,i,s,c);if(l.resolvedModule){let e=a.get(l.resolvedModule.resolvedFileName);e&&(l.resolvedModule.resolvedFileName=e.sourceFileName,l.resolvedModule.extension=e.extension)}return a.clear(),l};function s(e){return n.fileExists(e)?(t?.(e)??n.readFile(e)?.length??0)<4*1024*1024:!1}}})),O=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.decorateLanguageServiceHost=r,e.searchExternalFiles=i;let t=D(),n=C();function r(e,r,i){let a=r.plugins.map(e=>e.typescript?.extraFileExtensions.map(e=>`.`+e.extension)??[]).flat(),o=new Map,s=new Set,c=i.readDirectory?.bind(i),l=i.resolveModuleNameLiterals?.bind(i),u=i.resolveModuleNames?.bind(i),d=i.getScriptSnapshot.bind(i),f=i.getScriptKind?.bind(i);if(c&&(i.readDirectory=(e,t,n,r,i)=>{if(t)for(let e of a)t.includes(e)||(t=[...t,e]);return c(e,t,n,r,i)}),a.length){let o=(0,t.createResolveModuleName)(e,e.sys.getFileSize,i,r.plugins,e=>r.scripts.get(e)),s=i.getModuleResolutionCache?.();l&&(i.resolveModuleNameLiterals=(t,r,c,u,d,...f)=>{let p=(0,n.fixupImpliedNodeFormatForFile)(e,a,d,s?.getPackageJsonInfoCache(),i,u);try{return t.every(e=>!a.some(t=>e.text.endsWith(t)))?l(t,r,c,u,d,...f):t.map(t=>{let n=e.getModeForUsageLocation(d,t,u);return o(t.text,r,u,s,c,n)})}finally{p?.()}}),u&&(i.resolveModuleNames=(e,t,n,r,i,c)=>e.every(e=>!a.some(t=>e.endsWith(t)))?u(e,t,n,r,i,c):e.map(e=>o(e,t,i,s,r).resolvedModule))}i.getScriptSnapshot=e=>{let t=p(e,!0);return t?t.snapshot:d(e)},f&&(i.getScriptKind=e=>{let t=p(e,!1);return t?t.scriptKind:f(e)});function p(t,n){if(s.has(t))return;let a;try{a=i.getScriptVersion(t)}catch{s.add(t)}if(a===void 0)return;let c=o.get(t);if(!c||c[0]!==a){c=[a];let i=r.scripts.get(t,void 0,n);if(i?.generated){let t=i.generated.languagePlugin.typescript?.getServiceScript(i.generated.root);if(t)if(t.preventLeadingOffset)c[1]={extension:t.extension,scriptKind:t.scriptKind,snapshot:t.code.snapshot};else{let n=i.snapshot.getText(0,i.snapshot.getLength()).split(`
6
- `).map(e=>` `.repeat(e.length)).join(`
7
- `)+t.code.snapshot.getText(0,t.code.snapshot.getLength());c[1]={extension:t.extension,scriptKind:t.scriptKind,snapshot:e.ScriptSnapshot.fromString(n)}}i.generated.languagePlugin.typescript?.getExtraServiceScripts&&console.warn(`getExtraServiceScripts() is not available in TS plugin.`)}o.set(t,c)}return c[1]}}function i(e,t,n){if(t.projectKind!==e.server.ProjectKind.Configured)return[];let r=t.getProjectName(),i=e.readJsonConfigFile(r,t.readFile.bind(t)),a={useCaseSensitiveFileNames:t.useCaseSensitiveFileNames(),fileExists:t.fileExists.bind(t),readFile:t.readFile.bind(t),readDirectory:(...e)=>(e[1]=n,t.readDirectory(...e))};return e.parseJsonSourceFileConfigFileContent(i,a,t.getCurrentDirectory()).fileNames}})),k=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.makeGetExternalFiles=e.decoratedLanguageServiceHosts=e.decoratedLanguageServices=e.projectExternalFileExtensions=e.externalFiles=void 0,e.makeGetScriptInfoWithLargeFileFailsafe=i,e.createLanguageCommon=a,e.isHasAlreadyDecoratedLanguageService=s;let t=x(),n=E(),r=O();e.externalFiles=new WeakMap,e.projectExternalFileExtensions=new WeakMap,e.decoratedLanguageServices=new WeakSet,e.decoratedLanguageServiceHosts=new WeakSet;function i(e){return t=>{try{return e.project.getScriptInfo(t)}catch{}}}function a(e,a,o,s){let c=o.languageServiceHost.getScriptSnapshot.bind(o.languageServiceHost),l=i(o),u=(0,t.createLanguage)([...e.languagePlugins,{getLanguageId:n.resolveFileLanguageId}],new t.FileMap(a.sys.useCaseSensitiveFileNames),(e,t,n)=>{let r;n?r=c(e):(r=l(e)?.getSnapshot(),r||=(o.project.getScriptVersion(e),l(e)?.getSnapshot())),r?u.scripts.set(e,r):u.scripts.delete(e)},e=>{o.session.change({file:e,line:1,offset:1,endLine:1,endOffset:1,insertString:``})});s(u),(0,r.decorateLanguageServiceHost)(a,u,o.languageServiceHost),e.setup?.(u)}e.makeGetExternalFiles=t=>(n,i=0)=>{if(i>=1||!e.externalFiles.has(n)){let i=e.externalFiles.get(n),a=e.projectExternalFileExtensions.get(n),s=a?.length?(0,r.searchExternalFiles)(t,n,a):[];e.externalFiles.set(n,s),i&&!o(i,s)&&n.refreshDiagnostics()}return e.externalFiles.get(n)};function o(e,t){if(e.length!==t.length)return!1;let n=new Set(e);for(let e of t)if(!n.has(e))return!1;return!0}function s(t){return e.decoratedLanguageServices.has(t.languageService)||e.decoratedLanguageServiceHosts.has(t.languageServiceHost)?!0:(e.decoratedLanguageServices.add(t.languageService),e.decoratedLanguageServiceHosts.add(t.languageServiceHost),!1)}})),A=o((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.createLanguageServicePlugin=r;let t=T(),n=k();function r(e){return r=>{let{typescript:i}=r;return{create(r){if(!(0,n.isHasAlreadyDecoratedLanguageService)(r)){let a=e(i,r),o=a.languagePlugins.map(e=>e.typescript?.extraFileExtensions.map(e=>`.`+e.extension)??[]).flat();n.projectExternalFileExtensions.set(r.project,o);let{proxy:s,initialize:c}=(0,t.createProxyLanguageService)(r.languageService);r.languageService=s,(0,n.createLanguageCommon)(a,i,r,c)}return r.languageService},getExternalFiles:(0,n.makeGetExternalFiles)(i)}}}}))(),j=x();const M=process.env.RIPPLE_DEBUG===`true`;function N(e){return{log(...t){M&&console.log(e,...t)},logError(...t){M&&console.error(e,...t)},logWarning(...t){M&&console.warn(e,...t)}}}const P=(0,d.createRequire)(require(`url`).pathToFileURL(__filename).href),F=u.default.dirname((0,f.fileURLToPath)(require(`url`).pathToFileURL(__filename).href)),{log:I,logWarning:L,logError:R}=N(`[Ripple Language]`),z=[`.tsrx`],B=[[`@tsrx/ripple`,[`node_modules`,`@tsrx`,`ripple`],[`.tsrx`],[`@tsrx/ripple`,`ripple`,`@ripple-ts/vite-plugin`,`@ripple-ts/compat-react`]],[`@tsrx/react`,[`node_modules`,`@tsrx`,`react`],[`.tsrx`],[`@tsrx/react`,`@tsrx/vite-plugin-react`]]];function V(e){return z.some(t=>e.endsWith(t))}function H(){return I(`Creating Ripple language plugin...`),{getLanguageId(e){let t=typeof e==`string`?e:e.fsPath.replace(/\\/g,`/`);if(V(t))return I(`Identified Ripple file:`,t),`ripple`},createVirtualCode(e,t,n){if(t===`ripple`){let t=J(e),r=Z(t);if(!r){R(`Ripple compiler not found for file: ${t}`);return}I(`Creating virtual code for:`,t);try{return new U(t,n,r)}catch(e){throw R(`Failed to create virtual code for:`,t,`:`,e),e}}},updateVirtualCode(e,t,n){if(t instanceof U)return I(`Updating existing virtual code for:`,t.fileName),t.update(n),t},typescript:{extraFileExtensions:z.map(e=>({extension:e.slice(1),isMixedContent:!1,scriptKind:7})),getServiceScript(e){for(let t of(0,j.forEachEmbeddedCode)(e))if(t.languageId===`ripple`)return{code:t,extension:`.tsx`,scriptKind:4}}}}}var U=class{id=`root`;languageId=`ripple`;codegenStacks=[];tsrx;generatedCode=``;embeddedCodes=[];mappings=[];fatalErrors=[];usageErrors=[];snapshot;sourceSnapshot;originalCode=``;diagnostics=[];#e=null;#t=null;constructor(e,t,n){if(I(`Initializing TSRXVirtualCode for:`,e),this.fileName=e,this.tsrx=n,this.snapshot=t,this.sourceSnapshot=t,this.originalCode=t.getText(0,t.getLength()),!n||typeof n.compile_to_volar_mappings!=`function`)throw R(`Invalid ripple compiler - missing compile_to_volar_mappings method`),Error(`Invalid ripple compiler`);this.update(t)}update(e){I(`Updating virtual code for:`,this.fileName);let t=e.getText(0,e.getLength()),n=e.getChangeRange(this.sourceSnapshot);this.sourceSnapshot=e,this.#e=null,this.#t=null,this.fatalErrors=[],this.usageErrors=[];let r,i=!1,a=-1;if(I(`changeRange:`,JSON.stringify(n)),n){let e=n.span.start,r=e+n.span.length,o=e+n.newLength,s=this.originalCode.substring(e,r),c=t.substring(e,o);if(I(`Change details:`),I(` Position:`,e,`-`,r,`(length:`,n.span.length,`)`),I(` Old text:`,JSON.stringify(s)),I(` New text:`,JSON.stringify(c),`(length:`,n.newLength,`)`),c.endsWith(`.`)){let e=o>1?t[o-2]:``;I(` Char before dot:`,JSON.stringify(e)),/[$#_\u200C\u200D\p{ID_Continue}\)\]\}]/u.test(e)&&(i=!0,a=o-1,I(`ChangeRange detected dot typed at position`,a))}}try{if(i&&a>=0){let e=t.substring(0,a)+t.substring(a+1);if(I(`Compiling without typed dot at position`,a),r=this.tsrx.compile_to_volar_mappings(e,this.fileName,{loose:!0}),I(`Compilation without dot successful`),r&&r.code&&r.mappings.length>0){let e=G(r,a);e===null?L(`Failed to restore typed dot into transpiled output`):I(`Inserted typed dot at generated position`,e)}}else I(`Compiling Ripple code...`),r=this.tsrx.compile_to_volar_mappings(t,this.fileName,{loose:!0}),I(`Compilation successful, generated code length:`,r?.code?.length||0)}catch(e){let t=e;R(`Ripple compilation failed for`,this.fileName,`:`,t),t.type=`fatal`,this.fatalErrors.push(t)}if(r&&r.code){this.originalCode=t,this.generatedCode=r.code,this.mappings=r.mappings??[],this.usageErrors=r.errors;let e=r.cssMappings;if(e.length>0?(I(`Creating`,e.length,`CSS embedded codes`),this.embeddedCodes=e.map((e,t)=>{let n=e.data?.customData?.content;return I(`CSS region ${t}: \
8
- offset ${e.sourceOffsets[0]}-${e.sourceOffsets[0]+e.lengths[0]}, \
9
- length ${e.lengths[0]}`),{id:e.data?.customData?.embeddedId,languageId:`css`,snapshot:{getText:(e,t)=>n.substring(e,t),getLength:()=>e.lengths[0],getChangeRange:()=>void 0},mappings:[e],embeddedCodes:[]}})):this.embeddedCodes=[],M){I(`CSS embedded codes:`,(this.embeddedCodes||[]).length),I(`Using transpiled code, mapping count:`,this.mappings.length),I(`Original code length:`,t.length),I(`Generated code length:`,this.generatedCode.length),I(`Last 100 chars of original:`,JSON.stringify(t.slice(-100))),I(`Last 200 chars of generated:`,JSON.stringify(this.generatedCode.slice(-200))),I(`Last few mappings:`);let e=Math.max(0,this.mappings.length-5);for(let t=e;t<this.mappings.length;t++){let e=this.mappings[t];I(` Mapping ${t}: source[${e.sourceOffsets[0]}:${e.sourceOffsets[0]+e.lengths[0]}] -> gen[${e.generatedOffsets[0]}:${e.generatedOffsets[0]+e.lengths[0]}], len=${e.lengths[0]}, completion=${e.data?.completion}`)}}this.snapshot={getText:(e,t)=>this.generatedCode.substring(e,t),getLength:()=>this.generatedCode.length,getChangeRange:()=>void 0}}else I(`Compilation failed, only display where the compilation error occurred.`),this.originalCode=t,this.generatedCode=t,this.mappings=[{sourceOffsets:[0],generatedOffsets:[0],lengths:[t.length],generatedLengths:[t.length],data:{verification:!0,customData:{}}}],this.embeddedCodes=W(t),this.snapshot={getText:(e,t)=>this.generatedCode.substring(e,t),getLength:()=>this.generatedCode.length,getChangeRange:()=>void 0}}#n(){if(!(this.#e||this.#t)){this.#e=new Map,this.#t=new Map;for(var e,t,n,r,i,a,o,s,c,l=0;l<this.mappings.length;l++)e=this.mappings[l],t=e.generatedOffsets[0],n=e.generatedLengths[0],r=t+n,i=`${t}-${r}`,this.#e.set(i,e),a=e.sourceOffsets[0],o=e.lengths[0],s=a+o,c=`${a}-${s}`,this.#t.set(c,e)}}findMappingByGeneratedRange(e,t){return this.#n(),this.#e.get(`${e}-${t}`)??null}findMappingBySourceRange(e,t){return this.#n(),this.#t.get(`${e}-${t}`)??null}};function W(e){let t=[],n=/<style\b[^>]*>([\s\S]*?)<\/style>/gi,r,i=0;for(;(r=n.exec(e))!==null;){let e=r[0],n=r[1],a=r.index+(e.indexOf(`>`)+1),o=n.length;I(`Extracted CSS region ${i}: offset ${a}, length ${o}`);let s={sourceOffsets:[a],generatedOffsets:[0],lengths:[o],generatedLengths:[o],data:{verification:!0,completion:!0,semantic:!0,navigation:!0,structure:!0,format:!1,customData:{content:n,embeddedId:`style_${i}`}}};t.push({id:`style_${i}`,languageId:`css`,snapshot:{getText:(e,t)=>n.substring(e,t),getLength:()=>o,getChangeRange:()=>void 0},mappings:[s],embeddedCodes:[]}),i++}return t.length>0&&I(`Extracted ${t.length} CSS embedded codes from style tags`),t}function G(e,t){let n=null;for(let r of e.mappings)if(r.sourceOffsets[0]+r.lengths[0]===t){n=r;break}if(!n)return null;let r=n.generatedLengths[0],i=n.generatedOffsets[0]+r;e.code=e.code.substring(0,i)+`.`+e.code.substring(i);let a={sourceOffsets:[t],generatedOffsets:[i],lengths:[1],generatedLengths:[1],data:{...n.data}},o=e.mappings.indexOf(n);e.mappings.splice(o+1,0,a);for(let r of e.mappings)r!==n&&r!==a&&r.generatedOffsets[0]>=i&&(r.generatedOffsets[0]+=1),r!==n&&r!==a&&r.sourceOffsets[0]>=t&&(r.sourceOffsets[0]+=1);return i}const K=new Map,q=new Map;function J(e){return typeof e==`string`?e:e.fsPath.replace(/\\/g,`/`)}function Y(e,t=l.default.existsSync){let n=e,r=[];for(;n;){if(q.has(n)){let e=q.get(n)??null;for(let t of r)q.set(t,e);return e}r.push(n);let e=u.default.join(n,`package.json`);if(t(e))try{let t=JSON.parse(l.default.readFileSync(e,`utf8`)),n=new Set([...Object.keys(t.dependencies??{}),...Object.keys(t.devDependencies??{}),...Object.keys(t.peerDependencies??{}),...Object.keys(t.optionalDependencies??{})]),i={name:typeof t.name==`string`?t.name:null,dependencies:n};for(let e of r)q.set(e,i);return i}catch{for(let e of r)q.set(e,null);return null}let i=u.default.dirname(n);if(i===n)break;n=i}for(let e of r)q.set(e,null);return null}function X(e,t,n){if(!e)return!1;if(e.name===t||n.includes(e.name??``)||e.dependencies.has(t))return!0;for(let t of n)if(e.dependencies.has(t))return!0;return!1}function Z(e){let t=$(e);if(t)return P(t)}function Q(e,t=l.default.existsSync,n=K){let r=e.split(`/`),i=u.default.extname(e);for(let e=r.length-2;e>=0;e--){let a=r.slice(0,e+1).join(`/`),o=a+`\0`+i;if(!n.has(o)){let e=[];for(let[n,r,o,s]of B){if(!o.includes(i))continue;let c=[a,...r,`src`,`index.js`].join(`/`);t(c)&&e.push([n,c,s])}let r=null;if(e.length>0){let n=Y(a,t);r=e.find(([e,,t])=>X(n,e,t))?.[1]??e[0][1],I(`Found tsrx compiler at:`,r,`for extension:`,i)}n.set(o,r)}let s=n.get(o);if(s)return s}}function $(e){let t=u.default.extname(e),n=Y(u.default.dirname(e)),r=Q(e);if(r)return r;let i=`No supported tsrx compiler found in workspace for ${e}.`,a=F;for(;a;){let e=[];for(let[n,r,i,o]of B){if(!i.includes(t))continue;let s=u.default.join(a,...r),c=u.default.join(s,`src`,`index.js`);l.default.existsSync(c)&&e.push([n,c,o])}if(e.length>0){let t=e.find(([e,,t])=>X(n,e,t))?.[1]??e[0][1];return L(`${i} Using packaged version at ${t}`),t}let r=u.default.dirname(a);if(r===a)break;a=r}}var ee=(0,A.createLanguageServicePlugin)(()=>({languagePlugins:[H()]}));module.exports=ee;
10
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["exports","exports","require","#mappingGenToSource","#mappingSourceToGen","#buildMappingCache"],"sources":["../../../node_modules/.pnpm/@volar+source-map@2.4.28/node_modules/@volar/source-map/lib/binarySearch.js","../../../node_modules/.pnpm/@volar+source-map@2.4.28/node_modules/@volar/source-map/lib/translateOffset.js","../../../node_modules/.pnpm/@volar+source-map@2.4.28/node_modules/@volar/source-map/lib/sourceMap.js","../../../node_modules/.pnpm/@volar+source-map@2.4.28/node_modules/@volar/source-map/index.js","../../../node_modules/.pnpm/@volar+language-core@2.4.28/node_modules/@volar/language-core/lib/editor.js","../../../node_modules/.pnpm/@volar+language-core@2.4.28/node_modules/@volar/language-core/lib/linkedCodeMap.js","../../../node_modules/.pnpm/@volar+language-core@2.4.28/node_modules/@volar/language-core/lib/types.js","../../../node_modules/.pnpm/@volar+language-core@2.4.28/node_modules/@volar/language-core/lib/utils.js","../../../node_modules/.pnpm/@volar+language-core@2.4.28/node_modules/@volar/language-core/index.js","../../../node_modules/.pnpm/@volar+typescript@2.4.28/node_modules/@volar/typescript/lib/node/dedupe.js","../../../node_modules/.pnpm/@volar+typescript@2.4.28/node_modules/@volar/typescript/lib/node/utils.js","../../../node_modules/.pnpm/@volar+typescript@2.4.28/node_modules/@volar/typescript/lib/node/transform.js","../../../node_modules/.pnpm/@volar+typescript@2.4.28/node_modules/@volar/typescript/lib/node/proxyLanguageService.js","../../../node_modules/.pnpm/@volar+typescript@2.4.28/node_modules/@volar/typescript/lib/common.js","../../../node_modules/.pnpm/@volar+typescript@2.4.28/node_modules/@volar/typescript/lib/resolveModuleName.js","../../../node_modules/.pnpm/@volar+typescript@2.4.28/node_modules/@volar/typescript/lib/node/decorateLanguageServiceHost.js","../../../node_modules/.pnpm/@volar+typescript@2.4.28/node_modules/@volar/typescript/lib/quickstart/languageServicePluginCommon.js","../../../node_modules/.pnpm/@volar+typescript@2.4.28/node_modules/@volar/typescript/lib/quickstart/createLanguageServicePlugin.js","../src/utils.js","../src/language.js","../src/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.binarySearch = binarySearch;\nfunction binarySearch(values, searchValue) {\n let low = 0;\n let high = values.length - 1;\n let match;\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const midValue = values[mid];\n if (midValue < searchValue) {\n low = mid + 1;\n }\n else if (midValue > searchValue) {\n high = mid - 1;\n }\n else {\n low = mid;\n high = mid;\n match = mid;\n break;\n }\n }\n const finalLow = Math.max(Math.min(low, high, values.length - 1), 0);\n const finalHigh = Math.min(Math.max(low, high, 0), values.length - 1);\n return { low: finalLow, high: finalHigh, match };\n}\n//# sourceMappingURL=binarySearch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.translateOffset = translateOffset;\nlet warned = false;\nfunction translateOffset(start, fromOffsets, toOffsets, fromLengths, toLengths = fromLengths, preferEnd = false) {\n const isSorted = fromOffsets.every((value, index) => index === 0 || fromOffsets[index - 1] <= value);\n if (!isSorted) {\n for (let i = 0; i < fromOffsets.length; i++) {\n const fromOffset = fromOffsets[i];\n const fromLength = fromLengths[i];\n if (start >= fromOffset && start <= fromOffset + fromLength) {\n const toLength = toLengths[i];\n const toOffset = toOffsets[i];\n let rangeOffset;\n const relativePos = start - fromOffset;\n if (preferEnd && toLength > fromLength && relativePos === fromLength) {\n rangeOffset = toLength;\n }\n else {\n rangeOffset = Math.min(relativePos, toLength);\n }\n return toOffset + rangeOffset;\n }\n }\n if (!warned) {\n warned = true;\n console.warn('fromOffsets should be sorted in ascending order');\n }\n }\n let low = 0;\n let high = fromOffsets.length - 1;\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const fromOffset = fromOffsets[mid];\n const fromLength = fromLengths[mid];\n if (start >= fromOffset && start <= fromOffset + fromLength) {\n const toLength = toLengths[mid];\n const toOffset = toOffsets[mid];\n let rangeOffset;\n const relativePos = start - fromOffset;\n if (preferEnd && toLength > fromLength && relativePos === fromLength) {\n rangeOffset = toLength;\n }\n else {\n rangeOffset = Math.min(relativePos, toLength);\n }\n return toOffset + rangeOffset;\n }\n else if (start < fromOffset) {\n high = mid - 1;\n }\n else {\n low = mid + 1;\n }\n }\n}\n//# sourceMappingURL=translateOffset.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SourceMap = void 0;\nconst binarySearch_1 = require(\"./binarySearch\");\nconst translateOffset_1 = require(\"./translateOffset\");\nclass SourceMap {\n constructor(mappings) {\n this.mappings = mappings;\n }\n toSourceRange(generatedStart, generatedEnd, fallbackToAnyMatch, filter) {\n return this.findMatchingStartEnd(generatedStart, generatedEnd, fallbackToAnyMatch, 'generatedOffsets', filter);\n }\n toGeneratedRange(sourceStart, sourceEnd, fallbackToAnyMatch, filter) {\n return this.findMatchingStartEnd(sourceStart, sourceEnd, fallbackToAnyMatch, 'sourceOffsets', filter);\n }\n toSourceLocation(generatedOffset, filter) {\n return this.findMatchingOffsets(generatedOffset, 'generatedOffsets', filter);\n }\n toGeneratedLocation(sourceOffset, filter) {\n return this.findMatchingOffsets(sourceOffset, 'sourceOffsets', filter);\n }\n *findMatchingOffsets(offset, fromRange, filter, preferEnd = false) {\n const memo = this.getMemoBasedOnRange(fromRange);\n if (memo.offsets.length === 0) {\n return;\n }\n const { low: start, high: end } = (0, binarySearch_1.binarySearch)(memo.offsets, offset);\n const skip = new Set();\n const toRange = fromRange === 'sourceOffsets' ? 'generatedOffsets' : 'sourceOffsets';\n for (let i = start; i <= end; i++) {\n for (const mapping of memo.mappings[i]) {\n if (skip.has(mapping)) {\n continue;\n }\n skip.add(mapping);\n if (filter && !filter(mapping.data)) {\n continue;\n }\n const mapped = (0, translateOffset_1.translateOffset)(offset, mapping[fromRange], mapping[toRange], getLengths(mapping, fromRange), getLengths(mapping, toRange), preferEnd);\n if (mapped !== undefined) {\n yield [mapped, mapping];\n }\n }\n }\n }\n *findMatchingStartEnd(start, end, fallbackToAnyMatch, fromRange, filter) {\n const toRange = fromRange === 'sourceOffsets' ? 'generatedOffsets' : 'sourceOffsets';\n const preferEnd = toRange === 'sourceOffsets';\n const mappedStarts = [];\n let hadMatch = false;\n for (const [mappedStart, mapping] of this.findMatchingOffsets(start, fromRange)) {\n if (filter && !filter(mapping.data)) {\n continue;\n }\n mappedStarts.push([mappedStart, mapping]);\n const mappedEnd = (0, translateOffset_1.translateOffset)(end, mapping[fromRange], mapping[toRange], getLengths(mapping, fromRange), getLengths(mapping, toRange), preferEnd);\n if (mappedEnd !== undefined) {\n hadMatch = true;\n yield [mappedStart, mappedEnd, mapping, mapping];\n }\n }\n if (!hadMatch && fallbackToAnyMatch) {\n for (const [mappedStart, mappingStart] of mappedStarts) {\n for (const [mappedEnd, mappingEnd] of this.findMatchingOffsets(end, fromRange, undefined, preferEnd)) {\n if (filter && !filter(mappingEnd.data) || mappedEnd < mappedStart) {\n continue;\n }\n yield [mappedStart, mappedEnd, mappingStart, mappingEnd];\n break;\n }\n }\n }\n }\n getMemoBasedOnRange(fromRange) {\n return fromRange === 'sourceOffsets'\n ? this.sourceCodeOffsetsMemo ??= this.createMemo('sourceOffsets')\n : this.generatedCodeOffsetsMemo ??= this.createMemo('generatedOffsets');\n }\n createMemo(key) {\n const offsetsSet = new Set();\n for (const mapping of this.mappings) {\n for (let i = 0; i < mapping[key].length; i++) {\n offsetsSet.add(mapping[key][i]);\n offsetsSet.add(mapping[key][i] + getLengths(mapping, key)[i]);\n }\n }\n const offsets = [...offsetsSet].sort((a, b) => a - b);\n const mappings = offsets.map(() => new Set());\n for (const mapping of this.mappings) {\n for (let i = 0; i < mapping[key].length; i++) {\n const startIndex = (0, binarySearch_1.binarySearch)(offsets, mapping[key][i]).match;\n const endIndex = (0, binarySearch_1.binarySearch)(offsets, mapping[key][i] + getLengths(mapping, key)[i]).match;\n for (let i = startIndex; i <= endIndex; i++) {\n mappings[i].add(mapping);\n }\n }\n }\n return { offsets, mappings };\n }\n}\nexports.SourceMap = SourceMap;\nfunction getLengths(mapping, key) {\n return key === 'sourceOffsets' ? mapping.lengths : mapping.generatedLengths ?? mapping.lengths;\n}\n//# sourceMappingURL=sourceMap.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/sourceMap\"), exports);\n__exportStar(require(\"./lib/translateOffset\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isHoverEnabled = isHoverEnabled;\nexports.isInlayHintsEnabled = isInlayHintsEnabled;\nexports.isCodeLensEnabled = isCodeLensEnabled;\nexports.isMonikerEnabled = isMonikerEnabled;\nexports.isInlineValueEnabled = isInlineValueEnabled;\nexports.isSemanticTokensEnabled = isSemanticTokensEnabled;\nexports.isCallHierarchyEnabled = isCallHierarchyEnabled;\nexports.isTypeHierarchyEnabled = isTypeHierarchyEnabled;\nexports.isRenameEnabled = isRenameEnabled;\nexports.isDefinitionEnabled = isDefinitionEnabled;\nexports.isTypeDefinitionEnabled = isTypeDefinitionEnabled;\nexports.isReferencesEnabled = isReferencesEnabled;\nexports.isImplementationEnabled = isImplementationEnabled;\nexports.isHighlightEnabled = isHighlightEnabled;\nexports.isSymbolsEnabled = isSymbolsEnabled;\nexports.isFoldingRangesEnabled = isFoldingRangesEnabled;\nexports.isSelectionRangesEnabled = isSelectionRangesEnabled;\nexports.isLinkedEditingEnabled = isLinkedEditingEnabled;\nexports.isColorEnabled = isColorEnabled;\nexports.isDocumentLinkEnabled = isDocumentLinkEnabled;\nexports.isDiagnosticsEnabled = isDiagnosticsEnabled;\nexports.isCodeActionsEnabled = isCodeActionsEnabled;\nexports.isFormattingEnabled = isFormattingEnabled;\nexports.isCompletionEnabled = isCompletionEnabled;\nexports.isAutoInsertEnabled = isAutoInsertEnabled;\nexports.isSignatureHelpEnabled = isSignatureHelpEnabled;\nexports.shouldReportDiagnostics = shouldReportDiagnostics;\nexports.resolveRenameNewName = resolveRenameNewName;\nexports.resolveRenameEditText = resolveRenameEditText;\nexports.findOverlapCodeRange = findOverlapCodeRange;\nfunction isHoverEnabled(info) {\n return !!info.semantic;\n}\nfunction isInlayHintsEnabled(info) {\n return !!info.semantic;\n}\nfunction isCodeLensEnabled(info) {\n return !!info.semantic;\n}\nfunction isMonikerEnabled(info) {\n return !!info.semantic;\n}\nfunction isInlineValueEnabled(info) {\n return !!info.semantic;\n}\nfunction isSemanticTokensEnabled(info) {\n return typeof info.semantic === 'object'\n ? info.semantic.shouldHighlight?.() ?? true\n : !!info.semantic;\n}\nfunction isCallHierarchyEnabled(info) {\n return !!info.navigation;\n}\nfunction isTypeHierarchyEnabled(info) {\n return !!info.navigation;\n}\nfunction isRenameEnabled(info) {\n return typeof info.navigation === 'object'\n ? info.navigation.shouldRename?.() ?? true\n : !!info.navigation;\n}\nfunction isDefinitionEnabled(info) {\n return !!info.navigation;\n}\nfunction isTypeDefinitionEnabled(info) {\n return !!info.navigation;\n}\nfunction isReferencesEnabled(info) {\n return !!info.navigation;\n}\nfunction isImplementationEnabled(info) {\n return !!info.navigation;\n}\nfunction isHighlightEnabled(info) {\n return typeof info.navigation === 'object'\n ? info.navigation.shouldHighlight?.() ?? true\n : !!info.navigation;\n}\nfunction isSymbolsEnabled(info) {\n return !!info.structure;\n}\nfunction isFoldingRangesEnabled(info) {\n return !!info.structure;\n}\nfunction isSelectionRangesEnabled(info) {\n return !!info.structure;\n}\nfunction isLinkedEditingEnabled(info) {\n return !!info.structure;\n}\nfunction isColorEnabled(info) {\n return !!info.structure;\n}\nfunction isDocumentLinkEnabled(info) {\n return !!info.structure;\n}\nfunction isDiagnosticsEnabled(info) {\n return !!info.verification;\n}\nfunction isCodeActionsEnabled(info) {\n return !!info.verification;\n}\nfunction isFormattingEnabled(info) {\n return !!info.format;\n}\nfunction isCompletionEnabled(info) {\n return !!info.completion;\n}\nfunction isAutoInsertEnabled(info) {\n return !!info.completion;\n}\nfunction isSignatureHelpEnabled(info) {\n return !!info.completion;\n}\n// should...\nfunction shouldReportDiagnostics(info, source, code) {\n return typeof info.verification === 'object'\n ? info.verification.shouldReport?.(source, code) ?? true\n : !!info.verification;\n}\n// resolve...\nfunction resolveRenameNewName(newName, info) {\n return typeof info.navigation === 'object'\n ? info.navigation.resolveRenameNewName?.(newName) ?? newName\n : newName;\n}\nfunction resolveRenameEditText(text, info) {\n return typeof info.navigation === 'object'\n ? info.navigation.resolveRenameEditText?.(text) ?? text\n : text;\n}\nfunction findOverlapCodeRange(start, end, map, filter) {\n let mappedStart;\n let mappedEnd;\n for (const [mapped, mapping] of map.toGeneratedLocation(start)) {\n if (filter(mapping.data)) {\n mappedStart = mapped;\n break;\n }\n }\n for (const [mapped, mapping] of map.toGeneratedLocation(end)) {\n if (filter(mapping.data)) {\n mappedEnd = mapped;\n break;\n }\n }\n if (mappedStart === undefined || mappedEnd === undefined) {\n for (const mapping of map.mappings) {\n if (filter(mapping.data)) {\n const mappingStart = mapping.sourceOffsets[0];\n const mappingEnd = mapping.sourceOffsets[mapping.sourceOffsets.length - 1]\n + mapping.lengths[mapping.lengths.length - 1];\n const overlap = getOverlapRange(start, end, mappingStart, mappingEnd);\n if (overlap) {\n const curMappedStart = (overlap.start - mappingStart) + mapping.generatedOffsets[0];\n const lastGeneratedLength = (mapping.generatedLengths ?? mapping.lengths)[mapping.generatedOffsets.length - 1];\n const curMappedEndOffset = Math.min(overlap.end - mapping.sourceOffsets[mapping.sourceOffsets.length - 1], lastGeneratedLength);\n const curMappedEnd = mapping.generatedOffsets[mapping.generatedOffsets.length - 1] + curMappedEndOffset;\n mappedStart = mappedStart === undefined ? curMappedStart : Math.min(mappedStart, curMappedStart);\n mappedEnd = mappedEnd === undefined ? curMappedEnd : Math.max(mappedEnd, curMappedEnd);\n }\n }\n }\n }\n if (mappedStart !== undefined && mappedEnd !== undefined) {\n return {\n start: mappedStart,\n end: mappedEnd,\n };\n }\n}\nfunction getOverlapRange(range1Start, range1End, range2Start, range2End) {\n const start = Math.max(range1Start, range2Start);\n const end = Math.min(range1End, range2End);\n if (start > end) {\n return undefined;\n }\n return {\n start,\n end,\n };\n}\n//# sourceMappingURL=editor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkedCodeMap = void 0;\nconst source_map_1 = require(\"@volar/source-map\");\nclass LinkedCodeMap extends source_map_1.SourceMap {\n *getLinkedOffsets(start) {\n for (const mapped of this.toGeneratedLocation(start)) {\n yield mapped[0];\n }\n for (const mapped of this.toSourceLocation(start)) {\n yield mapped[0];\n }\n }\n}\nexports.LinkedCodeMap = LinkedCodeMap;\n//# sourceMappingURL=linkedCodeMap.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileMap = void 0;\nclass FileMap extends Map {\n constructor(caseSensitive) {\n super();\n this.caseSensitive = caseSensitive;\n this.originalFileNames = new Map();\n }\n keys() {\n return this.originalFileNames.values();\n }\n get(key) {\n return super.get(this.normalizeId(key));\n }\n has(key) {\n return super.has(this.normalizeId(key));\n }\n set(key, value) {\n this.originalFileNames.set(this.normalizeId(key), key);\n return super.set(this.normalizeId(key), value);\n }\n delete(key) {\n this.originalFileNames.delete(this.normalizeId(key));\n return super.delete(this.normalizeId(key));\n }\n clear() {\n this.originalFileNames.clear();\n return super.clear();\n }\n normalizeId(id) {\n return this.caseSensitive ? id : id.toLowerCase();\n }\n}\nexports.FileMap = FileMap;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultMapperFactory = exports.SourceMap = void 0;\nexports.createLanguage = createLanguage;\nexports.forEachEmbeddedCode = forEachEmbeddedCode;\nvar source_map_1 = require(\"@volar/source-map\");\nObject.defineProperty(exports, \"SourceMap\", { enumerable: true, get: function () { return source_map_1.SourceMap; } });\n__exportStar(require(\"./lib/editor\"), exports);\n__exportStar(require(\"./lib/linkedCodeMap\"), exports);\n__exportStar(require(\"./lib/types\"), exports);\n__exportStar(require(\"./lib/utils\"), exports);\nconst source_map_2 = require(\"@volar/source-map\");\nconst linkedCodeMap_1 = require(\"./lib/linkedCodeMap\");\nconst defaultMapperFactory = mappings => new source_map_2.SourceMap(mappings);\nexports.defaultMapperFactory = defaultMapperFactory;\nfunction createLanguage(plugins, scriptRegistry, sync, onAssociationDirty) {\n const virtualCodeToSourceScriptMap = new WeakMap();\n const virtualCodeToSourceMap = new WeakMap();\n const virtualCodeToLinkedCodeMap = new WeakMap();\n const language = {\n mapperFactory: exports.defaultMapperFactory,\n plugins,\n scripts: {\n fromVirtualCode(virtualCode) {\n return virtualCodeToSourceScriptMap.get(virtualCode);\n },\n get(id, includeFsFiles = true, shouldRegister = false) {\n sync(id, includeFsFiles, shouldRegister);\n const result = scriptRegistry.get(id);\n // The sync function provider may not always call the set function due to caching, so it is necessary to explicitly check isAssociationDirty.\n if (result?.isAssociationDirty) {\n this.set(id, result.snapshot, result.languageId);\n }\n return scriptRegistry.get(id);\n },\n set(id, snapshot, languageId, _plugins = plugins) {\n if (!languageId) {\n for (const plugin of plugins) {\n languageId = plugin.getLanguageId?.(id);\n if (languageId) {\n break;\n }\n }\n }\n if (!languageId) {\n console.warn(`languageId not found for ${String(id)}`);\n return;\n }\n let associatedOnly = false;\n for (const plugin of plugins) {\n if (plugin.isAssociatedFileOnly?.(id, languageId)) {\n associatedOnly = true;\n break;\n }\n }\n if (scriptRegistry.has(id)) {\n const sourceScript = scriptRegistry.get(id);\n if (sourceScript.languageId !== languageId || sourceScript.associatedOnly !== associatedOnly) {\n this.delete(id);\n triggerTargetsDirty(sourceScript);\n return this.set(id, snapshot, languageId);\n }\n else if (associatedOnly) {\n if (sourceScript.snapshot !== snapshot) {\n sourceScript.snapshot = snapshot;\n triggerTargetsDirty(sourceScript);\n }\n }\n else if (sourceScript.isAssociationDirty || sourceScript.snapshot !== snapshot) {\n if (sourceScript.snapshot !== snapshot) {\n sourceScript.snapshot = snapshot;\n triggerTargetsDirty(sourceScript);\n }\n const codegenCtx = prepareCreateVirtualCode(sourceScript);\n if (sourceScript.generated) {\n const { updateVirtualCode, createVirtualCode } = sourceScript.generated.languagePlugin;\n const newVirtualCode = updateVirtualCode\n ? updateVirtualCode(id, sourceScript.generated.root, snapshot, codegenCtx)\n : createVirtualCode?.(id, languageId, snapshot, codegenCtx);\n if (newVirtualCode) {\n sourceScript.generated.root = newVirtualCode;\n sourceScript.generated.embeddedCodes.clear();\n for (const code of forEachEmbeddedCode(sourceScript.generated.root)) {\n virtualCodeToSourceScriptMap.set(code, sourceScript);\n sourceScript.generated.embeddedCodes.set(code.id, code);\n }\n return sourceScript;\n }\n else {\n this.delete(id);\n return;\n }\n }\n }\n else {\n // not changed\n return sourceScript;\n }\n }\n else {\n // created\n const sourceScript = {\n id: id,\n languageId,\n snapshot,\n associatedIds: new Set(),\n targetIds: new Set(),\n associatedOnly,\n };\n scriptRegistry.set(id, sourceScript);\n if (associatedOnly) {\n return sourceScript;\n }\n for (const languagePlugin of _plugins) {\n const virtualCode = languagePlugin.createVirtualCode?.(id, languageId, snapshot, prepareCreateVirtualCode(sourceScript));\n if (virtualCode) {\n sourceScript.generated = {\n root: virtualCode,\n languagePlugin,\n embeddedCodes: new Map(),\n };\n for (const code of forEachEmbeddedCode(virtualCode)) {\n virtualCodeToSourceScriptMap.set(code, sourceScript);\n sourceScript.generated.embeddedCodes.set(code.id, code);\n }\n break;\n }\n }\n return sourceScript;\n }\n },\n delete(id) {\n const sourceScript = scriptRegistry.get(id);\n if (sourceScript) {\n sourceScript.generated?.languagePlugin.disposeVirtualCode?.(id, sourceScript.generated.root);\n scriptRegistry.delete(id);\n triggerTargetsDirty(sourceScript);\n }\n },\n },\n maps: {\n get(virtualCode, sourceScript) {\n let mapCache = virtualCodeToSourceMap.get(virtualCode.snapshot);\n if (!mapCache) {\n virtualCodeToSourceMap.set(virtualCode.snapshot, mapCache = new WeakMap());\n }\n if (!mapCache.has(sourceScript.snapshot)) {\n const mappings = virtualCode.associatedScriptMappings?.get(sourceScript.id) ?? virtualCode.mappings;\n mapCache.set(sourceScript.snapshot, language.mapperFactory(mappings));\n }\n return mapCache.get(sourceScript.snapshot);\n },\n *forEach(virtualCode) {\n const sourceScript = virtualCodeToSourceScriptMap.get(virtualCode);\n yield [\n sourceScript,\n this.get(virtualCode, sourceScript),\n ];\n if (virtualCode.associatedScriptMappings) {\n for (const [relatedScriptId] of virtualCode.associatedScriptMappings) {\n const relatedSourceScript = scriptRegistry.get(relatedScriptId);\n if (relatedSourceScript) {\n yield [\n relatedSourceScript,\n this.get(virtualCode, relatedSourceScript),\n ];\n }\n }\n }\n },\n },\n linkedCodeMaps: {\n get(virtualCode) {\n const sourceScript = virtualCodeToSourceScriptMap.get(virtualCode);\n let mapCache = virtualCodeToLinkedCodeMap.get(virtualCode.snapshot);\n if (mapCache?.[0] !== sourceScript.snapshot) {\n virtualCodeToLinkedCodeMap.set(virtualCode.snapshot, mapCache = [\n sourceScript.snapshot,\n virtualCode.linkedCodeMappings\n ? new linkedCodeMap_1.LinkedCodeMap(virtualCode.linkedCodeMappings)\n : undefined,\n ]);\n }\n return mapCache[1];\n },\n },\n };\n return language;\n function triggerTargetsDirty(sourceScript) {\n sourceScript.targetIds.forEach(id => {\n const sourceScript = scriptRegistry.get(id);\n if (sourceScript) {\n sourceScript.isAssociationDirty = true;\n onAssociationDirty?.(sourceScript.id);\n }\n });\n }\n function prepareCreateVirtualCode(sourceScript) {\n for (const id of sourceScript.associatedIds) {\n scriptRegistry.get(id)?.targetIds.delete(sourceScript.id);\n }\n sourceScript.associatedIds.clear();\n sourceScript.isAssociationDirty = false;\n return {\n getAssociatedScript(id) {\n sync(id, true, true);\n const relatedSourceScript = scriptRegistry.get(id);\n if (relatedSourceScript) {\n relatedSourceScript.targetIds.add(sourceScript.id);\n sourceScript.associatedIds.add(relatedSourceScript.id);\n }\n return relatedSourceScript;\n },\n };\n }\n}\nfunction* forEachEmbeddedCode(virtualCode) {\n yield virtualCode;\n if (virtualCode.embeddedCodes) {\n for (const embeddedCode of virtualCode.embeddedCodes) {\n yield* forEachEmbeddedCode(embeddedCode);\n }\n }\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dedupeDocumentSpans = dedupeDocumentSpans;\nfunction dedupeDocumentSpans(items) {\n return dedupe(items, item => [\n item.fileName,\n item.textSpan.start,\n item.textSpan.length,\n ].join(':'));\n}\nfunction dedupe(items, getKey) {\n const map = new Map();\n for (const item of items.reverse()) {\n map.set(getKey(item), item);\n }\n return [...map.values()];\n}\n//# sourceMappingURL=dedupe.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getServiceScript = getServiceScript;\nexports.fixupImpliedNodeFormatForFile = fixupImpliedNodeFormatForFile;\nfunction getServiceScript(language, fileName) {\n const sourceScript = language.scripts.get(fileName);\n if (sourceScript?.targetIds.size) {\n for (const targetId of sourceScript.targetIds) {\n const targetScript = language.scripts.get(targetId);\n if (targetScript?.generated) {\n const serviceScript = targetScript.generated.languagePlugin.typescript?.getServiceScript(targetScript.generated.root);\n if (serviceScript) {\n return [serviceScript, targetScript, sourceScript];\n }\n }\n }\n }\n if (sourceScript?.associatedOnly) {\n return [undefined, sourceScript, sourceScript];\n }\n if (sourceScript?.generated) {\n const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n return [serviceScript, sourceScript, sourceScript];\n }\n }\n return [undefined, undefined, undefined];\n}\nfunction fixupImpliedNodeFormatForFile(ts, pluginExtensions, sourceFile, packageJsonInfoCache, host, options) {\n if (sourceFile.impliedNodeFormat !== undefined || !pluginExtensions.some(ext => sourceFile.fileName.endsWith(ext))) {\n return;\n }\n // https://github.com/microsoft/TypeScript/blob/669c25c091ad4d32298d0f33b0e4e681d46de3ea/src/compiler/program.ts#L1354\n const validExts = ['.d.ts', '.ts', '.tsx', '.js', '.jsx'];\n if (validExts.some(ext => sourceFile.fileName.endsWith(ext))) {\n return;\n }\n const asTs = sourceFile.fileName + '.ts';\n // Use getImpliedNodeFormatForFileWorker instead of getImpliedNodeFormatForFile for runTsc() compatibility\n const impliedNodeFormat = ts.getImpliedNodeFormatForFileWorker?.(asTs, packageJsonInfoCache, host, options)?.impliedNodeFormat;\n if (impliedNodeFormat === undefined) {\n return;\n }\n sourceFile.impliedNodeFormat = impliedNodeFormat;\n return () => sourceFile.impliedNodeFormat = undefined;\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.transformCallHierarchyItem = transformCallHierarchyItem;\nexports.transformDiagnostic = transformDiagnostic;\nexports.fillSourceFileText = fillSourceFileText;\nexports.transformFileTextChanges = transformFileTextChanges;\nexports.transformDocumentSpan = transformDocumentSpan;\nexports.transformSpan = transformSpan;\nexports.transformTextChange = transformTextChange;\nexports.transformTextSpan = transformTextSpan;\nexports.toSourceOffset = toSourceOffset;\nexports.toSourceRanges = toSourceRanges;\nexports.toSourceOffsets = toSourceOffsets;\nexports.toGeneratedRange = toGeneratedRange;\nexports.toGeneratedRanges = toGeneratedRanges;\nexports.toGeneratedOffset = toGeneratedOffset;\nexports.toGeneratedOffsets = toGeneratedOffsets;\nexports.getMappingOffset = getMappingOffset;\nconst language_core_1 = require(\"@volar/language-core\");\nconst utils_1 = require(\"./utils\");\nconst transformedDiagnostics = new WeakMap();\nconst transformedSourceFile = new WeakSet();\n/**\n * This file contains a number of facilities for transforming `ts.Diagnostic`s returned\n * from the base TypeScript LanguageService, which reference locations in generated\n * TS code (e.g. the TypeScript codegen'd from the script portion of a .vue file) into locations\n * in the script portion of the .vue file.\n */\nfunction transformCallHierarchyItem(language, item, fallbackToAnyMatch, filter) {\n const span = transformSpan(language, item.file, item.span, fallbackToAnyMatch, filter);\n const selectionSpan = transformSpan(language, item.file, item.selectionSpan, fallbackToAnyMatch, filter);\n return {\n ...item,\n file: span?.fileName ?? item.file,\n span: span?.textSpan ?? { start: 0, length: 0 },\n selectionSpan: selectionSpan?.textSpan ?? { start: 0, length: 0 },\n };\n}\nfunction transformDiagnostic(language, diagnostic, program, isTsc) {\n if (!transformedDiagnostics.has(diagnostic)) {\n transformedDiagnostics.set(diagnostic, undefined);\n const { relatedInformation } = diagnostic;\n if (relatedInformation) {\n diagnostic.relatedInformation = relatedInformation\n .map(d => transformDiagnostic(language, d, program, isTsc))\n .filter(d => !!d);\n }\n if (diagnostic.file !== undefined\n && diagnostic.start !== undefined\n && diagnostic.length !== undefined) {\n const [serviceScript] = (0, utils_1.getServiceScript)(language, diagnostic.file.fileName);\n if (serviceScript) {\n const [sourceSpanFileName, sourceSpan] = transformTextSpan(undefined, language, serviceScript, {\n start: diagnostic.start,\n length: diagnostic.length,\n }, true, data => (0, language_core_1.shouldReportDiagnostics)(data, String(diagnostic.source), String(diagnostic.code))) ?? [];\n const actualDiagnosticFile = sourceSpanFileName\n ? diagnostic.file.fileName === sourceSpanFileName\n ? diagnostic.file\n : program?.getSourceFile(sourceSpanFileName)\n : undefined;\n if (sourceSpan && actualDiagnosticFile) {\n if (isTsc) {\n fillSourceFileText(language, diagnostic.file);\n }\n transformedDiagnostics.set(diagnostic, {\n ...diagnostic,\n file: actualDiagnosticFile,\n start: sourceSpan.start,\n length: sourceSpan.length,\n });\n }\n }\n else {\n transformedDiagnostics.set(diagnostic, diagnostic);\n }\n }\n else {\n transformedDiagnostics.set(diagnostic, diagnostic);\n }\n }\n return transformedDiagnostics.get(diagnostic);\n}\n// fix https://github.com/vuejs/language-tools/issues/4099 without `incremental`\nfunction fillSourceFileText(language, sourceFile) {\n if (transformedSourceFile.has(sourceFile)) {\n return;\n }\n transformedSourceFile.add(sourceFile);\n const [serviceScript] = (0, utils_1.getServiceScript)(language, sourceFile.fileName);\n if (serviceScript && !serviceScript.preventLeadingOffset) {\n const sourceScript = language.scripts.fromVirtualCode(serviceScript.code);\n sourceFile.text = sourceScript.snapshot.getText(0, sourceScript.snapshot.getLength())\n + sourceFile.text.substring(sourceScript.snapshot.getLength());\n }\n}\nfunction transformFileTextChanges(language, changes, fallbackToAnyMatch, filter) {\n const changesPerFile = {};\n const newFiles = new Set();\n for (const fileChanges of changes) {\n const [_, source] = (0, utils_1.getServiceScript)(language, fileChanges.fileName);\n if (source) {\n fileChanges.textChanges.forEach(c => {\n const { fileName, textSpan } = transformSpan(language, fileChanges.fileName, c.span, fallbackToAnyMatch, filter)\n ?? {};\n if (fileName && textSpan) {\n (changesPerFile[fileName] ?? (changesPerFile[fileName] = [])).push({ ...c, span: textSpan });\n }\n });\n }\n else {\n const list = changesPerFile[fileChanges.fileName] ?? (changesPerFile[fileChanges.fileName] = []);\n fileChanges.textChanges.forEach(c => {\n list.push(c);\n });\n if (fileChanges.isNewFile) {\n newFiles.add(fileChanges.fileName);\n }\n }\n }\n const result = [];\n for (const fileName in changesPerFile) {\n result.push({\n fileName,\n isNewFile: newFiles.has(fileName),\n textChanges: changesPerFile[fileName],\n });\n }\n return result;\n}\nfunction transformDocumentSpan(language, documentSpan, fallbackToAnyMatch, filter, shouldFallback) {\n let textSpan = transformSpan(language, documentSpan.fileName, documentSpan.textSpan, fallbackToAnyMatch, filter);\n if (!textSpan && shouldFallback) {\n textSpan = {\n fileName: documentSpan.fileName,\n textSpan: { start: 0, length: 0 },\n };\n }\n if (!textSpan) {\n return;\n }\n const contextSpan = transformSpan(language, documentSpan.fileName, documentSpan.contextSpan, fallbackToAnyMatch, filter);\n const originalTextSpan = transformSpan(language, documentSpan.originalFileName, documentSpan.originalTextSpan, fallbackToAnyMatch, filter);\n const originalContextSpan = transformSpan(language, documentSpan.originalFileName, documentSpan.originalContextSpan, fallbackToAnyMatch, filter);\n return {\n ...documentSpan,\n fileName: textSpan.fileName,\n textSpan: textSpan.textSpan,\n contextSpan: contextSpan?.textSpan,\n originalFileName: originalTextSpan?.fileName,\n originalTextSpan: originalTextSpan?.textSpan,\n originalContextSpan: originalContextSpan?.textSpan,\n };\n}\nfunction transformSpan(language, fileName, textSpan, fallbackToAnyMatch, filter) {\n if (!fileName || !textSpan) {\n return;\n }\n const [serviceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (serviceScript) {\n const [sourceSpanFileName, sourceSpan] = transformTextSpan(undefined, language, serviceScript, textSpan, fallbackToAnyMatch, filter) ?? [];\n if (sourceSpan && sourceSpanFileName) {\n return {\n fileName: sourceSpanFileName,\n textSpan: sourceSpan,\n };\n }\n }\n else {\n return {\n fileName,\n textSpan,\n };\n }\n}\nfunction transformTextChange(sourceScript, language, serviceScript, textChange, fallbackToAnyMatch, filter) {\n const [sourceSpanFileName, sourceSpan] = transformTextSpan(sourceScript, language, serviceScript, textChange.span, fallbackToAnyMatch, filter) ?? [];\n if (sourceSpan && sourceSpanFileName) {\n return [sourceSpanFileName, {\n newText: textChange.newText,\n span: sourceSpan,\n }];\n }\n return undefined;\n}\nfunction transformTextSpan(sourceScript, language, serviceScript, textSpan, fallbackToAnyMatch, filter) {\n const start = textSpan.start;\n const end = textSpan.start + textSpan.length;\n for (const [fileName, sourceStart, sourceEnd] of toSourceRanges(sourceScript, language, serviceScript, start, end, fallbackToAnyMatch, filter)) {\n return [fileName, {\n start: sourceStart,\n length: sourceEnd - sourceStart,\n }];\n }\n}\nfunction toSourceOffset(sourceScript, language, serviceScript, position, filter) {\n for (const source of toSourceOffsets(sourceScript, language, serviceScript, position, filter)) {\n return source;\n }\n}\nfunction* toSourceRanges(sourceScript, language, serviceScript, start, end, fallbackToAnyMatch, filter) {\n if (sourceScript) {\n const map = language.maps.get(serviceScript.code, sourceScript);\n for (const [sourceStart, sourceEnd] of map.toSourceRange(start - getMappingOffset(language, serviceScript), end - getMappingOffset(language, serviceScript), fallbackToAnyMatch, filter)) {\n yield [sourceScript.id, sourceStart, sourceEnd];\n }\n }\n else {\n for (const [sourceScript, map] of language.maps.forEach(serviceScript.code)) {\n for (const [sourceStart, sourceEnd] of map.toSourceRange(start - getMappingOffset(language, serviceScript), end - getMappingOffset(language, serviceScript), fallbackToAnyMatch, filter)) {\n yield [sourceScript.id, sourceStart, sourceEnd];\n }\n }\n }\n}\nfunction* toSourceOffsets(sourceScript, language, serviceScript, position, filter) {\n if (sourceScript) {\n const map = language.maps.get(serviceScript.code, sourceScript);\n for (const [sourceOffset, mapping] of map.toSourceLocation(position - getMappingOffset(language, serviceScript))) {\n if (filter(mapping.data)) {\n yield [sourceScript.id, sourceOffset];\n }\n }\n }\n else {\n for (const [sourceScript, map] of language.maps.forEach(serviceScript.code)) {\n for (const [sourceOffset, mapping] of map.toSourceLocation(position - getMappingOffset(language, serviceScript))) {\n if (filter(mapping.data)) {\n yield [sourceScript.id, sourceOffset];\n }\n }\n }\n }\n}\nfunction toGeneratedRange(language, serviceScript, sourceScript, start, end, filter) {\n for (const result of toGeneratedRanges(language, serviceScript, sourceScript, start, end, filter)) {\n return result;\n }\n}\nfunction* toGeneratedRanges(language, serviceScript, sourceScript, start, end, filter) {\n const map = language.maps.get(serviceScript.code, sourceScript);\n for (const [generateStart, generateEnd] of map.toGeneratedRange(start, end, true, filter)) {\n yield [\n generateStart + getMappingOffset(language, serviceScript),\n generateEnd + getMappingOffset(language, serviceScript),\n ];\n }\n}\nfunction toGeneratedOffset(language, serviceScript, sourceScript, position, filter) {\n for (const [generateOffset] of toGeneratedOffsets(language, serviceScript, sourceScript, position, filter)) {\n return generateOffset;\n }\n}\nfunction* toGeneratedOffsets(language, serviceScript, sourceScript, position, filter) {\n const map = language.maps.get(serviceScript.code, sourceScript);\n for (const [generateOffset, mapping] of map.toGeneratedLocation(position)) {\n if (filter(mapping.data)) {\n yield [generateOffset + getMappingOffset(language, serviceScript), mapping];\n }\n }\n}\nfunction getMappingOffset(language, serviceScript) {\n if (serviceScript.preventLeadingOffset) {\n return 0;\n }\n const sourceScript = language.scripts.fromVirtualCode(serviceScript.code);\n return sourceScript.snapshot.getLength();\n}\n//# sourceMappingURL=transform.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createProxyLanguageService = createProxyLanguageService;\nconst language_core_1 = require(\"@volar/language-core\");\nconst dedupe_1 = require(\"./dedupe\");\nconst transform_1 = require(\"./transform\");\nconst utils_1 = require(\"./utils\");\nconst windowsPathReg = /\\\\/g;\n/**\n * Creates and returns a Proxy around the base TypeScript LanguageService.\n *\n * This is used by the Volar TypeScript Plugin (which can be created by `createLanguageServicePlugin`\n * and `createAsyncLanguageServicePlugin`) as an adapter layer between the TypeScript Language Service\n * plugin API (see https://github.com/microsoft/TypeScript/wiki/Writing-a-Language-Service-Plugin)\n * and a Volar `Language`.\n *\n * Once the `initialize` method is called, the proxy will begin intercepting requests and\n * enhancing the default behavior of the LanguageService with enhancements based on\n * the Volar `Language` that has been passed to `initialize`.\n */\nfunction createProxyLanguageService(languageService) {\n const proxyCache = new Map();\n let getProxyMethod;\n return {\n initialize(language) {\n getProxyMethod = (target, p) => {\n switch (p) {\n case 'getNavigationTree':\n return getNavigationTree(language, target[p]);\n case 'getOutliningSpans':\n return getOutliningSpans(language, target[p]);\n case 'getFormattingEditsForDocument':\n return getFormattingEditsForDocument(language, target[p]);\n case 'getFormattingEditsForRange':\n return getFormattingEditsForRange(language, target[p]);\n case 'getFormattingEditsAfterKeystroke':\n return getFormattingEditsAfterKeystroke(language, target[p]);\n case 'getEditsForFileRename':\n return getEditsForFileRename(language, target[p]);\n case 'getLinkedEditingRangeAtPosition':\n return getLinkedEditingRangeAtPosition(language, target[p]);\n case 'prepareCallHierarchy':\n return prepareCallHierarchy(language, target[p]);\n case 'provideCallHierarchyIncomingCalls':\n return provideCallHierarchyIncomingCalls(language, target[p]);\n case 'provideCallHierarchyOutgoingCalls':\n return provideCallHierarchyOutgoingCalls(language, target[p]);\n case 'organizeImports':\n return organizeImports(language, target[p]);\n case 'getQuickInfoAtPosition':\n return getQuickInfoAtPosition(language, target[p]);\n case 'getSignatureHelpItems':\n return getSignatureHelpItems(language, target[p]);\n case 'getDocumentHighlights':\n return getDocumentHighlights(language, target[p]);\n case 'getApplicableRefactors':\n return getApplicableRefactors(language, target[p]);\n case 'getEditsForRefactor':\n return getEditsForRefactor(language, target[p]);\n case 'getCombinedCodeFix':\n return getCombinedCodeFix(language, target[p]);\n case 'getRenameInfo':\n return getRenameInfo(language, target[p]);\n case 'getCodeFixesAtPosition':\n return getCodeFixesAtPosition(language, target[p]);\n case 'getEncodedSemanticClassifications':\n return getEncodedSemanticClassifications(language, target[p]);\n case 'getSyntacticDiagnostics':\n return getSyntacticDiagnostics(language, languageService, target[p]);\n case 'getSemanticDiagnostics':\n return getSemanticDiagnostics(language, languageService, target[p]);\n case 'getSuggestionDiagnostics':\n return getSuggestionDiagnostics(language, languageService, target[p]);\n case 'getDefinitionAndBoundSpan':\n return getDefinitionAndBoundSpan(language, target[p]);\n case 'findReferences':\n return findReferences(language, target[p]);\n case 'getDefinitionAtPosition':\n return getDefinitionAtPosition(language, target[p]);\n case 'getTypeDefinitionAtPosition':\n return getTypeDefinitionAtPosition(language, target[p]);\n case 'getImplementationAtPosition':\n return getImplementationAtPosition(language, target[p]);\n case 'findRenameLocations':\n return findRenameLocations(language, target[p]);\n case 'getReferencesAtPosition':\n return getReferencesAtPosition(language, target[p]);\n case 'getCompletionsAtPosition':\n return getCompletionsAtPosition(language, target[p]);\n case 'getCompletionEntryDetails':\n return getCompletionEntryDetails(language, target[p]);\n case 'provideInlayHints':\n return provideInlayHints(language, target[p]);\n case 'getFileReferences':\n return getFileReferences(language, target[p]);\n case 'getNavigateToItems':\n return getNavigateToItems(language, target[p]);\n }\n };\n },\n proxy: new Proxy(languageService, {\n get(target, p, receiver) {\n if (getProxyMethod) {\n if (!proxyCache.has(p)) {\n proxyCache.set(p, getProxyMethod(target, p));\n }\n const proxyMethod = proxyCache.get(p);\n if (proxyMethod) {\n return proxyMethod;\n }\n }\n return Reflect.get(target, p, receiver);\n },\n set(target, p, value, receiver) {\n return Reflect.set(target, p, value, receiver);\n },\n }),\n };\n}\n// ignored methods\nfunction getNavigationTree(language, getNavigationTree) {\n return filePath => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (serviceScript || targetScript?.associatedOnly) {\n const tree = getNavigationTree(targetScript.id);\n tree.childItems = undefined;\n return tree;\n }\n else {\n return getNavigationTree(fileName);\n }\n };\n}\nfunction getOutliningSpans(language, getOutliningSpans) {\n return filePath => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (serviceScript || targetScript?.associatedOnly) {\n return [];\n }\n else {\n return getOutliningSpans(fileName);\n }\n };\n}\n// proxy methods\nfunction getFormattingEditsForDocument(language, getFormattingEditsForDocument) {\n return (filePath, options) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const map = language.maps.get(serviceScript.code, targetScript);\n if (!map.mappings.some(mapping => (0, language_core_1.isFormattingEnabled)(mapping.data))) {\n return [];\n }\n const edits = getFormattingEditsForDocument(targetScript.id, options);\n return edits\n .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, false, language_core_1.isFormattingEnabled)?.[1])\n .filter(edit => !!edit);\n }\n else {\n return getFormattingEditsForDocument(fileName, options);\n }\n };\n}\nfunction getFormattingEditsForRange(language, getFormattingEditsForRange) {\n return (filePath, start, end, options) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const generatedRange = (0, transform_1.toGeneratedRange)(language, serviceScript, sourceScript, start, end, language_core_1.isFormattingEnabled);\n if (generatedRange !== undefined) {\n const edits = getFormattingEditsForRange(targetScript.id, generatedRange[0], generatedRange[1], options);\n return edits\n .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, false, language_core_1.isFormattingEnabled)?.[1])\n .filter(edit => !!edit);\n }\n return [];\n }\n else {\n return getFormattingEditsForRange(fileName, start, end, options);\n }\n };\n}\nfunction getFormattingEditsAfterKeystroke(language, getFormattingEditsAfterKeystroke) {\n return (filePath, position, key, options) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isFormattingEnabled);\n if (generatePosition !== undefined) {\n const edits = getFormattingEditsAfterKeystroke(targetScript.id, generatePosition, key, options);\n return edits\n .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, false, language_core_1.isFormattingEnabled)?.[1])\n .filter(edit => !!edit);\n }\n return [];\n }\n else {\n return getFormattingEditsAfterKeystroke(fileName, position, key, options);\n }\n };\n}\nfunction getEditsForFileRename(language, getEditsForFileRename) {\n return (oldFilePath, newFilePath, formatOptions, preferences) => {\n const edits = getEditsForFileRename(oldFilePath, newFilePath, formatOptions, preferences);\n return (0, transform_1.transformFileTextChanges)(language, edits, false, language_core_1.isRenameEnabled);\n };\n}\nfunction getLinkedEditingRangeAtPosition(language, getLinkedEditingRangeAtPosition) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isLinkedEditingEnabled);\n if (generatePosition !== undefined) {\n const info = getLinkedEditingRangeAtPosition(targetScript.id, generatePosition);\n if (info) {\n return {\n ranges: info.ranges\n .map(span => (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, span, false, language_core_1.isLinkedEditingEnabled)?.[1])\n .filter(span => !!span),\n wordPattern: info.wordPattern,\n };\n }\n }\n }\n else {\n return getLinkedEditingRangeAtPosition(fileName, position);\n }\n };\n}\nfunction prepareCallHierarchy(language, prepareCallHierarchy) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isCallHierarchyEnabled);\n if (generatePosition !== undefined) {\n const item = prepareCallHierarchy(targetScript.id, generatePosition);\n if (Array.isArray(item)) {\n return item.map(item => (0, transform_1.transformCallHierarchyItem)(language, item, true, language_core_1.isCallHierarchyEnabled));\n }\n else if (item) {\n return (0, transform_1.transformCallHierarchyItem)(language, item, true, language_core_1.isCallHierarchyEnabled);\n }\n }\n }\n else {\n return prepareCallHierarchy(fileName, position);\n }\n };\n}\nfunction provideCallHierarchyIncomingCalls(language, provideCallHierarchyIncomingCalls) {\n return (filePath, position) => {\n let calls = [];\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isCallHierarchyEnabled);\n if (generatePosition !== undefined) {\n calls = provideCallHierarchyIncomingCalls(targetScript.id, generatePosition);\n }\n }\n else {\n calls = provideCallHierarchyIncomingCalls(fileName, position);\n }\n return calls\n .map(call => {\n const from = (0, transform_1.transformCallHierarchyItem)(language, call.from, true, language_core_1.isCallHierarchyEnabled);\n const fromSpans = call.fromSpans\n .map(span => (0, transform_1.transformSpan)(language, call.from.file, span, true, language_core_1.isCallHierarchyEnabled)?.textSpan)\n .filter(span => !!span);\n return {\n from,\n fromSpans,\n };\n });\n };\n}\nfunction provideCallHierarchyOutgoingCalls(language, provideCallHierarchyOutgoingCalls) {\n return (filePath, position) => {\n let calls = [];\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isCallHierarchyEnabled);\n if (generatePosition !== undefined) {\n calls = provideCallHierarchyOutgoingCalls(targetScript.id, generatePosition);\n }\n }\n else {\n calls = provideCallHierarchyOutgoingCalls(fileName, position);\n }\n return calls\n .map(call => {\n const to = (0, transform_1.transformCallHierarchyItem)(language, call.to, true, language_core_1.isCallHierarchyEnabled);\n const fromSpans = call.fromSpans\n .map(span => serviceScript\n ? (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, span, true, language_core_1.isCallHierarchyEnabled)?.[1]\n : span)\n .filter(span => !!span);\n return {\n to,\n fromSpans,\n };\n });\n };\n}\nfunction organizeImports(language, organizeImports) {\n return (args, formatOptions, preferences) => {\n const unresolved = organizeImports(args, formatOptions, preferences);\n return (0, transform_1.transformFileTextChanges)(language, unresolved, false, language_core_1.isCodeActionsEnabled);\n };\n}\nfunction getQuickInfoAtPosition(language, getQuickInfoAtPosition) {\n /**\n * Using `...args` for pass through rest params (including internal `verbosityLevel` param).\n * https://github.com/microsoft/TypeScript/blob/dd830711041b7b0cfd3da7937755996b1e1b1c7e/src/services/types.ts#L588\n */\n return (filePath, position, ...args) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n const infos = [];\n for (const [generatePosition] of (0, transform_1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, language_core_1.isHoverEnabled)) {\n const info = getQuickInfoAtPosition(targetScript.id, generatePosition, ...args);\n if (info) {\n const textSpan = (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, info.textSpan, true, language_core_1.isHoverEnabled)?.[1];\n if (textSpan) {\n infos.push({\n ...info,\n textSpan: textSpan,\n });\n }\n }\n }\n if (infos.length === 1) {\n return infos[0];\n }\n else if (infos.length >= 2) {\n const combine = { ...infos[0] };\n combine.displayParts = combine.displayParts?.slice();\n combine.documentation = combine.documentation?.slice();\n combine.tags = combine.tags?.slice();\n const displayPartsStrs = new Set([displayPartsToString(infos[0].displayParts)]);\n const documentationStrs = new Set([displayPartsToString(infos[0].documentation)]);\n const tagsStrs = new Set();\n for (const tag of infos[0].tags ?? []) {\n tagsStrs.add(tag.name + '__volar__' + displayPartsToString(tag.text));\n }\n for (let i = 1; i < infos.length; i++) {\n const { displayParts, documentation, tags } = infos[i];\n if (displayParts?.length && !displayPartsStrs.has(displayPartsToString(displayParts))) {\n displayPartsStrs.add(displayPartsToString(displayParts));\n combine.displayParts ??= [];\n combine.displayParts.push({ ...displayParts[0], text: '\\n\\n' + displayParts[0].text });\n combine.displayParts.push(...displayParts.slice(1));\n }\n if (documentation?.length && !documentationStrs.has(displayPartsToString(documentation))) {\n documentationStrs.add(displayPartsToString(documentation));\n combine.documentation ??= [];\n combine.documentation.push({ ...documentation[0], text: '\\n\\n' + documentation[0].text });\n combine.documentation.push(...documentation.slice(1));\n }\n for (const tag of tags ?? []) {\n if (!tagsStrs.has(tag.name + '__volar__' + displayPartsToString(tag.text))) {\n tagsStrs.add(tag.name + '__volar__' + displayPartsToString(tag.text));\n combine.tags ??= [];\n combine.tags.push(tag);\n }\n }\n }\n return combine;\n }\n }\n else {\n return getQuickInfoAtPosition(fileName, position, ...args);\n }\n };\n}\nfunction getSignatureHelpItems(language, getSignatureHelpItems) {\n return (filePath, position, options) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isSignatureHelpEnabled);\n if (generatePosition !== undefined) {\n const result = getSignatureHelpItems(targetScript.id, generatePosition, options);\n if (result) {\n const applicableSpan = (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, result.applicableSpan, true, language_core_1.isSignatureHelpEnabled)?.[1];\n if (applicableSpan) {\n return {\n ...result,\n applicableSpan,\n };\n }\n }\n }\n }\n else {\n return getSignatureHelpItems(fileName, position, options);\n }\n };\n}\nfunction getDocumentHighlights(language, getDocumentHighlights) {\n return (filePath, position, filesToSearch) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isHighlightEnabled, (fileName, position) => getDocumentHighlights(fileName, position, filesToSearch), function* (result) {\n for (const ref of result) {\n for (const reference of ref.highlightSpans) {\n yield [reference.fileName ?? ref.fileName, reference.textSpan.start];\n }\n }\n });\n const resolved = unresolved\n .flat()\n .map(highlights => {\n return {\n ...highlights,\n highlightSpans: highlights.highlightSpans\n .map(span => {\n const { textSpan } = (0, transform_1.transformSpan)(language, span.fileName ?? highlights.fileName, span.textSpan, false, language_core_1.isHighlightEnabled)\n ?? {};\n if (textSpan) {\n return {\n ...span,\n contextSpan: (0, transform_1.transformSpan)(language, span.fileName ?? highlights.fileName, span.contextSpan, false, language_core_1.isHighlightEnabled)?.textSpan,\n textSpan,\n };\n }\n })\n .filter(span => !!span),\n };\n });\n return resolved;\n };\n}\nfunction getApplicableRefactors(language, getApplicableRefactors) {\n return (filePath, positionOrRange, preferences, triggerReason, kind, includeInteractiveActions) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n if (typeof positionOrRange === 'number') {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, positionOrRange, language_core_1.isCodeActionsEnabled);\n if (generatePosition !== undefined) {\n return getApplicableRefactors(targetScript.id, generatePosition, preferences, triggerReason, kind, includeInteractiveActions);\n }\n }\n else {\n for (const [generatedStart, generatedEnd] of (0, transform_1.toGeneratedRanges)(language, serviceScript, sourceScript, positionOrRange.pos, positionOrRange.end, language_core_1.isCodeActionsEnabled)) {\n return getApplicableRefactors(targetScript.id, { pos: generatedStart, end: generatedEnd }, preferences, triggerReason, kind, includeInteractiveActions);\n }\n }\n return [];\n }\n else {\n return getApplicableRefactors(fileName, positionOrRange, preferences, triggerReason, kind, includeInteractiveActions);\n }\n };\n}\nfunction getEditsForRefactor(language, getEditsForRefactor) {\n return (filePath, formatOptions, positionOrRange, refactorName, actionName, preferences, interactiveRefactorArguments) => {\n let edits;\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n if (typeof positionOrRange === 'number') {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, positionOrRange, language_core_1.isCodeActionsEnabled);\n if (generatePosition !== undefined) {\n edits = getEditsForRefactor(targetScript.id, formatOptions, generatePosition, refactorName, actionName, preferences, interactiveRefactorArguments);\n }\n }\n else {\n for (const [generatedStart, generatedEnd] of (0, transform_1.toGeneratedRanges)(language, serviceScript, sourceScript, positionOrRange.pos, positionOrRange.end, language_core_1.isCodeActionsEnabled)) {\n edits = getEditsForRefactor(targetScript.id, formatOptions, { pos: generatedStart, end: generatedEnd }, refactorName, actionName, preferences, interactiveRefactorArguments);\n }\n }\n }\n else {\n edits = getEditsForRefactor(fileName, formatOptions, positionOrRange, refactorName, actionName, preferences, interactiveRefactorArguments);\n }\n if (edits) {\n edits.edits = (0, transform_1.transformFileTextChanges)(language, edits.edits, false, language_core_1.isCodeActionsEnabled);\n return edits;\n }\n };\n}\nfunction getCombinedCodeFix(language, getCombinedCodeFix) {\n return (...args) => {\n const codeActions = getCombinedCodeFix(...args);\n codeActions.changes = (0, transform_1.transformFileTextChanges)(language, codeActions.changes, false, language_core_1.isCodeActionsEnabled);\n return codeActions;\n };\n}\nfunction getRenameInfo(language, getRenameInfo) {\n return (filePath, position, options) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return {\n canRename: false,\n localizedErrorMessage: 'Cannot rename',\n };\n }\n if (serviceScript) {\n let failed;\n for (const [generateOffset] of (0, transform_1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, language_core_1.isRenameEnabled)) {\n const info = getRenameInfo(targetScript.id, generateOffset, options);\n if (info.canRename) {\n const span = (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, info.triggerSpan, false, language_core_1.isRenameEnabled)?.[1];\n if (span) {\n info.triggerSpan = span;\n return info;\n }\n }\n else {\n failed = info;\n }\n }\n if (failed) {\n return failed;\n }\n return {\n canRename: false,\n localizedErrorMessage: 'Failed to get rename locations',\n };\n }\n else {\n return getRenameInfo(fileName, position, options);\n }\n };\n}\nfunction getCodeFixesAtPosition(language, getCodeFixesAtPosition) {\n return (filePath, start, end, errorCodes, formatOptions, preferences) => {\n let fixes = [];\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const generateRange = (0, transform_1.toGeneratedRange)(language, serviceScript, sourceScript, start, end, language_core_1.isCodeActionsEnabled);\n if (generateRange !== undefined) {\n fixes = getCodeFixesAtPosition(targetScript.id, generateRange[0], generateRange[1], errorCodes, formatOptions, preferences);\n }\n }\n else {\n fixes = getCodeFixesAtPosition(fileName, start, end, errorCodes, formatOptions, preferences);\n }\n fixes = fixes.map(fix => {\n fix.changes = (0, transform_1.transformFileTextChanges)(language, fix.changes, false, language_core_1.isCodeActionsEnabled);\n return fix;\n });\n return fixes;\n };\n}\nfunction getEncodedSemanticClassifications(language, getEncodedSemanticClassifications) {\n return (filePath, span, format) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return {\n spans: [],\n endOfLineState: 0,\n };\n }\n if (serviceScript) {\n const map = language.maps.get(serviceScript.code, targetScript);\n const mapped = (0, language_core_1.findOverlapCodeRange)(span.start, span.start + span.length, map, language_core_1.isSemanticTokensEnabled);\n if (!mapped) {\n return {\n spans: [],\n endOfLineState: 0,\n };\n }\n const mappingOffset = (0, transform_1.getMappingOffset)(language, serviceScript);\n const start = mapped.start + mappingOffset;\n const end = mapped.end + mappingOffset;\n const result = getEncodedSemanticClassifications(targetScript.id, { start, length: end - start }, format);\n const spans = [];\n for (let i = 0; i < result.spans.length; i += 3) {\n for (const [_, sourceStart, sourceEnd] of (0, transform_1.toSourceRanges)(sourceScript, language, serviceScript, result.spans[i], result.spans[i] + result.spans[i + 1], false, language_core_1.isSemanticTokensEnabled)) {\n spans.push(sourceStart, sourceEnd - sourceStart, result.spans[i + 2]);\n break;\n }\n }\n result.spans = spans;\n return result;\n }\n else {\n return getEncodedSemanticClassifications(fileName, span, format);\n }\n };\n}\nfunction getSyntacticDiagnostics(language, languageService, getSyntacticDiagnostics) {\n return filePath => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n return getSyntacticDiagnostics(targetScript?.id ?? fileName)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, languageService.getProgram(), false))\n .filter(d => !!d)\n .filter(d => !serviceScript || language.scripts.get(d.file.fileName) === sourceScript);\n };\n}\nfunction getSemanticDiagnostics(language, languageService, getSemanticDiagnostics) {\n return filePath => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n return getSemanticDiagnostics(targetScript?.id ?? fileName)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, languageService.getProgram(), false))\n .filter(d => !!d)\n .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript);\n };\n}\nfunction getSuggestionDiagnostics(language, languageService, getSuggestionDiagnostics) {\n return filePath => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n return getSuggestionDiagnostics(targetScript?.id ?? fileName)\n .map(d => (0, transform_1.transformDiagnostic)(language, d, languageService.getProgram(), false))\n .filter(d => !!d)\n .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript);\n };\n}\nfunction getDefinitionAndBoundSpan(language, getDefinitionAndBoundSpan) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isDefinitionEnabled, (fileName, position) => getDefinitionAndBoundSpan(fileName, position), function* (result) {\n for (const ref of result.definitions ?? []) {\n yield [ref.fileName, ref.textSpan.start];\n }\n });\n const textSpan = unresolved\n .map(s => (0, transform_1.transformSpan)(language, fileName, s.textSpan, true, language_core_1.isDefinitionEnabled)?.textSpan)\n .filter(s => !!s)[0];\n if (!textSpan) {\n return;\n }\n const definitions = unresolved\n .map(s => s.definitions\n ?.map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isDefinitionEnabled, s.fileName !== fileName))\n .filter(s => !!s)\n ?? [])\n .flat();\n return {\n textSpan,\n definitions: (0, dedupe_1.dedupeDocumentSpans)(definitions),\n };\n };\n}\nfunction findReferences(language, findReferences) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isReferencesEnabled, (fileName, position) => findReferences(fileName, position), function* (result) {\n for (const ref of result) {\n for (const reference of ref.references) {\n yield [reference.fileName, reference.textSpan.start];\n }\n }\n });\n const resolved = unresolved\n .flat()\n .map(symbol => {\n const definition = (0, transform_1.transformDocumentSpan)(language, symbol.definition, true, language_core_1.isDefinitionEnabled, true);\n return {\n definition,\n references: symbol.references\n .map(r => (0, transform_1.transformDocumentSpan)(language, r, true, language_core_1.isReferencesEnabled))\n .filter(r => !!r),\n };\n });\n return resolved;\n };\n}\nfunction getDefinitionAtPosition(language, getDefinitionAtPosition) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isDefinitionEnabled, (fileName, position) => getDefinitionAtPosition(fileName, position), function* (result) {\n for (const ref of result) {\n yield [ref.fileName, ref.textSpan.start];\n }\n });\n const resolved = unresolved\n .flat()\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isDefinitionEnabled, s.fileName !== fileName))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction getTypeDefinitionAtPosition(language, getTypeDefinitionAtPosition) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isTypeDefinitionEnabled, (fileName, position) => getTypeDefinitionAtPosition(fileName, position), function* (result) {\n for (const ref of result) {\n yield [ref.fileName, ref.textSpan.start];\n }\n });\n const resolved = unresolved\n .flat()\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isTypeDefinitionEnabled))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction getImplementationAtPosition(language, getImplementationAtPosition) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isImplementationEnabled, (fileName, position) => getImplementationAtPosition(fileName, position), function* (result) {\n for (const ref of result) {\n yield [ref.fileName, ref.textSpan.start];\n }\n });\n const resolved = unresolved\n .flat()\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isImplementationEnabled))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction findRenameLocations(language, findRenameLocations) {\n return (filePath, position, findInStrings, findInComments, preferences) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isRenameEnabled, (fileName, position) => findRenameLocations(fileName, position, findInStrings, findInComments, preferences), function* (result) {\n for (const ref of result) {\n yield [ref.fileName, ref.textSpan.start];\n }\n });\n const resolved = unresolved\n .flat()\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, false, language_core_1.isRenameEnabled))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction getReferencesAtPosition(language, getReferencesAtPosition) {\n return (filePath, position) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = linkedCodeFeatureWorker(language, fileName, position, language_core_1.isReferencesEnabled, (fileName, position) => getReferencesAtPosition(fileName, position), function* (result) {\n for (const ref of result) {\n yield [ref.fileName, ref.textSpan.start];\n }\n });\n const resolved = unresolved\n .flat()\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isReferencesEnabled))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction getCompletionsAtPosition(language, getCompletionsAtPosition) {\n return (filePath, position, options, formattingSettings) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n let mainResult;\n const additionalResults = [];\n for (const [generatedOffset, mapping] of (0, transform_1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, language_core_1.isCompletionEnabled)) {\n const isAdditional = typeof mapping.data.completion === 'object' && mapping.data.completion.isAdditional;\n if (!isAdditional && mainResult?.entries.length) {\n continue;\n }\n const result = getCompletionsAtPosition(targetScript.id, generatedOffset, options, formattingSettings);\n if (!result) {\n continue;\n }\n if (typeof mapping.data.completion === 'object' && mapping.data.completion.onlyImport) {\n result.entries = result.entries.filter(entry => !!entry.sourceDisplay);\n }\n for (const entry of result.entries) {\n entry.replacementSpan = entry.replacementSpan\n && (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, entry.replacementSpan, false, language_core_1.isCompletionEnabled)?.[1];\n }\n result.optionalReplacementSpan = result.optionalReplacementSpan\n && (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, result.optionalReplacementSpan, false, language_core_1.isCompletionEnabled)?.[1];\n if (isAdditional) {\n additionalResults.push(result);\n }\n else {\n mainResult = result;\n }\n }\n const results = additionalResults;\n if (mainResult) {\n results.unshift(mainResult);\n }\n if (results.length) {\n return {\n ...results[0],\n entries: results\n .map(additionalResult => additionalResult.entries)\n .flat(),\n };\n }\n }\n else {\n return getCompletionsAtPosition(fileName, position, options, formattingSettings);\n }\n };\n}\nfunction getCompletionEntryDetails(language, getCompletionEntryDetails) {\n return (filePath, position, entryName, formatOptions, source, preferences, data) => {\n let details;\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return undefined;\n }\n if (serviceScript) {\n const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, position, language_core_1.isCompletionEnabled);\n if (generatePosition !== undefined) {\n details = getCompletionEntryDetails(targetScript.id, generatePosition, entryName, formatOptions, source, preferences, data);\n }\n }\n else {\n return getCompletionEntryDetails(fileName, position, entryName, formatOptions, source, preferences, data);\n }\n if (details?.codeActions) {\n for (const codeAction of details.codeActions) {\n codeAction.changes = (0, transform_1.transformFileTextChanges)(language, codeAction.changes, false, language_core_1.isCompletionEnabled);\n }\n }\n return details;\n };\n}\nfunction provideInlayHints(language, provideInlayHints) {\n return (filePath, span, preferences) => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (targetScript?.associatedOnly) {\n return [];\n }\n if (serviceScript) {\n const map = language.maps.get(serviceScript.code, sourceScript);\n const mapped = (0, language_core_1.findOverlapCodeRange)(span.start, span.start + span.length, map, language_core_1.isSemanticTokensEnabled);\n if (!mapped) {\n return [];\n }\n const mappingOffset = (0, transform_1.getMappingOffset)(language, serviceScript);\n const start = mapped.start + mappingOffset;\n const end = mapped.end + mappingOffset;\n const result = provideInlayHints(targetScript.id, { start, length: end - start }, preferences);\n const hints = [];\n for (const hint of result) {\n const sourcePosition = (0, transform_1.toSourceOffset)(sourceScript, language, serviceScript, hint.position, language_core_1.isInlayHintsEnabled);\n if (sourcePosition !== undefined) {\n hints.push({\n ...hint,\n position: sourcePosition[1],\n });\n }\n }\n return hints;\n }\n else {\n return provideInlayHints(fileName, span, preferences);\n }\n };\n}\nfunction getFileReferences(language, getFileReferences) {\n return filePath => {\n const fileName = filePath.replace(windowsPathReg, '/');\n const unresolved = getFileReferences(fileName);\n const resolved = unresolved\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isReferencesEnabled))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction getNavigateToItems(language, getNavigateToItems) {\n return (...args) => {\n const unresolved = getNavigateToItems(...args);\n const resolved = unresolved\n .map(s => (0, transform_1.transformDocumentSpan)(language, s, true, language_core_1.isReferencesEnabled))\n .filter(s => !!s);\n return (0, dedupe_1.dedupeDocumentSpans)(resolved);\n };\n}\nfunction linkedCodeFeatureWorker(language, fileName, position, filter, worker, getLinkedCodes) {\n const results = [];\n const processedFilePositions = new Set();\n const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, fileName);\n if (serviceScript) {\n for (const [generatedOffset] of (0, transform_1.toGeneratedOffsets)(language, serviceScript, sourceScript, position, filter)) {\n process(targetScript.id, generatedOffset);\n }\n }\n else {\n process(fileName, position);\n }\n return results;\n function process(fileName, position) {\n if (processedFilePositions.has(fileName + ':' + position)) {\n return;\n }\n processedFilePositions.add(fileName + ':' + position);\n const result = worker(fileName, position);\n if (!result) {\n return;\n }\n results.push(result);\n for (const ref of getLinkedCodes(result)) {\n processedFilePositions.add(ref[0] + ':' + ref[1]);\n const [serviceScript] = (0, utils_1.getServiceScript)(language, ref[0]);\n if (!serviceScript) {\n continue;\n }\n const linkedCodeMap = language.linkedCodeMaps.get(serviceScript.code);\n if (!linkedCodeMap) {\n continue;\n }\n const mappingOffset = (0, transform_1.getMappingOffset)(language, serviceScript);\n for (const linkedCodeOffset of linkedCodeMap.getLinkedOffsets(ref[1] - mappingOffset)) {\n process(ref[0], linkedCodeOffset + mappingOffset);\n }\n }\n }\n}\nfunction displayPartsToString(displayParts) {\n if (displayParts) {\n return displayParts.map(displayPart => displayPart.text).join('');\n }\n return '';\n}\n//# sourceMappingURL=proxyLanguageService.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveFileLanguageId = resolveFileLanguageId;\nfunction resolveFileLanguageId(path) {\n const ext = path.split('.').pop();\n switch (ext) {\n case 'js':\n return 'javascript';\n case 'cjs':\n return 'javascript';\n case 'mjs':\n return 'javascript';\n case 'ts':\n return 'typescript';\n case 'cts':\n return 'typescript';\n case 'mts':\n return 'typescript';\n case 'jsx':\n return 'javascriptreact';\n case 'tsx':\n return 'typescriptreact';\n case 'json':\n return 'json';\n }\n}\n//# sourceMappingURL=common.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createResolveModuleName = createResolveModuleName;\nfunction createResolveModuleName(ts, getFileSize, host, languagePlugins, getSourceScript) {\n const toSourceFileInfo = new Map();\n const moduleResolutionHost = {\n readFile: host.readFile.bind(host),\n directoryExists: host.directoryExists?.bind(host),\n realpath: host.realpath?.bind(host),\n getCurrentDirectory: host.getCurrentDirectory?.bind(host),\n getDirectories: host.getDirectories?.bind(host),\n useCaseSensitiveFileNames: typeof host.useCaseSensitiveFileNames === 'function'\n ? host.useCaseSensitiveFileNames.bind(host)\n : host.useCaseSensitiveFileNames,\n fileExists(fileName) {\n const result = host.fileExists(fileName);\n for (const { typescript } of languagePlugins) {\n if (!typescript) {\n continue;\n }\n if (!result) {\n for (const { extension } of typescript.extraFileExtensions) {\n if (!fileName.endsWith(`.d.${extension}.ts`)) {\n continue;\n }\n const sourceFileName = fileName.slice(0, -`.d.${extension}.ts`.length) + `.${extension}`;\n if (fileExists(sourceFileName)) {\n const sourceScript = getSourceScript(sourceFileName);\n if (sourceScript?.generated) {\n const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n const dtsPath = sourceFileName + '.d.ts';\n if ((serviceScript.extension === '.js' || serviceScript.extension === '.jsx') && fileExists(dtsPath)) {\n toSourceFileInfo.set(fileName, {\n sourceFileName: dtsPath,\n extension: '.ts',\n });\n }\n else {\n toSourceFileInfo.set(fileName, {\n sourceFileName,\n extension: serviceScript.extension,\n });\n }\n return true;\n }\n }\n }\n }\n }\n if (typescript.resolveHiddenExtensions && fileName.endsWith(`.d.ts`)) {\n for (const { extension } of typescript.extraFileExtensions) {\n const sourceFileName = fileName.slice(0, -`.d.ts`.length) + `.${extension}`;\n if (fileExists(sourceFileName)) {\n const sourceScript = getSourceScript(sourceFileName);\n if (sourceScript?.generated) {\n const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n toSourceFileInfo.set(fileName, {\n sourceFileName,\n extension: serviceScript.extension,\n });\n return true;\n }\n }\n }\n }\n }\n }\n return result;\n },\n };\n return (moduleName, containingFile, compilerOptions, cache, redirectedReference, resolutionMode) => {\n const result = ts.resolveModuleName(moduleName, containingFile, compilerOptions, moduleResolutionHost, cache, redirectedReference, resolutionMode);\n if (result.resolvedModule) {\n const sourceFileInfo = toSourceFileInfo.get(result.resolvedModule.resolvedFileName);\n if (sourceFileInfo) {\n result.resolvedModule.resolvedFileName = sourceFileInfo.sourceFileName;\n result.resolvedModule.extension = sourceFileInfo.extension;\n }\n }\n toSourceFileInfo.clear();\n return result;\n };\n // fix https://github.com/vuejs/language-tools/issues/3332\n function fileExists(fileName) {\n if (host.fileExists(fileName)) {\n const fileSize = getFileSize?.(fileName) ?? host.readFile(fileName)?.length ?? 0;\n return fileSize < 4 * 1024 * 1024;\n }\n return false;\n }\n}\n//# sourceMappingURL=resolveModuleName.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decorateLanguageServiceHost = decorateLanguageServiceHost;\nexports.searchExternalFiles = searchExternalFiles;\nconst resolveModuleName_1 = require(\"../resolveModuleName\");\nconst utils_1 = require(\"./utils\");\nfunction decorateLanguageServiceHost(ts, language, languageServiceHost) {\n const pluginExtensions = language.plugins\n .map(plugin => plugin.typescript?.extraFileExtensions.map(ext => '.' + ext.extension) ?? [])\n .flat();\n const scripts = new Map();\n const crashFileNames = new Set();\n const readDirectory = languageServiceHost.readDirectory?.bind(languageServiceHost);\n const resolveModuleNameLiterals = languageServiceHost.resolveModuleNameLiterals?.bind(languageServiceHost);\n const resolveModuleNames = languageServiceHost.resolveModuleNames?.bind(languageServiceHost);\n const getScriptSnapshot = languageServiceHost.getScriptSnapshot.bind(languageServiceHost);\n const getScriptKind = languageServiceHost.getScriptKind?.bind(languageServiceHost);\n // path completion\n if (readDirectory) {\n languageServiceHost.readDirectory = (path, extensions, exclude, include, depth) => {\n if (extensions) {\n for (const ext of pluginExtensions) {\n if (!extensions.includes(ext)) {\n extensions = [...extensions, ext];\n }\n }\n }\n return readDirectory(path, extensions, exclude, include, depth);\n };\n }\n if (pluginExtensions.length) {\n const resolveModuleName = (0, resolveModuleName_1.createResolveModuleName)(ts, ts.sys.getFileSize, languageServiceHost, language.plugins, fileName => language.scripts.get(fileName));\n const moduleResolutionCache = languageServiceHost.getModuleResolutionCache?.();\n if (resolveModuleNameLiterals) {\n languageServiceHost.resolveModuleNameLiterals = (moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, ...rest) => {\n const disposeFixup = (0, utils_1.fixupImpliedNodeFormatForFile)(ts, pluginExtensions, containingSourceFile, moduleResolutionCache?.getPackageJsonInfoCache(), languageServiceHost, options);\n try {\n if (moduleLiterals.every(name => !pluginExtensions.some(ext => name.text.endsWith(ext)))) {\n return resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, ...rest);\n }\n return moduleLiterals.map(moduleLiteral => {\n const mode = ts.getModeForUsageLocation(containingSourceFile, moduleLiteral, options);\n return resolveModuleName(moduleLiteral.text, containingFile, options, moduleResolutionCache, redirectedReference, mode);\n });\n }\n finally {\n disposeFixup?.();\n }\n };\n }\n if (resolveModuleNames) {\n languageServiceHost.resolveModuleNames = (moduleNames, containingFile, reusedNames, redirectedReference, options, containingSourceFile) => {\n if (moduleNames.every(name => !pluginExtensions.some(ext => name.endsWith(ext)))) {\n return resolveModuleNames(moduleNames, containingFile, reusedNames, redirectedReference, options, containingSourceFile);\n }\n return moduleNames.map(moduleName => {\n return resolveModuleName(moduleName, containingFile, options, moduleResolutionCache, redirectedReference)\n .resolvedModule;\n });\n };\n }\n }\n languageServiceHost.getScriptSnapshot = fileName => {\n const virtualScript = updateVirtualScript(fileName, true);\n if (virtualScript) {\n return virtualScript.snapshot;\n }\n return getScriptSnapshot(fileName);\n };\n if (getScriptKind) {\n languageServiceHost.getScriptKind = fileName => {\n const virtualScript = updateVirtualScript(fileName, false);\n if (virtualScript) {\n return virtualScript.scriptKind;\n }\n return getScriptKind(fileName);\n };\n }\n function updateVirtualScript(fileName, shouldRegister) {\n if (crashFileNames.has(fileName)) {\n return;\n }\n let version;\n try {\n version = languageServiceHost.getScriptVersion(fileName);\n }\n catch {\n // fix https://github.com/vuejs/language-tools/issues/4278\n crashFileNames.add(fileName);\n }\n if (version === undefined) {\n // somehow getScriptVersion returns undefined\n return;\n }\n let script = scripts.get(fileName);\n if (!script || script[0] !== version) {\n script = [version];\n const sourceScript = language.scripts.get(fileName, undefined, shouldRegister);\n if (sourceScript?.generated) {\n const serviceScript = sourceScript.generated.languagePlugin.typescript?.getServiceScript(sourceScript.generated.root);\n if (serviceScript) {\n if (serviceScript.preventLeadingOffset) {\n script[1] = {\n extension: serviceScript.extension,\n scriptKind: serviceScript.scriptKind,\n snapshot: serviceScript.code.snapshot,\n };\n }\n else {\n const sourceContents = sourceScript.snapshot.getText(0, sourceScript.snapshot.getLength());\n const virtualContents = sourceContents.split('\\n').map(line => ' '.repeat(line.length)).join('\\n')\n + serviceScript.code.snapshot.getText(0, serviceScript.code.snapshot.getLength());\n script[1] = {\n extension: serviceScript.extension,\n scriptKind: serviceScript.scriptKind,\n snapshot: ts.ScriptSnapshot.fromString(virtualContents),\n };\n }\n }\n if (sourceScript.generated.languagePlugin.typescript?.getExtraServiceScripts) {\n console.warn('getExtraServiceScripts() is not available in TS plugin.');\n }\n }\n scripts.set(fileName, script);\n }\n return script[1];\n }\n}\nfunction searchExternalFiles(ts, project, exts) {\n if (project.projectKind !== ts.server.ProjectKind.Configured) {\n return [];\n }\n const configFile = project.getProjectName();\n const config = ts.readJsonConfigFile(configFile, project.readFile.bind(project));\n const parseHost = {\n useCaseSensitiveFileNames: project.useCaseSensitiveFileNames(),\n fileExists: project.fileExists.bind(project),\n readFile: project.readFile.bind(project),\n readDirectory: (...args) => {\n args[1] = exts;\n return project.readDirectory(...args);\n },\n };\n const parsed = ts.parseJsonSourceFileConfigFileContent(config, parseHost, project.getCurrentDirectory());\n return parsed.fileNames;\n}\n//# sourceMappingURL=decorateLanguageServiceHost.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.makeGetExternalFiles = exports.decoratedLanguageServiceHosts = exports.decoratedLanguageServices = exports.projectExternalFileExtensions = exports.externalFiles = void 0;\nexports.makeGetScriptInfoWithLargeFileFailsafe = makeGetScriptInfoWithLargeFileFailsafe;\nexports.createLanguageCommon = createLanguageCommon;\nexports.isHasAlreadyDecoratedLanguageService = isHasAlreadyDecoratedLanguageService;\nconst language_core_1 = require(\"@volar/language-core\");\nconst common_1 = require(\"../common\");\nconst decorateLanguageServiceHost_1 = require(\"../node/decorateLanguageServiceHost\");\nexports.externalFiles = new WeakMap();\nexports.projectExternalFileExtensions = new WeakMap();\nexports.decoratedLanguageServices = new WeakSet();\nexports.decoratedLanguageServiceHosts = new WeakSet();\n/**\n * Wrap `getScriptInfo` to handle large files that may crash the language service.\n *\n * Introduced to fix issues with converting `relatedInformation` (in Diagnostics)\n * when working with large files.\n *\n * https://github.com/volarjs/volar.js/commit/e242709a91e9d2919dc4fa59278dd266fd11e7a3\n */\nfunction makeGetScriptInfoWithLargeFileFailsafe(info) {\n return (fileName) => {\n // getSnapshot could be crashed if the file is too large\n try {\n return info.project.getScriptInfo(fileName);\n }\n catch { }\n };\n}\nfunction createLanguageCommon(createPluginResult, ts, info, initializeProxiedLanguageService) {\n const getScriptSnapshot = info.languageServiceHost.getScriptSnapshot.bind(info.languageServiceHost);\n const getScriptInfo = makeGetScriptInfoWithLargeFileFailsafe(info);\n const language = (0, language_core_1.createLanguage)([\n ...createPluginResult.languagePlugins,\n { getLanguageId: common_1.resolveFileLanguageId },\n ], new language_core_1.FileMap(ts.sys.useCaseSensitiveFileNames), (fileName, _, shouldRegister) => {\n let snapshot;\n if (shouldRegister) {\n // We need to trigger registration of the script file with the project, see #250\n snapshot = getScriptSnapshot(fileName);\n }\n else {\n snapshot = getScriptInfo(fileName)?.getSnapshot();\n if (!snapshot) {\n // trigger projectService.getOrCreateScriptInfoNotOpenedByClient\n info.project.getScriptVersion(fileName);\n snapshot = getScriptInfo(fileName)?.getSnapshot();\n }\n }\n if (snapshot) {\n language.scripts.set(fileName, snapshot);\n }\n else {\n language.scripts.delete(fileName);\n }\n }, targetFileName => {\n // https://github.com/JetBrains/intellij-plugins/blob/6435723ad88fa296b41144162ebe3b8513f4949b/Angular/src-js/angular-service/src/ngCommands.ts#L88\n info.session.change({\n file: targetFileName,\n line: 1,\n offset: 1,\n endLine: 1,\n endOffset: 1,\n insertString: '',\n });\n });\n initializeProxiedLanguageService(language);\n (0, decorateLanguageServiceHost_1.decorateLanguageServiceHost)(ts, language, info.languageServiceHost);\n createPluginResult.setup?.(language);\n}\nconst makeGetExternalFiles = (ts) => (project, updateLevel = 0) => {\n if (updateLevel >= 1\n || !exports.externalFiles.has(project)) {\n const oldFiles = exports.externalFiles.get(project);\n const extensions = exports.projectExternalFileExtensions.get(project);\n const newFiles = extensions?.length ? (0, decorateLanguageServiceHost_1.searchExternalFiles)(ts, project, extensions) : [];\n exports.externalFiles.set(project, newFiles);\n if (oldFiles && !arrayItemsEqual(oldFiles, newFiles)) {\n project.refreshDiagnostics();\n }\n }\n return exports.externalFiles.get(project);\n};\nexports.makeGetExternalFiles = makeGetExternalFiles;\nfunction arrayItemsEqual(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n const set = new Set(a);\n for (const file of b) {\n if (!set.has(file)) {\n return false;\n }\n }\n return true;\n}\nfunction isHasAlreadyDecoratedLanguageService(info) {\n if (exports.decoratedLanguageServices.has(info.languageService)\n || exports.decoratedLanguageServiceHosts.has(info.languageServiceHost)) {\n return true;\n }\n else {\n exports.decoratedLanguageServices.add(info.languageService);\n exports.decoratedLanguageServiceHosts.add(info.languageServiceHost);\n return false;\n }\n}\n//# sourceMappingURL=languageServicePluginCommon.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createLanguageServicePlugin = createLanguageServicePlugin;\nconst proxyLanguageService_1 = require(\"../node/proxyLanguageService\");\nconst languageServicePluginCommon_1 = require(\"./languageServicePluginCommon\");\n/**\n * Creates and returns a TS Service Plugin using Volar primitives.\n *\n * See https://github.com/microsoft/TypeScript/wiki/Writing-a-Language-Service-Plugin for\n * more information.\n */\nfunction createLanguageServicePlugin(createPluginCallback) {\n return modules => {\n const { typescript: ts } = modules;\n const pluginModule = {\n create(info) {\n if (!(0, languageServicePluginCommon_1.isHasAlreadyDecoratedLanguageService)(info)) {\n const createPluginResult = createPluginCallback(ts, info);\n const extensions = createPluginResult.languagePlugins\n .map(plugin => plugin.typescript?.extraFileExtensions.map(ext => '.' + ext.extension) ?? [])\n .flat();\n // TODO: this logic does not seem to appear in the async variant\n // (createAsyncLanguageServicePlugin)... bug?\n languageServicePluginCommon_1.projectExternalFileExtensions.set(info.project, extensions);\n const { proxy, initialize } = (0, proxyLanguageService_1.createProxyLanguageService)(info.languageService);\n info.languageService = proxy;\n (0, languageServicePluginCommon_1.createLanguageCommon)(createPluginResult, ts, info, initialize);\n }\n return info.languageService;\n },\n getExternalFiles: (0, languageServicePluginCommon_1.makeGetExternalFiles)(ts),\n };\n return pluginModule;\n };\n}\n//# sourceMappingURL=createLanguageServicePlugin.js.map","export const DEBUG = process.env.RIPPLE_DEBUG === 'true';\n// Matches valid JS/CSS identifier characters: word chars, dashes (CSS), $, and # (Ripple shorthands)\nexport const charAllowedWordRegex = /[\\w\\-$#]/;\n\n/**\n * Create a logging utility with a specific label\n * @param {string} label\n * @returns {{\n * \tlog: (...args: unknown[]) => void,\n * \tlogError: (...args: unknown[]) => void,\n * \tlogWarning: (...args: unknown[]) => void,\n * }}\n */\nexport function createLogging(label) {\n\treturn {\n\t\tlog(...args) {\n\t\t\tif (DEBUG) {\n\t\t\t\tconsole.log(label, ...args);\n\t\t\t}\n\t\t},\n\t\tlogError(...args) {\n\t\t\tif (DEBUG) {\n\t\t\t\tconsole.error(label, ...args);\n\t\t\t}\n\t\t},\n\t\tlogWarning(...args) {\n\t\t\tif (DEBUG) {\n\t\t\t\tconsole.warn(label, ...args);\n\t\t\t}\n\t\t},\n\t};\n}\n\n/**\n * Get the word at a specific position in the text\n * @param {string} text\n * @param {number} start\n * @returns {{word: string, start: number, end: number}}\n */\nexport function getWordFromPosition(text, start) {\n\tlet wordStart = start;\n\tlet wordEnd = start;\n\twhile (wordStart > 0 && charAllowedWordRegex.test(text[wordStart - 1])) {\n\t\twordStart--;\n\t}\n\twhile (wordEnd < text.length && charAllowedWordRegex.test(text[wordEnd])) {\n\t\twordEnd++;\n\t}\n\n\tconst word = text.substring(wordStart, wordEnd);\n\n\treturn {\n\t\tword,\n\t\tstart: wordStart,\n\t\tend: wordEnd,\n\t};\n}\n","/** @import { CodeMapping } from '@tsrx/ripple' */\n/** @import {TSRXCompileError, VolarMappingsResult} from '@tsrx/ripple' */\n\n/** @typedef {{ compile_to_volar_mappings(source: string, filename: string, options?: { loose?: boolean }): VolarMappingsResult }} TSRXCompilerModule */\n\n/** @typedef {Map<string, CodeMapping>} CachedMappings */\n/** @typedef {import('typescript').CompilerOptions} CompilerOptions */\n/** @typedef {import('@volar/language-core').IScriptSnapshot} IScriptSnapshot */\n/** @typedef {import('@volar/language-core').VirtualCode} VirtualCode */\n/** @typedef {string | { fsPath: string }} ScriptId */\n// Side-effect import: augments @volar/language-core's LanguagePlugin with the `typescript` field.\n/** @typedef {typeof import('@volar/typescript')} _VolarTypeScriptAugmentation */\n/** @typedef {import('@volar/language-core').LanguagePlugin<ScriptId, VirtualCode>} RippleLanguagePlugin */\n\n/** @typedef {InstanceType<typeof import('./language.js')[\"TSRXVirtualCode\"]>} TSRXVirtualCodeInstance */\n\nimport ts from 'typescript';\nimport { forEachEmbeddedCode } from '@volar/language-core';\nimport fs from 'fs';\nimport path from 'path';\nimport { createRequire } from 'module';\nimport { fileURLToPath } from 'url';\nimport { createLogging, DEBUG } from './utils.js';\n\nconst require = createRequire(import.meta.url);\nconst root_dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst { log, logWarning, logError } = createLogging('[Ripple Language]');\nexport const RIPPLE_EXTENSIONS = ['.tsrx'];\n/** @typedef {[string, string[], string[], string[]]} CompilerCandidate */\n/** @type {CompilerCandidate[]} */\nexport const COMPILER_CANDIDATES = [\n\t[\n\t\t'@tsrx/ripple',\n\t\t['node_modules', '@tsrx', 'ripple'],\n\t\t['.tsrx'],\n\t\t['@tsrx/ripple', 'ripple', '@ripple-ts/vite-plugin', '@ripple-ts/compat-react'],\n\t],\n\t[\n\t\t'@tsrx/react',\n\t\t['node_modules', '@tsrx', 'react'],\n\t\t['.tsrx'],\n\t\t['@tsrx/react', '@tsrx/vite-plugin-react'],\n\t],\n];\n\n/**\n * @param {string} file_name\n * @returns {boolean}\n */\nexport function is_ripple_file(file_name) {\n\treturn RIPPLE_EXTENSIONS.some((extension) => file_name.endsWith(extension));\n}\n\n/**\n * @returns {RippleLanguagePlugin}\n */\nexport function getRippleLanguagePlugin() {\n\tlog('Creating Ripple language plugin...');\n\n\treturn {\n\t\tgetLanguageId(fileNameOrUri) {\n\t\t\tconst file_name =\n\t\t\t\ttypeof fileNameOrUri === 'string'\n\t\t\t\t\t? fileNameOrUri\n\t\t\t\t\t: fileNameOrUri.fsPath.replace(/\\\\/g, '/');\n\t\t\tif (is_ripple_file(file_name)) {\n\t\t\t\tlog('Identified Ripple file:', file_name);\n\t\t\t\treturn 'ripple';\n\t\t\t}\n\t\t},\n\t\tcreateVirtualCode(fileNameOrUri, languageId, snapshot) {\n\t\t\tif (languageId === 'ripple') {\n\t\t\t\tconst file_name = normalizeFileNameOrUri(fileNameOrUri);\n\t\t\t\tconst ripple = get_tsrx_compiler(file_name);\n\t\t\t\tif (!ripple) {\n\t\t\t\t\tlogError(`Ripple compiler not found for file: ${file_name}`);\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tlog('Creating virtual code for:', file_name);\n\t\t\t\ttry {\n\t\t\t\t\treturn new TSRXVirtualCode(file_name, snapshot, ripple);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tlogError('Failed to create virtual code for:', file_name, ':', err);\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tupdateVirtualCode(fileNameOrUri, virtualCode, snapshot) {\n\t\t\tif (virtualCode instanceof TSRXVirtualCode) {\n\t\t\t\tlog('Updating existing virtual code for:', virtualCode.fileName);\n\t\t\t\tvirtualCode.update(snapshot);\n\t\t\t\treturn virtualCode;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\n\t\ttypescript: {\n\t\t\textraFileExtensions: RIPPLE_EXTENSIONS.map((extension) => ({\n\t\t\t\textension: extension.slice(1),\n\t\t\t\tisMixedContent: false,\n\t\t\t\tscriptKind: 7,\n\t\t\t})),\n\t\t\t/**\n\t\t\t * @param {VirtualCode} ripple_code\n\t\t\t */\n\t\t\tgetServiceScript(ripple_code) {\n\t\t\t\tfor (const code of forEachEmbeddedCode(ripple_code)) {\n\t\t\t\t\tif (code.languageId === 'ripple') {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t\textension: '.tsx',\n\t\t\t\t\t\t\tscriptKind: 4,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * @implements {VirtualCode}\n */\nexport class TSRXVirtualCode {\n\t/** @type {string} */\n\tid = 'root';\n\t/** @type {string} */\n\tlanguageId = 'ripple';\n\t/** @type {unknown[]} */\n\tcodegenStacks = [];\n\t/** @type {TSRXCompilerModule} */\n\ttsrx;\n\t/** @type {string} */\n\tgeneratedCode = '';\n\t/** @type {VirtualCode['embeddedCodes']} */\n\tembeddedCodes = [];\n\t/** @type {CodeMapping[]} */\n\tmappings = [];\n\t/** @type {TSRXCompileError[]} */\n\tfatalErrors = [];\n\t/** @type {TSRXCompileError[]} */\n\tusageErrors = [];\n\t/** @type {IScriptSnapshot} */\n\tsnapshot;\n\t/** @type {IScriptSnapshot} */\n\tsourceSnapshot;\n\t/** @type {string} */\n\toriginalCode = '';\n\t/** @type {unknown[]} */\n\tdiagnostics = [];\n\t/** @type {CachedMappings | null} */\n\t#mappingGenToSource = null;\n\t/** @type {CachedMappings | null} */\n\t#mappingSourceToGen = null;\n\n\t/**\n\t * @param {string} file_name\n\t * @param {IScriptSnapshot} snapshot\n\t * @param {TSRXCompilerModule} tsrx\n\t */\n\tconstructor(file_name, snapshot, tsrx) {\n\t\tlog('Initializing TSRXVirtualCode for:', file_name);\n\n\t\tthis.fileName = file_name;\n\t\tthis.tsrx = tsrx;\n\t\tthis.snapshot = snapshot;\n\t\tthis.sourceSnapshot = snapshot;\n\t\tthis.originalCode = snapshot.getText(0, snapshot.getLength());\n\n\t\t// Validate ripple compiler\n\t\tif (!tsrx || typeof tsrx.compile_to_volar_mappings !== 'function') {\n\t\t\tlogError('Invalid ripple compiler - missing compile_to_volar_mappings method');\n\t\t\tthrow new Error('Invalid ripple compiler');\n\t\t}\n\n\t\tthis.update(snapshot);\n\t}\n\n\t/**\n\t * @param {IScriptSnapshot} snapshot\n\t * @returns {void}\n\t */\n\tupdate(snapshot) {\n\t\tlog('Updating virtual code for:', this.fileName);\n\n\t\tconst newCode = snapshot.getText(0, snapshot.getLength());\n\t\tconst changeRange = snapshot.getChangeRange(this.sourceSnapshot);\n\t\tthis.sourceSnapshot = snapshot;\n\n\t\t// Only clear mapping index - don't update snapshot/originalCode yet\n\t\tthis.#mappingGenToSource = null;\n\t\tthis.#mappingSourceToGen = null;\n\n\t\tthis.fatalErrors = [];\n\t\tthis.usageErrors = [];\n\n\t\t/** @type {VolarMappingsResult | undefined} */\n\t\tlet transpiled;\n\n\t\t// Check if a single \".\" was typed using changeRange\n\t\tlet isDotTyped = false;\n\t\tlet dotPosition = -1;\n\n\t\tlog('changeRange:', JSON.stringify(changeRange));\n\n\t\tif (changeRange) {\n\t\t\tconst changeStart = changeRange.span.start;\n\t\t\tconst changeEnd = changeStart + changeRange.span.length;\n\t\t\tconst newEnd = changeStart + changeRange.newLength;\n\n\t\t\t// Get the old text (what was replaced) from originalCode\n\t\t\tconst oldText = this.originalCode.substring(changeStart, changeEnd);\n\t\t\t// Get the new text (what replaced it) from newCode\n\t\t\tconst newText = newCode.substring(changeStart, newEnd);\n\n\t\t\tlog('Change details:');\n\t\t\tlog(' Position:', changeStart, '-', changeEnd, '(length:', changeRange.span.length, ')');\n\t\t\tlog(' Old text:', JSON.stringify(oldText));\n\t\t\tlog(' New text:', JSON.stringify(newText), '(length:', changeRange.newLength, ')');\n\n\t\t\t// Check if a dot was added at the end of the new text\n\t\t\tif (newText.endsWith('.')) {\n\t\t\t\t// The dot is at position newEnd - 1\n\t\t\t\t// We need to check the character BEFORE the dot (inside the new text)\n\t\t\t\tconst charBeforeDot = newEnd > 1 ? newCode[newEnd - 2] : '';\n\t\t\t\tlog(' Char before dot:', JSON.stringify(charBeforeDot));\n\n\t\t\t\tif (/[$#_\\u200C\\u200D\\p{ID_Continue}\\)\\]\\}]/u.test(charBeforeDot)) {\n\t\t\t\t\tisDotTyped = true;\n\t\t\t\t\tdotPosition = newEnd - 1; // Position of the dot\n\t\t\t\t\tlog('ChangeRange detected dot typed at position', dotPosition);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\t// If user typed a \".\", compile without it and then stitch it back into\n\t\t\t// the generated output so completions can still resolve.\n\t\t\tif (isDotTyped && dotPosition >= 0) {\n\t\t\t\tconst codeWithoutDot =\n\t\t\t\t\tnewCode.substring(0, dotPosition) + newCode.substring(dotPosition + 1);\n\n\t\t\t\tlog('Compiling without typed dot at position', dotPosition);\n\t\t\t\ttranspiled = this.tsrx.compile_to_volar_mappings(codeWithoutDot, this.fileName, {\n\t\t\t\t\tloose: true,\n\t\t\t\t});\n\t\t\t\tlog('Compilation without dot successful');\n\n\t\t\t\tif (transpiled && transpiled.code && transpiled.mappings.length > 0) {\n\t\t\t\t\tconst insertedDotPosition = restore_typed_dot_in_transpiled_code(transpiled, dotPosition);\n\n\t\t\t\t\tif (insertedDotPosition === null) {\n\t\t\t\t\t\tlogWarning('Failed to restore typed dot into transpiled output');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlog('Inserted typed dot at generated position', insertedDotPosition);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Normal compilation\n\t\t\t\tlog('Compiling Ripple code...');\n\t\t\t\ttranspiled = this.tsrx.compile_to_volar_mappings(newCode, this.fileName, {\n\t\t\t\t\tloose: true,\n\t\t\t\t});\n\t\t\t\tlog('Compilation successful, generated code length:', transpiled?.code?.length || 0);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconst error = /** @type {TSRXCompileError} */ (e);\n\t\t\tlogError('Ripple compilation failed for', this.fileName, ':', error);\n\t\t\terror.type = 'fatal';\n\t\t\tthis.fatalErrors.push(error);\n\t\t}\n\n\t\tif (transpiled && transpiled.code) {\n\t\t\t// Successful compilation - update everything\n\t\t\tthis.originalCode = newCode;\n\t\t\tthis.generatedCode = transpiled.code;\n\t\t\tthis.mappings = transpiled.mappings ?? [];\n\t\t\tthis.usageErrors = transpiled.errors;\n\n\t\t\tconst cssMappings = transpiled.cssMappings;\n\t\t\tif (cssMappings.length > 0) {\n\t\t\t\tlog('Creating', cssMappings.length, 'CSS embedded codes');\n\n\t\t\t\tthis.embeddedCodes = cssMappings.map(\n\t\t\t\t\t(/** @type {any} */ mapping, /** @type {number} */ index) => {\n\t\t\t\t\t\tconst cssContent = /** @type {string} */ (mapping.data?.customData?.content);\n\t\t\t\t\t\tlog(\n\t\t\t\t\t\t\t`CSS region ${index}: \\\n\t\t\t\t\t\toffset ${mapping.sourceOffsets[0]}-${mapping.sourceOffsets[0] + mapping.lengths[0]}, \\\n\t\t\t\t\t\tlength ${mapping.lengths[0]}`,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: /** @type {string} */ (mapping.data?.customData?.embeddedId),\n\t\t\t\t\t\t\tlanguageId: 'css',\n\t\t\t\t\t\t\tsnapshot: {\n\t\t\t\t\t\t\t\tgetText: (/** @type {number} */ start, /** @type {number} */ end) =>\n\t\t\t\t\t\t\t\t\tcssContent.substring(start, end),\n\t\t\t\t\t\t\t\tgetLength: () => mapping.lengths[0],\n\t\t\t\t\t\t\t\tgetChangeRange: () => undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmappings: [mapping],\n\t\t\t\t\t\t\tembeddedCodes: [],\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.embeddedCodes = [];\n\t\t\t}\n\n\t\t\tif (DEBUG) {\n\t\t\t\tlog('CSS embedded codes:', (this.embeddedCodes || []).length);\n\t\t\t\tlog('Using transpiled code, mapping count:', this.mappings.length);\n\t\t\t\tlog('Original code length:', newCode.length);\n\t\t\t\tlog('Generated code length:', this.generatedCode.length);\n\t\t\t\tlog('Last 100 chars of original:', JSON.stringify(newCode.slice(-100)));\n\t\t\t\tlog('Last 200 chars of generated:', JSON.stringify(this.generatedCode.slice(-200)));\n\t\t\t\tlog('Last few mappings:');\n\t\t\t\tconst startIdx = Math.max(0, this.mappings.length - 5);\n\t\t\t\tfor (let i = startIdx; i < this.mappings.length; i++) {\n\t\t\t\t\tconst m = this.mappings[i];\n\t\t\t\t\tlog(\n\t\t\t\t\t\t` Mapping ${i}: source[${m.sourceOffsets[0]}:${m.sourceOffsets[0] + m.lengths[0]}] -> gen[${m.generatedOffsets[0]}:${m.generatedOffsets[0] + m.lengths[0]}], len=${m.lengths[0]}, completion=${m.data?.completion}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.snapshot = /** @type {IScriptSnapshot} */ ({\n\t\t\t\tgetText: (start, end) => this.generatedCode.substring(start, end),\n\t\t\t\tgetLength: () => this.generatedCode.length,\n\t\t\t\tgetChangeRange: () => undefined,\n\t\t\t});\n\t\t} else {\n\t\t\t// When compilation fails, show where it failed and disable all\n\t\t\t// TypeScript diagnostics until the compilation error is fixed\n\t\t\tlog('Compilation failed, only display where the compilation error occurred.');\n\n\t\t\tthis.originalCode = newCode;\n\t\t\tthis.generatedCode = newCode;\n\n\t\t\t// Create 1:1 mappings for the entire content\n\t\t\tthis.mappings = [\n\t\t\t\t{\n\t\t\t\t\tsourceOffsets: [0],\n\t\t\t\t\tgeneratedOffsets: [0],\n\t\t\t\t\tlengths: [newCode.length],\n\t\t\t\t\tgeneratedLengths: [newCode.length],\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tverification: true, // disable TS since we're using source code as generated code\n\t\t\t\t\t\tcustomData: {},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t];\n\n\t\t\t// Extract CSS from <style>...</style> tags for embedded codes\n\t\t\tthis.embeddedCodes = extractCssFromSource(newCode);\n\n\t\t\tthis.snapshot = /** @type {IScriptSnapshot} */ ({\n\t\t\t\tgetText: (start, end) => this.generatedCode.substring(start, end),\n\t\t\t\tgetLength: () => this.generatedCode.length,\n\t\t\t\tgetChangeRange: () => undefined,\n\t\t\t});\n\t\t}\n\t}\n\n\t#buildMappingCache() {\n\t\tif (this.#mappingGenToSource || this.#mappingSourceToGen) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#mappingGenToSource = new Map();\n\t\tthis.#mappingSourceToGen = new Map();\n\n\t\tvar mapping, genStart, genLength, genEnd, genKey;\n\t\tvar sourceStart, sourceLength, sourceEnd, sourceKey;\n\t\tfor (var i = 0; i < this.mappings.length; i++) {\n\t\t\tmapping = this.mappings[i];\n\n\t\t\tgenStart = mapping.generatedOffsets[0];\n\t\t\tgenLength = mapping.generatedLengths[0];\n\t\t\tgenEnd = genStart + genLength;\n\t\t\tgenKey = `${genStart}-${genEnd}`;\n\t\t\tthis.#mappingGenToSource.set(genKey, mapping);\n\n\t\t\tsourceStart = mapping.sourceOffsets[0];\n\t\t\tsourceLength = mapping.lengths[0];\n\t\t\tsourceEnd = sourceStart + sourceLength;\n\t\t\tsourceKey = `${sourceStart}-${sourceEnd}`;\n\t\t\tthis.#mappingSourceToGen.set(sourceKey, mapping);\n\t\t}\n\t}\n\n\t/**\n\t * Find mapping by generated range\n\t * @param {number} start - The start offset of the range\n\t * @param {number} end - The end offset of the range\n\t * @returns {CodeMapping | null} The mapping for this range, or null if not found\n\t */\n\tfindMappingByGeneratedRange(start, end) {\n\t\tthis.#buildMappingCache();\n\t\treturn /** @type {CachedMappings} */ (this.#mappingGenToSource).get(`${start}-${end}`) ?? null;\n\t}\n\n\t/**\n\t * Find mapping by source range\n\t * @param {number} start - The start offset of the range\n\t * @param {number} end - The end offset of the range\n\t * @returns {CodeMapping | null} The mapping for this range, or null if not found\n\t */\n\tfindMappingBySourceRange(start, end) {\n\t\tthis.#buildMappingCache();\n\t\treturn /** @type {CachedMappings} */ (this.#mappingSourceToGen).get(`${start}-${end}`) ?? null;\n\t}\n}\n\n/**\n * Extract CSS content from <style>...</style> tags in source code\n * @param {string} code - The source code to extract CSS from\n * @returns {VirtualCode[]} Array of embedded CSS virtual codes\n */\nfunction extractCssFromSource(code) {\n\t/** @type {VirtualCode[]} */\n\tconst embeddedCodes = [];\n\tconst styleRegex = /<style\\b[^>]*>([\\s\\S]*?)<\\/style>/gi;\n\tlet match;\n\tlet index = 0;\n\n\twhile ((match = styleRegex.exec(code)) !== null) {\n\t\tconst fullMatch = match[0];\n\t\tconst cssContent = match[1];\n\t\tconst styleTagStart = match.index;\n\t\tconst openTagEnd = fullMatch.indexOf('>') + 1;\n\t\tconst cssStart = styleTagStart + openTagEnd;\n\t\tconst cssLength = cssContent.length;\n\n\t\tlog(`Extracted CSS region ${index}: offset ${cssStart}, length ${cssLength}`);\n\n\t\t/** @type {CodeMapping} */\n\t\tconst mapping = {\n\t\t\tsourceOffsets: [cssStart],\n\t\t\tgeneratedOffsets: [0],\n\t\t\tlengths: [cssLength],\n\t\t\tgeneratedLengths: [cssLength],\n\t\t\tdata: {\n\t\t\t\tverification: true,\n\t\t\t\tcompletion: true,\n\t\t\t\tsemantic: true,\n\t\t\t\tnavigation: true,\n\t\t\t\tstructure: true,\n\t\t\t\tformat: false,\n\t\t\t\tcustomData: {\n\t\t\t\t\tcontent: cssContent,\n\t\t\t\t\tembeddedId: `style_${index}`,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tembeddedCodes.push({\n\t\t\tid: `style_${index}`,\n\t\t\tlanguageId: 'css',\n\t\t\tsnapshot: {\n\t\t\t\tgetText: (start, end) => cssContent.substring(start, end),\n\t\t\t\tgetLength: () => cssLength,\n\t\t\t\tgetChangeRange: () => undefined,\n\t\t\t},\n\t\t\tmappings: [mapping],\n\t\t\tembeddedCodes: [],\n\t\t});\n\n\t\tindex++;\n\t}\n\n\tif (embeddedCodes.length > 0) {\n\t\tlog(`Extracted ${embeddedCodes.length} CSS embedded codes from style tags`);\n\t}\n\n\treturn embeddedCodes;\n}\n\n/**\n * Insert a typed dot back into the transpiled code and update mappings so the\n * source and generated offsets stay aligned for completion requests.\n * @param {VolarMappingsResult} transpiled\n * @param {number} dotPosition\n * @returns {number | null}\n */\nfunction restore_typed_dot_in_transpiled_code(transpiled, dotPosition) {\n\tlet dot_mapping = null;\n\n\tfor (const mapping of transpiled.mappings) {\n\t\tconst source_end = mapping.sourceOffsets[0] + mapping.lengths[0];\n\t\tif (source_end === dotPosition) {\n\t\t\tdot_mapping = mapping;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!dot_mapping) {\n\t\treturn null;\n\t}\n\n\tconst generated_length = dot_mapping.generatedLengths[0];\n\tconst insertedDotPosition = dot_mapping.generatedOffsets[0] + generated_length;\n\n\ttranspiled.code =\n\t\ttranspiled.code.substring(0, insertedDotPosition) +\n\t\t'.' +\n\t\ttranspiled.code.substring(insertedDotPosition);\n\n\t// Create a separate 1:1 mapping for the dot character instead of extending\n\t// the existing mapping. When source and generated lengths differ (e.g.\n\t// #ripple → _$__u0023_ripple), Volar's translateOffset uses\n\t// Math.min(relativePos, toLength) which would map the cursor after the dot\n\t// to the middle of the generated identifier instead of after it.\n\n\t/** @type {CodeMapping} */\n\tconst new_dot_mapping = {\n\t\tsourceOffsets: [dotPosition],\n\t\tgeneratedOffsets: [insertedDotPosition],\n\t\tlengths: [1],\n\t\tgeneratedLengths: [1],\n\t\tdata: { ...dot_mapping.data },\n\t};\n\n\t// Find the index to insert after dot_mapping\n\tconst dot_mapping_index = transpiled.mappings.indexOf(dot_mapping);\n\ttranspiled.mappings.splice(dot_mapping_index + 1, 0, new_dot_mapping);\n\n\tfor (const mapping of transpiled.mappings) {\n\t\tif (\n\t\t\tmapping !== dot_mapping &&\n\t\t\tmapping !== new_dot_mapping &&\n\t\t\tmapping.generatedOffsets[0] >= insertedDotPosition\n\t\t) {\n\t\t\tmapping.generatedOffsets[0] += 1;\n\t\t}\n\t\tif (\n\t\t\tmapping !== dot_mapping &&\n\t\t\tmapping !== new_dot_mapping &&\n\t\t\tmapping.sourceOffsets[0] >= dotPosition\n\t\t) {\n\t\t\tmapping.sourceOffsets[0] += 1;\n\t\t}\n\t}\n\n\treturn insertedDotPosition;\n}\n\n/**\n * @template T\n * @param {{ options?: CompilerOptions } & T} config\n * @returns {{ options: CompilerOptions } & T}\n */\nexport const resolveConfig = (config) => {\n\tconst baseOptions = config.options ?? /** @type {CompilerOptions} */ ({});\n\t/** @type {CompilerOptions} */\n\tconst options = { ...baseOptions };\n\n\t// Default target: align with modern bundlers while staying configurable.\n\tif (options.target === undefined) {\n\t\toptions.target = ts.ScriptTarget.ESNext;\n\t}\n\n\t/** @param {string} libName */\n\tconst normalizeLibName = (libName) => {\n\t\tif (typeof libName !== 'string' || libName.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst trimmed = libName.trim();\n\t\tif (trimmed.startsWith('lib.')) {\n\t\t\treturn trimmed.toLowerCase();\n\t\t}\n\t\treturn `lib.${trimmed.toLowerCase().replace(/\\s+/g, '').replace(/_/g, '.')}\\.d.ts`;\n\t};\n\n\tconst normalizedLibs = new Set(\n\t\t(options.lib ?? []).map(normalizeLibName).filter((lib) => typeof lib === 'string'),\n\t);\n\n\tif (normalizedLibs.size === 0) {\n\t\tconst host = ts.createCompilerHost(options);\n\t\tconst defaultLibFileName = host.getDefaultLibFileName(options).toLowerCase();\n\t\tnormalizedLibs.add(defaultLibFileName);\n\t\tnormalizedLibs.add('lib.dom.d.ts');\n\t\tnormalizedLibs.add('lib.dom.iterable.d.ts');\n\t}\n\n\toptions.lib = [...normalizedLibs];\n\n\t// Default typeRoots: automatically discover @types like tsserver.\n\tif (!options.types) {\n\t\tconst host = ts.createCompilerHost(options);\n\t\tconst typeRoots = ts.getEffectiveTypeRoots(options, host);\n\t\tif (typeRoots && typeRoots.length > 0) {\n\t\t\toptions.typeRoots = typeRoots;\n\t\t}\n\t}\n\n\treturn {\n\t\t...config,\n\t\toptions,\n\t};\n};\n\n/** @type {Map<string, string | null>} */\nexport const path2RipplePathMap = new Map();\n/** @type {Map<string, string>} */\nconst pathToTypesCache = new Map();\n/** @type {Map<string, RegExpMatchArray>} */\nconst typeNameMatchCache = new Map();\n/** @type {Map<string, { name: string | null, dependencies: Set<string> } | null>} */\nconst pathToPackageManifestCache = new Map();\n\n/**\n * @param {ScriptId} fileNameOrUri\n * @returns {string}\n */\nexport function normalizeFileNameOrUri(fileNameOrUri) {\n\treturn typeof fileNameOrUri === 'string'\n\t\t? fileNameOrUri\n\t\t: fileNameOrUri.fsPath.replace(/\\\\/g, '/');\n}\n\n/**\n * @param {string} start_dir\n * @param {(file_path: import('fs').PathLike) => boolean} [exists_sync]\n * @returns {{ name: string | null, dependencies: Set<string> } | null}\n */\nfunction get_nearest_package_manifest(start_dir, exists_sync = fs.existsSync) {\n\tlet current_dir = start_dir;\n\t/** @type {string[]} */\n\tconst visited_dirs = [];\n\n\twhile (current_dir) {\n\t\tif (pathToPackageManifestCache.has(current_dir)) {\n\t\t\tconst cached_manifest = pathToPackageManifestCache.get(current_dir) ?? null;\n\t\t\tfor (const visited_dir of visited_dirs) {\n\t\t\t\tpathToPackageManifestCache.set(visited_dir, cached_manifest);\n\t\t\t}\n\t\t\treturn cached_manifest;\n\t\t}\n\n\t\tvisited_dirs.push(current_dir);\n\n\t\tconst package_json_path = path.join(current_dir, 'package.json');\n\t\tif (exists_sync(package_json_path)) {\n\t\t\ttry {\n\t\t\t\tconst package_json = JSON.parse(fs.readFileSync(package_json_path, 'utf8'));\n\t\t\t\tconst dependencies = new Set([\n\t\t\t\t\t...Object.keys(package_json.dependencies ?? {}),\n\t\t\t\t\t...Object.keys(package_json.devDependencies ?? {}),\n\t\t\t\t\t...Object.keys(package_json.peerDependencies ?? {}),\n\t\t\t\t\t...Object.keys(package_json.optionalDependencies ?? {}),\n\t\t\t\t]);\n\t\t\t\tconst package_manifest = {\n\t\t\t\t\tname: typeof package_json.name === 'string' ? package_json.name : null,\n\t\t\t\t\tdependencies,\n\t\t\t\t};\n\n\t\t\t\tfor (const visited_dir of visited_dirs) {\n\t\t\t\t\tpathToPackageManifestCache.set(visited_dir, package_manifest);\n\t\t\t\t}\n\n\t\t\t\treturn package_manifest;\n\t\t\t} catch {\n\t\t\t\tfor (const visited_dir of visited_dirs) {\n\t\t\t\t\tpathToPackageManifestCache.set(visited_dir, null);\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\tconst parent_dir = path.dirname(current_dir);\n\t\tif (parent_dir === current_dir) {\n\t\t\tbreak;\n\t\t}\n\t\tcurrent_dir = parent_dir;\n\t}\n\n\tfor (const visited_dir of visited_dirs) {\n\t\tpathToPackageManifestCache.set(visited_dir, null);\n\t}\n\n\treturn null;\n}\n\n/**\n * @param {{ name: string | null, dependencies: Set<string> } | null} package_manifest\n * @param {string} compiler_name\n * @param {string[]} package_hints\n * @returns {boolean}\n */\nfunction package_manifest_matches_compiler(package_manifest, compiler_name, package_hints) {\n\tif (!package_manifest) {\n\t\treturn false;\n\t}\n\n\tif (\n\t\tpackage_manifest.name === compiler_name ||\n\t\tpackage_hints.includes(package_manifest.name ?? '')\n\t) {\n\t\treturn true;\n\t}\n\n\tif (package_manifest.dependencies.has(compiler_name)) {\n\t\treturn true;\n\t}\n\n\tfor (const package_hint of package_hints) {\n\t\tif (package_manifest.dependencies.has(package_hint)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\n/**\n * @param {string} normalized_file_name\n * @returns {TSRXCompilerModule | undefined}\n */\nfunction get_tsrx_compiler(normalized_file_name) {\n\tconst compiler_path = get_compiler_entry_for_file(normalized_file_name);\n\tif (compiler_path) {\n\t\treturn require(compiler_path);\n\t}\n}\n\n/**\n * @param {string} normalized_file_name\n * @param {(file_path: import('fs').PathLike) => boolean} [exists_sync]\n * @param {Map<string, string | null>} [compiler_path_map]\n * @returns {string | undefined}\n */\nexport function find_workspace_compiler_entry_for_file(\n\tnormalized_file_name,\n\texists_sync = fs.existsSync,\n\tcompiler_path_map = path2RipplePathMap,\n) {\n\tconst parts = normalized_file_name.split('/');\n\tconst ext = path.extname(normalized_file_name);\n\n\tfor (let i = parts.length - 2; i >= 0; i--) {\n\t\tconst dir = parts.slice(0, i + 1).join('/');\n\t\tconst cache_key = dir + '\\0' + ext;\n\n\t\tif (!compiler_path_map.has(cache_key)) {\n\t\t\t/** @type {Array<[string, string, string[]]>} */\n\t\t\tconst available_candidates = [];\n\t\t\tfor (const [\n\t\t\t\tcompiler_name,\n\t\t\t\tcompiler_dir_parts,\n\t\t\t\tsupported_extensions,\n\t\t\t\tpackage_hints,\n\t\t\t] of COMPILER_CANDIDATES) {\n\t\t\t\tif (!supported_extensions.includes(ext)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst full_path = [dir, ...compiler_dir_parts, 'src', 'index.js'].join('/');\n\t\t\t\tif (exists_sync(full_path)) {\n\t\t\t\t\tavailable_candidates.push([compiler_name, full_path, package_hints]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet found_path = null;\n\t\t\tif (available_candidates.length > 0) {\n\t\t\t\tconst package_manifest = get_nearest_package_manifest(dir, exists_sync);\n\t\t\t\tconst preferred_candidate = available_candidates.find(([compiler_name, , package_hints]) =>\n\t\t\t\t\tpackage_manifest_matches_compiler(package_manifest, compiler_name, package_hints),\n\t\t\t\t);\n\t\t\t\tfound_path = preferred_candidate?.[1] ?? available_candidates[0][1];\n\t\t\t\tlog('Found tsrx compiler at:', found_path, 'for extension:', ext);\n\t\t\t}\n\n\t\t\tcompiler_path_map.set(cache_key, found_path);\n\t\t}\n\n\t\tconst compiler_path = compiler_path_map.get(cache_key);\n\t\tif (compiler_path) {\n\t\t\treturn compiler_path;\n\t\t}\n\t}\n}\n\n/**\n * @param {string} normalized_file_name\n * @returns {string | undefined}\n */\nexport function get_compiler_entry_for_file(normalized_file_name) {\n\tconst ext = path.extname(normalized_file_name);\n\tconst package_manifest = get_nearest_package_manifest(path.dirname(normalized_file_name));\n\n\tconst workspace_compiler_path = find_workspace_compiler_entry_for_file(normalized_file_name);\n\tif (workspace_compiler_path) {\n\t\treturn workspace_compiler_path;\n\t}\n\n\tconst warn_message = `No supported tsrx compiler found in workspace for ${normalized_file_name}.`;\n\n\t// Fallback: look for a packaged compiler.\n\tlet current_dir = root_dirname;\n\n\twhile (current_dir) {\n\t\t/** @type {Array<[string, string, string[]]>} */\n\t\tconst available_candidates = [];\n\t\tfor (const [\n\t\t\tcompiler_name,\n\t\t\tcompiler_dir_parts,\n\t\t\tsupported_extensions,\n\t\t\tpackage_hints,\n\t\t] of COMPILER_CANDIDATES) {\n\t\t\tif (!supported_extensions.includes(ext)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst full_path = path.join(current_dir, ...compiler_dir_parts);\n\t\t\tconst entry_path = path.join(full_path, 'src', 'index.js');\n\t\t\tif (fs.existsSync(entry_path)) {\n\t\t\t\tavailable_candidates.push([compiler_name, entry_path, package_hints]);\n\t\t\t}\n\t\t}\n\n\t\tif (available_candidates.length > 0) {\n\t\t\tconst preferred_candidate = available_candidates.find(([compiler_name, , package_hints]) =>\n\t\t\t\tpackage_manifest_matches_compiler(package_manifest, compiler_name, package_hints),\n\t\t\t);\n\t\t\tconst entry_path = preferred_candidate?.[1] ?? available_candidates[0][1];\n\t\t\tlogWarning(`${warn_message} Using packaged version at ${entry_path}`);\n\t\t\treturn entry_path;\n\t\t}\n\n\t\tconst parent_dir = path.dirname(current_dir);\n\t\tif (parent_dir === current_dir) {\n\t\t\tbreak;\n\t\t}\n\t\tcurrent_dir = parent_dir;\n\t}\n\n\treturn undefined;\n}\n\n/**\n * @param {string} typesFilePath\n * @returns {string | undefined}\n */\nexport function getCachedTypeDefinitionFile(typesFilePath) {\n\tconst cached = pathToTypesCache.get(typesFilePath);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tif (!fs.existsSync(typesFilePath)) {\n\t\tlogWarning(`Types file does not exist at path: ${typesFilePath}`);\n\t\treturn;\n\t}\n\n\tlog(`Found ripple types at: ${typesFilePath}`);\n\n\t// Read the file to find the class definition offset\n\tconst fileContent = fs.readFileSync(typesFilePath, 'utf8');\n\n\tif (!fileContent) {\n\t\tlogWarning(`Failed to read content of types file at: ${typesFilePath}`);\n\t\treturn;\n\t}\n\n\tpathToTypesCache.set(typesFilePath, fileContent);\n\treturn fileContent;\n}\n\n/**\n * @param {string} typeName\n * @param {string} text\n * @returns {RegExpMatchArray | undefined}\n */\nexport function getCachedTypeMatches(typeName, text) {\n\tconst cached = typeNameMatchCache.get(typeName);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\n\tconst searchPattern = new RegExp(\n\t\t`(?:export\\\\s+(?:declare\\\\s+)?|declare\\\\s+)(class|function)\\\\s+${typeName}`,\n\t);\n\n\tconst match = text.match(searchPattern);\n\n\tif (match && match.index !== undefined) {\n\t\ttypeNameMatchCache.set(typeName, match);\n\t\treturn match;\n\t}\n\n\treturn;\n}\n\n/**\n * @param {string} normalized_file_name\n * @returns {string | undefined}\n */\nexport function get_compiler_dir_for_file(normalized_file_name) {\n\tconst entry = get_compiler_entry_for_file(normalized_file_name);\n\tif (entry) {\n\t\t// Walk up from .../src/index.js to the package root\n\t\treturn path.dirname(path.dirname(entry));\n\t}\n}\n\nexport { get_compiler_dir_for_file as getRippleDirForFile };\n\n/** Reset module-level state used in tests. */\nexport function _reset_for_test() {\n\tpath2RipplePathMap.clear();\n\tpathToPackageManifestCache.clear();\n}\n","import { createLanguageServicePlugin } from '@volar/typescript/lib/quickstart/createLanguageServicePlugin.js';\nimport { getRippleLanguagePlugin } from './language.js';\n\n// This TypeScript plugin is loaded by TypeScript's tsserver when configured in tsconfig.json.\n// Note: When using the Ripple VS Code extension, the language server handles everything,\n// so this plugin is redundant but harmless (both instances work independently).\n// This plugin is useful for non-VS Code editors or when not using the language server.\nexport default createLanguageServicePlugin(() => ({\n\tlanguagePlugins: [getRippleLanguagePlugin()],\n}));\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"mappings":"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"}
package/dist/package.json DELETED
@@ -1 +0,0 @@
1
- {"type":"commonjs"}