markstream-vue2 0.0.20 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +1 -1
  2. package/dist/chunks/cssMode-2e2be6eb.cjs +1 -0
  3. package/dist/chunks/cssMode-32774a06.js +2044 -0
  4. package/dist/chunks/htmlMode-076e483c.js +2060 -0
  5. package/dist/chunks/htmlMode-b62439a8.cjs +1 -0
  6. package/dist/{index6.js → chunks/index-292bb72c.js} +1 -1
  7. package/dist/chunks/index-2a7bea2c.js +7 -0
  8. package/dist/chunks/index-42252d16.js +7 -0
  9. package/dist/chunks/index-8693b3db.cjs +1 -0
  10. package/dist/chunks/index-87cdc60f.js +7 -0
  11. package/dist/chunks/index-91325ae4.cjs +1 -0
  12. package/dist/chunks/index-b8d5777d.cjs +1 -0
  13. package/dist/chunks/index-c6f74f2d.cjs +1 -0
  14. package/dist/chunks/index-e0a22210.js +7 -0
  15. package/dist/chunks/index-e1315bc2.cjs +1 -0
  16. package/dist/chunks/index.legacy-1c6de434.js +125497 -0
  17. package/dist/chunks/index.legacy-bcde4164.cjs +1 -0
  18. package/dist/chunks/jsonMode-186d141c.js +2759 -0
  19. package/dist/chunks/jsonMode-bb4aa400.cjs +1 -0
  20. package/dist/chunks/languageIconExtended-feb078ee.js +65 -0
  21. package/dist/chunks/mhchem-5e563c97.js +13397 -0
  22. package/dist/chunks/performance-monitor-d79527de.js +128 -0
  23. package/dist/chunks/tsMode-1535ecd2.cjs +1 -0
  24. package/dist/chunks/tsMode-6444eb2b.js +1315 -0
  25. package/dist/index.cjs +1 -1
  26. package/dist/index.css +1 -1
  27. package/dist/index.js +11706 -1
  28. package/dist/index.px.css +1 -1
  29. package/dist/index.tailwind.css +1 -1
  30. package/dist/tailwind.ts +1 -1
  31. package/package.json +5 -4
  32. package/dist/index.legacy.js +0 -1
  33. package/dist/index2.js +0 -1
  34. package/dist/index3.js +0 -1
  35. package/dist/index4.js +0 -1
  36. package/dist/index5.js +0 -1
  37. /package/dist/{languageIconExtended.js → chunks/languageIconExtended-4baf8bdb.cjs} +0 -0
  38. /package/dist/{mhchem.js → chunks/mhchem-4785e7bc.cjs} +0 -0
  39. /package/dist/{performance-monitor.js → chunks/performance-monitor-698d0e66.cjs} +0 -0
@@ -0,0 +1,128 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ class PerformanceMonitor {
8
+ constructor() {
9
+ __publicField(this, "metrics", []);
10
+ __publicField(this, "enabled", false);
11
+ __publicField(this, "maxMetrics", 1e3);
12
+ }
13
+ // Prevent memory leak
14
+ enable() {
15
+ this.enabled = true;
16
+ }
17
+ disable() {
18
+ this.enabled = false;
19
+ }
20
+ recordRender(metrics) {
21
+ if (!this.enabled)
22
+ return;
23
+ this.metrics.push(metrics);
24
+ if (this.metrics.length > this.maxMetrics) {
25
+ this.metrics.shift();
26
+ }
27
+ }
28
+ getStats() {
29
+ if (this.metrics.length === 0) {
30
+ return {
31
+ totalRenders: 0,
32
+ cacheHitRate: 0,
33
+ averageWorkerTime: 0,
34
+ averageDirectTime: 0,
35
+ averageCacheHitTime: 0,
36
+ workerSavings: 0,
37
+ recommendation: "Insufficient data"
38
+ };
39
+ }
40
+ const workerMetrics = this.metrics.filter((m) => m.type === "worker" && m.success);
41
+ const directMetrics = this.metrics.filter((m) => m.type === "direct" && m.success);
42
+ const cacheHitMetrics = this.metrics.filter((m) => m.type === "cache-hit");
43
+ const totalRenders = this.metrics.length;
44
+ const cacheHits = cacheHitMetrics.length;
45
+ const cacheHitRate = cacheHits / totalRenders * 100;
46
+ const avgWorkerTime = workerMetrics.length > 0 ? workerMetrics.reduce((sum, m) => sum + m.duration, 0) / workerMetrics.length : 0;
47
+ const avgDirectTime = directMetrics.length > 0 ? directMetrics.reduce((sum, m) => sum + m.duration, 0) / directMetrics.length : 0;
48
+ const avgCacheHitTime = cacheHitMetrics.length > 0 ? cacheHitMetrics.reduce((sum, m) => sum + m.duration, 0) / cacheHitMetrics.length : 0;
49
+ const estimatedDirectTime = totalRenders * avgDirectTime;
50
+ const actualTime = workerMetrics.reduce((sum, m) => sum + m.duration, 0) + directMetrics.reduce((sum, m) => sum + m.duration, 0) + cacheHitMetrics.reduce((sum, m) => sum + m.duration, 0);
51
+ const workerSavings = estimatedDirectTime - actualTime;
52
+ let recommendation = "";
53
+ if (cacheHitRate > 70 && avgWorkerTime < avgDirectTime * 2) {
54
+ recommendation = "✅ Worker + Cache is highly beneficial";
55
+ } else if (cacheHitRate > 50) {
56
+ recommendation = "✅ Worker + Cache is beneficial";
57
+ } else if (avgWorkerTime > avgDirectTime * 3) {
58
+ recommendation = "⚠️ Worker overhead too high, consider direct rendering";
59
+ } else if (avgDirectTime < 5) {
60
+ recommendation = "⚠️ Formulas too simple, Worker overhead may not be worth it";
61
+ } else {
62
+ recommendation = "✅ Worker prevents main thread blocking";
63
+ }
64
+ return {
65
+ totalRenders,
66
+ cacheHits,
67
+ cacheHitRate: cacheHitRate.toFixed(1),
68
+ workerCalls: workerMetrics.length,
69
+ directCalls: directMetrics.length,
70
+ averageWorkerTime: avgWorkerTime.toFixed(2),
71
+ averageDirectTime: avgDirectTime.toFixed(2),
72
+ averageCacheHitTime: avgCacheHitTime.toFixed(3),
73
+ workerSavings: workerSavings.toFixed(2),
74
+ recommendation
75
+ };
76
+ }
77
+ printReport() {
78
+ const stats = this.getStats();
79
+ console.group("📊 KaTeX Rendering Performance Report");
80
+ console.log(`Total renders: ${stats.totalRenders}`);
81
+ console.log(`Cache hits: ${stats.cacheHits} (${stats.cacheHitRate}%)`);
82
+ console.log(`Worker calls: ${stats.workerCalls}`);
83
+ console.log(`Direct calls: ${stats.directCalls}`);
84
+ console.log("");
85
+ console.log("Timing:");
86
+ console.log(` Worker average: ${stats.averageWorkerTime}ms`);
87
+ console.log(` Direct average: ${stats.averageDirectTime}ms`);
88
+ console.log(` Cache hit average: ${stats.averageCacheHitTime}ms`);
89
+ console.log("");
90
+ console.log(`Time saved: ${stats.workerSavings}ms`);
91
+ console.log(`Recommendation: ${stats.recommendation}`);
92
+ console.groupEnd();
93
+ return stats;
94
+ }
95
+ reset() {
96
+ this.metrics = [];
97
+ }
98
+ // Export metrics for analysis
99
+ exportMetrics() {
100
+ return {
101
+ metrics: [...this.metrics],
102
+ stats: this.getStats(),
103
+ timestamp: Date.now()
104
+ };
105
+ }
106
+ }
107
+ const perfMonitor = new PerformanceMonitor();
108
+ function enablePerfMonitoring() {
109
+ perfMonitor.enable();
110
+ console.log("📊 KaTeX performance monitoring enabled");
111
+ }
112
+ function disablePerfMonitoring() {
113
+ perfMonitor.disable();
114
+ console.log("📊 KaTeX performance monitoring disabled");
115
+ }
116
+ function getPerfReport() {
117
+ return perfMonitor.printReport();
118
+ }
119
+ if (typeof window !== "undefined") {
120
+ window.__katexPerfReport = getPerfReport;
121
+ window.__katexPerfMonitor = perfMonitor;
122
+ }
123
+ export {
124
+ disablePerfMonitoring,
125
+ enablePerfMonitoring,
126
+ getPerfReport,
127
+ perfMonitor
128
+ };
@@ -0,0 +1 @@
1
+ "use strict";var e,t=Object.defineProperty,i=Object.defineProperties,s=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,a=(e,i,s)=>i in e?t(e,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[i]=s,l=(e,t,i)=>new Promise((s,r)=>{var n=e=>{try{a(i.next(e))}catch(t){r(t)}},o=e=>{try{a(i.throw(e))}catch(t){r(t)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(n,o);a((i=i.apply(e,t)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./index.legacy-bcde4164.cjs");require("shiki");var c=Object.defineProperty,u=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,m=(e,t,i,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of g(t))p.call(e,r)||r===i||c(e,r,{get:()=>t[r],enumerable:!(s=u(t,r))||s.enumerable});return e},h={};m(h,d.monaco_editor_core_star,"default");var b=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}_updateExtraLibs(){return l(this,null,function*(){if(!this._worker)return;const e=++this._updateExtraLibsToken,t=yield this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())})}_getClient(){return this._client||(this._client=(()=>l(this,null,function*(){return this._worker=h.editor.createWebWorker({moduleId:"vs/language/typescript/tsWorker",label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?yield this._worker.withSyncedResources(h.editor.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):yield this._worker.getProxy()}))()),this._client}getLanguageServiceWorker(...e){return l(this,null,function*(){const t=yield this._getClient();return this._worker&&(yield this._worker.withSyncedResources(e)),t})}},f={};function y(e,t,i=0){if("string"==typeof e)return e;if(void 0===e)return"";let s="";if(i){s+=t;for(let e=0;e<i;e++)s+=" "}if(s+=e.messageText,i++,e.next)for(const r of e.next)s+=y(r,t,i);return s}function _(e){return e?e.map(e=>e.text).join(""):""}f["lib.d.ts"]=!0,f["lib.decorators.d.ts"]=!0,f["lib.decorators.legacy.d.ts"]=!0,f["lib.dom.asynciterable.d.ts"]=!0,f["lib.dom.d.ts"]=!0,f["lib.dom.iterable.d.ts"]=!0,f["lib.es2015.collection.d.ts"]=!0,f["lib.es2015.core.d.ts"]=!0,f["lib.es2015.d.ts"]=!0,f["lib.es2015.generator.d.ts"]=!0,f["lib.es2015.iterable.d.ts"]=!0,f["lib.es2015.promise.d.ts"]=!0,f["lib.es2015.proxy.d.ts"]=!0,f["lib.es2015.reflect.d.ts"]=!0,f["lib.es2015.symbol.d.ts"]=!0,f["lib.es2015.symbol.wellknown.d.ts"]=!0,f["lib.es2016.array.include.d.ts"]=!0,f["lib.es2016.d.ts"]=!0,f["lib.es2016.full.d.ts"]=!0,f["lib.es2016.intl.d.ts"]=!0,f["lib.es2017.d.ts"]=!0,f["lib.es2017.date.d.ts"]=!0,f["lib.es2017.full.d.ts"]=!0,f["lib.es2017.intl.d.ts"]=!0,f["lib.es2017.object.d.ts"]=!0,f["lib.es2017.sharedmemory.d.ts"]=!0,f["lib.es2017.string.d.ts"]=!0,f["lib.es2017.typedarrays.d.ts"]=!0,f["lib.es2018.asyncgenerator.d.ts"]=!0,f["lib.es2018.asynciterable.d.ts"]=!0,f["lib.es2018.d.ts"]=!0,f["lib.es2018.full.d.ts"]=!0,f["lib.es2018.intl.d.ts"]=!0,f["lib.es2018.promise.d.ts"]=!0,f["lib.es2018.regexp.d.ts"]=!0,f["lib.es2019.array.d.ts"]=!0,f["lib.es2019.d.ts"]=!0,f["lib.es2019.full.d.ts"]=!0,f["lib.es2019.intl.d.ts"]=!0,f["lib.es2019.object.d.ts"]=!0,f["lib.es2019.string.d.ts"]=!0,f["lib.es2019.symbol.d.ts"]=!0,f["lib.es2020.bigint.d.ts"]=!0,f["lib.es2020.d.ts"]=!0,f["lib.es2020.date.d.ts"]=!0,f["lib.es2020.full.d.ts"]=!0,f["lib.es2020.intl.d.ts"]=!0,f["lib.es2020.number.d.ts"]=!0,f["lib.es2020.promise.d.ts"]=!0,f["lib.es2020.sharedmemory.d.ts"]=!0,f["lib.es2020.string.d.ts"]=!0,f["lib.es2020.symbol.wellknown.d.ts"]=!0,f["lib.es2021.d.ts"]=!0,f["lib.es2021.full.d.ts"]=!0,f["lib.es2021.intl.d.ts"]=!0,f["lib.es2021.promise.d.ts"]=!0,f["lib.es2021.string.d.ts"]=!0,f["lib.es2021.weakref.d.ts"]=!0,f["lib.es2022.array.d.ts"]=!0,f["lib.es2022.d.ts"]=!0,f["lib.es2022.error.d.ts"]=!0,f["lib.es2022.full.d.ts"]=!0,f["lib.es2022.intl.d.ts"]=!0,f["lib.es2022.object.d.ts"]=!0,f["lib.es2022.regexp.d.ts"]=!0,f["lib.es2022.sharedmemory.d.ts"]=!0,f["lib.es2022.string.d.ts"]=!0,f["lib.es2023.array.d.ts"]=!0,f["lib.es2023.collection.d.ts"]=!0,f["lib.es2023.d.ts"]=!0,f["lib.es2023.full.d.ts"]=!0,f["lib.es5.d.ts"]=!0,f["lib.es6.d.ts"]=!0,f["lib.esnext.collection.d.ts"]=!0,f["lib.esnext.d.ts"]=!0,f["lib.esnext.decorators.d.ts"]=!0,f["lib.esnext.disposable.d.ts"]=!0,f["lib.esnext.full.d.ts"]=!0,f["lib.esnext.intl.d.ts"]=!0,f["lib.esnext.object.d.ts"]=!0,f["lib.esnext.promise.d.ts"]=!0,f["lib.scripthost.d.ts"]=!0,f["lib.webworker.asynciterable.d.ts"]=!0,f["lib.webworker.d.ts"]=!0,f["lib.webworker.importscripts.d.ts"]=!0,f["lib.webworker.iterable.d.ts"]=!0;var x=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let i=e.getPositionAt(t.start),s=e.getPositionAt(t.start+t.length),{lineNumber:r,column:n}=i,{lineNumber:o,column:a}=s;return{startLineNumber:r,startColumn:n,endLineNumber:o,endColumn:a}}},S=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return!!e&&0===e.path.indexOf("/lib.")&&!!f[e.path.slice(1)]}getOrCreateModel(e){const t=h.Uri.parse(e),i=h.editor.getModel(t);if(i)return i;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return h.editor.createModel(this._libFiles[t.path.slice(1)],"typescript",t);const s=d.typescriptDefaults.getExtraLibs()[e];return s?h.editor.createModel(s.content,"typescript",t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}fetchLibFilesIfNecessary(e){return l(this,null,function*(){this._containsLibFile(e)&&(yield this._fetchLibFiles())})}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e})),this._fetchLibFilesPromise}},v=class extends x{constructor(e,t,i,s){super(s),this._libFiles=e,this._defaults=t,this._selector=i,this._disposables=[],this._listener=Object.create(null);const r=e=>{if(e.getLanguageId()!==i)return;const t=()=>{const{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)};let s;const r=e.onDidChangeContent(()=>{clearTimeout(s),s=window.setTimeout(t,500)}),n=e.onDidChangeAttached(()=>{const{onlyVisible:i}=this._defaults.getDiagnosticsOptions();i&&(e.isAttachedToEditor()?t():h.editor.setModelMarkers(e,this._selector,[]))});this._listener[e.uri.toString()]={dispose(){r.dispose(),n.dispose(),clearTimeout(s)}},t()},n=e=>{h.editor.setModelMarkers(e,this._selector,[]);const t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(h.editor.onDidCreateModel(e=>r(e))),this._disposables.push(h.editor.onWillDisposeModel(n)),this._disposables.push(h.editor.onDidChangeModelLanguage(e=>{n(e.model),r(e.model)})),this._disposables.push({dispose(){for(const e of h.editor.getModels())n(e)}});const o=()=>{for(const e of h.editor.getModels())n(e),r(e)};this._disposables.push(this._defaults.onDidChange(o)),this._disposables.push(this._defaults.onDidExtraLibsChange(o)),h.editor.getModels().forEach(e=>r(e))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}_doValidate(e){return l(this,null,function*(){const t=yield this._worker(e.uri);if(e.isDisposed())return;const i=[],{noSyntaxValidation:s,noSemanticValidation:r,noSuggestionDiagnostics:n}=this._defaults.getDiagnosticsOptions();s||i.push(t.getSyntacticDiagnostics(e.uri.toString())),r||i.push(t.getSemanticDiagnostics(e.uri.toString())),n||i.push(t.getSuggestionDiagnostics(e.uri.toString()));const o=yield Promise.all(i);if(!o||e.isDisposed())return;const a=o.reduce((e,t)=>t.concat(e),[]).filter(e=>-1===(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code)),l=a.map(e=>e.relatedInformation||[]).reduce((e,t)=>t.concat(e),[]).map(e=>e.file?h.Uri.parse(e.file.fileName):null);yield this._libFiles.fetchLibFilesIfNecessary(l),e.isDisposed()||h.editor.setModelMarkers(e,this._selector,a.map(t=>this._convertDiagnostics(e,t)))})}_convertDiagnostics(e,t){const i=t.start||0,s=t.length||1,{lineNumber:r,column:n}=e.getPositionAt(i),{lineNumber:o,column:a}=e.getPositionAt(i+s),l=[];return t.reportsUnnecessary&&l.push(h.MarkerTag.Unnecessary),t.reportsDeprecated&&l.push(h.MarkerTag.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:r,startColumn:n,endLineNumber:o,endColumn:a,message:y(t.messageText,"\n"),code:t.code.toString(),tags:l,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];const i=[];return t.forEach(t=>{let s=e;if(t.file&&(s=this._libFiles.getOrCreateModel(t.file.fileName)),!s)return;const r=t.start||0,n=t.length||1,{lineNumber:o,column:a}=s.getPositionAt(r),{lineNumber:l,column:d}=s.getPositionAt(r+n);i.push({resource:s.uri,startLineNumber:o,startColumn:a,endLineNumber:l,endColumn:d,message:y(t.messageText,"\n")})}),i}_tsDiagnosticCategoryToMarkerSeverity(e){switch(e){case 1:return h.MarkerSeverity.Error;case 3:return h.MarkerSeverity.Info;case 0:return h.MarkerSeverity.Warning;case 2:return h.MarkerSeverity.Hint}return h.MarkerSeverity.Info}},k=class e extends x{get triggerCharacters(){return["."]}provideCompletionItems(t,i,s,r){return l(this,null,function*(){const s=t.getWordUntilPosition(i),r=new h.Range(i.lineNumber,s.startColumn,i.lineNumber,s.endColumn),n=t.uri,o=t.getOffsetAt(i),a=yield this._worker(n);if(t.isDisposed())return;const l=yield a.getCompletionsAtPosition(n.toString(),o);return l&&!t.isDisposed()?{suggestions:l.entries.map(s=>{let a=r;if(s.replacementSpan){const e=t.getPositionAt(s.replacementSpan.start),i=t.getPositionAt(s.replacementSpan.start+s.replacementSpan.length);a=new h.Range(e.lineNumber,e.column,i.lineNumber,i.column)}const l=[];return void 0!==s.kindModifiers&&-1!==s.kindModifiers.indexOf("deprecated")&&l.push(h.languages.CompletionItemTag.Deprecated),{uri:n,position:i,offset:o,range:a,label:s.name,insertText:s.name,sortText:s.sortText,kind:e.convertKind(s.kind),tags:l}})}:void 0})}resolveCompletionItem(t,i){return l(this,null,function*(){const i=t,s=i.uri,r=i.position,n=i.offset,o=yield this._worker(s),a=yield o.getCompletionEntryDetails(s.toString(),n,i.label);return a?{uri:s,position:r,label:a.name,kind:e.convertKind(a.kind),detail:_(a.displayParts),documentation:{value:e.createDocumentationString(a)}}:i})}static convertKind(e){switch(e){case P.primitiveType:case P.keyword:return h.languages.CompletionItemKind.Keyword;case P.variable:case P.localVariable:return h.languages.CompletionItemKind.Variable;case P.memberVariable:case P.memberGetAccessor:case P.memberSetAccessor:return h.languages.CompletionItemKind.Field;case P.function:case P.memberFunction:case P.constructSignature:case P.callSignature:case P.indexSignature:return h.languages.CompletionItemKind.Function;case P.enum:return h.languages.CompletionItemKind.Enum;case P.module:return h.languages.CompletionItemKind.Module;case P.class:return h.languages.CompletionItemKind.Class;case P.interface:return h.languages.CompletionItemKind.Interface;case P.warning:return h.languages.CompletionItemKind.File}return h.languages.CompletionItemKind.Property}static createDocumentationString(e){let t=_(e.documentation);if(e.tags)for(const i of e.tags)t+=`\n\n${w(i)}`;return t}};function w(e){let t=`*@${e.name}*`;if("param"===e.name&&e.text){const[i,...s]=e.text;t+=`\`${i.text}\``,s.length>0&&(t+=` — ${s.map(e=>e.text).join(" ")}`)}else Array.isArray(e.text)?t+=` — ${e.text.map(e=>e.text).join(" ")}`:e.text&&(t+=` — ${e.text}`);return t}var C=class e extends x{constructor(){super(...arguments),this.signatureHelpTriggerCharacters=["(",","]}static _toSignatureHelpTriggerReason(e){switch(e.triggerKind){case h.languages.SignatureHelpTriggerKind.TriggerCharacter:return e.triggerCharacter?e.isRetrigger?{kind:"retrigger",triggerCharacter:e.triggerCharacter}:{kind:"characterTyped",triggerCharacter:e.triggerCharacter}:{kind:"invoked"};case h.languages.SignatureHelpTriggerKind.ContentChange:return e.isRetrigger?{kind:"retrigger"}:{kind:"invoked"};case h.languages.SignatureHelpTriggerKind.Invoke:default:return{kind:"invoked"}}}provideSignatureHelp(t,i,s,r){return l(this,null,function*(){const s=t.uri,n=t.getOffsetAt(i),o=yield this._worker(s);if(t.isDisposed())return;const a=yield o.getSignatureHelpItems(s.toString(),n,{triggerReason:e._toSignatureHelpTriggerReason(r)});if(!a||t.isDisposed())return;const l={activeSignature:a.selectedItemIndex,activeParameter:a.argumentIndex,signatures:[]};return a.items.forEach(e=>{const t={label:"",parameters:[]};t.documentation={value:_(e.documentation)},t.label+=_(e.prefixDisplayParts),e.parameters.forEach((i,s,r)=>{const n=_(i.displayParts),o={label:n,documentation:{value:_(i.documentation)}};t.label+=n,t.parameters.push(o),s<r.length-1&&(t.label+=_(e.separatorDisplayParts))}),t.label+=_(e.suffixDisplayParts),l.signatures.push(t)}),{value:l,dispose(){}}})}},D=class extends x{provideHover(e,t,i){return l(this,null,function*(){const i=e.uri,s=e.getOffsetAt(t),r=yield this._worker(i);if(e.isDisposed())return;const n=yield r.getQuickInfoAtPosition(i.toString(),s);if(!n||e.isDisposed())return;const o=_(n.documentation),a=n.tags?n.tags.map(e=>w(e)).join(" \n\n"):"",l=_(n.displayParts);return{range:this._textSpanToRange(e,n.textSpan),contents:[{value:"```typescript\n"+l+"\n```\n"},{value:o+(a?"\n\n"+a:"")}]}})}},A=class extends x{provideDocumentHighlights(e,t,i){return l(this,null,function*(){const i=e.uri,s=e.getOffsetAt(t),r=yield this._worker(i);if(e.isDisposed())return;const n=yield r.getDocumentHighlights(i.toString(),s,[i.toString()]);return n&&!e.isDisposed()?n.flatMap(t=>t.highlightSpans.map(t=>({range:this._textSpanToRange(e,t.textSpan),kind:"writtenReference"===t.kind?h.languages.DocumentHighlightKind.Write:h.languages.DocumentHighlightKind.Text}))):void 0})}},F=class extends x{constructor(e,t){super(t),this._libFiles=e}provideDefinition(e,t,i){return l(this,null,function*(){const i=e.uri,s=e.getOffsetAt(t),r=yield this._worker(i);if(e.isDisposed())return;const n=yield r.getDefinitionAtPosition(i.toString(),s);if(!n||e.isDisposed())return;if(yield this._libFiles.fetchLibFilesIfNecessary(n.map(e=>h.Uri.parse(e.fileName))),e.isDisposed())return;const o=[];for(let e of n){const t=this._libFiles.getOrCreateModel(e.fileName);t&&o.push({uri:t.uri,range:this._textSpanToRange(t,e.textSpan)})}return o})}},I=class extends x{constructor(e,t){super(t),this._libFiles=e}provideReferences(e,t,i,s){return l(this,null,function*(){const i=e.uri,s=e.getOffsetAt(t),r=yield this._worker(i);if(e.isDisposed())return;const n=yield r.getReferencesAtPosition(i.toString(),s);if(!n||e.isDisposed())return;if(yield this._libFiles.fetchLibFilesIfNecessary(n.map(e=>h.Uri.parse(e.fileName))),e.isDisposed())return;const o=[];for(let e of n){const t=this._libFiles.getOrCreateModel(e.fileName);t&&o.push({uri:t.uri,range:this._textSpanToRange(t,e.textSpan)})}return o})}},O=class extends x{provideDocumentSymbols(e,t){return l(this,null,function*(){const t=e.uri,i=yield this._worker(t);if(e.isDisposed())return;const s=yield i.getNavigationTree(t.toString());if(!s||e.isDisposed())return;const r=(t,i)=>{var s;return{name:t.text,detail:"",kind:T[t.kind]||h.languages.SymbolKind.Variable,range:this._textSpanToRange(e,t.spans[0]),selectionRange:this._textSpanToRange(e,t.spans[0]),tags:[],children:null==(s=t.childItems)?void 0:s.map(e=>r(e,t.text)),containerName:i}};return s.childItems?s.childItems.map(e=>r(e)):[]})}},P=((e=class{}).unknown="",e.keyword="keyword",e.script="script",e.module="module",e.class="class",e.interface="interface",e.type="type",e.enum="enum",e.variable="var",e.localVariable="local var",e.function="function",e.localFunction="local function",e.memberFunction="method",e.memberGetAccessor="getter",e.memberSetAccessor="setter",e.memberVariable="property",e.constructorImplementation="constructor",e.callSignature="call",e.indexSignature="index",e.constructSignature="construct",e.parameter="parameter",e.typeParameter="type parameter",e.primitiveType="primitive type",e.label="label",e.alias="alias",e.const="const",e.let="let",e.warning="warning",e),T=Object.create(null);T[P.module]=h.languages.SymbolKind.Module,T[P.class]=h.languages.SymbolKind.Class,T[P.enum]=h.languages.SymbolKind.Enum,T[P.interface]=h.languages.SymbolKind.Interface,T[P.memberFunction]=h.languages.SymbolKind.Method,T[P.memberVariable]=h.languages.SymbolKind.Property,T[P.memberGetAccessor]=h.languages.SymbolKind.Property,T[P.memberSetAccessor]=h.languages.SymbolKind.Property,T[P.variable]=h.languages.SymbolKind.Variable,T[P.const]=h.languages.SymbolKind.Variable,T[P.localVariable]=h.languages.SymbolKind.Variable,T[P.variable]=h.languages.SymbolKind.Variable,T[P.function]=h.languages.SymbolKind.Function,T[P.localFunction]=h.languages.SymbolKind.Function;var L,N,M=class extends x{static _convertOptions(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:2,NewLineCharacter:"\n",InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}}_convertTextChanges(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}}},K=class extends M{constructor(){super(...arguments),this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,t,i,s){return l(this,null,function*(){const s=e.uri,r=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),n=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),o=yield this._worker(s);if(e.isDisposed())return;const a=yield o.getFormattingEditsForRange(s.toString(),r,n,M._convertOptions(i));return a&&!e.isDisposed()?a.map(t=>this._convertTextChanges(e,t)):void 0})}},R=class extends M{get autoFormatTriggerCharacters(){return[";","}","\n"]}provideOnTypeFormattingEdits(e,t,i,s,r){return l(this,null,function*(){const r=e.uri,n=e.getOffsetAt(t),o=yield this._worker(r);if(e.isDisposed())return;const a=yield o.getFormattingEditsAfterKeystroke(r.toString(),n,i,M._convertOptions(s));return a&&!e.isDisposed()?a.map(t=>this._convertTextChanges(e,t)):void 0})}},E=class extends M{provideCodeActions(e,t,i,s){return l(this,null,function*(){const s=e.uri,r=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),n=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),o=M._convertOptions(e.getOptions()),a=i.markers.filter(e=>e.code).map(e=>e.code).map(Number),l=yield this._worker(s);if(e.isDisposed())return;const d=yield l.getCodeFixesAtPosition(s.toString(),r,n,a,o);return!d||e.isDisposed()?{actions:[],dispose:()=>{}}:{actions:d.filter(e=>0===e.changes.filter(e=>e.isNewFile).length).map(t=>this._tsCodeFixActionToMonacoCodeAction(e,i,t)),dispose:()=>{}}})}_tsCodeFixActionToMonacoCodeAction(e,t,i){const s=[];for(const r of i.changes)for(const t of r.textChanges)s.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,t.span),text:t.newText}});return{title:i.description,edit:{edits:s},diagnostics:t.markers,kind:"quickfix"}}},H=class extends x{constructor(e,t){super(t),this._libFiles=e}provideRenameEdits(e,t,i,s){return l(this,null,function*(){const s=e.uri,r=s.toString(),n=e.getOffsetAt(t),o=yield this._worker(s);if(e.isDisposed())return;const a=yield o.getRenameInfo(r,n,{allowRenameOfImportPath:!1});if(!1===a.canRename)return{edits:[],rejectReason:a.localizedErrorMessage};if(void 0!==a.fileToRename)throw new Error("Renaming files is not supported.");const l=yield o.findRenameLocations(r,n,!1,!1,!1);if(!l||e.isDisposed())return;const d=[];for(const e of l){const t=this._libFiles.getOrCreateModel(e.fileName);if(!t)throw new Error(`Unknown file ${e.fileName}.`);d.push({resource:t.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(t,e.textSpan),text:i}})}return{edits:d}})}},j=class extends x{provideInlayHints(e,t,d){return l(this,null,function*(){const l=e.uri,d=l.toString(),c=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),u=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),g=yield this._worker(l);return e.isDisposed()?null:{hints:(yield g.provideInlayHints(d,c,u)).map(t=>{return l=((e,t)=>{for(var i in t||(t={}))n.call(t,i)&&a(e,i,t[i]);if(r)for(var i of r(t))o.call(t,i)&&a(e,i,t[i]);return e})({},t),d={label:t.text,position:e.getPositionAt(t.position),kind:this._convertHintKind(t.kind)},i(l,s(d));var l,d}),dispose:()=>{}}})}_convertHintKind(e){return"Parameter"===e?h.languages.InlayHintKind.Parameter:h.languages.InlayHintKind.Type}};function V(e,t){const i=[],s=new b(t,e),r=(...e)=>s.getLanguageServiceWorker(...e),n=new S(r);return function(){const{modeConfiguration:s}=e;!function(e){for(;e.length;)e.pop().dispose()}(i),s.completionItems&&i.push(h.languages.registerCompletionItemProvider(t,new k(r))),s.signatureHelp&&i.push(h.languages.registerSignatureHelpProvider(t,new C(r))),s.hovers&&i.push(h.languages.registerHoverProvider(t,new D(r))),s.documentHighlights&&i.push(h.languages.registerDocumentHighlightProvider(t,new A(r))),s.definitions&&i.push(h.languages.registerDefinitionProvider(t,new F(n,r))),s.references&&i.push(h.languages.registerReferenceProvider(t,new I(n,r))),s.documentSymbols&&i.push(h.languages.registerDocumentSymbolProvider(t,new O(r))),s.rename&&i.push(h.languages.registerRenameProvider(t,new H(n,r))),s.documentRangeFormattingEdits&&i.push(h.languages.registerDocumentRangeFormattingEditProvider(t,new K(r))),s.onTypeFormattingEdits&&i.push(h.languages.registerOnTypeFormattingEditProvider(t,new R(r))),s.codeActions&&i.push(h.languages.registerCodeActionProvider(t,new E(r))),s.inlayHints&&i.push(h.languages.registerInlayHintsProvider(t,new j(r))),s.diagnostics&&i.push(new v(n,e,t,r))}(),r}exports.Adapter=x,exports.CodeActionAdaptor=E,exports.DefinitionAdapter=F,exports.DiagnosticsAdapter=v,exports.DocumentHighlightAdapter=A,exports.FormatAdapter=K,exports.FormatHelper=M,exports.FormatOnTypeAdapter=R,exports.InlayHintsAdapter=j,exports.Kind=P,exports.LibFiles=S,exports.OutlineAdapter=O,exports.QuickInfoAdapter=D,exports.ReferenceAdapter=I,exports.RenameAdapter=H,exports.SignatureHelpAdapter=C,exports.SuggestAdapter=k,exports.WorkerManager=b,exports.flattenDiagnosticMessageText=y,exports.getJavaScriptWorker=function(){return new Promise((e,t)=>{if(!L)return t("JavaScript not registered!");e(L)})},exports.getTypeScriptWorker=function(){return new Promise((e,t)=>{if(!N)return t("TypeScript not registered!");e(N)})},exports.setupJavaScript=function(e){L=V(e,"javascript")},exports.setupTypeScript=function(e){N=V(e,"typescript")};